# Round 1 Notes — System Economic-Specialization Workshop *Documenter: Qatux | Date: 2026-05-31* Source files: - `docs/workshops/system-economic-specialization/miri-round1.md` - `docs/workshops/system-economic-specialization/burnelli-sheldon-round1.md` - `docs/workshops/system-economic-specialization/paula-round1.md` --- ## 1. Confirmed Consensus (all three participants agree) | Topic | Agreement | |---|---| | Authored lore wins | The heuristic (`economic_role` + corp HQ + `planet_class`) becomes fallback only for unnamed/generic systems. | | One authored field per system | One primary authored field per system. Disagreement on form — see Fork 1. | | Coexistence with prose | `economic_base_primary/secondary` free-text survives unchanged. The new field is the machine-readable counterpart; the prose is the human record. | | Source file | `wiki/economics/system_specialization.toml` — new TOML, one record per system, compiled via `import_economics.py` → new column on `system_economy`. | | Static, t=0, deterministic | Field is build-time authored, D-010 compliant. No PressureState, no tâtonnement. | | NULL for uninhabited systems | NULL = absent = heuristic runs. Inhabited systems with NULL trigger CI error after the pass is complete. | | `economy_size` OUT | **Unanimous.** Population × `prosperity_baseline` (D-197) already cover the function. Adding `economy_size` risks contradicting existing fields. (Burnelli §Q3; Paula §Q3; Miri §Q3) | | `atlas_body_trait_bias` hero pins in same pass | **Unanimous.** ~30–40 hero body pins using the existing D-232 `pin` mechanism. Authoring burden is per-hero-body, not per-system. Miri + Araminta author content; Burnelli confirms economic eligibility. | | Content pass division | **Miri**: GTTR truth, named/hero systems. **Paula**: faction homeworlds, Compact capitals, politically-complex systems. **Burnelli**: economic credibility review of all ~300 entries + economic plausibility + fallback validation for unnamed systems. | | CI guardrails needed | Hard errors: uninhabited FK integrity, vocabulary constraint. Soft warnings: monopoly assignments, prose/field divergence, distribution imbalance. Burnelli's §Q4 has the most detailed spec. | | World-to-pin list is non-trivial | At minimum 18 core/near-core systems + 5 D-177 terroir pins require explicit authoring before the generator runs on #982 / Layer 2. | --- ## 2. Fork 1 — Primary Field Form (major structural fork) This is the workshop's central unresolved question. Round 2 must resolve it. ### Position A: Commodity FK (Burnelli + Miri) **Burnelli** proposes: ```sql dominant_commodity_id TEXT REFERENCES commodities(commodity_id) ``` One FK into the 36-commodity catalog. The commodity record's `bulk_class` → `BulkClass` and `production_ubiquity` → `ProductionUbiquity` provide the D-233 mapping directly. The FK is the mapping. **Miri** endorses Burnelli's FK, but adds one structural gap and a proposed second field: > *"The catalog's `production_ubiquity` answers: 'how widely is this commodity produced across the Reach?' — a global market statement. D-233's `ProductionUbiquity` answers: 'how spatially concentrated is this commodity in THIS settlement's built form?' — a local identity statement."* Miri proposes `dominant_production_scale TEXT` (optional, same vocabulary as `commodities.production_ubiquity`) as an override when the catalog's global ubiquity would misrepresent the system's local identity. Allowed only equal-or-higher concentration than catalog default. Estimated ~20–30 systems need this (Ran, Groombridge, Prometheus, Calloway, VGV, Keid, Lu Ban, Vuurkloof, Sindri, etc.). **Examples of scale-gap systems (Miri §Q1):** | System | Commodity | Catalog `production_ubiquity` | Required scale | Why | |---|---|---|---|---| | Ran | `agricultural_produce` | `ubiquitous` | `concentrated` | THE breadbasket — scattered instances wrong | | Groombridge | `financial_services` | `common` | `concentrated` | Financial district identity, not scattered | | Prometheus | `medical_services` | `regional` | `monopolistic` | Only facility of its kind in the Reach | | Calloway Reach | `processed_food` | `ubiquitous` | `monopolistic` | D-177 terroir lock — cannot be reproduced | | VGV system | `agricultural_produce` | `ubiquitous` | `monopolistic` | D-177 F8V stellar spectrum lock | ### Position B: Specialization Enum (Paula) **Paula** proposes: ``` system_specialization — 9-value enum ``` Values: `transit_hub`, `governance_center`, `financial_hub`, `research_station`, `military_bastion`, `manufacturing_hub`, `precision_industry`, `agricultural_base`, `extraction_colony`. Each value directly maps to a (BulkClass, ProductionUbiquity) pair. Paula's rationale: the heuristic fails for *political* reasons (institutional mandate, Compact self-sufficiency doctrine, corporate homeworld identity), not just geographic ones. A 9-value vocabulary is more politically legible than asking authors to choose among 36 commodity IDs. **Key note on `governance_center` vs `research_station`:** Both map to (NonPhysical, Specialist) and produce the same building vocabulary under D-233. Paula explicitly notes: differentiation is achieved at the D-232 level via `dominant_faction` weighting — Assembly → institutional templates, Veil Institute → research/observatory templates. This means Paula's proposal depends on `dominant_faction` being authored (see Fork 2). ### Comparison Table | Dimension | Position A (Burnelli+Miri FK) | Position B (Paula enum) | |---|---|---| | Vocabulary size | 36 commodity IDs | 9 enum values | | Authoring clarity | Requires knowing which commodity | Politically legible | | D-233 mapping | Derived from commodity catalog | Directly encoded | | Scale gap handling | Miri's optional `dominant_production_scale` field | Some implicit (enum values encode concentration level) | | `governance_center` vs `research_station` | Two different commodity IDs (`commission_certification` vs `tourism`/`medical_services`) | Same enum output; relies on `dominant_faction` to differentiate at D-232 | | Services economy | Any NonPhysical commodity works | Two dedicated enum values | | D-177 monopoly cases | `dominant_production_scale = monopolistic` | `precision_industry` or `extraction_colony` as applicable | **Unresolved tension:** Positions A and B are not mutually exclusive (could be combined), but they are not the same design. Round 2 must produce a single schema. --- ## 3. Fork 2 — `dominant_faction` Authored Pin: In or Out of This Pass? **Paula's position:** Author `dominant_faction` for all named systems in this same pass. This field already exists as a required input in D-199's 6-field minimum read-set for `CityGenerationContext`. It is consumed by D-214 (PoliticalArchetype) and D-232 (template weight). Three specific heuristic failures demonstrate why the *value* needs to be authored, not derived: - Groombridge: syndics govern, not the Assembly; affects D-214 layout archetype - Ostmark: Compact founding member, not generic frontier; affects D-232 and D-214 - Altmark: genuinely independent, neither Assembly nor Compact; affects everything downstream Paula proposes vocabulary: `concord_assembly | compact | compact_sympathetic | syndic_dominant | veil_institute | lattice_commission | independent | disputed` Paula further notes D-172 compliance gap: without authored `dominant_faction`, the system infers Compact membership from currency zone (circular) or hop distance (explicitly wrong per D-172). **Miri's position:** Does not explicitly oppose `dominant_faction` authoring. Notes that `system_culture` already has `cultural_register`, `cultural_register_secondary`, `primary_archetype`, `secondary_archetype`, `atmospheric_tone` — and characterizes adding *cultural* fields as out of scope. `dominant_faction` is a different category (political, not cultural), and Miri's rejection is directed at cultural register duplication, not at faction authoring. **Burnelli's position:** Notes `political_register` is "Paula's domain" and defers; neither advocates for nor against it. From economic integration perspective, `political_register` would not touch the commodity-building pipeline — consumed by NPC generation and dialogue only (Burnelli §Q5). **Assessment:** This is a domain-boundary question more than a design disagreement. Paula needs `dominant_faction` to make her enum differentiation work (see Fork 1). Burnelli defers. Miri's objection is specifically to cultural duplication, not to faction authoring. --- ## 4. Fork 3 — `dominant_production_scale` Field: Needed or Not? **Miri (yes):** Proposes `dominant_production_scale TEXT` as an optional field. Identifies 7 explicit cases in §Q1 where the catalog's global `production_ubiquity` understates the system's local identity. If not present, Ran looks like any farming moon; Groombridge looks like scattered financial services; Prometheus looks like a regional medical center. **Burnelli (not proposed):** Burnelli's proposal does not include a scale override. The implicit assumption is that `production_ubiquity` from the catalog is correct as-is. If Ran is pinned to `agricultural_produce`, it gets `Ubiquitous → scattered instances in mixed-use`, which Miri identifies as wrong. **Paula (not applicable):** Paula's enum directly encodes concentration into the value (e.g., `agricultural_base = Perishable × Ubiquitous`). This does not resolve the Ran-vs-Arbour distinction — both would be `agricultural_base` but one is the Reach's breadbasket and the other is an estate world. **Note to user:** This fork is directly tied to Fork 1. If Position A (commodity FK) is chosen, Miri's `dominant_production_scale` field may be necessary to achieve correct built-form output for hero systems. If Position B (enum) is chosen, some scale cases are handled by the enum directly, but the Ran-vs-Arbour distinction remains. --- ## 5. Consensus on Named Systems: Must-Pin List The following systems were named by two or more participants as requiring explicit authoring before the generator runs. GJ IDs from Paula and Miri where provided. ### Core/Near-Core (Unanimous Priority) | System | GJ ID | Burnelli pin | Paula pin | Miri pin | Overlap status | |---|---|---|---|---|---| | Sirius | GJ 244A | `commission_certification` | `governance_center` | `commission_certification` | All three agree; form differs by Fork 1 | | Gateway | GJ 71 | `commission_certification` | `transit_hub` | `commission_certification` | All three agree | | Groombridge | GJ 380 | `financial_services` | `financial_hub` | `financial_services` (concentrated) | All three agree | | Keid | GJ 166A | `legal_services` (implied) | `research_station` | `tourism` (monopolistic) | Paula and Miri diverge on commodity | | Prometheus | GJ 702B | `medical_services` implied | `precision_industry` | `medical_services` (monopolistic) | All three agree on identity | | Ran | GJ 144 | `agricultural_produce` | `agricultural_base` | `agricultural_produce` (concentrated) | All three agree; Miri adds scale override | | Bastion | GJ 570A | `commission_certification` implied | `military_bastion` | `commission_certification` | All three agree | | Cygni B | GJ 820B | `refined_metals` (fallback) | `manufacturing_hub` | `freight_haulers` | **Fork: Miri says outputs, not inputs** | | Renaissance | GJ 251 | `refined_metals` (fallback) | `precision_industry` | `gate_components` | **Fork: Miri identifies specific commodity** | | Altmark | GJ 357 | — | `transit_hub` (independent) | — | Paula only; high-stakes political case | ### D-177 Terroir Pins (Non-Negotiable per Miri) | System | Commodity | Scale | D-177 constraint | GJ confirmation needed? | |---|---|---|---|---| | Calloway Reach | `processed_food` | `monopolistic` | Terroir lock, 12-20y aging | Yes — GJ 3325 (Paula confirms) | | VGV system | `agricultural_produce` | `monopolistic` | F8V stellar spectrum lock | GJ designation needs confirmation | | Braemar | `organic_compounds` | `monopolistic` | Brach fiber: herd expansion decades | Yes — GJ 475 (Paula confirms) | | Kvitfjell / Nyrheim | `stone` | `monopolistic` | ~800t/y geological ceiling | Yes — GJ 3737 (Paula confirms) | | East reach lattice anchor | `lattice_grade_material` | — (catalog already monopolistic) | Strategic material, D-177 | GJ designation needs confirmation | ### North Reach, West Reach, Other Named (Paula + Miri coverage) | System | GJ ID | Paula pin | Miri pin | Notes | |---|---|---|---|---| | Ostmark | GJ 601A | `agricultural_base` (compact) | — | Paula: Compact founding member, 5-century agricultural base | | Confluent | GJ 395 | `agricultural_base` (compact_sympathetic) | — | Paula: VGV wine, F8V lock, D-177 | | Dagat | GJ 482A | `agricultural_base` (independent) | — | Paula: deep ocean kelp, Blue dye monopoly | | Arbour | GJ 338B | — | `agricultural_produce` (no scale override) | Miri: catalog ubiquitous IS correct for estate farming | | Sindri | GJ 3522 | — | `metallic_ore` (concentrated) | Miri: DSMC dominance understated at common | | Nova Roma | GJ 764 | — | `transport_vehicles` (concentrated) | Miri: MVG output identity | | Vuurkloof | GJ 35 | — | `fusion_fuel` (concentrated) | Miri: unusual stellar type; heuristic has no path | | Lu Ban | GJ 15A | — | `consumer_goods` (concentrated) | Miri: 300-workshop bazaar; heuristic has no signal | | Tessera | GJ 3877 | — | `legal_services` (concentrated) | Miri: Assembly Interpretive Registry | | Parallax | GJ 280A | — | `entertainment` (concentrated) | Miri: media/news economy; heuristic can't reach this | | Barnard's Star | GJ 699 | — | no pin needed | Miri: residential suburb for Cygni B; heuristic correct | --- ## 6. Open Questions (Q-record candidates for Round 2 agenda) ### Q-??-A: Field form — FK or enum? Which structure is adopted as the primary authored field? Burnelli + Miri favor `dominant_commodity_id` FK (36-value). Paula favors `system_specialization` enum (9-value). Could they coexist (an enum that compiles to the FK via a mapping table)? **Stakes:** If the 9-value enum is adopted, what is the commodity identity for the generator? If the 36-value FK is adopted, what is the political legibility for authors? ### Q-??-B: `dominant_production_scale` — in or out? If Position A (FK) is chosen, does `dominant_production_scale` earn its slot? Miri identifies 7 specific cases where it is required for correct D-233 output. The authoring burden is small (~20–30 entries), but it is an additional schema column and CI maintenance surface. ### Q-??-C: `dominant_faction` in this pass or deferred? Paula makes a credible case for authoring `dominant_faction` during this pass (D-172 compliance, D-214 archetype accuracy, ~30–40 entries for named systems). Burnelli defers. Miri's objection is to cultural field duplication, not to faction authoring. Decision needed. ### Q-??-D: Keid's commodity identity Paula pins Keid to `research_station` (NonPhysical, Specialist). Miri pins to `tourism` (monopolistic). Both note the Conservancy biosphere as the identity, but they choose different commodities. One of these is wrong, or the field (under Fork 1 resolution) subsumes the question differently. ### Q-??-E: Cygni B — freight_haulers or manufacturing_hub? Miri: `freight_haulers` (the OUTPUT of the system). Paula: `manufacturing_hub` (the PROCESS of the system). Burnelli's heuristic would land on `refined_metals` or similar (the inputs). All three would agree on the *identity* — Cygni B built the Reach — but they land on different commodity IDs. ### Q-??-F: GJ confirmation for D-177 terroir systems The east reach lattice anchor, VGV system (F8V spectrum), and possibly others need GJ catalog IDs confirmed before the content pass can proceed. This is a pre-pass lookup task. ### Q-??-G: Flagged systems requiring Miri confirmation Paula flags two systems where GTTR and corp presence diverge: - **Dài Lộ (GJ 136)** — GTTR says "Grand Road" (transit) vs Takamori Lattice Works HQ (precision industry / lattice substrate). Paula's instinct: `precision_industry`; needs Miri's lore confirmation. - **Zenzele (GJ 1111)** — GTTR emphasizes electromagnetic hardening expertise vs Baektu Mining Alliance + Umoja Freight HQ. May be `manufacturing_hub` rather than `extraction_colony`. Needs Miri's confirmation. --- ## 7. Implicit Decisions Observed For the record — these were stated or assumed by participants but not formally voted on: | Implicit decision | Basis | |---|---| | D-233 will be re-amended | Workshop brief explicitly states this; all participants design within that expectation | | `#982` design-blocked stubs in `city_context_reader.rs` will be replaced by this field | Burnelli §integration summary; confirms pipeline endpoint | | Trait catalog authoring (D-232) is a downstream co-authoring task for Miri + Araminta | Miri §Q5; confirmed that the trait definitions themselves are not part of this pass | | Compact member systematic review rule | Paula proposes: any Compact system where heuristic would produce `extraction_colony` → flag before committing | --- ## 8. Summary Table: Q1–Q5 by Participant | Question | Burnelli-Sheldon | Paula | Miri | Status | |---|---|---|---|---| | Q1 — The field | `dominant_commodity_id` FK (36 values) | `system_specialization` enum (9 values) | Endorses FK + adds `dominant_production_scale` override | **FORK 1 (unresolved)** | | Q2 — Weighted variation | Integer weighted draw; W_SYS=10,000; algorithm specified | Three-level priority; political modifiers for Compact/Assembly | Endorses algorithm; adds 3 lore-specific patterns | Consensus on mechanism, details in Fork 1 resolution | | Q3 — `economy_size`? | **OUT** — redundant with pop × prosperity | **OUT** — redundant | **OUT** — redundant | **Unanimous** | | Q4 — Content pass | TOML source; DB schema; detailed CI spec; 300 system authoring division | Same TOML source; 19 specific must-pin systems; Compact systematic rule | 18 core/near-core pins; 5 D-177 terroir pins; 6 high-risk contradiction cases | Consensus on structure; specific pins need reconciliation | | Q5 — Additional fields | `atlas_body_trait_bias` hero pins only | + `dominant_faction` authored pin | + `dominant_production_scale` (20–30 systems); no political register (already in `system_culture`) | **FORK 2 (dominant_faction); FORK 3 (production_scale)** | --- *Round 1 documented. No final proposal is recorded here — that is Round 2's deliverable after the user checkpoint.* *Source files read: `miri-round1.md`, `burnelli-sheldon-round1.md`, `paula-round1.md`.* *Qatux — 2026-05-31*