# Workshop #796 — Economics Layer Design ## Round 2 Proposals + Lead Feedback Summary **Date:** 2026-04-05 **Sprint:** 32 (planning branch) **Status:** Round 2 complete. Round 3 (convergence) pending. --- ## Round 2 Proposals Summary **Gestalt (Mechanics):** - `EconomicEvent` interface: `affected_nodes`, `commodities`, `supply/demand multipliers`, `duration`, `information_state: Public|Private`. Private events propagate at trade speed; Public events propagate instantly. This protects the inspect verb. - Corporation taxonomy: 3 behavioral tiers — Syndic (price anchors, slow response), Mid-tier (regional competitors, can fail), Sub-Syndic local (price-takers, not individually simulated). - 6 signal types per node: `price_current`, `price_trend`, `trade_flow_volume`, `corporate_presence`, `stockpile_weeks`, `production_vs_baseline`. Visibility layered from Public to Private. - Production chain principles: geographic anchor, 3-tier max depth, substitutable inputs at intermediate level, cultural identity encoded in final goods. - Political pressure is structural: currency zone, bloc affiliation, preferred currency baked into corporation profiles — not applied as external modifiers. **Tyre (Technical):** - Schema additions: `gate_links` table (335 edges from star-map.json), `commodities` table (22 types), `production_chains` + `chain_inputs`, `currency_zone` column on star_systems, corporation extensions + `corp_presence` table. - Transport graph: gate edges (5-12%/hop) + orbital edges (1-3%), Floyd-Warshall for ~760 active nodes at startup (~0.5s). - Market node tiering: ~760 active (full markets), ~240 passive producers (feed nearest station), ~2,700 inert (no economic footprint). - `economy_sim` CLI: `--seed`, `--years`, `--watch`, `--stability-check` modes. - `generate_corporations` binary with coverage rules: 3+ corps per major commodity, 1+ per inhabited system >100K pop. - Phased implementation: 2a (data) → 2b (simulation) → 2c (integration design, D-records only). **Paula (Political Drama):** - 4 per-body structural flags: `currency_zone`, `trade_bloc`, `commission_presence`, `assembly_assessment_compliance`. - 4 per-commodity structural flags: `commission_certification`, `syndic_supply_chain`, `gate_corp_floor`, `cultural_corridor_id`. - *Currency geography proposed (now corrected by lead — see below):* Sol (hops 0-2), Mark (hops 2-5), Tractus (hop 6+ and Compact). - Corporation texture plan: 25 tier-1 textured (13 upgraded + 12 new), ~175 tier-2 skeletons. Gaps: financial services, re-embodiment, Sova Logistics, Compact distributor, east reach anchors, information brokerage. - 6 sharp events + 5 slow accumulation drifts (wage compression, market consolidation, currency zone drift, infrastructure neglect, reputation decay). **Nigel (Replayability):** - Productivity seed: 4 dimensions — `extraction_rate`, `processing_throughput`, `transit_capacity`, `service_throughput`. Log-normal distribution, 0.4-1.8× for standard, 0.7-1.4× for monopolies, corridor correlation ~0.6. - Exchange rates emerge from aggregate productivity differentials, not seeded directly. Volatility per currency: Sol lowest, Mark mid, Tractus highest. - Observable signals for investor screen: price gradient map, trade flow visualization, currency ticker with volatility trail. - Event input port: `EconEvent { target, effect, visibility }`. `Visibility: Global | Proximate(hops) | Disclosed(nodes) | Hidden`. Hidden events create real effects with no actor knowing the cause. **Burnelli-Sheldon (Economics):** - Formal model: ~760 nodes, Leontief production with seeded capacity, damped tâtonnement (α=0.03, β=0.4). - 22 commodity types: 7 raw, 8 intermediate, 7 final. Full input/output recipes. - Exchange rates: Sol/Mark managed peg (political), Mark/Tractus managed float (trade-balance driven, γ=0.02, δ=0.4), Sol/Tractus derived. 3% conversion friction on cross-zone trade. *(Note: peg direction needs re-examination under corrected political framing — Tractus/Mark peg, Assembly→Compact, is more politically coherent than Sol/Mark. Sol has no issuer to manage a peg.)* - 6 corporate archetypes: Monopolist, Distributor, Producer, Specialist, Cooperative, Intermediary. - 4 stability criteria: cold-start convergence (±5% in 100 days), long-run stability (±2% over 1,000 days), shock response, cross-zone trade balance. - Standalone `econ-sim` binary in `tooling/`, reads systems.db + `commodities.toml` + `production_profiles.toml`, outputs CSV timeseries. **Miri (Lore):** - Currency lore: Sol (Earth legacy, finite pool, no issuer, appreciating), Mark (described as Concord institutional — *since corrected: Mark is Compact of Westphalia*), Tractus (daily commercial, what people are paid in — *since corrected: Tractus is the Concord Assembly/establishment currency, not a frontier coin*). - Van Maanen's Star economic profile: Station Sova as freight hub, 4 tycoon business types, economic pressures. *(Out of Phase 2 scope per lead — noted below.)* - 28 corporation archetypes across extraction (5), agriculture (6), manufacturing (6), trade/logistics (4), services (6), intelligence (1). - East reach: 5 new archetypes — deep ocean fishery, precision instruments, fermentation cooperative, maritime salvage, textile/craft guild. - Productivity constraint table: aging pipelines (Calloway 12-20y, VGV 5y+), hard ceilings (Kvitfjell 800t/y), capital goods lead times (Stalownia 1-3y, Cygni B 2-5y). --- ## Lead Corrections (Jeroen — verbatim → interpreted) ### (a) Currency framing — corrected **The political mapping was inverted.** Correct framing: | Currency | Issuer | Role | Notes | |----------|--------|------|-------| | **Tractus** | Concord Assembly (Sirius / Groombridge) | Main Reach currency — the establishment currency | Poor exchange rates in Compact, but accepted everywhere else | | **Mark** | Compact of Westphalia | Breakaway currency — created to disconnect from Tractus | Mostly not accepted outside the Compact | | **Sol** | Sol system (no active issuer, finite pool) | Niche, untraceable — crime and premium Earth goods | Appreciating due to finite supply; used where anonymity matters | *Currency correction applied 2026-04-05: Mark is Compact of Westphalia currency, not Concord. "Concord" in Jeroen's original directive referred to the Compact. Political framing: Assembly = Tractus (establishment), Compact = Mark (breakaway).* ### (b) Services and luxury services needed The commodity model must include: - **Professional services:** legal, banking/credit, insurance, logistics management - **Luxury services:** tourism, music, holo-content, experiences, cultural exports These were hinted by Paula but not formally included in the 22-commodity list. Required for the commodity table to be complete. ### (c) Crime and smuggling required A shadow economy layer is required. Geographic variance: nearly absent in Commission-heavy systems, rampant in Compact frontier, continuous spectrum between. D-037 (Sova contraband: lattice components) is a canonical example. The economics layer needs to model shadow activity without a formal system — likely implemented as per-body flags (`commission_presence`, `unbound_density`) that influence effective market access. ### (d) Productivity seeding — endorsed Nigel and Miri's productivity seeding proposals are solid. No correction. Log-normal seeding of `extraction_rate`, `processing_throughput`, `transit_capacity`, `service_throughput` proceeds. ### (e) Tycoon profile — out of Phase 2 scope Van Maanen's Star economic profile (OQ-7 from Round 1 report) is not a Phase 2 deliverable. Miri's detailed tycoon business profile is deferred. The simulation doesn't need a specific system profiled for Phase 2 — it needs coverage rules, not narrative anchors. ### (f) Corporations as prerequisite — confirmed Corporation/brand population comes FIRST. Simulation runs on real corporate data, not placeholders. This is Phase 1 content work (D-166 applies). The `generate_corporations` binary should target real archetypes from Miri's 28-archetype catalog, not procedurally generated shells. How many corporations is "enough" remains an open question (see below). ### (g) Database architecture — hybrid confirmed **TOML/YAML as source of truth** (diffable, in git). `make economy-db` builds the dev `.db`. The `.db` is a queryable artifact, always on disk, rebuilt when source changes. For production: same build step, copy into save directory on new game, sim mutates live. Rollback = rebuild from source files. Source files location: `content/economics/` (TOML files for corporations, commodities, production chains, etc.) ### (h) Iterative development cycle — confirmed skeleton → data → test → skeleton tweaks → data tweaks → test → repeat. Not waterfall phases. Sim binary and data population happen in tandem. --- ## Open Questions Entering Round 3 | # | Question | Status | Notes | |---|----------|--------|-------| | OQ-1 | Currency names — final canonical names for Tractus, Mark, Sol | **Partially resolved** — names confirmed by lead; lore detailing TBD by Miri | | OQ-2 | Corporation density threshold — how many to make simulation credible? | **Open** | Coverage rules proposed (3+ per commodity, 1+ per inhabited system) but total count not confirmed | | OQ-3 | East Reach economic identity | **Partially resolved** — Miri provided 5 archetypes; full profile still thin | | OQ-4 | Exchange rate model — fixed peg, managed float, or derived? | **Partially resolved** — Burnelli-Sheldon's model (managed peg Sol/Mark, managed float Mark/Tractus) subject to confirmation given currency framing correction | | OQ-5 | Corp creation sequencing vs. simulation start | **Confirmed** — corps come first (directive f) | | OQ-6 | Compact economics — Compact accepts Tractus at bad rates? Uses Mark? Uses Sol? | **New open question** from currency correction | | OQ-7 | Van Maanen's Star profile | **Deferred** — out of Phase 2 scope | | OQ-8 | Services/luxury commodity types — formal list | **New** — must be defined before commodity table is complete | | OQ-9 | Shadow economy mechanics — per-body flags or separate system? | **New** | | OQ-10 | Active/passive/inert threshold — what makes a node "active"? | **Tyre's proposal** — 760 active / 240 passive / 2,700 inert — needs confirmation | --- ## What Round 3 Must Lock For D-records to be written, Round 3 must produce confirmed answers on: 1. **Three currency canonical definitions** — names, issuer, acceptance geography, role 2. **Commodity type list** — final count (22 + services + luxury = ~30?), full categorization 3. **Corporate coverage rules** — density threshold per commodity, per system, per corridor 4. **Per-body data flags** — confirm Paula's 8 flags + shadow economy flag 5. **Market node tiering** — confirm 760/240/2,700 split or revise 6. **Database source file location** — `content/economics/` TOML confirmed? 7. **Productivity seed dimensions** — confirm Nigel's 4 dimensions + log-normal distribution 8. **Development sequence** — confirm skeleton → data → test cycle as the process D-record --- ## Record implications (Qatux) - **Round 1 report correction:** The currency bloc table in `workshop-796-round1.md` listed "Earth / Concord / Assembly" as bloc labels — this was based on agents' Round 1 proposals and is now superseded. The corrected framing is Tractus (Assembly/Sirius main), Mark (Concord rebellious), Sol (Sol system niche/crime). - **D-037 cross-reference:** Shadow economy in the simulation will need to cite D-037 (Sova contraband) as the canonical example of shadow market mechanics. - **R-NNN pending:** Burnelli-Sheldon's single-currency recommendation is confirmed rejected. Rejection rationale: three currencies create structural economic bloc tension without event generation. Will be filed as R-NNN in Round 3. - **Architecture D-record:** TOML + built .db hybrid needs a D-record. Closest existing decision is D-010 (deterministic simulation) and the general architecture — economics DB is new territory. Will file in `decisions/architecture.md`. - **Process D-record:** Iterative skeleton→data→test cycle for economics may belong in `decisions/process.md` rather than `decisions/economics.md`. --- *Compiled by Qatux. Round 3 convergence pending.*