data(economics): commodity catalog — 36 types, 21 production chains
Workshop #801 deliverable: commodities.toml (36 commodities across 5 tiers), production_chains.toml (21 Leontief recipes including 2 substitution routes), schema.md (SQL DDL + validation rules). Key design choices: brands are not commodities (separate layer), water→fuel at 8:1 yield, 3 political sub-flags replacing single boolean, gate energy-over-gate as commercial service. Wiki stub pages generated for all 36 commodities. Tickets #811–#815 created for follow-up work. #801 closed. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
@@ -0,0 +1,434 @@
|
||||
## Burnelli-Sheldon: Commodity Catalog Analysis for #801
|
||||
|
||||
I've reviewed D-171-D-183, my Round 2 model, the Round 1 cross-discussion, and the wiki corporation corpus. Here's my full economic analysis.
|
||||
|
||||
---
|
||||
|
||||
### 1. COMMODITY ENUMERATION FROM FIRST PRINCIPLES
|
||||
|
||||
I start from the question: what sectors does an interstellar civilization require? Then I enumerate what's produced in each sector, constrained by the wiki lore.
|
||||
|
||||
The answer is **32 commodity types**: 24 physical goods in a 3-tier production hierarchy + 8 services.
|
||||
|
||||
#### Primary Sector -- Raw Materials (8 types)
|
||||
|
||||
| # | Commodity | Description | Production geography |
|
||||
|---|-----------|-------------|---------------------|
|
||||
| R1 | **Metallic ore** | Iron, copper, structural metals. Bulk extraction from planetary/asteroid mining | Common -- most rocky bodies have some deposits |
|
||||
| R2 | **Rare minerals** | Exotic crystals, rare earths, gemstones. Low volume, high value | Concentrated -- 5-10 systems with significant deposits |
|
||||
| R3 | **Timber/biomass** | Harvested wood, structural/decorative grade. Forest worlds only | Regional -- requires established biosphere (Nordmark Skog's territory) |
|
||||
| R4 | **Agricultural produce** | Food crops, livestock, grain. Perishable, bulk | Ubiquitous -- any terraformed world produces some |
|
||||
| R5 | **Water/volatiles** | Water ice, atmospheric gases. Life support critical | Ubiquitous on ocean/ice worlds; life-or-death expensive on bare-rock stations |
|
||||
| R6 | **Fusion fuel** | Deuterium, He-3. Continuous consumption -- not a one-time purchase | Common -- gas giants and ice moons are primary sources |
|
||||
| R7 | **Organic compounds** | Biochemicals, pharmaceutical precursors, biological feedstock. Includes brach fiber (Braemar, D-177) | Regional -- requires complex biospheres |
|
||||
| R8 | **Stone/aggregate** | Construction stone, ceramics feedstock. Kvitfjell Blue marble is the premium variant | Common, but premium variants are monopolistic |
|
||||
|
||||
**Why 8 instead of D-173's "7":** Stone and metallic ore follow fundamentally different production chains. Ore is smelted into metals; stone is cut/shaped for construction and decoration. Bifrost Marmor doesn't process their marble through a smelter. Collapsing them would force marble through a metallurgical chain that doesn't represent reality. D-173 said "approximately 30" -- 32 is within that margin.
|
||||
|
||||
#### Secondary Sector -- Intermediate Goods (8 types)
|
||||
|
||||
| # | Commodity | Primary inputs | Description |
|
||||
|---|-----------|---------------|-------------|
|
||||
| I1 | **Refined metals** | Metallic ore | Structural steel, copper wire, aluminum. Backbone of construction |
|
||||
| I2 | **Advanced alloys** | Metallic ore + rare minerals | High-performance materials for hulls, gate parts, precision machinery |
|
||||
| I3 | **Structural panels** | Timber + refined metals | Pre-fabricated building components (Nordmark Skog produces these) |
|
||||
| I4 | **Processed food** | Agricultural produce + water | Shelf-stable, transportable food products (Mercado distributes these) |
|
||||
| I5 | **Electronics/components** | Rare minerals + refined metals | Circuits, processors, control systems |
|
||||
| I6 | **Chemicals/pharmaceuticals** | Organic compounds + water | Medicines, industrial chemicals, life support consumables |
|
||||
| I7 | **Drive cores** | Rare minerals + advanced alloys | Propulsion components. High-value, specialized |
|
||||
| I8 | **Textiles/composites** | Organic compounds + chemicals | Clothing, technical fabrics, composite materials (brach fiber products) |
|
||||
|
||||
**Changes from Round 2:** Replaced "hull plates" with "advanced alloys" (hull plates are a specific product from advanced alloys, not a separate intermediate category). Replaced "habitat modules" with "textiles/composites" -- habitat modules are a finished assembly, not an intermediate input. Textiles/composites IS an intermediate: it feeds into consumer goods, luxury goods, and habitat construction.
|
||||
|
||||
#### Secondary Sector -- Final Goods (8 types)
|
||||
|
||||
| # | Commodity | Primary inputs | Description |
|
||||
|---|-----------|---------------|-------------|
|
||||
| F1 | **Heavy equipment** | Refined metals + electronics + drive cores | Mining rigs, construction machinery (Stalownia's core product) |
|
||||
| F2 | **Vehicles/craft** | Advanced alloys + electronics + drive cores | Ships, ground vehicles (MVG territory) |
|
||||
| F3 | **Consumer goods** | Processed food + textiles + electronics | Daily necessities, household items, personal tech |
|
||||
| F4 | **Luxury goods** | Agri produce + textiles + chemicals | Premium products with terroir/brand identity: Calloway whisky, VGV wine, Bifrost marble, fine spirits |
|
||||
| F5 | **Implant hardware** | Electronics + chemicals + advanced alloys | Neural interfaces, augmentation, lattice components (Prometheus Labs) |
|
||||
| F6 | **Gate components** | Advanced alloys + drive cores + electronics | Gate maintenance and construction parts (Gate Corporation monopoly) |
|
||||
| F7 | **Habitat modules** | Structural panels + electronics + chemicals | Complete living/working units for stations and settlements (Cygni B station sections, 2-5y lead time per D-177) |
|
||||
| F8 | **Freight haulers** | Refined metals + drive cores + electronics | Commercial cargo vessels. Demand driven by trade volume, not population |
|
||||
|
||||
**Why "freight haulers" separate from "vehicles":** Different demand functions. Freight hauler demand = f(trade_volume, fleet_age). Vehicle demand = f(population, wealth). They respond to different economic signals. A trade boom increases freight hauler demand without affecting personal vehicle demand. This distinction matters for the simulation's responsiveness to trade-flow changes.
|
||||
|
||||
#### Tertiary Sector -- Professional Services (5 types)
|
||||
|
||||
| # | Service | Location-bound? | Notes |
|
||||
|---|---------|-----------------|-------|
|
||||
| S1 | **Legal services** | Yes | Contract enforcement, dispute resolution, Commission certification. Demand partly compliance-driven |
|
||||
| S2 | **Financial services** | Yes | Banking, credit, clearing, currency exchange. Infrastructure for all trade |
|
||||
| S3 | **Medical/re-embodiment** | Yes | Healthcare, neural backup, re-embodiment tech. Regulation varies by zone |
|
||||
| S4 | **Insurance/risk** | Yes | Cargo, liability, corporate risk management |
|
||||
| S5 | **Information brokerage** | Yes | Commercial intelligence, market data, confidential analysis (Adams & Ford, Ferreira Monteiro) |
|
||||
|
||||
#### Quaternary Sector -- Luxury/Experiential Services (3 types)
|
||||
|
||||
| # | Service | Location-bound? | Notes |
|
||||
|---|---------|-----------------|-------|
|
||||
| X1 | **Tourism** | Yes | Travel experiences, cultural tourism. Demand = f(cultural_significance, accessibility) |
|
||||
| X2 | **Entertainment media** | Yes | Holo-content, performances, cultural production |
|
||||
| X3 | **Fine dining/hospitality** | Yes | Restaurants, hotels, gastronomy (Talbreu territory) |
|
||||
|
||||
**Services are non-transportable through gates** (D-173 confirmed). This is the key distinction. You cannot arbitrage legal services across systems. A system with excellent financial services has a structural competitive advantage that can't be shipped away. This creates geographic stickiness for economic activity -- corporations cluster near good service providers.
|
||||
|
||||
**Total: 8 raw + 8 intermediate + 8 final + 5 professional services + 3 luxury services = 32 commodities.**
|
||||
|
||||
---
|
||||
|
||||
### 2. BASE PRICING IN TRACTUS
|
||||
|
||||
Base prices represent equilibrium price at a typical producing node. I set these to create three properties:
|
||||
- Raw materials cheap, finals expensive (accumulated cost principle)
|
||||
- Processing margins realistic (2-4x for intermediates, 1.5-3x for finals)
|
||||
- Absolute price spread wide enough that transport costs create meaningful differentials
|
||||
|
||||
#### Raw Materials
|
||||
|
||||
| Commodity | Base (T/unit) | Rationale |
|
||||
|-----------|--------------|-----------|
|
||||
| Water/volatiles | 2 | Near-free on ocean worlds. The most abundant commodity in the universe |
|
||||
| Agricultural produce | 5 | Common output from any terraformed world |
|
||||
| Stone/aggregate | 8 | Heavy, cheap. Premium variants (marble) command 10-50x at source |
|
||||
| Metallic ore | 10 | Bulk mining baseline. The reference commodity |
|
||||
| Timber/biomass | 15 | Less common -- requires established forests |
|
||||
| Fusion fuel | 20 | Critical utility. Price reflects continuous demand, not scarcity |
|
||||
| Organic compounds | 35 | Complex biospheres only. Includes pharmaceutical-grade biologicals |
|
||||
| Rare minerals | 80 | Scarce, location-specific. The premium raw material |
|
||||
|
||||
#### Intermediate Goods
|
||||
|
||||
| Commodity | Base (T/unit) | Input cost | Margin | Notes |
|
||||
|-----------|--------------|-----------|--------|-------|
|
||||
| Processed food | 15 | ~8T | 88% | Low-margin, high-volume. Mercado territory |
|
||||
| Refined metals | 30 | ~20T | 50% | Bulk processing. Thin margin, huge volume |
|
||||
| Textiles/composites | 50 | ~32T | 56% | Value-add from raw organics |
|
||||
| Structural panels | 45 | ~30T | 50% | Timber + metals assembly. Nordmark Skog |
|
||||
| Chemicals/pharma | 60 | ~36T | 67% | Higher value-add, specialized processing |
|
||||
| Advanced alloys | 100 | ~39T | 156% | High-tech processing, significant value-add |
|
||||
| Electronics/components | 120 | ~49T | 145% | Fabrication is extremely high value-add |
|
||||
| Drive cores | 200 | ~112T | 79% | Precision assembly from expensive inputs |
|
||||
|
||||
#### Final Goods
|
||||
|
||||
| Commodity | Base (T/unit) | Input cost | Margin | Notes |
|
||||
|-----------|--------------|-----------|--------|-------|
|
||||
| Consumer goods | 80 | ~41T | 95% | Mass market, moderate margin |
|
||||
| Habitat modules | 150 | ~104T | 44% | Heavy assembly, high input cost |
|
||||
| Heavy equipment | 250 | ~106T | 136% | Complex, specialized (Stalownia) |
|
||||
| Freight haulers | 300 | ~135T | 122% | Capital goods, durable |
|
||||
| Vehicles/craft | 350 | ~156T | 124% | High-spec, precision (MVG) |
|
||||
| Implant hardware | 400 | ~86T | 365% | Enormous value-add. Neural tech premium |
|
||||
| Luxury goods | 500 | ~46T | 987% | Price is demand-driven, not cost-driven. Brand/terroir premium IS the product |
|
||||
| Gate components | 800 | ~248T | 223% | Monopoly pricing (Gate Corporation). Precision + political leverage |
|
||||
|
||||
**Key observation on luxury goods:** The 987% margin isn't a flaw -- it's the point. Calloway whisky isn't expensive because barley costs a lot. It's expensive because of 400 years of heritage, 12-20 year aging, and terroir that cannot be replicated. The input recipe captures physical requirements; the price captures brand economics. The corporate behavioral agent layer (Monopolist/Specialist archetypes) is what maintains these margins against competitive pressure.
|
||||
|
||||
#### Services
|
||||
|
||||
| Service | Base (T/unit) | Notes |
|
||||
|---------|--------------|-------|
|
||||
| Entertainment media | 30 | High volume, low per-unit |
|
||||
| Information brokerage | 50 | Data analysis and intelligence |
|
||||
| Fine dining/hospitality | 60 | Cultural premium |
|
||||
| Insurance/risk | 75 | Financial product |
|
||||
| Tourism | 100 | Premium experience |
|
||||
| Legal services | 100 | Compliance-driven demand |
|
||||
| Financial services | 120 | Infrastructure premium |
|
||||
| Medical/re-embodiment | 200 | Highest-value service. Re-embodiment is the premium tier |
|
||||
|
||||
**Service pricing varies dramatically by location.** These are at-node base prices for a node with average service quality. Core systems with deep labor markets might price legal services at 80T; a frontier station with one overworked lawyer might price them at 300T. Service price variation is driven by labor supply, not transport costs.
|
||||
|
||||
---
|
||||
|
||||
### 3. ELASTICITY CLASSIFICATION
|
||||
|
||||
Five steady-state categories plus a panic mechanism for supply shocks.
|
||||
|
||||
#### Category 1: Perfectly Inelastic (epsilon approx 0.0-0.1)
|
||||
*"We need this to survive. Price doesn't matter."*
|
||||
|
||||
- **Water/volatiles** (on stations without local source)
|
||||
- **Fusion fuel** (continuous consumption -- stations cannot operate without power)
|
||||
- **Medical/re-embodiment** (health services are non-discretionary)
|
||||
|
||||
A 20% supply drop: demand stays flat. Price spikes absorb the entire adjustment. These commodities create the most dramatic price events during shortages.
|
||||
|
||||
#### Category 2: Highly Inelastic (epsilon approx 0.2-0.4)
|
||||
*"We need this, but we can reduce waste or ration."*
|
||||
|
||||
- **Agricultural produce / processed food** (people eat less meat, stretch supplies)
|
||||
- **Chemicals/pharmaceuticals** (defer non-critical treatments, reduce industrial use)
|
||||
- **Legal services** (compliance-driven -- Commission still requires certification)
|
||||
- **Financial services** (banking is infrastructure -- can't opt out)
|
||||
- **Refined metals** (basic construction continues, just slower)
|
||||
|
||||
A 20% supply drop: demand drops ~5-8%. Significant price increase, modest demand adjustment.
|
||||
|
||||
#### Category 3: Unit Elastic (epsilon approx 0.8-1.2)
|
||||
*"We adjust our plans proportionally."*
|
||||
|
||||
- **Metallic ore** (mining expansion/contraction tracks price)
|
||||
- **Structural panels** (construction delays when expensive)
|
||||
- **Electronics/components** (upgrade cycles stretch)
|
||||
- **Consumer goods** (people buy less, repair more)
|
||||
- **Habitat modules** (expansion deferred, not cancelled)
|
||||
- **Insurance/risk** (coverage levels adjusted)
|
||||
- **Information brokerage** (discretionary intelligence purchases scale with budget)
|
||||
- **Textiles/composites** (fashion cycles and replacement rates adjust)
|
||||
|
||||
A 20% supply drop: demand drops ~15-25%. Price and quantity adjust roughly proportionally.
|
||||
|
||||
#### Category 4: Elastic (epsilon approx 1.5-2.5)
|
||||
*"We can wait, substitute, or do without."*
|
||||
|
||||
- **Heavy equipment** (capital expenditure -- defer the purchase, extend existing equipment life)
|
||||
- **Vehicles/craft** (deferrable, repairable)
|
||||
- **Freight haulers** (fleet expansion pauses; existing fleet continues)
|
||||
- **Advanced alloys** (use standard metals at a quality penalty)
|
||||
- **Drive cores** (overhaul existing cores instead of replacing)
|
||||
- **Entertainment media** (pure discretionary)
|
||||
- **Fine dining/hospitality** (eat at home)
|
||||
|
||||
A 20% supply drop: demand drops ~30-50%. Buyers actively defer, substitute, or exit the market.
|
||||
|
||||
#### Category 5: Highly Elastic / Luxury (epsilon approx 3.0+)
|
||||
*"Nice to have. If the price moves, we're out."*
|
||||
|
||||
- **Luxury goods** (Calloway whisky, VGV Classe, Kvitfjell marble -- nobody needs these)
|
||||
- **Gate components** (extremely long procurement cycles; orders deferrable by years)
|
||||
- **Implant hardware** (upgrades, not life support -- existing implants keep working)
|
||||
- **Tourism** (first thing cut in any downturn)
|
||||
- **Stone/aggregate** (at non-source nodes -- local recycled materials substitute)
|
||||
|
||||
A 20% supply drop: demand drops 60%+. Market collapses to essential buyers only.
|
||||
|
||||
#### Panic Mechanism (not a category -- a conditional modifier)
|
||||
|
||||
Perverse elasticity isn't a steady-state property. It's a **regime shift** triggered by acute supply shocks. I model this as a **stockpile-target mechanism:**
|
||||
|
||||
- Each active node maintains a target stockpile (in weeks-of-consumption) for critical commodities
|
||||
- When actual stockpile < panic threshold, the node generates **excess demand** proportional to the shortfall
|
||||
- This creates a positive feedback loop: shortage -> hoarding demand -> deeper shortage -> price spike
|
||||
- The loop is bounded by the stockpile target (demand normalizes once reserves rebuild)
|
||||
|
||||
**Panic-flagged commodities and thresholds:**
|
||||
|
||||
| Commodity | Panic threshold | Behavior |
|
||||
|-----------|----------------|----------|
|
||||
| Fusion fuel | < 2 weeks supply | Station managers build emergency reserves. Demand spikes 2-3x |
|
||||
| Water/volatiles | < 1 week supply | Life-or-death hoarding. Demand spikes 3-5x |
|
||||
| Processed food | < 2 weeks supply | Consumer panic buying. Demand spikes 1.5-2x |
|
||||
| Chemicals/pharma | < 3 weeks supply | Hospital/industrial stockpiling. Demand spikes 1.5x |
|
||||
| Rare minerals | N/A (price-triggered) | Speculative hoarding when price_trend > +15%/tick for 5+ ticks |
|
||||
|
||||
**Why this is better than a "perverse elasticity" category:** It produces panic behavior from a sensible micro-foundation (rational stockpile management) rather than a magic coefficient. The panic is bounded, temporary, and self-resolving once supply normalizes. It also interacts correctly with the `stockpile_weeks` signal from D-181 -- the signal IS the mechanism.
|
||||
|
||||
---
|
||||
|
||||
### 4. PRODUCTION CHAIN RECIPES
|
||||
|
||||
Leontief fixed-coefficient recipes (D-173, D-178). Each row says: "to produce 1 unit of output, you need exactly these inputs." No substitution within a recipe. Substitution happens at the STRUCTURAL level -- multiple raw sources can feed the same intermediate through different recipes (D-173).
|
||||
|
||||
#### Raw -> Intermediate Recipes
|
||||
|
||||
| Output (1 unit) | Input 1 | Input 2 | Notes |
|
||||
|-----------------|---------|---------|-------|
|
||||
| Refined metals | 2.0 metallic ore | -- | Simple smelting. High volume, low complexity |
|
||||
| Advanced alloys | 1.5 metallic ore | 0.3 rare minerals | Rare minerals are the bottleneck input |
|
||||
| Structural panels | 1.0 timber | 0.5 refined metals | Timber-dependent -- forest world proximity matters |
|
||||
| Processed food | 1.5 agri produce | 0.2 water | Water is rarely the constraint (ubiquitous) |
|
||||
| Electronics | 0.5 rare minerals | 0.3 refined metals | Rare minerals are the scarcity driver |
|
||||
| Chemicals/pharma | 1.0 organic compounds | 0.3 water | Biosphere access is the real bottleneck |
|
||||
| Drive cores | 0.4 rare minerals | 0.8 advanced alloys | Double dependency on rare minerals (direct + via alloys) |
|
||||
| Textiles/composites | 0.8 organic compounds | 0.2 chemicals | Includes brach fiber path (organic compound variant) |
|
||||
|
||||
#### Intermediate -> Final Recipes
|
||||
|
||||
| Output (1 unit) | Input 1 | Input 2 | Input 3 | Notes |
|
||||
|-----------------|---------|---------|---------|-------|
|
||||
| Consumer goods | 0.3 processed food | 0.3 textiles | 0.2 electronics | Broad input mix -- diversified |
|
||||
| Habitat modules | 1.5 structural panels | 0.4 electronics | 0.3 chemicals | Panel-heavy -- timber scarcity cascades here |
|
||||
| Heavy equipment | 1.0 refined metals | 0.3 electronics | 0.2 drive cores | Stalownia's recipe |
|
||||
| Freight haulers | 1.5 refined metals | 0.5 drive cores | 0.3 electronics | Metal and drive-core intensive |
|
||||
| Vehicles/craft | 0.8 advanced alloys | 0.3 electronics | 0.3 drive cores | Premium materials -- MVG uses alloys, not base metal |
|
||||
| Implant hardware | 0.5 electronics | 0.3 chemicals | 0.2 advanced alloys | Electronics-dependent -- rare mineral cascade |
|
||||
| Luxury goods | 0.3 agri produce | 0.2 textiles | 0.2 chemicals | Beverage-heavy aggregate (whisky, wine). Brand premium is in the PRICE, not the recipe |
|
||||
| Gate components | 1.0 advanced alloys | 0.5 drive cores | 0.4 electronics | The most input-intensive final. Triple rare-mineral dependency |
|
||||
|
||||
#### Scarcity Cascade Analysis
|
||||
|
||||
The interesting question per D-178 (Leontief model) is: what happens when a single raw material becomes scarce?
|
||||
|
||||
**Rare minerals shortage -> cascade:**
|
||||
- Direct: electronics down, advanced alloys down, drive cores down
|
||||
- Downstream: implant hardware down significantly, gate components down severely, vehicles down significantly, heavy equipment down, freight haulers down
|
||||
- The ENTIRE high-tech sector collapses. This is realistic -- rare earths are the bottleneck of real-world advanced manufacturing too.
|
||||
|
||||
**Metallic ore shortage -> cascade:**
|
||||
- Direct: refined metals down, advanced alloys down
|
||||
- Downstream: structural panels down, heavy equipment down, freight haulers down significantly, habitat modules down
|
||||
- Construction and heavy industry halt. High-tech (electronics, implants) is less affected because it uses rare minerals, not bulk ore.
|
||||
|
||||
**Timber shortage -> cascade:**
|
||||
- Direct: structural panels down
|
||||
- Downstream: habitat modules down
|
||||
- Narrow cascade -- but habitat module shortage means NO NEW STATIONS. Politically explosive.
|
||||
|
||||
**Organic compounds shortage -> cascade:**
|
||||
- Direct: chemicals down, textiles down
|
||||
- Downstream: luxury goods down, implant hardware down, consumer goods down, habitat modules down
|
||||
- Broad but moderate cascade. Affects quality of life across the board.
|
||||
|
||||
**Agricultural produce shortage -> cascade:**
|
||||
- Direct: processed food down, luxury goods down (beverages)
|
||||
- Downstream: consumer goods down
|
||||
- The food chain is SHORT -- 2 tiers max. But processed food is Category 2 (highly inelastic), so the price effect is enormous even if the quantity effect is small.
|
||||
|
||||
**The coefficient ratios are designed to produce these cascades.** Rare minerals appear as an input to 3 intermediates (electronics, advanced alloys, drive cores), making them the critical bottleneck commodity. This is intentional -- it creates a single-point-of-failure that the storyteller can exploit for dramatic supply shocks.
|
||||
|
||||
---
|
||||
|
||||
### 5. PRICE FORMATION SANITY
|
||||
|
||||
#### Transport cost model
|
||||
|
||||
Transport cost per hop = base_rate x bulk_modifier, where:
|
||||
|
||||
| Bulk class | Modifier | Commodities |
|
||||
|------------|----------|-------------|
|
||||
| **Liquid/gas** | 1.3x | Water, fusion fuel, chemicals |
|
||||
| **Bulk solid** | 1.2x | Ore, stone, timber, agri produce |
|
||||
| **Standard** | 1.0x | Refined metals, structural panels, processed food, textiles |
|
||||
| **Compact** | 0.8x | Electronics, drive cores, advanced alloys, consumer goods |
|
||||
| **Precision** | 0.6x | Rare minerals, implant hardware, luxury goods, gate components |
|
||||
|
||||
Base gate rate: 5-12% per hop (D-178). Using 8% as the average, effective per-hop costs:
|
||||
|
||||
| Bulk class | Effective cost/hop | Price after 5 hops | Price after 10 hops |
|
||||
|------------|-------------------|--------------------|--------------------|
|
||||
| Liquid/gas | 10.4% | 1.64x | 2.69x |
|
||||
| Bulk solid | 9.6% | 1.58x | 2.50x |
|
||||
| Standard | 8.0% | 1.47x | 2.16x |
|
||||
| Compact | 6.4% | 1.36x | 1.86x |
|
||||
| Precision | 4.8% | 1.26x | 1.60x |
|
||||
|
||||
#### Geographic price differential examples
|
||||
|
||||
**Metallic ore (base 10T, bulk solid):**
|
||||
- At source: 10T
|
||||
- 5 hops: 15.8T (+58%)
|
||||
- 10 hops: 25T (+150%)
|
||||
- This is meaningful. A system 10 hops from mining creates strong incentive for local extraction or recycling.
|
||||
|
||||
**Electronics (base 120T, compact):**
|
||||
- At source: 120T
|
||||
- 5 hops: 163T (+36%)
|
||||
- 10 hops: 223T (+86%)
|
||||
- Moderate gradient. Electronics are worth shipping long distances because they're compact and valuable.
|
||||
|
||||
**Gate components (base 800T, precision):**
|
||||
- At source: 800T
|
||||
- 5 hops: 1,008T (+26%)
|
||||
- 10 hops: 1,280T (+60%)
|
||||
- 15 hops: 1,625T (+103%)
|
||||
- Even with precision bulk class (cheapest to ship), gate components still double over 15 hops. Frontier systems face enormous gate maintenance costs. This is a STRUCTURAL driver for frontier economic grievance and Compact formation.
|
||||
|
||||
**Water (base 2T, liquid/gas):**
|
||||
- At source: 2T
|
||||
- 10 hops: 5.4T (+170%)
|
||||
- Low absolute differential, but stations consuming millions of units face massive aggregate costs. Water-poor stations far from ice sources have a permanent cost disadvantage.
|
||||
|
||||
**Fusion fuel (base 20T, liquid/gas):**
|
||||
- At source: 20T
|
||||
- 5 hops: 32.8T (+64%)
|
||||
- 10 hops: 53.8T (+169%)
|
||||
- Energy costs nearly TRIPLE over 10 hops. This means frontier systems far from gas giants have permanently elevated operating costs. Combined with Category 1 inelasticity (epsilon approx 0), fuel price is the single biggest structural cost for remote stations.
|
||||
|
||||
#### Sanity verdict
|
||||
|
||||
The price formation produces:
|
||||
- **3:1 to 4:1 ratios** for bulk commodities across the full diameter of the Reach (reasonable -- EVE-style but not extreme)
|
||||
- **1.5:1 to 2:1 ratios** for precision goods across the same distance (realistic -- high-value goods justify long-distance trade)
|
||||
- **Steep gradient for bulk, shallow for precision** -- this correctly reproduces the real-world pattern where raw material transport costs dominate manufacturing location decisions
|
||||
- **Geographic specialization emerges naturally:** Systems near raw sources process them. Systems near multiple intermediate sources do final assembly. Remote systems specialize in services. Nobody has to script this -- it falls out of the transport cost structure.
|
||||
|
||||
**One concern:** The 5-12% range in D-178 needs pinning. I recommend the range be a function of two variables:
|
||||
- **Route congestion** (high-traffic routes are more efficient: 5-7%)
|
||||
- **Commodity bulk class** (the modifier table above)
|
||||
|
||||
This means the same gate hop costs different amounts for different goods. Shipping ore through a busy core route costs ~6% x 1.2 = 7.2%. Shipping ore through a minor frontier gate costs ~11% x 1.2 = 13.2%. This is realistic -- logistics infrastructure concentrates on high-volume routes.
|
||||
|
||||
---
|
||||
|
||||
### 6. WHAT MY ROUND 2 MODEL WAS MISSING
|
||||
|
||||
#### A. Services (now included)
|
||||
My Round 2 model had 22 physical commodities only. The lead correctly added professional and luxury services. Services are economically distinct because they're **non-transportable** -- you can't arbitrage a lawyer across gates. This creates geographic stickiness: corporations cluster near systems with good services. A system without them remains a resource extraction node. This is the "service economy" effect that drives real-world urbanization, now operating at interstellar scale.
|
||||
|
||||
Services also **consume goods without producing them** (D-173). A hospital consumes chemicals and electronics but doesn't produce a physical output. This makes service-heavy systems net importers, creating persistent trade deficits that must be balanced by service exports (people traveling TO the system for medical/legal/financial services). This is interesting trade dynamics.
|
||||
|
||||
#### B. Information as a commodity
|
||||
Is raw data/intelligence a tradeable good? Mercado's procurement database, VGV's 350-year Comptoir archive, Adams & Ford's publications -- these are canonically valuable.
|
||||
|
||||
**My recommendation:** Model information as a SERVICE (information brokerage), not a physical commodity. Information doesn't have a bulk class or transport cost in the physical sense. It doesn't flow through production chains. It affects PRICES (better information -> better trading decisions) rather than being a link in a production chain. The corporate behavioral agent layer handles this -- an Intermediary archetype with intelligence assets commands better pricing than one without.
|
||||
|
||||
#### C. Genetic material / biological IP
|
||||
Re-embodiment technology implies tradeable biological templates. **Recommendation:** Fold into medical/re-embodiment services. The physical substrate (if any) is a variant of organic compounds. The service IS the re-embodiment process, not the material.
|
||||
|
||||
#### D. Cultural IP / brand value
|
||||
VGV's classification system, Calloway's 400-year heritage. These are economically real but intangible. **Recommendation:** Handle through the corporate behavioral agent layer. A Monopolist/Specialist archetype commands premium pricing for the same physical commodity. The brand premium shows up in the PRICE, not the commodity catalog. This is why luxury goods have a 987% margin over input cost -- the margin IS the brand.
|
||||
|
||||
#### E. Salvage/recycling
|
||||
In a centuries-old civilization, recycled materials are a real input. **Recommendation:** Don't add a separate commodity. Instead, model salvage as a **supply-side modifier** on metallic ore and refined metals at established systems. Old stations and decommissioned ships feed local recycling, effectively reducing the cost of refined metals at systems with long settlement history. This is a productivity seed dimension -- old systems have cheaper access to metals, new ones must import.
|
||||
|
||||
#### F. Contraband
|
||||
D-174 lists canonical contraband: unlicensed lattice components, Sol-denominated luxury goods, unregistered commercial intelligence, unlicensed re-embodiment. **These are NOT separate commodities.** They're shadow-economy variants of existing commodities with different pricing and legality. The `shadow_economy_intensity` parameter (D-174) handles the pricing differential. The commodity catalog doesn't need a "contraband" entry.
|
||||
|
||||
#### G. Production ubiquity flag (NEW)
|
||||
One thing missing from both my Round 2 model and the current D-173 record: a **production ubiquity classification** per commodity. This determines the geographic price gradient:
|
||||
|
||||
| Ubiquity | % of inhabited systems producing | Effect on price geography |
|
||||
|----------|--------------------------------|--------------------------|
|
||||
| **Ubiquitous** | 50%+ | Small price variation (water, agri produce) |
|
||||
| **Common** | 20-50% | Moderate variation (ore, stone, timber, fusion fuel) |
|
||||
| **Regional** | 5-20% | Significant variation (organic compounds, most intermediates) |
|
||||
| **Concentrated** | 1-5% | Large variation (rare minerals, advanced alloys, electronics) |
|
||||
| **Monopolistic** | <1% (1-3 systems) | Extreme variation (gate components, terroir-locked luxury goods) |
|
||||
|
||||
This flag is essential for the simulation to correctly distribute production across the map during initialization. Without it, the `generate_corporations` binary has no guidance on how to spread production. I recommend adding this to the commodity record schema.
|
||||
|
||||
#### H. Continuous consumption flag (NEW)
|
||||
Fusion fuel and water aren't purchased once -- they're consumed continuously. Every station and settlement has a base demand that exists regardless of economic conditions. **Recommendation:** Add a `demand_model` field to the commodity record:
|
||||
- `market` -- demand driven by economic activity and consumer preference (default)
|
||||
- `utility` -- demand driven by population and infrastructure (fusion fuel, water)
|
||||
- `compliance` -- demand driven by regulatory requirements (legal services, certification)
|
||||
|
||||
This affects how the tatonnement adjusts: utility commodities have demand floors that never drop to zero, even in a deep recession.
|
||||
|
||||
---
|
||||
|
||||
### SUMMARY TABLE
|
||||
|
||||
| Category | Count | Round 2 | Delta |
|
||||
|----------|-------|---------|-------|
|
||||
| Raw materials | 8 | 7 | +1 (stone/aggregate) |
|
||||
| Intermediate goods | 8 | 8 | 0 (but 2 replaced) |
|
||||
| Final goods | 8 | 7 | +1 (habitat modules promoted from intermediate) |
|
||||
| Professional services | 5 | 0 | +5 (new) |
|
||||
| Luxury services | 3 | 0 | +3 (new) |
|
||||
| **Total** | **32** | **22** | **+10** |
|
||||
|
||||
**New record fields I recommend adding to D-173 / the TOML schema:**
|
||||
1. `production_ubiquity`: ubiquitous / common / regional / concentrated / monopolistic
|
||||
2. `bulk_class`: liquid_gas / bulk_solid / standard / compact / precision
|
||||
3. `demand_model`: market / utility / compliance
|
||||
4. `panic_flagged`: bool + `panic_threshold_weeks` (for stockpile-target mechanism)
|
||||
5. `political_sensitivity`: bool (flag for shadow economy / currency zone modifiers)
|
||||
|
||||
These 5 fields plus the existing D-173 fields (tier, elasticity_class, base_price, bulk_class, political_sensitivity) give us a complete commodity record.
|
||||
|
||||
Waiting for team feedback. Happy to defend any of these numbers or revise coefficients if the cascade analysis reveals unwanted dynamics.
|
||||
@@ -0,0 +1,605 @@
|
||||
# Burnelli-Sheldon: Converged Commodity Catalog — Round 2
|
||||
|
||||
This is my converged proposal incorporating all four Round 1 outputs and all five lead directives. I'll mark where I'm making a judgment call that the team should confirm.
|
||||
|
||||
---
|
||||
|
||||
## 0. Directive Compliance
|
||||
|
||||
| Directive | How resolved |
|
||||
|-----------|-------------|
|
||||
| **(a) Brands are not commodities** | No per-brand entries. Calloway, VGV, Bifrost, thrds are corporations using abstract commodity chains. |
|
||||
| **(b) Luxury goods tension** | One commodity, MULTIPLE production chains with different inputs and location constraints. Section 2 details. |
|
||||
| **(c) Water -> fuel** | Fuel moves from raw to intermediate. 8.0 water -> 1.0 fuel. Section 1 details. |
|
||||
| **(d) No gratuitous duplication** | Unified schema merges Tyre's base + my ubiquity/demand_model + Gestalt's 3 political flags. Eliminated duplicates. |
|
||||
| **(e) More services is richer** | 10 services total: 7 professional + 3 luxury. Added Commission certification, habitation, expanded medical. |
|
||||
|
||||
---
|
||||
|
||||
## 1. Unified Commodity List
|
||||
|
||||
### Raw Materials (8)
|
||||
|
||||
| Slug | Name | Bulk | Ubiquity | Demand | Base (T) | Elasticity | Notes |
|
||||
|------|------|------|----------|--------|----------|------------|-------|
|
||||
| `metallic_ore` | Metallic Ore | heavy | common | market | 10 | unit_elastic | South_reach extraction primary. Stalownia territory |
|
||||
| `rare_minerals` | Rare Minerals | compact | concentrated | market | 80 | elastic | Exotic crystals, rare earths. High-value, low-volume |
|
||||
| `timber` | Timber | heavy | regional | market | 15 | unit_elastic | Forest worlds only. Nordmark Skog. 40-60y replanting cycle (Miri) |
|
||||
| `agricultural_produce` | Agricultural Produce | perishable | ubiquitous | utility | 5 | inelastic | Grain, grapes, livestock, seafood, fermented ingredients. F8V/terroir constraints per D-177 |
|
||||
| `water` | Water | heavy | ubiquitous | utility | 2 | perfectly_inelastic | Life support critical. Fuel refining feedstock per directive (c) |
|
||||
| `organic_compounds` | Organic Compounds | perishable | regional | market | 35 | unit_elastic | Biochemicals, pharmaceutical precursors, brach fiber (Braemar, D-177) |
|
||||
| `stone` | Stone & Aggregate | heavy | common | market | 8 | unit_elastic | Construction stone, ceramics. Kvitfjell Blue marble is premium variant (800t/y ceiling, D-177) |
|
||||
| `lattice_material` | Lattice-Grade Material | precision | concentrated | market | 120 | elastic | Strategic resource for neural lattice and gate fabrication. Geographically sparse. East_reach anchor (closes Miri's identity gap) |
|
||||
|
||||
**Key decisions:**
|
||||
|
||||
**Why 8 raws, not 7:** Stone and ore follow different chains (smelting vs cutting). Lattice-grade material is separated from rare minerals because the supply chain is politically distinct: Commission-controlled, canonical contraband pathway (D-037), and the mechanism that drives the shadow economy. Collapsing it into rare minerals would make a lattice shortage cascade identically to a general rare mineral shortage, which is economically wrong and dramatically uninteresting.
|
||||
|
||||
**Why lattice material as a raw, not Gestalt's intermediate:** Miri and Gestalt both identify this material as geographically sparse and extraction-bound. The "processing" (purification, crystal growth) happens at the extraction site, not at a separate manufacturing step. It enters final goods directly — implant hardware and gate components both consume it as a raw input. This gives it a SHORT chain (raw -> final) that makes supply disruptions cascade immediately to the two most politically sensitive goods. That's the right economic behavior.
|
||||
|
||||
**Agricultural produce is intentionally broad.** Grain (Calloway), grapes (VGV), seafood (east_reach Dagat), fermented ingredients (Jeonnam) are all `agricultural_produce`. The distinction happens at the production chain level (multiple chains → processed_food and luxury_goods) and the corporation level (Calloway uses grain; VGV uses grapes; east_reach cooperatives use maritime harvest). This follows directive (a): brands are not commodities.
|
||||
|
||||
**Water is ubiquitous AND perfectly inelastic.** On ocean worlds it's nearly free. On bare-rock stations 8 hops from an ice source, it's life-or-death expensive. The geographic gradient for water is enormous in absolute terms despite the low base price because station consumption volumes are massive.
|
||||
|
||||
### Intermediate Goods (9)
|
||||
|
||||
| Slug | Name | Bulk | Ubiquity | Demand | Base (T) | Elasticity | Primary inputs |
|
||||
|------|------|------|----------|--------|----------|------------|----------------|
|
||||
| `fusion_fuel` | Fusion Fuel | standard | common | utility | 25 | perfectly_inelastic | 8.0 water |
|
||||
| `refined_metals` | Refined Metals | standard | regional | market | 35 | inelastic | 2.0 ore + 0.3 fuel |
|
||||
| `advanced_alloys` | Advanced Alloys | compact | concentrated | market | 100 | elastic | 1.5 ore + 0.3 rare minerals + 0.2 fuel |
|
||||
| `structural_panels` | Structural Panels | standard | regional | market | 50 | unit_elastic | 1.0 timber + 0.5 refined metals |
|
||||
| `processed_food` | Processed Food | standard | common | utility | 15 | inelastic | 1.5 agri produce + 0.2 water |
|
||||
| `electronics` | Electronics & Components | compact | concentrated | market | 130 | unit_elastic | 0.5 rare minerals + 0.3 refined metals + 0.2 fuel |
|
||||
| `chemicals` | Chemicals & Pharmaceuticals | standard | regional | market | 65 | inelastic | 1.0 organic compounds + 0.3 water |
|
||||
| `drive_cores` | Drive Cores | compact | concentrated | market | 200 | elastic | 0.4 rare minerals + 0.8 advanced alloys |
|
||||
| `textiles` | Textiles & Composites | standard | regional | market | 55 | unit_elastic | 0.8 organic compounds + 0.2 chemicals |
|
||||
|
||||
**Key decisions:**
|
||||
|
||||
**Fusion fuel is an intermediate, not a raw (directive c).** Water -> fuel at 8:1 yield. Input cost: 16T. Fuel price: 25T. Margin: 56%. The low yield is what makes fuel expensive despite cheap inputs. This creates the interesting dynamic: every system with water CAN refine fuel, but the economics only work at scale. Small stations import; large operations refine locally.
|
||||
|
||||
**Fuel appears as an explicit Leontief input to energy-intensive chains only:** refined metals (smelting), advanced alloys (precision metallurgy), electronics (fabrication). A fuel shortage cascades through the industrial sector but spares food processing, textiles, and chemicals. This is the right scoping: fuel is critical infrastructure, not a universal bottleneck.
|
||||
|
||||
**9 intermediates, not 8.** Fuel's promotion from raw creates the 9th intermediate. D-173 said "approximately 30" total — 35 is within the spirit given the service expansion the lead mandated.
|
||||
|
||||
**Tyre's energy question resolved:** Local energy (solar, geothermal) is NOT a commodity. It's a site-level production cost modifier. Fusion fuel is the TRADED energy commodity. A site with cheap local energy has lower production costs across all chains but doesn't export "energy" through gates. This is clean: one traded energy good (fuel), one implicit cost factor (local generation).
|
||||
|
||||
### Final Goods (8)
|
||||
|
||||
| Slug | Name | Bulk | Ubiquity | Demand | Base (T) | Elasticity | Primary inputs |
|
||||
|------|------|------|----------|--------|----------|------------|----------------|
|
||||
| `heavy_equipment` | Heavy Equipment | oversized | regional | market | 250 | elastic | 1.0 refined metals + 0.3 electronics + 0.2 drive cores |
|
||||
| `vehicles` | Vehicles & Craft | oversized | concentrated | market | 400 | elastic | 0.8 advanced alloys + 0.3 electronics + 0.3 drive cores |
|
||||
| `consumer_goods` | Consumer Goods | standard | common | market | 90 | unit_elastic | 0.3 processed food + 0.3 textiles + 0.2 electronics |
|
||||
| `luxury_goods` | Luxury Goods | precision | monopolistic | market | 500 | luxury_elastic | MULTIPLE CHAINS — see section 2 |
|
||||
| `implant_hardware` | Implant Hardware | precision | concentrated | market | 450 | luxury_elastic | 0.5 electronics + 0.3 chemicals + 0.3 lattice material |
|
||||
| `gate_components` | Gate Components | oversized | monopolistic | market | 800 | luxury_elastic | 1.0 advanced alloys + 0.5 drive cores + 0.3 electronics + 0.2 lattice material |
|
||||
| `habitat_modules` | Habitat Modules | oversized | regional | market | 200 | unit_elastic | 1.5 structural panels + 0.4 electronics + 0.3 chemicals |
|
||||
| `freight_haulers` | Freight Haulers | oversized | concentrated | market | 350 | elastic | 1.5 refined metals + 0.5 drive cores + 0.3 electronics |
|
||||
|
||||
**Key decisions:**
|
||||
|
||||
**Oversized bulk class (from Gestalt).** Heavy equipment, vehicles, gate components, freight haulers, and habitat modules are all B-oversized (2.5x transport cost). This creates DURABLE manufacturing centers — shipping finished rigs is prohibitively expensive, so manufacturing stays near raw sources. This is the mechanism that makes Stalownia's south_reach location structurally persistent. Gestalt's insight here is critical for economic geography.
|
||||
|
||||
**Lattice material feeds directly into implant hardware AND gate components.** No intermediate "lattice substrate" step. The short chain (raw -> final) means lattice supply disruptions cascade IMMEDIATELY to the two most politically charged finals. This creates maximum drama per chokepoint — exactly what the storyteller needs.
|
||||
|
||||
**Freight haulers separate from vehicles.** Demand functions differ: freight haulers = f(trade_volume, fleet_age); vehicles = f(population, wealth). A trade boom doesn't increase personal vehicle demand. This distinction matters for the simulation's trade-volume responsiveness.
|
||||
|
||||
### Professional Services (7)
|
||||
|
||||
| Slug | Name | Demand | Base (T) | Elasticity | Notes |
|
||||
|------|------|--------|----------|------------|-------|
|
||||
| `legal_services` | Legal Services | compliance | 100 | inelastic | Contract enforcement, arbitration, commercial law. FM south_reach, Crown's Hollow west_reach (Miri) |
|
||||
| `financial_services` | Financial Services | compliance | 120 | inelastic | Banking, credit, clearing, currency exchange. Groombridge clearing house (D-175 priority gap) |
|
||||
| `insurance` | Insurance & Underwriting | market | 75 | unit_elastic | Cargo, liability, corporate risk. No Tier 1 corp yet — priority gap (Miri) |
|
||||
| `commercial_intelligence` | Commercial Intelligence | market | 50 | unit_elastic | Market data, intelligence brokerage. Adams & Ford, Mercado, Ferreira Monteiro, VGV Comptoir |
|
||||
| `commission_certification` | Commission Certification | compliance | 150 | perfectly_inelastic | Lattice/medical/safety/transport certification. Tractus-denominated. THE mechanism generating shadow economy friction |
|
||||
| `habitation` | Habitation & Berths | utility | 40 | inelastic | Living space, station berthing, capacity allocation. Backs the D-131 "rent" verb. Node capacity limiter (Gestalt) |
|
||||
| `medical_services` | Medical Services | utility | 200 | perfectly_inelastic | Healthcare, neural backup, re-embodiment. Includes licensed re-embodiment (Miri's gap). Prometheus network sparsity |
|
||||
|
||||
**Key decisions:**
|
||||
|
||||
**Commission certification is a separate service (directive e).** It is not legal services. Certification is a regulatory gatekeeping function performed by the Lattice Commission. Its cost (Tractus-denominated) applied to Compact members who must convert from Mark (at ~3% friction) IS the structural driver of the shadow economy. Making it a separate commodity makes this mechanism visible to the simulation. `commission_certification` being `compact_contested = true` is the single most politically charged service in the catalog.
|
||||
|
||||
**Habitation/berths (from Gestalt).** Station capacity is finite. A booming node runs out of berths, which caps growth and creates a natural rent-seeking pressure. This backs the D-131 "rent" verb and creates a node-capacity equilibrium: growth -> berth scarcity -> rising rents -> growth capped. It's an elegant self-limiting mechanism.
|
||||
|
||||
**Commercial intelligence consolidates my "information brokerage" and Gestalt's "commercial intelligence" (directive d).** Same concept, Gestalt's name is better. It covers: market data analysis, trade intelligence, confidential corporate briefings. The shadow variant (D-174: "unregistered commercial intelligence") is handled by `shadow_viable = true`.
|
||||
|
||||
**Medical includes re-embodiment (Miri's gap).** D-174 lists "unlicensed re-embodiment" as canonical contraband. The licensed version is this service. `commission_cert_required = true` and `shadow_viable = true` — the formal service requires Commission licensing, and the informal version fills gaps in Compact/frontier systems.
|
||||
|
||||
**Logistics management removed (Gestalt's insight).** Logistics costs are implicit in the transport cost system. A separate "logistics management" service is redundant with the gate-hop cost model. What Mercado does is better modeled as commercial intelligence (supply chain data) + corporate behavioral advantages (Distributor archetype).
|
||||
|
||||
### Luxury/Experiential Services (3)
|
||||
|
||||
| Slug | Name | Demand | Base (T) | Elasticity | Notes |
|
||||
|------|------|--------|----------|------------|-------|
|
||||
| `tourism` | Tourism | market | 100 | luxury_elastic | Destination experiences. VGV wine estates, Calloway distillery circuit. Deep-corridor prestige (Miri) |
|
||||
| `entertainment` | Entertainment & Media | market | 30 | elastic | Holo-content, performances, commercial media. Adams & Ford adjacent |
|
||||
| `cultural_experiences` | Cultural Experiences | market | 60 | elastic | Fine dining, gastronomy, cultural consumption. Talbreu territory. Labor-intensive |
|
||||
|
||||
### Total Count
|
||||
|
||||
| Category | Count |
|
||||
|----------|-------|
|
||||
| Raw materials | 8 |
|
||||
| Intermediate goods | 9 |
|
||||
| Final goods | 8 |
|
||||
| Professional services | 7 |
|
||||
| Luxury services | 3 |
|
||||
| **Total** | **35** |
|
||||
|
||||
D-173 estimated ~30. The 5 additional come from: fuel promotion to intermediate (+1), lattice material as separate raw (+1), and 2 additional services mandated by directive (e). This is within the "approximately" range and each addition has clear economic justification.
|
||||
|
||||
---
|
||||
|
||||
## 2. Resolving the Luxury Goods Tension (Directive b)
|
||||
|
||||
### The problem
|
||||
|
||||
"Luxury goods" as one commodity conflates:
|
||||
- Calloway whisky: 12-20y aging, grain input, terroir-locked
|
||||
- VGV Grand Vide Classe: 5y+ aging, F8V stellar lock, grape input
|
||||
- Kvitfjell Blue marble: 800t/y geological ceiling, stone input
|
||||
- thrds garments: brach fiber monopoly, biological ceiling
|
||||
|
||||
These have radically different production constraints, inputs, geographic anchors, and scarcity profiles.
|
||||
|
||||
### The solution: one commodity, multiple production chains
|
||||
|
||||
The commodity `luxury_goods` is abstract. The production chains are specific:
|
||||
|
||||
```
|
||||
[luxury_goods_beverages]
|
||||
output = "luxury_goods"
|
||||
output_quantity = 1.0
|
||||
inputs = [
|
||||
{ commodity = "agricultural_produce", quantity = 2.0 },
|
||||
{ commodity = "chemicals", quantity = 0.3 },
|
||||
{ commodity = "water", quantity = 0.5 },
|
||||
]
|
||||
location_bound = true
|
||||
description = "Artisan beverages: spirits, wines, ales. Terroir and aging
|
||||
determine character. Calloway, VGV, Talbreu production pathway."
|
||||
|
||||
[luxury_goods_artisan_stone]
|
||||
output = "luxury_goods"
|
||||
output_quantity = 1.0
|
||||
inputs = [
|
||||
{ commodity = "stone", quantity = 3.0 },
|
||||
{ commodity = "chemicals", quantity = 0.1 },
|
||||
]
|
||||
location_bound = true
|
||||
description = "Cut and finished decorative stone. Geological source
|
||||
determines character. Bifrost Marmor pathway."
|
||||
|
||||
[luxury_goods_fine_textiles]
|
||||
output = "luxury_goods"
|
||||
output_quantity = 1.0
|
||||
inputs = [
|
||||
{ commodity = "textiles", quantity = 1.5 },
|
||||
{ commodity = "chemicals", quantity = 0.2 },
|
||||
]
|
||||
location_bound = true
|
||||
description = "Premium garments, technical textiles. Fiber source
|
||||
determines quality. thrds pathway."
|
||||
|
||||
[luxury_goods_general]
|
||||
output = "luxury_goods"
|
||||
output_quantity = 1.0
|
||||
inputs = [
|
||||
{ commodity = "processed_food", quantity = 0.3 },
|
||||
{ commodity = "textiles", quantity = 0.3 },
|
||||
{ commodity = "electronics", quantity = 0.2 },
|
||||
]
|
||||
location_bound = false
|
||||
description = "Mass-market premium: fragrances, packaged delicacies,
|
||||
high-end consumer items. Not terroir-locked."
|
||||
```
|
||||
|
||||
### How the layers interact
|
||||
|
||||
| Layer | What it encodes | Example |
|
||||
|-------|----------------|---------|
|
||||
| **Commodity** | Abstract category, one price signal, one elasticity | `luxury_goods`: base 500T, luxury_elastic |
|
||||
| **Production chain** | Process type, input requirements, location constraint | `luxury_goods_beverages`: agri + chemicals + water, location_bound |
|
||||
| **Corporation** | Specific brand, productivity ceiling, behavioral archetype | Calloway: Specialist, chain=beverages, site=GJ 3325, aging=12-20y, ceiling per D-177 |
|
||||
| **Productivity seed** | Per-run variation within lore-consistent bounds | Calloway harvest yield: seeded +/-20% (D-177) |
|
||||
|
||||
D-177's hard constraints (800t/y marble, brach herd limits, F8V lock, aging pipelines) are enforced at the **corporation x site** level, not the commodity or chain level. The chain says WHAT can be produced; the corporation profile says HOW MUCH at THIS LOCATION.
|
||||
|
||||
### What this does NOT do (and why that's acceptable)
|
||||
|
||||
It does NOT create separate price signals for whisky vs. marble. Both are "luxury goods."
|
||||
|
||||
This is acceptable because:
|
||||
1. Phase 2 has no player UI for prices — no player observes the aggregate.
|
||||
2. The sim's spatial price equilibrium creates GEOGRAPHIC differentiation: north_reach luxury supply drops when Calloway output drops; west_reach luxury supply drops when Bifrost output drops. Same commodity, different geographic prices.
|
||||
3. Corporate signals (D-181 signal 6: production_vs_baseline) reveal the specific producer. A player can TRACE "luxury goods price rising in north_reach" to "Calloway output down" via the corporate layer.
|
||||
4. If Phase 3+ player UI requires finer resolution, we split the commodity then. But splitting now creates Miri's slippery slope (9+ finals) that the lead rejected.
|
||||
|
||||
### The real-world analogy
|
||||
|
||||
This is how real commodity markets work. "Agricultural commodities" is one price aggregate. A wheat shortage in Kansas and a rice shortage in Thailand produce different geographic price patterns within the same aggregate. The geographic differentiation IS the mechanism — not commodity sub-types.
|
||||
|
||||
---
|
||||
|
||||
## 3. Unified Schema
|
||||
|
||||
### Commodity record: `wiki/economics/commodities.toml`
|
||||
|
||||
```toml
|
||||
# Commodity catalog for the Settled Reach economics simulation.
|
||||
# Source of truth — compiled to systems.db via `make economy-db`.
|
||||
#
|
||||
# ID convention: flat underscore slugs (e.g., refined_metals, legal_services)
|
||||
# matching Rust/TOML conventions. No namespace prefixes.
|
||||
|
||||
[water]
|
||||
name = "Water & Volatiles"
|
||||
tier = "raw"
|
||||
elasticity = "perfectly_inelastic"
|
||||
base_price = 2.0
|
||||
bulk_class = "heavy"
|
||||
unit = "tonnes"
|
||||
production_ubiquity = "ubiquitous"
|
||||
demand_model = "utility"
|
||||
commission_cert_required = false
|
||||
compact_contested = false
|
||||
shadow_viable = false
|
||||
panic_threshold_weeks = 1
|
||||
description = "Water ice and atmospheric volatiles. Life support critical. Fuel refining feedstock."
|
||||
```
|
||||
|
||||
### Field definitions
|
||||
|
||||
| Field | Type | Source | Rationale |
|
||||
|-------|------|--------|-----------|
|
||||
| `name` | string | Tyre | Display name. TOML key is the ID |
|
||||
| `tier` | enum: raw, intermediate, final, service_professional, service_luxury | Tyre | 5 tiers per D-173. Services outside the production chain |
|
||||
| `elasticity` | enum: perfectly_inelastic, inelastic, unit_elastic, elastic, luxury_elastic | Tyre + mine | 5 classes per D-173. `luxury_elastic` replaces Tyre's `perfectly_elastic` — more descriptive |
|
||||
| `base_price` | float > 0 | Mine | Equilibrium price at typical producing node, in Tractus |
|
||||
| `bulk_class` | enum: heavy, perishable, standard, compact, precision, oversized, non_physical | Mine + Gestalt | 7 classes. `perishable` and `oversized` from Gestalt's B-3 and B-5 — essential for geographic behavior |
|
||||
| `unit` | enum: tonnes, units, contracts | Tyre | Keeps production chain quantities unambiguous |
|
||||
| `production_ubiquity` | enum: ubiquitous, common, regional, concentrated, monopolistic | Mine | Guides `generate_corporations` initialization — how to spread production across the map |
|
||||
| `demand_model` | enum: market, utility, compliance | Mine | `utility` commodities have demand floors that never drop to zero; `compliance` demand is regulation-driven |
|
||||
| `commission_cert_required` | bool | Gestalt | Commission must certify before formal-sector sale |
|
||||
| `compact_contested` | bool | Gestalt | Compact officially rejects Commission authority over this commodity |
|
||||
| `shadow_viable` | bool | Gestalt | Shadow market routinely exists for this commodity |
|
||||
| `panic_threshold_weeks` | int >= 0 | Mine | 0 = not panic-flagged. > 0 = stockpile-target panic trigger (demand spikes when stockpile < N weeks) |
|
||||
| `description` | string (optional) | Tyre | Flavor text for wiki/UI. Not consumed by sim |
|
||||
|
||||
### Fields I deliberately excluded
|
||||
|
||||
- **No single `political_sensitivity` boolean.** Gestalt's 3 sub-flags (`commission_cert_required`, `compact_contested`, `shadow_viable`) are strictly richer. They compose: a good that is Commission-certified, Compact-contested, AND shadow-viable (like implant hardware) behaves differently from one that is only Commission-certified (like transport vehicles).
|
||||
- **No `transportable` field.** Derivable from `bulk_class != "non_physical"` (Tyre's reasoning).
|
||||
- **No `shadow_economy` per-commodity flag.** D-174 says shadow economy is per-NODE intensity, not per-commodity. `shadow_viable` means "this commodity HAS a shadow market where intensity > threshold" — but the threshold is nodal.
|
||||
- **No `currency` field.** All prices are Tractus-denominated (D-171: Tractus is numeraire). Currency zone conversions happen at runtime.
|
||||
- **No `category` sub-grouping.** The production chain graph provides the categorization. No need for redundant taxonomic labels.
|
||||
|
||||
### Bulk class transport cost multipliers
|
||||
|
||||
| Class | Modifier | Applied to base gate rate (5-12%) | Key geographic effect |
|
||||
|-------|----------|-----------------------------------|----------------------|
|
||||
| heavy | 1.2x | Ore, stone, timber, water | Moderate gradient. Raw materials equalize within a corridor |
|
||||
| perishable | 1.8x | Agricultural produce, organic compounds | Steep gradient. Fresh food prices vary enormously — creates local food production incentive |
|
||||
| standard | 1.0x | Refined metals, panels, processed food, textiles, chemicals, fuel | Baseline. Manufactured intermediates flow through the gate network at standard rates |
|
||||
| compact | 0.8x | Electronics, drive cores, advanced alloys, consumer goods | Shallow gradient. High-value items flow far — worth shipping across the Reach |
|
||||
| precision | 0.6x | Rare minerals, lattice material, implant hardware, luxury goods | Very shallow. Scarcity-driven pricing, not transport-driven |
|
||||
| oversized | 2.5x | Heavy equipment, vehicles, gate components, freight haulers, habitat modules | Very steep. Manufacturing hubs are DURABLE — finished rigs don't ship cheaply. This is what makes Stalownia's location persistent (Gestalt's critical insight) |
|
||||
| non_physical | infinity | All services | Cannot traverse gates. Production = consumption node |
|
||||
|
||||
### Production chain record: `wiki/economics/production_chains.toml`
|
||||
|
||||
Schema follows Tyre's design. Key addition: multiple chains can produce the same output (structural substitution per D-173).
|
||||
|
||||
```toml
|
||||
[fusion_fuel_from_water]
|
||||
output = "fusion_fuel"
|
||||
output_quantity = 1.0
|
||||
inputs = [
|
||||
{ commodity = "water", quantity = 8.0 },
|
||||
]
|
||||
location_bound = false
|
||||
description = "Deuterium/tritium extraction. Low yield (8:1) is the cost driver."
|
||||
|
||||
[refined_metals_standard]
|
||||
output = "refined_metals"
|
||||
output_quantity = 1.0
|
||||
inputs = [
|
||||
{ commodity = "metallic_ore", quantity = 2.0 },
|
||||
{ commodity = "fusion_fuel", quantity = 0.3 },
|
||||
]
|
||||
location_bound = false
|
||||
description = "Standard smelting. Fuel-intensive."
|
||||
```
|
||||
|
||||
**Tyre's validation rules apply fully.** All hard failures (dangling refs, circular deps, zero inputs, services in chains, etc.) and soft warnings (orphan commodities, raws as chain outputs, finals as chain inputs). I endorse Tyre's validation spec without modification.
|
||||
|
||||
**One addendum to Tyre's rules:** Allow raw-tier commodities as inputs to final-tier chains (`lattice_material` -> `implant_hardware`, `lattice_material` -> `gate_components`). This is valid when the raw requires minimal intermediate processing. The soft warning "Raw tier commodities SHOULD NOT appear as chain inputs for final goods" should flag but not fail.
|
||||
|
||||
---
|
||||
|
||||
## 4. Complete Production Chain Recipes
|
||||
|
||||
### Raw -> Intermediate
|
||||
|
||||
| Chain slug | Output | Inputs | Input cost (T) | Output price (T) | Margin |
|
||||
|------------|--------|--------|----------------|-------------------|--------|
|
||||
| `fusion_fuel_from_water` | fusion_fuel | 8.0 water | 16 | 25 | 56% |
|
||||
| `refined_metals_standard` | refined_metals | 2.0 ore + 0.3 fuel | 27.5 | 35 | 27% |
|
||||
| `advanced_alloys_standard` | advanced_alloys | 1.5 ore + 0.3 rare minerals + 0.2 fuel | 44 | 100 | 127% |
|
||||
| `structural_panels_standard` | structural_panels | 1.0 timber + 0.5 refined metals | 32.5 | 50 | 54% |
|
||||
| `processed_food_standard` | processed_food | 1.5 agri produce + 0.2 water | 7.9 | 15 | 90% |
|
||||
| `electronics_standard` | electronics | 0.5 rare minerals + 0.3 refined metals + 0.2 fuel | 55.5 | 130 | 134% |
|
||||
| `chemicals_standard` | chemicals | 1.0 organic compounds + 0.3 water | 35.6 | 65 | 83% |
|
||||
| `drive_cores_standard` | drive_cores | 0.4 rare minerals + 0.8 advanced alloys | 112 | 200 | 79% |
|
||||
| `textiles_standard` | textiles | 0.8 organic compounds + 0.2 chemicals | 41 | 55 | 34% |
|
||||
|
||||
### Intermediate -> Final
|
||||
|
||||
| Chain slug | Output | Inputs | Input cost (T) | Output price (T) | Margin |
|
||||
|------------|--------|--------|----------------|-------------------|--------|
|
||||
| `heavy_equipment_standard` | heavy_equipment | 1.0 refined metals + 0.3 electronics + 0.2 drive cores | 114 | 250 | 119% |
|
||||
| `vehicles_standard` | vehicles | 0.8 advanced alloys + 0.3 electronics + 0.3 drive cores | 179 | 400 | 123% |
|
||||
| `consumer_goods_standard` | consumer_goods | 0.3 processed food + 0.3 textiles + 0.2 electronics | 47 | 90 | 91% |
|
||||
| `implant_hardware_standard` | implant_hardware | 0.5 electronics + 0.3 chemicals + 0.3 lattice material | 120.5 | 450 | 273% |
|
||||
| `gate_components_standard` | gate_components | 1.0 advanced alloys + 0.5 drive cores + 0.3 electronics + 0.2 lattice material | 263 | 800 | 204% |
|
||||
| `habitat_modules_standard` | habitat_modules | 1.5 structural panels + 0.4 electronics + 0.3 chemicals | 146.5 | 200 | 37% |
|
||||
| `freight_haulers_standard` | freight_haulers | 1.5 refined metals + 0.5 drive cores + 0.3 electronics | 191.5 | 350 | 83% |
|
||||
|
||||
### Luxury goods — multiple chains
|
||||
|
||||
| Chain slug | Output | Inputs | Input cost (T) | Location bound? |
|
||||
|------------|--------|--------|----------------|-----------------|
|
||||
| `luxury_goods_beverages` | luxury_goods | 2.0 agri produce + 0.3 chemicals + 0.5 water | 30.5 | Yes |
|
||||
| `luxury_goods_artisan_stone` | luxury_goods | 3.0 stone + 0.1 chemicals | 30.5 | Yes |
|
||||
| `luxury_goods_fine_textiles` | luxury_goods | 1.5 textiles + 0.2 chemicals | 95.5 | Yes |
|
||||
| `luxury_goods_general` | luxury_goods | 0.3 processed food + 0.3 textiles + 0.2 electronics | 47 | No |
|
||||
|
||||
**Note on luxury margins:** The beverage and stone chains both cost ~30T to produce luxury goods priced at 500T. The ~1500% margin IS the brand. Per directive (a), the corporate behavioral agent layer (Monopolist/Specialist archetype) maintains this margin. The `luxury_goods_general` chain has a higher input cost (47T) and lower margin — these are mass-market premium goods without terroir, produced by generic corporations.
|
||||
|
||||
### Substitution routes (D-173 structural substitution)
|
||||
|
||||
| Chain slug | Output | Inputs | Notes |
|
||||
|------------|--------|--------|-------|
|
||||
| `refined_metals_from_salvage` | refined_metals | 1.0 metallic_ore | Recycling pathway. Lower ore input, no fuel. Available at old stations with decommissioned infrastructure |
|
||||
| `structural_panels_composite` | structural_panels | 0.8 refined_metals + 0.3 chemicals | Metal-and-chemical composite. Substitute for timber-based panels when timber is scarce |
|
||||
|
||||
These substitution routes create alternative supply paths per D-173. The simulation picks the cheapest available chain at each production site. When timber is scarce, structural panels shift to the composite route (which costs more in refined metals and chemicals but avoids the timber bottleneck). This is realistic — real construction materials have metal, wood, and composite alternatives.
|
||||
|
||||
---
|
||||
|
||||
## 5. Scarcity Cascade Analysis (Revised)
|
||||
|
||||
With the new chain structure (fuel as intermediate, lattice as separate raw):
|
||||
|
||||
### Lattice material shortage
|
||||
|
||||
```
|
||||
lattice_material DOWN
|
||||
-> implant_hardware DOWN (direct input)
|
||||
-> gate_components DOWN (direct input)
|
||||
```
|
||||
|
||||
**Shortest cascade in the model.** Two final goods hit immediately, both maximally politically sensitive. Commission certification costs don't change, but supply vanishes — creating the price spike that makes shadow-market alternatives competitive. This IS the D-037 contraband genesis: licensed components become scarce, unlicensed versions fill the gap.
|
||||
|
||||
### Rare minerals shortage
|
||||
|
||||
```
|
||||
rare_minerals DOWN
|
||||
-> electronics DOWN
|
||||
-> consumer_goods DOWN, implant_hardware DOWN, gate_components DOWN,
|
||||
heavy_equipment DOWN, vehicles DOWN, freight_haulers DOWN, habitat_modules DOWN
|
||||
-> advanced_alloys DOWN
|
||||
-> vehicles DOWN (double hit), gate_components DOWN (double hit), drive_cores DOWN
|
||||
-> heavy_equipment DOWN, freight_haulers DOWN (triple cascade via alloys->cores->haulers)
|
||||
-> drive_cores DOWN (direct)
|
||||
-> (same downstream as above)
|
||||
```
|
||||
|
||||
**Broadest cascade.** Rare minerals touch 3 intermediates, which touch 7 of 8 finals. Only luxury goods (through the beverage/stone/textile chains) are spared. This makes rare minerals the strategic chokepoint of the general economy — distinct from lattice material's narrower but more politically charged cascade.
|
||||
|
||||
### Fuel shortage (NEW — water disruption cascading through fuel)
|
||||
|
||||
```
|
||||
water DOWN -> fusion_fuel DOWN
|
||||
-> refined_metals DOWN
|
||||
-> structural_panels DOWN, heavy_equipment DOWN, freight_haulers DOWN (metals-intensive)
|
||||
-> advanced_alloys DOWN
|
||||
-> vehicles DOWN, gate_components DOWN, drive_cores DOWN
|
||||
-> electronics DOWN
|
||||
-> (broad downstream cascade)
|
||||
```
|
||||
|
||||
**The fuel cascade is the deepest.** Water -> fuel -> metals/alloys/electronics -> nearly everything. A water supply disruption at a fuel refining hub cascades through the ENTIRE industrial economy. This is realistic: energy is the foundation of all manufacturing. The cascade's depth (5-6 tiers) means the price signal takes many ticks to propagate, creating a slow-building crisis that an attentive player can anticipate before it hits.
|
||||
|
||||
### Agricultural produce shortage
|
||||
|
||||
```
|
||||
agricultural_produce DOWN
|
||||
-> processed_food DOWN (inelastic demand = massive price spike, small quantity drop)
|
||||
-> luxury_goods DOWN (beverage chain only — stone and textile chains unaffected)
|
||||
```
|
||||
|
||||
**Short cascade, dramatic price effect.** Food is Category 2 inelastic. A 20% supply drop barely changes demand (-5%) but spikes price by 40-60%. The political fallout (food price riots) is disproportionate to the supply disruption. This is realistic — food price shocks cause more political instability than equivalent-magnitude industrial disruptions.
|
||||
|
||||
---
|
||||
|
||||
## 6. Elasticity Classification (Revised)
|
||||
|
||||
Five categories. The categories from my Round 1 output stand with minor adjustments incorporating Gestalt's alpha-modifier insight.
|
||||
|
||||
| Class | Label | epsilon range | Tatonnement behavior | Commodities |
|
||||
|-------|-------|--------------|---------------------|-------------|
|
||||
| E-1 | `perfectly_inelastic` | 0.0-0.1 | 1.5x alpha — prices spike fast, sellers gouge | water (stations), fusion_fuel, medical_services, commission_certification |
|
||||
| E-2 | `inelastic` | 0.2-0.4 | 1.2x alpha — moderate spike | agri_produce, processed_food, chemicals, legal_services, financial_services, refined_metals, habitation |
|
||||
| E-3 | `unit_elastic` | 0.8-1.2 | 1.0x alpha (baseline) | metallic_ore, structural_panels, electronics, consumer_goods, habitat_modules, insurance, commercial_intelligence, textiles, stone |
|
||||
| E-4 | `elastic` | 1.5-2.5 | 0.7x alpha — quantity collapses, price adjusts moderately | heavy_equipment, vehicles, freight_haulers, advanced_alloys, drive_cores, entertainment, cultural_experiences |
|
||||
| E-5 | `luxury_elastic` | 3.0+ | 0.5x alpha — market collapses to niche buyers | luxury_goods, gate_components, implant_hardware, tourism, rare_minerals (at non-source), lattice_material (at non-source) |
|
||||
|
||||
**Gestalt's alpha modifier is a strong contribution.** Rather than just categorizing elasticity, it maps directly to tâtonnement behavior: inelastic goods spike fast (sellers exploit); elastic goods see volume collapse (buyers walk). This creates visibly different market behavior from the same supply shock depending on what got disrupted. I endorse incorporating the modifier into the sim's price adjustment loop.
|
||||
|
||||
### Panic mechanism (unchanged from Round 1)
|
||||
|
||||
Stockpile-target mechanism with thresholds:
|
||||
|
||||
| Commodity | Threshold | Demand spike |
|
||||
|-----------|-----------|-------------|
|
||||
| water | < 1 week | 3-5x |
|
||||
| fusion_fuel | < 2 weeks | 2-3x |
|
||||
| processed_food | < 2 weeks | 1.5-2x |
|
||||
| chemicals | < 3 weeks | 1.5x |
|
||||
| rare_minerals | price-triggered | when price_trend > +15%/tick for 5+ ticks |
|
||||
| lattice_material | price-triggered | when price_trend > +20%/tick for 3+ ticks |
|
||||
|
||||
Interacts with D-181 `stockpile_weeks` signal — the signal IS the mechanism.
|
||||
|
||||
---
|
||||
|
||||
## 7. Political Sensitivity Map (Converged)
|
||||
|
||||
Using Gestalt's 3-flag system across the full catalog:
|
||||
|
||||
| Commodity | Cert req? | Compact contested? | Shadow viable? | Drama summary |
|
||||
|-----------|-----------|-------------------|----------------|---------------|
|
||||
| water | No | No | No | Pure utility |
|
||||
| metallic_ore | No | No | No | Pure commodity |
|
||||
| rare_minerals | No | No | Partial | Quota evasion at concentrated sources |
|
||||
| timber | No | No | No | |
|
||||
| agricultural_produce | Partial | No | No | Organic certification in Assembly; Compact ignores |
|
||||
| organic_compounds | No | No | No | |
|
||||
| stone | No | No | Partial | Kvitfjell quota creates minor shadow (Gestalt) |
|
||||
| lattice_material | Yes (strategic) | No | High | Commission-controlled. Canonical contraband pathway (D-037) |
|
||||
| fusion_fuel | Yes (safety) | Yes | Yes | Nuclear fuel cert burden. Compact energy independence goal |
|
||||
| refined_metals | No | No | No | |
|
||||
| advanced_alloys | No | No | No | |
|
||||
| structural_panels | No | No | No | |
|
||||
| processed_food | Partial | No | No | Food safety cert; Compact accepts alternatives |
|
||||
| electronics | Partial | Partial | No | Precision spec cert; minor friction |
|
||||
| chemicals | Yes | Yes | Yes | Hazmat cert. Compact views as tariff by another name (Gestalt) |
|
||||
| drive_cores | Partial | Partial | Partial | Safety cert for propulsion; Compact operates some uncertified |
|
||||
| textiles | No | No | No | |
|
||||
| heavy_equipment | No | No | No | Too large to shadow-market (Gestalt) |
|
||||
| vehicles | Yes (safety) | Partial | Partial | Commission registration; Compact unregistered ops |
|
||||
| consumer_goods | No | No | Partial | Uncertified goods undercut certified at low-coverage nodes |
|
||||
| luxury_goods | Partial | No | Yes | Sol-denominated premium goods. Shadow prestige market |
|
||||
| implant_hardware | **Yes** | **High** | **High** | **THE flashpoint** — D-037. Commission implant cert is the Compact's core grievance |
|
||||
| gate_components | **Yes** | **Extreme** | **High** | Gate Corp monopoly + Commission cert = maximum extraction |
|
||||
| habitat_modules | Partial | No | No | Building codes; minor |
|
||||
| freight_haulers | Yes (safety) | Partial | Partial | Registration requirements |
|
||||
| commission_certification | — | **Extreme** | — | The service IS the political instrument |
|
||||
| legal_services | No | No | No | |
|
||||
| financial_services | No | No | Partial | Shadow banking in Compact zones |
|
||||
| insurance | No | No | No | |
|
||||
| commercial_intelligence | No | No | Yes | Unregistered intelligence = D-174 canonical contraband |
|
||||
| habitation | No | No | No | |
|
||||
| medical_services | Yes | Partial | **High** | Licensed re-embodiment. Shadow market fills Compact gaps |
|
||||
| tourism | No | No | No | |
|
||||
| entertainment | No | No | Partial | Unlicensed content distribution |
|
||||
| cultural_experiences | No | No | No | |
|
||||
|
||||
**The three political flashpoints** (confirming Gestalt's analysis):
|
||||
1. **Implant hardware** — Commission cert + Assembly control. The Compact's shadow implant market is principled resistance, not criminality (D-174 framing).
|
||||
2. **Gate components** — Gate Corp monopoly + Commission cert. The Assembly's ultimate leverage tool.
|
||||
3. **Fuel** — Compact energy independence is a live political project. Currency zone correlates with energy self-sufficiency.
|
||||
|
||||
---
|
||||
|
||||
## 8. Service Economics Model (Converged)
|
||||
|
||||
### How services differ from physical commodities
|
||||
|
||||
Per D-173 and Gestalt's Round 1 analysis, services are mechanically different in three ways:
|
||||
|
||||
**A. No transport, no arbitrage.** Services have `bulk_class = "non_physical"`. They don't participate in spatial price equilibrium across nodes. A legal service at Matamba cannot be "shipped" to the east_reach.
|
||||
|
||||
**B. Services consume goods — goods-demand multiplier (Gestalt's contribution).** Each service generates local demand for physical commodities:
|
||||
|
||||
| Service | Goods demand generated |
|
||||
|---------|----------------------|
|
||||
| legal_services | Increases Tractus velocity (fee income) |
|
||||
| financial_services | Affects cross-zone trade friction; Tractus velocity |
|
||||
| insurance | Affects trade volume through risk pricing (no direct goods demand) |
|
||||
| commercial_intelligence | Improves local signal visibility (better `official_coverage_ratio`) |
|
||||
| commission_certification | Consumes Tractus (certification fees); generates shadow economy pressure |
|
||||
| habitation | Consumer goods demand (furnishing); fusion_fuel demand (life support) |
|
||||
| medical_services | Chemicals demand (pharmaceuticals); electronics demand (medical equipment) |
|
||||
| tourism | Luxury goods demand; consumer goods demand; fusion_fuel demand |
|
||||
| entertainment | Electronics demand (production hardware); fusion_fuel demand |
|
||||
| cultural_experiences | Luxury goods demand; agricultural_produce demand (gastronomy) |
|
||||
|
||||
This means a high-tourism node pulls increased luxury goods demand. A high-medical node increases chemicals and electronics imports. These cross-commodity interactions create emergent economic clustering without explicit scripting.
|
||||
|
||||
**C. Service throughput seeds differently.** Physical goods use `extraction_rate` and `processing_throughput` (D-176). Services use `service_throughput` (clients/tick) and `service_capacity` (max concurrent engagements). Both seeded log-normally, but service ceilings are population-dependent — a 500-person station can't sustain a legal practice regardless of the seed.
|
||||
|
||||
---
|
||||
|
||||
## 9. Base Price Verification
|
||||
|
||||
### Cost chain trace: water to gate components
|
||||
|
||||
```
|
||||
water (2T) -> [8:1] -> fuel (25T) -> [input to metals]
|
||||
-> refined_metals (35T) -> [input to alloys]
|
||||
-> advanced_alloys (100T) -> [input to drive cores]
|
||||
-> drive_cores (200T) -> [input to gate components]
|
||||
+ lattice_material (120T, raw, direct)
|
||||
+ electronics (130T)
|
||||
-> gate_components (800T)
|
||||
```
|
||||
|
||||
6-tier chain from water to gate components. Total accumulated input cost at the gate_components level: 263T. Gate price: 800T (204% margin). The margin reflects Gate Corporation's monopoly power (Monopolist archetype) and the strategic importance of gate infrastructure.
|
||||
|
||||
### Transport cost sanity (revised with bulk classes)
|
||||
|
||||
Example: how does ore price behave across the gate topology?
|
||||
|
||||
Ore (10T, heavy, 1.2x modifier). Assuming 8% average base gate rate:
|
||||
|
||||
| Hops | Effective cost/hop | Price | Increase |
|
||||
|------|-------------------|-------|----------|
|
||||
| 0 (source) | — | 10T | — |
|
||||
| 3 | 9.6% | 13.2T | +32% |
|
||||
| 6 | 9.6% | 17.4T | +74% |
|
||||
| 10 | 9.6% | 25.0T | +150% |
|
||||
|
||||
Example: heavy equipment (250T, oversized, 2.5x modifier):
|
||||
|
||||
| Hops | Effective cost/hop | Price | Increase |
|
||||
|------|-------------------|-------|----------|
|
||||
| 0 (source) | — | 250T | — |
|
||||
| 3 | 20.0% | 432T | +73% |
|
||||
| 6 | 20.0% | 747T | +199% |
|
||||
| 10 | 20.0% | 1,548T | +519% |
|
||||
|
||||
Heavy equipment QUINTUPLES over 10 hops at oversized rates. This is the mechanism that makes Stalownia's south_reach location structurally irreplaceable. You don't ship drilling rigs 10 hops — you build them locally or buy from the nearest Stalownia subsidiary. Geographic manufacturing persistence falls directly out of the bulk class system.
|
||||
|
||||
Fresh food (5T base, perishable, 1.8x):
|
||||
|
||||
| Hops | Effective cost/hop | Price | Increase |
|
||||
|------|-------------------|-------|----------|
|
||||
| 0 | — | 5T | — |
|
||||
| 3 | 14.4% | 7.5T | +50% |
|
||||
| 6 | 14.4% | 11.3T | +126% |
|
||||
| 10 | 14.4% | 19.2T | +284% |
|
||||
|
||||
Fresh food nearly QUADRUPLES over 10 hops. This creates the local food production incentive: every inhabited system with any agricultural capacity grows food locally rather than importing. Only systems without arable land import food, and they pay dearly. This is realistic and creates interesting geographic dependency for bare-rock stations.
|
||||
|
||||
---
|
||||
|
||||
## 10. Open Questions for Team
|
||||
|
||||
1. **Lattice material: east_reach anchor or distributed?** I've placed it as concentrated with east_reach as the primary. Miri proposed this to close the east_reach economic identity gap. But the location decision affects the entire political economy — if lattice material is east_reach, the east becomes strategically important and Commission attention follows. Team should confirm.
|
||||
|
||||
2. **Fuel refining yield (8:1) — tunable?** The 8:1 water-to-fuel ratio produces fuel at 25T. This makes frontier fuel roughly 3x more expensive than at-source over 10 hops. Is that the right economic pressure? D-183 says we iterate, so the ratio can be adjusted in the stability-check loop.
|
||||
|
||||
3. **Service count (10): too many for Phase 2?** The lead said "more is richer." I've proposed 10 services. For Phase 2 (no player UI), the sim just needs to tick service throughput at each node. The authoring burden is in the corporation TOML: each service-sector corporation needs a service commodity assignment. Is 10 services tractable for the corporation authoring pipeline?
|
||||
|
||||
4. **Panic mechanism: sim implementation or deferred?** The stockpile-target panic mechanism produces realistic hoarding behavior but adds complexity to the tâtonnement. Should it be in the first iteration of the sim binary, or added after the base stability criteria (D-179) are met?
|
||||
|
||||
5. **Tyre's base_price question:** A single equilibrium price IS sufficient for the tâtonnement. The damping parameters (alpha=0.03, beta=0.4) and stability criteria (D-179: +/-5% in 100 days) bound the price without explicit floors/ceilings. The panic mechanism is the only exception — and it's self-correcting.
|
||||
|
||||
---
|
||||
|
||||
*Burnelli-Sheldon. Round 2 converged proposal. Ready for lead review.*
|
||||
@@ -0,0 +1,236 @@
|
||||
# Burnelli-Sheldon: Economics Validation
|
||||
|
||||
Validated against `commodities-final.toml` (38 commodities: 9R + 10I + 9F + 7S_prof + 3S_lux) and `production-chains-final.toml` (21 chains: 12 R→I incl. 2 substitution, 9 I→F).
|
||||
|
||||
---
|
||||
|
||||
## 1. Price Formation Sanity
|
||||
|
||||
### Raw → Intermediate Margins
|
||||
|
||||
| Chain | Inputs (cost) | Output (price) | Margin | Verdict |
|
||||
|-------|--------------|----------------|--------|---------|
|
||||
| `smelt_ore` | 2.0 ore (20T) | refined_metals (30T) | 50% | ✓ Bulk processing |
|
||||
| `alloy_fabrication` | 1.5 ore + 0.3 rare_min (39T) | advanced_alloys (100T) | 156% | ✓ High-tech value-add |
|
||||
| `fuel_refining` | 8.0 water (16T) | fusion_fuel (20T) | **25%** | ⚠ See FLAG-1 |
|
||||
| `food_processing` | 1.5 agri + 0.2 water (7.9T) | processed_food (15T) | 90% | ✓ |
|
||||
| `electronics_fabrication` | 0.5 rare_min + 0.3 ref_met (49T) | electronics (120T) | 145% | ✓ Fab value-add |
|
||||
| `chemical_processing` | 2.0 feedstock + 0.5 water (25T) | chemicals (60T) | 140% | ✓ |
|
||||
| `chemical_from_organics` | 1.0 organics + 0.3 water (35.6T) | 0.8× chemicals (48T rev) | 35% eff | ✓ Substitution penalty correct |
|
||||
| `textile_production` | 0.8 organics + 0.2 chemicals (40T) | textiles (50T) | 25% | ⚠ Thin — see FLAG-2 |
|
||||
| `panel_from_timber` | 1.0 timber + 0.5 ref_met (30T) | structural_panels (45T) | 50% | ✓ |
|
||||
| `panel_from_stone` | 1.5 stone + 0.5 ref_met (27T) | 0.8× panels (36T rev) | 33% eff | ✓ Substitution viable but inferior |
|
||||
| `drive_core_assembly` | 0.4 rare_min + 0.8 alloys (112T) | drive_cores (200T) | 79% | ✓ |
|
||||
| `lattice_processing` | 1.0 lattice_mat + 0.3 chem (138T) | lattice_substrate (180T) | 30% | ✓ Strategic, thin margin is realistic |
|
||||
|
||||
### Intermediate → Final Margins
|
||||
|
||||
| Chain | Inputs (cost) | Output (price) | Margin | Verdict |
|
||||
|-------|--------------|----------------|--------|---------|
|
||||
| `heavy_equipment_assembly` | 1.0 ref_met + 0.3 elec + 0.2 cores (106T) | heavy_equip (250T) | 136% | ✓ |
|
||||
| `vehicle_manufacturing` | 0.8 alloys + 0.3 elec + 0.3 cores (176T) | transport_vehicles (350T) | 99% | ✓ |
|
||||
| `freight_hauler_construction` | 1.5 ref_met + 0.5 cores + 0.3 elec (181T) | freight_haulers (300T) | 66% | ✓ |
|
||||
| `consumer_goods_assembly` | 0.3 food + 0.3 textiles + 0.2 elec (43.5T) | consumer_goods (80T) | 84% | ✓ |
|
||||
| `implant_fabrication` | 0.5 elec + 0.3 chem + 0.4 latt_sub (150T) | implant_hardware (400T) | 167% | ✓ Political premium |
|
||||
| `medical_goods_production` | 0.4 chem + 0.3 elec + 0.2 alloys (80T) | medical_goods (200T) | 150% | ✓ |
|
||||
| `gate_component_assembly` | 1.0 alloys + 0.5 cores + 0.3 latt_sub (254T) | gate_components (800T) | 215% | ✓ Monopoly — below 300% flag |
|
||||
| `habitat_module_assembly` | 1.2 panels + 0.3 elec + 0.2 chem (102T) | habitat_modules (150T) | 47% | ✓ Thin — commoditized construction |
|
||||
| `rail_construction` | 1.5 panels + 0.3 elec + 1.0 ref_met (133.5T) | rail_infrastructure (180T) | 35% | ✓ Infrastructure margin |
|
||||
|
||||
### Summary
|
||||
|
||||
- **No negative margins.** ✓
|
||||
- **No margins above 300%.** ✓ (Highest: gate_components at 215%)
|
||||
- **Substitution routes correctly penalized.** Stone panels yield 0.8x; organic chemicals yield 0.8x. Primary routes preferred, substitutions viable fallback.
|
||||
|
||||
### FLAGS
|
||||
|
||||
**FLAG-1: Fusion fuel margin is 25%.** Input cost 16T, price 20T. At nodes importing water over 3+ hops (water at ~2.7T), fuel input cost rises to 21.6T — margin goes NEGATIVE. Only nodes with local water can sustain fuel refining profitably.
|
||||
- **Assessment:** This might be INTENDED — creates the geographic fuel production pattern (refining at water-rich sites only). But the tâtonnement may struggle to converge if many nodes have negative-margin fuel production. Recommend either:
|
||||
- (a) Raise fuel base_price to 25T (56% margin, what I proposed in Round 2), OR
|
||||
- (b) Accept 20T and let the sim discover that only water-local refineries are viable (more emergent, but convergence risk)
|
||||
|
||||
**FLAG-2: Textiles margin is 25%.** Organic compounds at 35T are expensive inputs. If organics prices rise 15% (to 40T), textile input cost hits 44T against a 50T price — 14% margin. Textiles become a fragile industry sensitive to organic compound price movements.
|
||||
- **Assessment:** This creates interesting geographic behavior — textile production clusters near biosphere worlds where organic compounds are cheap. Acceptable if intentional. But a combined organic shortage + chemical price spike could make textiles unprofitable, cascading to consumer_goods.
|
||||
|
||||
---
|
||||
|
||||
## 2. Transport Cost Geography
|
||||
|
||||
Using bulk class multipliers (my Round 2 values — these are sim parameters, not in the TOML):
|
||||
|
||||
| Bulk class | Multiplier | Eff. cost/hop (8% base) |
|
||||
|------------|----------|------------------------|
|
||||
| bulk | 1.2× | 9.6% |
|
||||
| liquid | 1.3× | 10.4% |
|
||||
| standard | 1.0× | 8.0% |
|
||||
| compact | 0.8× | 6.4% |
|
||||
| precision | 0.6× | 4.8% |
|
||||
| oversized | 2.5× | 20.0% |
|
||||
|
||||
### Price at distance (base × compound transport, 8% avg gate rate)
|
||||
|
||||
| Commodity | Base | Bulk | 5 hops | 10 hops | 15 hops | Ratio 0→15 |
|
||||
|-----------|------|------|--------|---------|---------|------------|
|
||||
| metallic_ore | 10T | bulk | 15.8T | 25.0T | 40.2T | 4.0× |
|
||||
| water | 2T | liquid | 3.3T | 5.4T | 8.9T | 4.5× |
|
||||
| rare_minerals | 80T | precision | 101T | 128T | 161T | 2.0× |
|
||||
| lattice_mat | 120T | precision | 151T | 192T | 241T | 2.0× |
|
||||
| refined_metals | 30T | standard | 44T | 65T | 95T | 3.2× |
|
||||
| electronics | 120T | compact | 163T | 223T | 302T | 2.5× |
|
||||
| fusion_fuel | 20T | liquid | 33T | 54T | 89T | 4.5× |
|
||||
| heavy_equip | 250T | oversized | 622T | 1,548T | 3,853T | **15.4×** |
|
||||
| gate_comp | 800T | oversized | 1,991T | 4,954T | 12,326T | **15.4×** |
|
||||
| consumer_goods | 80T | compact | 109T | 149T | 202T | 2.5× |
|
||||
| implant_hw | 400T | precision | 504T | 640T | 805T | 2.0× |
|
||||
|
||||
### Geographic specialization verdict
|
||||
|
||||
- **Raws and liquids (3-4.5× over 15 hops):** Strong geographic gradients. Systems far from sources pay 3-4× for ore, water, fuel. Creates extraction economy clusters. ✓
|
||||
- **Standard intermediates (3.2× over 15 hops):** Moderate gradient. Processing locates near raw sources. ✓
|
||||
- **Compact/precision goods (2.0-2.5× over 15 hops):** Shallow gradient. Electronics, implants worth shipping far. Inter-system trade backbone. ✓
|
||||
- **Oversized finals (15.4× over 15 hops):** Extreme gradient. Manufacturing MUST be regional. Rigs, ships, gates, rail built where they're needed. Durable hubs. ✓
|
||||
|
||||
### FLAG-3: Oversized dominance in finals
|
||||
|
||||
6 of 9 finals are oversized: heavy_equipment, transport_vehicles, freight_haulers, gate_components, habitat_modules, rail_infrastructure. Only consumer_goods (compact), implant_hardware (precision), and medical_goods (compact) flow through inter-system trade at the final tier.
|
||||
|
||||
- **Assessment:** This means inter-system trade is dominated by raws and intermediates. Finals are produced regionally from imported inputs. This is realistic (mirrors real-world trade patterns where most international trade is intermediate goods). But it means the final-goods price signals in the tâtonnement are very local — a price spike in heavy_equipment at one node barely propagates 3 hops away.
|
||||
- **Recommendation:** Acceptable. The trade volume and price signals that matter (raws, intermediates) flow freely. Finals are correctly localized.
|
||||
|
||||
### FLAG-4: No perishable bulk class
|
||||
|
||||
Agricultural produce (`bulk` at 1.2×) ships at the same rate as ore. My Round 2 proposed `perishable` at 1.8×, creating steeper food price gradients and stronger local food production incentives.
|
||||
|
||||
- **Impact:** Without perishable, food prices equalize more quickly across the network. Frontier stations importing food over 10 hops pay 2.5× (bulk) instead of 5.2× (perishable). The incentive for local food production is halved.
|
||||
- **Recommendation:** Consider adding `perishable` as a bulk class (1.8×) for agricultural_produce and organic_compounds. These are time-sensitive goods — spoilage and refrigeration costs make them more expensive to ship than inert ore. Without this, the geographic food economy is flatter than it should be.
|
||||
|
||||
---
|
||||
|
||||
## 3. Scarcity Cascade Verification
|
||||
|
||||
### Cascade map (raw → affected finals)
|
||||
|
||||
| Raw shortage | Direct intermediates | Downstream finals | Severity |
|
||||
|--------------|---------------------|-------------------|----------|
|
||||
| **metallic_ore** | refined_metals, advanced_alloys | heavy_equip, freight_haulers, rail_infra (via metals); vehicles, gate_comp, medical (via alloys); + drive_cores cascade | **BROAD** — 7/9 finals. Spares consumer_goods, implant_hw |
|
||||
| **rare_minerals** | advanced_alloys, electronics, drive_cores | ALL 9 finals (electronics is input to every final chain) | **MAXIMUM** — total economy hit |
|
||||
| **lattice_grade_material** | lattice_substrate | implant_hardware, gate_components | **NARROW/POLITICAL** — 2 finals, both politically charged |
|
||||
| **timber** | structural_panels (timber path) | habitat_modules, rail_infrastructure | **NARROW** — 2 finals. Stone substitution softens. But no new stations = political crisis |
|
||||
| **agricultural_produce** | processed_food | consumer_goods | **NARROW/HIGH PRICE** — 2 finals, but food is inelastic → massive price spike |
|
||||
| **water** | fusion_fuel, processed_food, chemicals (both paths) | consumer_goods (via food); implant_hw, medical, habitat_mod, gate_comp (via chemicals); fuel utility disruption | **DEEP** — 5+ finals + utility. Deepest cascade in the model |
|
||||
| **organic_compounds** | chemicals (organics path), textiles | consumer_goods (via textiles); IF feedstock available, chemical cascade buffered | **LOW if feedstock OK** — substitution buffers the hit |
|
||||
| **stone** | structural_panels (stone path) | habitat_modules, rail_infra (only if timber also scarce) | **MINIMAL** — pure substitution input |
|
||||
| **chemical_feedstock** | chemicals (primary path) | implant_hw, medical, habitat_mod, gate_comp, textiles→consumer_goods (via chemicals) | **MODERATE-HIGH** — 5 finals. Organics substitution softens |
|
||||
|
||||
### Cascade richness assessment
|
||||
|
||||
- **Three strategic chokepoints confirmed:**
|
||||
1. Rare minerals → everything (broadest)
|
||||
2. Lattice material → implant + gate (narrowest, most political)
|
||||
3. Water → fuel + food + chemicals (deepest chain)
|
||||
- **Two buffered cascades** (organic_compounds, stone) demonstrate D-173 substitution working correctly — both have alternative routes that soften disruptions
|
||||
- **One concern:** See FLAG-5 below
|
||||
|
||||
### FLAG-5: Fusion fuel has NO production chain cascade
|
||||
|
||||
Fuel is `demand_model = "utility"` and consumed at every node, but it appears as an INPUT to ZERO production chains. A fuel shortage:
|
||||
- Spikes prices (perfectly_inelastic)
|
||||
- Increases station operating costs
|
||||
- Does NOT cascade through manufacturing
|
||||
|
||||
In my Round 2, fuel was an input to smelting, alloys, and electronics. That created a deep cascade: fuel ↓ → metals ↓ → everything. Tyre removed this.
|
||||
|
||||
- **Impact:** Fuel disruptions are dramatic for living costs but don't cascade to industry. A fuel crisis feels severe (price spikes) but doesn't halt manufacturing. This is economically questionable — real factories shut down during energy crises.
|
||||
- **Recommendation:** Add fuel as an input to at least `smelt_ore` (smelting is energy-intensive). Even a small coefficient (0.2 fuel per unit refined_metals) creates the cascade: fuel ↓ → metals ↓ → panels/equipment/haulers/rail. This makes fuel disruptions industrially consequential, not just a cost-of-living shock.
|
||||
|
||||
---
|
||||
|
||||
## 4. Brand-Layer Demand Modeling
|
||||
|
||||
### Proposed interface
|
||||
|
||||
Brand corporations appear as **fixed-rate demand agents** at their production node. Their commodity purchases are REAL demand in the tâtonnement — indistinguishable from other demand sources.
|
||||
|
||||
```
|
||||
BrandDemand {
|
||||
corporation_id: CorporityId,
|
||||
node_id: NodeId,
|
||||
demands: [{
|
||||
commodity: CommodityId,
|
||||
base_rate: f64, // units consumed per tick at equilibrium
|
||||
price_ceiling: f64, // price above which demand reduces
|
||||
reduction_slope: f64, // demand reduction per unit price above ceiling
|
||||
}],
|
||||
}
|
||||
```
|
||||
|
||||
### Behavior
|
||||
|
||||
- **Below ceiling:** Brand consumes `base_rate` units/tick. Appears as constant demand in tâtonnement.
|
||||
- **Above ceiling:** Demand reduces linearly: `actual_rate = base_rate - reduction_slope × (price - ceiling)`. Production slowdown.
|
||||
- **At zero demand:** Brand halts production entirely. Commodity demand from this brand drops to zero.
|
||||
- **Revenue:** Brand revenue = f(brand_value, production_volume). NOT modeled in the commodity tâtonnement. Shows up in node GDP separately.
|
||||
|
||||
### Example: Calloway Distillery at GJ 3325
|
||||
|
||||
```toml
|
||||
[[brand_demand]]
|
||||
corporation_id = "calloway-distillery"
|
||||
node_id = "gj3325-calloway-reach"
|
||||
demands = [
|
||||
{ commodity = "agricultural_produce", base_rate = 5.0, price_ceiling = 12.0, reduction_slope = 1.0 },
|
||||
{ commodity = "water", base_rate = 2.0, price_ceiling = 5.0, reduction_slope = 0.5 },
|
||||
]
|
||||
```
|
||||
|
||||
At equilibrium (agri @ 5T): Calloway buys 5 units/tick of agricultural produce. If agri price rises to 12T (price ceiling), Calloway starts reducing. At 17T, Calloway halts distilling.
|
||||
|
||||
### Why this works
|
||||
|
||||
- Brand demand is **visible to the tâtonnement** — solves the stone demand thinness problem. Bífröst's stone purchases create real demand for stone at Nyrheim.
|
||||
- Brand demand is **price-responsive** — brands don't buy at any price. This creates realistic supply-demand interaction: raw material price spikes reduce brand output, which reduces brand revenue, which affects node GDP.
|
||||
- Brand demand is **authorable** — the `base_rate` and `price_ceiling` are per-corporation TOML data, not hardcoded. Content team can tune brand economics alongside corporation profiles.
|
||||
- Brand revenue is **separate** — the commodity sim doesn't need to model what brands sell. Only what they buy.
|
||||
|
||||
---
|
||||
|
||||
## 5. Stability Implications
|
||||
|
||||
### Does the reduced set (no luxury_goods) still produce interesting dynamics?
|
||||
|
||||
**Yes.** Assessment by D-179 criteria:
|
||||
|
||||
| Criterion | Assessment |
|
||||
|-----------|-----------|
|
||||
| **Cold-start convergence (±5% in 100 days)** | 28 physical commodities with 21+2 chains is a well-connected graph. Electronics (input to 7/9 finals) and chemicals (input to 6 chains) provide strong cross-commodity coupling. Convergence should be faster than with luxury_goods, not slower — fewer nodes to equilibrate. **PASS expected.** |
|
||||
| **Long-run stability (±2% over 1000 days, no events)** | Two thin-margin chains (fuel 25%, textiles 25%) could oscillate near breakeven. But α=0.03 damping should prevent cobweb oscillation. **PASS expected, monitor fuel and textiles.** |
|
||||
| **Shock response (recovery in 200 ticks)** | Rare minerals cascade (all 9 finals) is the stress test. With fixed-coefficient Leontief, a 20% rare mineral drop cascades to a 20% electronics drop which cascades to proportional drops in all electronics-dependent finals. Recovery depends on rare mineral supply restoration. The cascade is wide but proportional — no amplification. **PASS expected.** |
|
||||
| **Cross-zone trade balance (re-stabilize in 50 ticks)** | 3% Mark/Tractus conversion friction (D-172) applies to cross-zone commodity flows. With 28 physical commodities flowing across zones, the exchange rate adjustment has enough trade volume to work with. **PASS expected.** |
|
||||
|
||||
### What gets less interesting without luxury_goods
|
||||
|
||||
- **Stone's commodity-chain role is thin.** Only the substitution route for panels. Brand-layer demand (Bífröst) is the primary demand driver. If brand demand is invisible to the tâtonnement, stone prices flatline. **Brand demand visibility is CRITICAL (see section 4).**
|
||||
- **Agricultural produce loses its premium channel.** Beverage brands (Calloway, VGV) were the high-margin consumers. Without luxury_goods, agri demand comes only from processed_food (low-margin, high-volume). Agri produce becomes a boring utility commodity unless brand demand is visible.
|
||||
- **Terroir is invisible at the commodity level.** The sim can't distinguish "Calloway Reach agri produce is special" from "generic grain." Terroir differentiation lives entirely in the brand layer. This is correct per directive (f) but means Phase 2 sim testing can't verify terroir dynamics.
|
||||
|
||||
### What stays interesting
|
||||
|
||||
- Rare minerals as the universal chokepoint (all 9 finals)
|
||||
- Lattice material as the political chokepoint (implant + gate)
|
||||
- Water as the deepest cascade trigger (fuel + food + chemicals)
|
||||
- Oversized bulk creating durable manufacturing hubs
|
||||
- Chemical feedstock vs organic compounds substitution dynamics
|
||||
- 3-currency cross-zone friction on all trade flows
|
||||
|
||||
---
|
||||
|
||||
## Summary of Flags
|
||||
|
||||
| # | Issue | Severity | Recommendation |
|
||||
|---|-------|----------|---------------|
|
||||
| FLAG-1 | Fuel margin 25% — negative at non-local-water nodes | Medium | Raise base_price to 25T, or accept as emergent geographic constraint |
|
||||
| FLAG-2 | Textiles margin 25% — fragile to organic price movements | Low | Acceptable — creates geographic clustering near biospheres |
|
||||
| FLAG-3 | 6/9 finals are oversized — inter-system final goods trade is thin | Low | Acceptable — mirrors real trade patterns (intermediates dominate) |
|
||||
| FLAG-4 | No perishable bulk class — food gradient is flat | Medium | Add perishable class (1.8×) for agri_produce and organic_compounds |
|
||||
| FLAG-5 | Fuel not a production chain input — no industrial cascade | **High** | Add fuel as input to `smelt_ore` (e.g., 0.2 fuel). Creates fuel→metals→industry cascade |
|
||||
@@ -0,0 +1,591 @@
|
||||
# ==========================================================================
|
||||
# Settled Reach — Commodity Catalog
|
||||
# Source of truth. Compiled to systems.db via `make economy-db`.
|
||||
#
|
||||
# Fields:
|
||||
# name Display name (Title Case)
|
||||
# tier raw | intermediate | final | service_professional | service_luxury
|
||||
# elasticity perfectly_inelastic | inelastic | unit_elastic | elastic
|
||||
# base_price Equilibrium price in Tractus (float > 0)
|
||||
# bulk_class bulk | liquid | perishable | standard | compact | precision | oversized | non_physical
|
||||
# unit tonnes | units | contracts
|
||||
# production_ubiquity ubiquitous | common | regional | concentrated | monopolistic
|
||||
# demand_model market | utility | compliance
|
||||
# commission_certified Requires Commission certification for formal sale
|
||||
# compact_contested Compact contests Commission authority over this
|
||||
# shadow_viable Shadow market routinely exists
|
||||
# panic_threshold_weeks Stockpile level (in weeks) triggering panic hoarding; 0 = no panic
|
||||
# description Flavor text (optional, not consumed by sim)
|
||||
#
|
||||
# Decisions: D-173 (taxonomy), D-177 (constraints), D-178 (model), D-182 (TOML pipeline)
|
||||
# ==========================================================================
|
||||
|
||||
|
||||
# ==========================================================================
|
||||
# RAW MATERIALS (9)
|
||||
# Extracted or harvested. Location-bound production.
|
||||
# ==========================================================================
|
||||
|
||||
[metallic_ore]
|
||||
name = "Metallic Ore"
|
||||
tier = "raw"
|
||||
elasticity = "unit_elastic"
|
||||
base_price = 10.0
|
||||
bulk_class = "bulk"
|
||||
unit = "tonnes"
|
||||
production_ubiquity = "common"
|
||||
demand_model = "market"
|
||||
commission_certified = false
|
||||
compact_contested = false
|
||||
shadow_viable = false
|
||||
panic_threshold_weeks = 0
|
||||
description = "Ferrous and non-ferrous ore from planetary mines and asteroid operations."
|
||||
|
||||
[rare_minerals]
|
||||
name = "Rare Minerals"
|
||||
tier = "raw"
|
||||
elasticity = "unit_elastic"
|
||||
base_price = 80.0
|
||||
bulk_class = "precision"
|
||||
unit = "tonnes"
|
||||
production_ubiquity = "concentrated"
|
||||
demand_model = "market"
|
||||
commission_certified = false
|
||||
compact_contested = false
|
||||
shadow_viable = false
|
||||
panic_threshold_weeks = 0
|
||||
description = "Exotic crystals, rare earths. Scarce, location-specific. Critical bottleneck for high-tech manufacturing."
|
||||
|
||||
[lattice_grade_material]
|
||||
name = "Lattice-Grade Material"
|
||||
tier = "raw"
|
||||
elasticity = "unit_elastic"
|
||||
base_price = 120.0
|
||||
bulk_class = "precision"
|
||||
unit = "tonnes"
|
||||
production_ubiquity = "monopolistic"
|
||||
demand_model = "market"
|
||||
commission_certified = true
|
||||
compact_contested = false
|
||||
shadow_viable = true
|
||||
panic_threshold_weeks = 0
|
||||
description = "Crystalline substrates for neural lattice fabrication and gate optics. East reach anchor. Strategic material."
|
||||
|
||||
[timber]
|
||||
name = "Timber/Biomass"
|
||||
tier = "raw"
|
||||
elasticity = "unit_elastic"
|
||||
base_price = 15.0
|
||||
bulk_class = "bulk"
|
||||
unit = "tonnes"
|
||||
production_ubiquity = "regional"
|
||||
demand_model = "market"
|
||||
commission_certified = false
|
||||
compact_contested = false
|
||||
shadow_viable = false
|
||||
panic_threshold_weeks = 0
|
||||
description = "Structural and decorative wood from managed forests. 40-60 year replanting cycles."
|
||||
|
||||
[agricultural_produce]
|
||||
name = "Agricultural Produce"
|
||||
tier = "raw"
|
||||
elasticity = "inelastic"
|
||||
base_price = 5.0
|
||||
bulk_class = "perishable"
|
||||
unit = "tonnes"
|
||||
production_ubiquity = "ubiquitous"
|
||||
demand_model = "utility"
|
||||
commission_certified = false
|
||||
compact_contested = false
|
||||
shadow_viable = false
|
||||
panic_threshold_weeks = 0
|
||||
description = "Food crops, livestock, grain, grapes. Every terraformed world produces some."
|
||||
|
||||
[water]
|
||||
name = "Water/Volatiles"
|
||||
tier = "raw"
|
||||
elasticity = "perfectly_inelastic"
|
||||
base_price = 2.0
|
||||
bulk_class = "liquid"
|
||||
unit = "tonnes"
|
||||
production_ubiquity = "ubiquitous"
|
||||
demand_model = "utility"
|
||||
commission_certified = false
|
||||
compact_contested = false
|
||||
shadow_viable = false
|
||||
panic_threshold_weeks = 1
|
||||
description = "Water ice, atmospheric gases. Life support critical. Fusion fuel feedstock."
|
||||
|
||||
[organic_compounds]
|
||||
name = "Organic Compounds"
|
||||
tier = "raw"
|
||||
elasticity = "unit_elastic"
|
||||
base_price = 35.0
|
||||
bulk_class = "standard"
|
||||
unit = "tonnes"
|
||||
production_ubiquity = "regional"
|
||||
demand_model = "market"
|
||||
commission_certified = false
|
||||
compact_contested = false
|
||||
shadow_viable = false
|
||||
panic_threshold_weeks = 0
|
||||
description = "Biochemicals, pharmaceutical precursors, biological feedstock. Requires complex biosphere."
|
||||
|
||||
[stone]
|
||||
name = "Stone/Aggregate"
|
||||
tier = "raw"
|
||||
elasticity = "unit_elastic"
|
||||
base_price = 8.0
|
||||
bulk_class = "bulk"
|
||||
unit = "tonnes"
|
||||
production_ubiquity = "common"
|
||||
demand_model = "market"
|
||||
commission_certified = false
|
||||
compact_contested = false
|
||||
shadow_viable = false
|
||||
panic_threshold_weeks = 0
|
||||
description = "Construction stone, ceramics feedstock. Substitution route for structural panels."
|
||||
|
||||
[chemical_feedstock]
|
||||
name = "Chemical Feedstock"
|
||||
tier = "raw"
|
||||
elasticity = "unit_elastic"
|
||||
base_price = 12.0
|
||||
bulk_class = "liquid"
|
||||
unit = "tonnes"
|
||||
production_ubiquity = "common"
|
||||
demand_model = "market"
|
||||
commission_certified = true
|
||||
compact_contested = true
|
||||
shadow_viable = true
|
||||
panic_threshold_weeks = 0
|
||||
description = "Industrial gases, reaction mass, solvents. Hazmat certification required."
|
||||
|
||||
|
||||
# ==========================================================================
|
||||
# INTERMEDIATE GOODS (10)
|
||||
# Processed from raws. Transportable through gates.
|
||||
# ==========================================================================
|
||||
|
||||
[refined_metals]
|
||||
name = "Refined Metals"
|
||||
tier = "intermediate"
|
||||
elasticity = "inelastic"
|
||||
base_price = 30.0
|
||||
bulk_class = "standard"
|
||||
unit = "tonnes"
|
||||
production_ubiquity = "common"
|
||||
demand_model = "market"
|
||||
commission_certified = false
|
||||
compact_contested = false
|
||||
shadow_viable = false
|
||||
panic_threshold_weeks = 0
|
||||
description = "Structural steel, copper wire, aluminum. Backbone of construction and manufacturing."
|
||||
|
||||
[advanced_alloys]
|
||||
name = "Advanced Alloys"
|
||||
tier = "intermediate"
|
||||
elasticity = "unit_elastic"
|
||||
base_price = 100.0
|
||||
bulk_class = "standard"
|
||||
unit = "tonnes"
|
||||
production_ubiquity = "regional"
|
||||
demand_model = "market"
|
||||
commission_certified = false
|
||||
compact_contested = false
|
||||
shadow_viable = false
|
||||
panic_threshold_weeks = 0
|
||||
description = "High-performance materials for hulls, gate infrastructure, precision machinery."
|
||||
|
||||
[fusion_fuel]
|
||||
name = "Fusion Fuel"
|
||||
tier = "intermediate"
|
||||
elasticity = "perfectly_inelastic"
|
||||
base_price = 20.0
|
||||
bulk_class = "liquid"
|
||||
unit = "tonnes"
|
||||
production_ubiquity = "common"
|
||||
demand_model = "utility"
|
||||
commission_certified = true
|
||||
compact_contested = true
|
||||
shadow_viable = true
|
||||
panic_threshold_weeks = 2
|
||||
description = "Deuterium/tritium refined from water at 8:1 ratio. Continuous consumption. Every system needs it."
|
||||
|
||||
[processed_food]
|
||||
name = "Processed Food"
|
||||
tier = "intermediate"
|
||||
elasticity = "inelastic"
|
||||
base_price = 15.0
|
||||
bulk_class = "standard"
|
||||
unit = "tonnes"
|
||||
production_ubiquity = "ubiquitous"
|
||||
demand_model = "utility"
|
||||
commission_certified = false
|
||||
compact_contested = false
|
||||
shadow_viable = false
|
||||
panic_threshold_weeks = 2
|
||||
description = "Shelf-stable, transportable food products."
|
||||
|
||||
[electronics]
|
||||
name = "Electronics/Components"
|
||||
tier = "intermediate"
|
||||
elasticity = "unit_elastic"
|
||||
base_price = 120.0
|
||||
bulk_class = "compact"
|
||||
unit = "units"
|
||||
production_ubiquity = "regional"
|
||||
demand_model = "market"
|
||||
commission_certified = false
|
||||
compact_contested = false
|
||||
shadow_viable = false
|
||||
panic_threshold_weeks = 0
|
||||
description = "Circuits, processors, control systems. Rare mineral-dependent. Input to nearly every final good."
|
||||
|
||||
[chemicals]
|
||||
name = "Chemicals/Pharmaceuticals"
|
||||
tier = "intermediate"
|
||||
elasticity = "inelastic"
|
||||
base_price = 60.0
|
||||
bulk_class = "standard"
|
||||
unit = "tonnes"
|
||||
production_ubiquity = "regional"
|
||||
demand_model = "market"
|
||||
commission_certified = true
|
||||
compact_contested = true
|
||||
shadow_viable = true
|
||||
panic_threshold_weeks = 3
|
||||
description = "Medicines, industrial chemicals, life support consumables. Two production paths."
|
||||
|
||||
[textiles]
|
||||
name = "Textiles/Composites"
|
||||
tier = "intermediate"
|
||||
elasticity = "unit_elastic"
|
||||
base_price = 50.0
|
||||
bulk_class = "standard"
|
||||
unit = "tonnes"
|
||||
production_ubiquity = "regional"
|
||||
demand_model = "market"
|
||||
commission_certified = false
|
||||
compact_contested = false
|
||||
shadow_viable = false
|
||||
panic_threshold_weeks = 0
|
||||
description = "Clothing, technical fabrics, composite materials."
|
||||
|
||||
[structural_panels]
|
||||
name = "Structural Panels"
|
||||
tier = "intermediate"
|
||||
elasticity = "unit_elastic"
|
||||
base_price = 45.0
|
||||
bulk_class = "standard"
|
||||
unit = "units"
|
||||
production_ubiquity = "regional"
|
||||
demand_model = "market"
|
||||
commission_certified = false
|
||||
compact_contested = false
|
||||
shadow_viable = false
|
||||
panic_threshold_weeks = 0
|
||||
description = "Pre-fabricated building components. Two production paths: timber or stone."
|
||||
|
||||
[drive_cores]
|
||||
name = "Drive Cores"
|
||||
tier = "intermediate"
|
||||
elasticity = "elastic"
|
||||
base_price = 200.0
|
||||
bulk_class = "compact"
|
||||
unit = "units"
|
||||
production_ubiquity = "concentrated"
|
||||
demand_model = "market"
|
||||
commission_certified = false
|
||||
compact_contested = false
|
||||
shadow_viable = false
|
||||
panic_threshold_weeks = 0
|
||||
description = "Propulsion components. High-value, specialized. Double rare-minerals dependency."
|
||||
|
||||
[lattice_substrate]
|
||||
name = "Lattice Substrate"
|
||||
tier = "intermediate"
|
||||
elasticity = "unit_elastic"
|
||||
base_price = 180.0
|
||||
bulk_class = "compact"
|
||||
unit = "units"
|
||||
production_ubiquity = "concentrated"
|
||||
demand_model = "market"
|
||||
commission_certified = true
|
||||
compact_contested = false
|
||||
shadow_viable = true
|
||||
panic_threshold_weeks = 0
|
||||
description = "Processed neural lattice wafers and gate optics. From lattice-grade material."
|
||||
|
||||
|
||||
# ==========================================================================
|
||||
# FINAL GOODS (9)
|
||||
# Assembled from intermediates. End of production chain.
|
||||
# ==========================================================================
|
||||
|
||||
[heavy_equipment]
|
||||
name = "Heavy Equipment"
|
||||
tier = "final"
|
||||
elasticity = "elastic"
|
||||
base_price = 250.0
|
||||
bulk_class = "oversized"
|
||||
unit = "units"
|
||||
production_ubiquity = "regional"
|
||||
demand_model = "market"
|
||||
commission_certified = false
|
||||
compact_contested = false
|
||||
shadow_viable = false
|
||||
panic_threshold_weeks = 0
|
||||
description = "Mining rigs, construction machinery. 1-3 year lead times."
|
||||
|
||||
[transport_vehicles]
|
||||
name = "Transport Vehicles"
|
||||
tier = "final"
|
||||
elasticity = "elastic"
|
||||
base_price = 350.0
|
||||
bulk_class = "oversized"
|
||||
unit = "units"
|
||||
production_ubiquity = "regional"
|
||||
demand_model = "market"
|
||||
commission_certified = true
|
||||
compact_contested = true
|
||||
shadow_viable = false
|
||||
panic_threshold_weeks = 0
|
||||
description = "Ships, ground vehicles. Commission safety registration."
|
||||
|
||||
[freight_haulers]
|
||||
name = "Freight Haulers"
|
||||
tier = "final"
|
||||
elasticity = "elastic"
|
||||
base_price = 300.0
|
||||
bulk_class = "oversized"
|
||||
unit = "units"
|
||||
production_ubiquity = "concentrated"
|
||||
demand_model = "market"
|
||||
commission_certified = true
|
||||
compact_contested = true
|
||||
shadow_viable = false
|
||||
panic_threshold_weeks = 0
|
||||
description = "Commercial cargo vessels. Demand driven by trade volume, not population."
|
||||
|
||||
[consumer_goods]
|
||||
name = "Consumer Goods"
|
||||
tier = "final"
|
||||
elasticity = "unit_elastic"
|
||||
base_price = 80.0
|
||||
bulk_class = "compact"
|
||||
unit = "units"
|
||||
production_ubiquity = "ubiquitous"
|
||||
demand_model = "market"
|
||||
commission_certified = false
|
||||
compact_contested = false
|
||||
shadow_viable = false
|
||||
panic_threshold_weeks = 0
|
||||
description = "Daily necessities, household items, personal tech."
|
||||
|
||||
[implant_hardware]
|
||||
name = "Implant Hardware"
|
||||
tier = "final"
|
||||
elasticity = "elastic"
|
||||
base_price = 400.0
|
||||
bulk_class = "precision"
|
||||
unit = "units"
|
||||
production_ubiquity = "concentrated"
|
||||
demand_model = "market"
|
||||
commission_certified = true
|
||||
compact_contested = true
|
||||
shadow_viable = true
|
||||
panic_threshold_weeks = 0
|
||||
description = "Neural interfaces, lattice components. THE Compact political flashpoint. D-037 adjacent."
|
||||
|
||||
[medical_goods]
|
||||
name = "Medical Goods"
|
||||
tier = "final"
|
||||
elasticity = "inelastic"
|
||||
base_price = 200.0
|
||||
bulk_class = "compact"
|
||||
unit = "units"
|
||||
production_ubiquity = "regional"
|
||||
demand_model = "market"
|
||||
commission_certified = true
|
||||
compact_contested = true
|
||||
shadow_viable = true
|
||||
panic_threshold_weeks = 0
|
||||
description = "Pharmaceuticals, surgical equipment, diagnostics, re-embodiment supporting hardware."
|
||||
|
||||
[gate_components]
|
||||
name = "Gate Components"
|
||||
tier = "final"
|
||||
elasticity = "elastic"
|
||||
base_price = 800.0
|
||||
bulk_class = "oversized"
|
||||
unit = "units"
|
||||
production_ubiquity = "monopolistic"
|
||||
demand_model = "market"
|
||||
commission_certified = true
|
||||
compact_contested = true
|
||||
shadow_viable = true
|
||||
panic_threshold_weeks = 0
|
||||
description = "Gate maintenance and construction parts. Gate Corporation monopoly. Triple rare-minerals dependency."
|
||||
|
||||
[habitat_modules]
|
||||
name = "Habitat Modules"
|
||||
tier = "final"
|
||||
elasticity = "unit_elastic"
|
||||
base_price = 150.0
|
||||
bulk_class = "oversized"
|
||||
unit = "units"
|
||||
production_ubiquity = "regional"
|
||||
demand_model = "market"
|
||||
commission_certified = false
|
||||
compact_contested = false
|
||||
shadow_viable = false
|
||||
panic_threshold_weeks = 0
|
||||
description = "Complete living/working units for stations and settlements. 2-5 year lead times."
|
||||
|
||||
[rail_infrastructure]
|
||||
name = "Rail Infrastructure"
|
||||
tier = "final"
|
||||
elasticity = "unit_elastic"
|
||||
base_price = 180.0
|
||||
bulk_class = "oversized"
|
||||
unit = "units"
|
||||
production_ubiquity = "regional"
|
||||
demand_model = "market"
|
||||
commission_certified = false
|
||||
compact_contested = false
|
||||
shadow_viable = false
|
||||
panic_threshold_weeks = 0
|
||||
description = "Planetary transit systems, trains, intra-system transport networks."
|
||||
|
||||
|
||||
# ==========================================================================
|
||||
# PROFESSIONAL SERVICES (7)
|
||||
# Location-bound. Non-transportable through gates.
|
||||
# ==========================================================================
|
||||
|
||||
[legal_services]
|
||||
name = "Legal Services"
|
||||
tier = "service_professional"
|
||||
elasticity = "inelastic"
|
||||
base_price = 100.0
|
||||
bulk_class = "non_physical"
|
||||
unit = "contracts"
|
||||
production_ubiquity = "common"
|
||||
demand_model = "compliance"
|
||||
commission_certified = false
|
||||
compact_contested = false
|
||||
shadow_viable = false
|
||||
panic_threshold_weeks = 0
|
||||
description = "Contract enforcement, dispute resolution, commercial law."
|
||||
|
||||
[financial_services]
|
||||
name = "Financial Services"
|
||||
tier = "service_professional"
|
||||
elasticity = "inelastic"
|
||||
base_price = 120.0
|
||||
bulk_class = "non_physical"
|
||||
unit = "contracts"
|
||||
production_ubiquity = "common"
|
||||
demand_model = "market"
|
||||
commission_certified = false
|
||||
compact_contested = false
|
||||
shadow_viable = false
|
||||
panic_threshold_weeks = 0
|
||||
description = "Banking, credit, clearing, currency exchange. Cross-zone settlement infrastructure."
|
||||
|
||||
[medical_services]
|
||||
name = "Medical/Re-embodiment Services"
|
||||
tier = "service_professional"
|
||||
elasticity = "inelastic"
|
||||
base_price = 200.0
|
||||
bulk_class = "non_physical"
|
||||
unit = "contracts"
|
||||
production_ubiquity = "regional"
|
||||
demand_model = "utility"
|
||||
commission_certified = true
|
||||
compact_contested = true
|
||||
shadow_viable = true
|
||||
panic_threshold_weeks = 0
|
||||
description = "Healthcare, neural backup, licensed re-embodiment. Unlicensed variant is canonical contraband."
|
||||
|
||||
[insurance]
|
||||
name = "Insurance/Risk"
|
||||
tier = "service_professional"
|
||||
elasticity = "unit_elastic"
|
||||
base_price = 75.0
|
||||
bulk_class = "non_physical"
|
||||
unit = "contracts"
|
||||
production_ubiquity = "regional"
|
||||
demand_model = "market"
|
||||
commission_certified = false
|
||||
compact_contested = false
|
||||
shadow_viable = false
|
||||
panic_threshold_weeks = 0
|
||||
description = "Cargo, liability, corporate risk management. Affects trade volume through risk pricing."
|
||||
|
||||
[commission_certification]
|
||||
name = "Commission Certification"
|
||||
tier = "service_professional"
|
||||
elasticity = "inelastic"
|
||||
base_price = 100.0
|
||||
bulk_class = "non_physical"
|
||||
unit = "contracts"
|
||||
production_ubiquity = "concentrated"
|
||||
demand_model = "compliance"
|
||||
commission_certified = true
|
||||
compact_contested = true
|
||||
shadow_viable = false
|
||||
panic_threshold_weeks = 0
|
||||
description = "Lattice Commission regulatory certification. Tractus-denominated. Availability inverse to shadow economy."
|
||||
|
||||
|
||||
# ==========================================================================
|
||||
# LUXURY/EXPERIENTIAL SERVICES (3)
|
||||
# Location-bound. Discretionary consumption.
|
||||
# ==========================================================================
|
||||
|
||||
[tourism]
|
||||
name = "Tourism"
|
||||
tier = "service_luxury"
|
||||
elasticity = "elastic"
|
||||
base_price = 100.0
|
||||
bulk_class = "non_physical"
|
||||
unit = "contracts"
|
||||
production_ubiquity = "concentrated"
|
||||
demand_model = "market"
|
||||
commission_certified = false
|
||||
compact_contested = false
|
||||
shadow_viable = false
|
||||
panic_threshold_weeks = 0
|
||||
description = "Cultural tourism, prestige destinations. Cannot freight the experience."
|
||||
|
||||
[entertainment]
|
||||
name = "Entertainment/Holo-content"
|
||||
tier = "service_luxury"
|
||||
elasticity = "elastic"
|
||||
base_price = 30.0
|
||||
bulk_class = "non_physical"
|
||||
unit = "contracts"
|
||||
production_ubiquity = "common"
|
||||
demand_model = "market"
|
||||
commission_certified = false
|
||||
compact_contested = false
|
||||
shadow_viable = false
|
||||
panic_threshold_weeks = 0
|
||||
description = "Performances, holo-content, cultural production."
|
||||
|
||||
[hospitality]
|
||||
name = "Fine Dining/Hospitality"
|
||||
tier = "service_luxury"
|
||||
elasticity = "elastic"
|
||||
base_price = 60.0
|
||||
bulk_class = "non_physical"
|
||||
unit = "contracts"
|
||||
production_ubiquity = "regional"
|
||||
demand_model = "market"
|
||||
commission_certified = false
|
||||
compact_contested = false
|
||||
shadow_viable = false
|
||||
panic_threshold_weeks = 0
|
||||
description = "Restaurants, hotels, gastronomy."
|
||||
@@ -0,0 +1,59 @@
|
||||
# Workshop: Commodity Catalog (#801)
|
||||
|
||||
**Ticket:** #801 — Define commodity catalog (TOML)
|
||||
**Sprint:** 32 (planning branch)
|
||||
**Date:** 2026-04-05
|
||||
|
||||
## Goal
|
||||
|
||||
Author `wiki/economics/commodities.toml` and `wiki/economics/production_chains.toml` — the commodity data that seeds the Phase 2 economics simulation.
|
||||
|
||||
**Key framing:** The commodity count is NOT a target (~30). It follows from answering: *what does a futuristic interstellar civilization actually produce, consume, and trade?*
|
||||
|
||||
## Participants
|
||||
|
||||
Miri (worldbuilding), Gestalt (systems design), Burnelli-Sheldon (economics), Tyre (technical architecture)
|
||||
|
||||
## Workshop Format
|
||||
|
||||
**Round 1 — Analysis:** Each participant analyzes the commodity space from their domain. Bottom-up enumeration, not top-down target.
|
||||
|
||||
**Round 2 — Synthesis:** Cross-read Round 1 outputs. Converge on a unified commodity list, production chain graph, and TOML schema. Resolve conflicts.
|
||||
|
||||
**Round 3 — Draft:** Team lead compiles final TOML files from Round 2 consensus. Agents validate against their domain.
|
||||
|
||||
## Questions for Participants
|
||||
|
||||
### Miri (worldbuilding):
|
||||
1. What specific commodities exist in the Reach's lore? Ground each in location, producer, and cultural identity.
|
||||
2. What lore constraints (D-177) limit production? What additional constraints exist beyond the Round 2 list?
|
||||
3. What services (professional, luxury) exist in the Reach? Ground in specific institutions.
|
||||
4. What's missing from the Round 2 commodity list that an interstellar society needs?
|
||||
|
||||
### Gestalt (systems design):
|
||||
1. Design the production chain graph (Raw -> Intermediate -> Final). Where are the chokepoints?
|
||||
2. Define the 5 elasticity classes with specific commodities in each.
|
||||
3. What bulk classes make sense for gate transport? How does bulk affect price differentials?
|
||||
4. Which commodities carry political sensitivity? How does this create gameplay tension?
|
||||
5. Does the commodity set cover all D-131 economic verbs and D-175 corporation archetypes?
|
||||
|
||||
### Burnelli-Sheldon (economics):
|
||||
1. Enumerate commodity types from first principles — what sectors does an interstellar economy need?
|
||||
2. Propose base prices (Tractus) that create meaningful geographic price differentials given transport costs (5-12%/hop).
|
||||
3. Design production chain recipes with realistic coefficient ratios.
|
||||
4. Classify all commodities into the 5 elasticity categories.
|
||||
5. What's missing from your Round 2 model now that services are required?
|
||||
|
||||
### Tyre (technical architecture):
|
||||
1. Design the TOML schema for commodities.toml and production_chains.toml.
|
||||
2. How does the schema map to the systems.db tables from #804?
|
||||
3. What validation rules should the build step enforce?
|
||||
4. Propose an ID/key scheme for commodities.
|
||||
5. Draft 2-3 example TOML records showing all fields.
|
||||
|
||||
## References
|
||||
|
||||
- `decisions/economics.md` (D-171 through D-183)
|
||||
- `docs/sprints/sprint-32/workshop-796-round2.md` (Round 2 proposals)
|
||||
- `docs/sprints/sprint-32/workshop-796-round1.md` (Round 1 findings)
|
||||
- `wiki/` (existing lore)
|
||||
@@ -0,0 +1,265 @@
|
||||
**Gestalt — #801 Commodity Catalog Mechanics Analysis**
|
||||
|
||||
Let me break down what this actually means mechanically. I've read D-171 through D-183, both round reports. Here's the full systems design.
|
||||
|
||||
---
|
||||
|
||||
## 1. Production Chain Graph
|
||||
|
||||
D-173 locked the counts: 7 raw -> 8 intermediate -> 7 final. I'm proposing the actual names and wiring.
|
||||
|
||||
### Raw Materials (7) -- location-bound, extracted or harvested
|
||||
|
||||
| ID | Name | Source type | Geographic anchor |
|
||||
|----|------|-------------|-------------------|
|
||||
| R-01 | Metallic ore | Asteroid/planetary mines | Ubiquitous; high in industrial corridors |
|
||||
| R-02 | Silicate/mineral | Quarry, geological extraction | Includes Kvitfjell marble (hard ceiling D-177) |
|
||||
| R-03 | Agricultural produce | Farms, vineyards, grain fields | Calloway grain, VGV grapes, staple crops |
|
||||
| R-04 | Organic fiber/biomass | Fisheries, ranches, plantations | Brach fiber (Braemar-locked D-177), marine catch |
|
||||
| R-05 | Chemical feedstock | Gas extraction, chemical wells | Higher in outer corridors |
|
||||
| R-06 | Energy raw | Fissile mining, reaction mass | Every inhabited system needs some; monopoly pressure at frontier |
|
||||
| R-07 | Lattice-grade material | Rare deposits, some biologics | Geographically sparse; strategic chokepoint |
|
||||
|
||||
### Intermediate Goods (8) -- processed from raws, transportable
|
||||
|
||||
| ID | Name | Inputs | Substitutable inputs? |
|
||||
|----|------|--------|----------------------|
|
||||
| I-01 | Refined metal/alloy | R-01 | R-01 from asteroid OR planetary mine (same output, different sources) |
|
||||
| I-02 | Processed silicate | R-02 | R-02 only (no sub) -- Kvitfjell marble variant has no substitute |
|
||||
| I-03 | Processed food/drink | R-03 OR R-04 | Either agricultural produce OR biomass (fish processing same as grain processing) |
|
||||
| I-04 | Textile/composite | R-04 | R-04 from brach OR from standard plant fiber |
|
||||
| I-05 | Industrial chemical | R-05 | R-05 OR R-06 (some fuels substitute for chemical processes) |
|
||||
| I-06 | Power cell/fuel | R-06 OR R-05 | Nuclear (R-06) OR hydrocarbon (R-05) -- different efficiency, same output |
|
||||
| I-07 | Lattice substrate | R-07 | R-07 only -- no substitute for lattice-grade input |
|
||||
| I-08 | Fabricated components | I-01 + I-05 | I-01 required; I-05 can substitute from R-05 or R-06 pathway |
|
||||
|
||||
### Final Goods (7) -- assembled from intermediates, carry cultural identity
|
||||
|
||||
| ID | Name | Inputs | Cultural identity |
|
||||
|----|------|--------|------------------|
|
||||
| F-01 | Heavy industrial goods | I-01 + I-08 | Stalownia rigs, Cygni B station sections, large equipment |
|
||||
| F-02 | Consumer goods | I-03 + I-04 | Packaged food, clothing, household goods |
|
||||
| F-03 | Luxury goods | I-02 + I-03 | Kvitfjell marble, VGV wines, Calloway whisky -- corridor-specific identity |
|
||||
| F-04 | Transport vehicles | I-01 + I-06 + I-08 | Ships, MVG bespoke vehicles, transports |
|
||||
| F-05 | Implant hardware | I-07 + I-08 | Commission-certified implants and neural hardware |
|
||||
| F-06 | Gate/infrastructure components | I-06 + I-07 + I-08 | Gates, habitat modules, Gate Corp monopoly |
|
||||
| F-07 | Medical/pharmaceuticals | I-03 + I-05 | Medical goods, re-embodiment supporting goods |
|
||||
|
||||
### Chain Chokepoints (the interesting nodes)
|
||||
|
||||
Three chokepoints create gameplay tension:
|
||||
|
||||
1. **R-07 -> I-07 -> F-05 + F-06**: Lattice-grade material is geographically sparse, has no substitute, and feeds the two most politically sensitive final goods (implants and gates). A single supply disruption cascades to both implant hardware AND gate components -- it touches Commission certification, Gate Corp monopoly, and contraband simultaneously. This is the richest chokepoint.
|
||||
|
||||
2. **I-08 (Fabricated components)**: Required by F-01, F-04, F-05, F-06 -- four of seven finals. It's the most upstream shared dependency. Any disruption to R-01 or I-05 cascades to nearly every manufactured good. Stalownia being a dominant refined metal producer means the corporation sitting on R-01 has enormous latent leverage.
|
||||
|
||||
3. **F-03 Luxury goods**: Hard biological ceilings (D-177) on Kvitfjell marble (R-02) and Calloway/VGV (R-03/R-04) mean this final good is permanently supply-constrained. Unlike most goods, adding economic nodes doesn't resolve the scarcity -- the player learns that economics alone can't solve everything. This is where Sol-denominated black market pricing appears naturally.
|
||||
|
||||
---
|
||||
|
||||
## 2. Elasticity Classes (5)
|
||||
|
||||
D-173 specifies 5 categories. Here they are with mechanical definitions.
|
||||
|
||||
| Class | Label | Demand response to +10% price | Tatonnement alpha modifier | Examples |
|
||||
|-------|-------|-------------------------------|------------------------|---------|
|
||||
| E-1 | Inelastic | -1% to -3% quantity | 1.5x faster price adjustment (sellers can gouge) | R-03 Agricultural produce, R-06 Energy raw, I-03 Processed food, I-06 Power cell |
|
||||
| E-2 | Low elasticity | -4% to -8% quantity | 1.2x | I-01 Refined metal, F-07 Medical/pharma, I-05 Industrial chemical |
|
||||
| E-3 | Moderate elasticity | -10% to -15% quantity | 1.0x (baseline alpha=0.03) | I-04 Textile, I-08 Fabricated components, F-02 Consumer goods, R-04 Organic fiber |
|
||||
| E-4 | High elasticity | -18% to -30% quantity | 0.7x (buyers walk; sellers must discount) | F-03 Luxury goods, F-04 Transport vehicles, F-01 Heavy industrial |
|
||||
| E-5 | Purely elastic (services) | Location-bound; inter-regional demand = 0 | N/A -- no transport | All service types |
|
||||
|
||||
**Design note on E-5:** Services don't participate in the spatial price equilibrium across nodes -- they have no inter-regional demand to equilibrate. But they DO respond to local supply/demand. A tourism node with a labor shortage sees tourism throughput drop (service throughput seed). This creates a within-node elasticity for services without requiring them to enter the gate transport model.
|
||||
|
||||
**Why the alpha modifier matters:** E-1 goods price-spike fast and stay spiked because buyers must pay regardless. E-4 goods see quantity collapse more than price spike -- sellers drop price to maintain volume. This produces meaningfully different market behavior from the same supply shock, depending on what got disrupted.
|
||||
|
||||
---
|
||||
|
||||
## 3. Bulk Classes
|
||||
|
||||
What makes inter-system transport cost interesting? Volume, perishability, regulatory burden, and whether the good can even fit through a gate in useful form.
|
||||
|
||||
| Class | Label | Gate cost multiplier | Key property |
|
||||
|-------|-------|---------------------|--------------|
|
||||
| B-1 | Dense bulk | 1.0x | Heavy, low-value-density; equalizes across hops cheaply |
|
||||
| B-2 | Standard cargo | 1.2x | Normal packaged goods, standard containers |
|
||||
| B-3 | Perishable | 1.8x | Time-sensitive; regional price differentials stay large |
|
||||
| B-4 | High-value/low-mass | 0.8x | Cheap to move; price differentials come from scarcity not transport |
|
||||
| B-5 | Oversized/special | 2.5x | Partial assembly, special handling; generates hub-and-spoke manufacturing |
|
||||
| B-6 | Non-transportable | infinity | Services; production = consumption node |
|
||||
|
||||
**Commodity->bulk mapping:**
|
||||
|
||||
| Commodity | Bulk class | Price differential driver |
|
||||
|-----------|-----------|--------------------------|
|
||||
| R-01 Metallic ore | B-1 | Low -- ore prices equalize fast |
|
||||
| R-02 Silicate/mineral | B-1 | Low except luxury marble variant (scarcity, not transport) |
|
||||
| R-03 Agricultural produce | B-3 | High -- fresh produce is time-critical; regional variation persists |
|
||||
| R-04 Organic fiber | B-2 | Moderate |
|
||||
| R-05 Chemical feedstock | B-1 | Low |
|
||||
| R-06 Energy raw | B-1 | Low for fissile; B-3 for reaction mass |
|
||||
| R-07 Lattice-grade material | B-4 | Scarcity-driven, not transport-driven |
|
||||
| I-01 Refined metal | B-2 | Moderate |
|
||||
| I-02 Processed silicate | B-5 | High -- stone slabs are awkward cargo |
|
||||
| I-03 Processed food/drink | B-2/B-3 | Aged products (whisky) are B-4; fresh food B-3 |
|
||||
| I-04 Textile/composite | B-2 | Moderate |
|
||||
| I-05 Industrial chemical | B-1 | Low (hazmat containers are standard) |
|
||||
| I-06 Power cell/fuel | B-2 | Moderate |
|
||||
| I-07 Lattice substrate | B-4 | Scarcity-driven |
|
||||
| I-08 Fabricated components | B-2 | Moderate |
|
||||
| F-01 Heavy industrial goods | B-5 | Very high -- manufacturing hubs persist because shipping rigs is expensive |
|
||||
| F-02 Consumer goods | B-2 | Moderate |
|
||||
| F-03 Luxury goods | B-4 | Scarcity-driven; marble is B-5 (stone), wine/whisky B-4 |
|
||||
| F-04 Transport vehicles | B-5 | Very high -- ship construction stays near shipyards |
|
||||
| F-05 Implant hardware | B-4 | Regulation-driven more than transport-driven |
|
||||
| F-06 Gate/infrastructure components | B-5 | Extreme -- built where ordered, shipped assembled |
|
||||
| F-07 Medical/pharma | B-4 | High value, low mass |
|
||||
| All services | B-6 | Non-transportable |
|
||||
|
||||
**The B-5 implication:** Heavy industrial goods, transport vehicles, and gate components all being B-5 means manufacturing centers are structural. You can't arbitrage away the price advantage of building rigs near Stalownia's ore by just shipping finished rigs -- the transport cost is too high. This creates durable geographic economic identities, which is exactly what the lore needs.
|
||||
|
||||
---
|
||||
|
||||
## 4. Political Sensitivity
|
||||
|
||||
Political sensitivity encodes real gameplay tension. I'm proposing three sub-flags per commodity that together compose the political sensitivity:
|
||||
|
||||
- `commission_certification_required` -- Commission must certify before sale; costs Tractus; Compact friction
|
||||
- `compact_contested` -- Compact officially rejects the Commission's authority over this commodity category
|
||||
- `shadow_viable` -- a shadow market routinely exists for this commodity (derived from demand pressure x shadow_economy_intensity)
|
||||
|
||||
| Commodity | Cert req? | Compact contested? | Shadow viable? | Drama |
|
||||
|-----------|-----------|-------------------|----------------|-------|
|
||||
| R-01 Metallic ore | No | No | No | Pure commodity |
|
||||
| R-02 Silicate/mineral | No | No | Partial | Kvitfjell quota enforcement creates a minor shadow |
|
||||
| R-03 Agricultural produce | Partial | No | No | Organic certification in Assembly zones; Compact ignores |
|
||||
| R-04 Organic fiber | No | No | No | |
|
||||
| R-05 Chemical feedstock | Yes (hazmat) | Yes | Yes | Compact views certification as Assembly tariff by another name |
|
||||
| R-06 Energy raw | Yes (safety/fissile) | Yes | Yes | Nuclear fuel -- dual cert burden; Compact energy independence as political goal |
|
||||
| R-07 Lattice-grade material | Yes (strategic) | No | High | Gate Corp claim; canonical contraband pathway |
|
||||
| I-01 Refined metal | No | No | No | |
|
||||
| I-02 Processed silicate | No | No | No | |
|
||||
| I-03 Processed food | Partial | No | No | Food safety cert; Compact accepts alternatives |
|
||||
| I-04 Textile/composite | No | No | No | |
|
||||
| I-05 Industrial chemical | Yes | Yes | Yes | Same friction as R-05 |
|
||||
| I-06 Power cell/fuel | Yes | Yes | Yes | |
|
||||
| I-07 Lattice substrate | Yes (strategic) | No | High | Commission controls; smuggling incentive structural |
|
||||
| I-08 Fabricated components | Partial | Partial | No | Precision spec certification; minor friction |
|
||||
| F-01 Heavy industrial goods | No | No | No | Too large to shadow-market meaningfully |
|
||||
| F-02 Consumer goods | No | No | Partial | Uncertified goods undercut certified in low-coverage nodes |
|
||||
| F-03 Luxury goods | Partial | No | Yes | Sol-denominated luxury goods; shadow market for prestige |
|
||||
| F-04 Transport vehicles | Yes (safety) | Partial | Partial | Commission registration; Compact often operates unregistered |
|
||||
| F-05 Implant hardware | Yes (medical) | High | High | **THE flashpoint** -- Commission implant cert is THE Compact grievance; D-037 adjacent |
|
||||
| F-06 Gate/infrastructure | Yes (strategic) | Extreme | High | Gate Corp monopoly + Commission cert = maximum structural extraction |
|
||||
| F-07 Medical/pharma | Yes (medical) | Partial | High | Re-embodiment specifically; D-037 adjacent |
|
||||
|
||||
**Three political flashpoints worth calling out:**
|
||||
|
||||
1. **F-05 Implant hardware** -- Commission certification + Assembly control. The Compact's shadow implant market isn't crime; it's principled rejection of Assembly medical authority. This maps directly to D-174's "principled economic resistance" framing.
|
||||
|
||||
2. **F-06 Gate/infrastructure components** -- Gate Corp monopoly + Commission certification. The chokepoint that lets the Assembly functionally tax all inter-system movement. This is the Commission's ultimate leverage tool and the Compact's ultimate grievance.
|
||||
|
||||
3. **R-06 + I-06 Energy** -- The Compact frontier's energy independence is a live political project. The Mark currency zone correlates with energy self-sufficiency drives. A player who understands this reads the currency map differently.
|
||||
|
||||
---
|
||||
|
||||
## 5. Service Mechanics
|
||||
|
||||
Services are mechanically different from physical commodities in three ways:
|
||||
|
||||
**A. No transport; no gate cost; no arbitrage:**
|
||||
Services are produced and consumed at the same node. They are demand sinks on the physical commodity chain, not links in it. They don't participate in spatial price equilibrium.
|
||||
|
||||
**B. Services have a within-node demand multiplier effect:**
|
||||
Instead of a supply chain role, each service type has a goods-demand multiplier:
|
||||
|
||||
| Service | Goods demand multiplied |
|
||||
|---------|------------------------|
|
||||
| Legal | I-06 Power (office); Tractus velocity (fees) |
|
||||
| Banking/credit | Tractus velocity; affects cross-zone trade friction |
|
||||
| Insurance | No goods demand; affects trade volume through risk pricing |
|
||||
| Commercial intelligence | No goods demand; affects signal visibility (improves official_coverage_ratio) |
|
||||
| Habitation/berths | F-02 Consumer goods; I-06 Power |
|
||||
| Tourism | F-03 Luxury goods; F-02 Consumer goods; I-06 Power |
|
||||
| Holo-content/entertainment | I-06 Power; I-08 Fabricated components (production hardware) |
|
||||
| Cultural experiences | F-03 Luxury goods; indirect (labor-intensive) |
|
||||
|
||||
This means a high-tourism node pulls increased luxury goods demand. A high-legal-services node increases Tractus velocity in that system. These are emergence-generating interactions without requiring explicit modeling of service transactions.
|
||||
|
||||
**C. Service throughput seeds differently:**
|
||||
Physical goods use `extraction_rate`, `processing_throughput`. Services use `service_throughput` and `service_capacity` (D-176). This maps to "how many clients per tick" and "how many concurrent engagements." Both are seeded log-normally, but the ceiling for services is population-dependent -- a small station can't sustain a large legal practice regardless of the seed.
|
||||
|
||||
**Proposed service list (revised from D-173's "~5 + ~3"):**
|
||||
|
||||
Professional services (5):
|
||||
- Legal
|
||||
- Banking/credit
|
||||
- Insurance
|
||||
- Commercial intelligence (replaces Logistics management, which is implicit in transport cost model)
|
||||
- Habitation/berths (covers the D-131 "rent" verb)
|
||||
|
||||
Luxury services (3):
|
||||
- Tourism
|
||||
- Holo-content/entertainment
|
||||
- Cultural experiences
|
||||
|
||||
**Why swap Logistics management for Commercial intelligence:** Logistics management as a separately-modeled service is redundant with the transport cost system. Transport costs already encode the logistics overhead per hop. Commercial intelligence (Mercado, Adams & Ford, Ferreira Monteiro) is mechanically distinct and necessary for the information brokerage archetype from D-175.
|
||||
|
||||
**Why add Habitation/berths:** The D-131 "rent" verb needs something to rent. Physical space on a station is inherently location-bound, non-transportable, and exists in fixed supply. This is a service in the B-6 sense -- it can't be shipped through a gate. It also creates a natural pressure mechanism: a booming node runs out of berths, which caps service growth and creates a real estate price signal.
|
||||
|
||||
---
|
||||
|
||||
## 6. Completeness Check
|
||||
|
||||
**Against D-131 economic verbs** (from Round 1 notes: buy, sell, hire, rent, contract, inspect, negotiate, invest):
|
||||
|
||||
| Verb | Covered by | Gap? |
|
||||
|------|-----------|------|
|
||||
| Buy | All physical commodities | None |
|
||||
| Sell | All physical commodities | None |
|
||||
| Hire | Services (legal, commercial intelligence) | None |
|
||||
| Rent | Habitation/berths service | Gap if Habitation not added -- see section 5 above |
|
||||
| Contract | Services (insurance, logistics implicit) | None |
|
||||
| Inspect | Signal vocabulary D-181 (7 signals per node) | None -- inspect verb is the master mechanic |
|
||||
| Negotiate | Any transaction; currency exchange rates | None |
|
||||
| Invest | Banking/credit service; F-01/F-06 heavy goods | Thin -- "invest" might need capital goods loan mechanics later but Phase 2 out-of-scope |
|
||||
|
||||
**Against D-175 corporation archetypes:**
|
||||
|
||||
28 lore-taxonomy archetypes -> commodity coverage:
|
||||
- **Extraction (5):** R-01, R-02, R-05, R-06, R-04 (maritime salvage) -> all covered
|
||||
- **Agriculture (6):** R-03, R-04, I-03, F-03 -> all covered; Calloway and VGV have specific commodity slots
|
||||
- **Manufacturing (6):** F-01, F-04, I-04, F-05, F-07, I-08 -> all covered; precision instruments slot into I-08
|
||||
- **Trade/logistics (4):** F-04 (ships), I-06 (fuel), F-06 (gate infra), services -> covered
|
||||
- **Services (6):** Legal, Banking, Insurance, Commercial intelligence, Habitation, Tourism/Holo/Cultural -> all 6 archetypes have explicit commodity slots now
|
||||
- **Intelligence (1):** Commercial intelligence service -> now explicitly in the catalog
|
||||
|
||||
6 behavioral archetypes -> all find commodities:
|
||||
- **Monopolist:** Gate Corp on F-06/R-07; Kvitfjell quarry on R-02/F-03
|
||||
- **Distributor:** Sova on transport + habitation throughput
|
||||
- **Producer:** Stalownia on F-01; any manufacturer
|
||||
- **Specialist:** Calloway on F-03; VGV on F-03; MVG on F-04
|
||||
- **Cooperative:** East reach fermentation on R-03/I-03/F-03; brach fiber cooperatives on R-04
|
||||
- **Intermediary:** Mercado on commercial intelligence service; Groombridge clearing house on banking/credit
|
||||
|
||||
**One remaining gap:** The east-reach archetypes Miri proposed (maritime salvage, precision instruments, fermentation cooperative, maritime fishery, textile/craft guild) all have commodity slots, but east reach has no named Tier 1 corporation occupying those slots yet (flagged in D-175 as a priority gap). This is a content gap, not a catalog gap -- the slots exist.
|
||||
|
||||
---
|
||||
|
||||
## Summary
|
||||
|
||||
**The catalog as proposed:**
|
||||
|
||||
22 physical commodities (7R + 8I + 7F) + 8 services (5 professional + 3 luxury) = **30 commodity types**
|
||||
|
||||
Right at D-173's target, covering all D-131 verbs and all D-175 archetypes.
|
||||
|
||||
**The two design calls I'm making that need your confirmation:**
|
||||
|
||||
1. **Swap Logistics management -> Commercial intelligence** in professional services. Logistics management is implicit in transport costs; commercial intelligence is a distinct archetype that otherwise has no commodity backing.
|
||||
|
||||
2. **Add Habitation/berths** as the 5th professional service. Covers the "rent" verb from D-131 and creates a natural node-capacity pressure mechanism.
|
||||
|
||||
**The three chokepoints** (R-07 lattice chain, I-08 fabricated components, F-03 biological ceiling goods) are where the interesting gameplay lives. Every economic disruption event should be evaluated by which chokepoint it touches.
|
||||
|
||||
Ready for iteration or pushback on any of the above.
|
||||
@@ -0,0 +1,344 @@
|
||||
# Gestalt — #801 Commodity Catalog: Round 2 Converged Proposal
|
||||
|
||||
**Date:** 2026-04-05
|
||||
**Status:** Round 2 proposal
|
||||
|
||||
---
|
||||
|
||||
## What I'm Taking From Each Agent
|
||||
|
||||
**Tyre:** Flat slug IDs. Production chain TOML with `location_bound` and `output_quantity` fields. Hard build-step validation. The energy-as-non-physical carve-out problem is now cleanly resolved by the water→fuel chain.
|
||||
|
||||
**Miri:** Commission certification as a distinct service (not collapsed into legal). Re-embodiment as a required luxury service. Cooperage timber as a separate Calloway chain input. Lattice-grade materials anchoring the east reach. Prometheus maintenance network sparsity as a geographic availability constraint.
|
||||
|
||||
**Burnelli-Sheldon:** `production_ubiquity` flag (guides initialization geographic distribution). `demand_model` field (utility/compliance changes tâtonnement behavior). Panic mechanism for critical supply goods. Price table with margin analysis. Transport cost differentials showing geographic specialization emergence.
|
||||
|
||||
**My own Round 1:** 3 political sub-flags (commission_cert_required / compact_contested / shadow_viable). Service demand multiplier mechanics. Chokepoint identification. Elasticity classes with α modifiers.
|
||||
|
||||
---
|
||||
|
||||
## 1. The Luxury Goods Tension — Resolved
|
||||
|
||||
**The problem:** Calloway whisky (12–20y aging, terroir lock), Kvitfjell marble (800t/y geological ceiling), and VGV wine (F8V stellar lock) have radically different production constraints. But they are all "luxury goods." One commodity record cannot encode all three simultaneously without becoming three commodity records.
|
||||
|
||||
**The solution:** Per-site, location-bound production chains. The commodity record carries the category-level properties. The chain records carry the constraint-specific properties.
|
||||
|
||||
The `luxury_goods` commodity record:
|
||||
- `tier = final`
|
||||
- `production_ubiquity = monopolistic`
|
||||
- `elasticity_class = e4_elastic`
|
||||
- `base_price = 500T`
|
||||
|
||||
Each real-world luxury source has its own chain record:
|
||||
|
||||
| Chain ID | Location | Key inputs | Aging | Ceiling | Corporate archetype |
|
||||
|----------|----------|-----------|-------|---------|---------------------|
|
||||
| `luxury_calloway` | Calloway Reach | agri_produce(0.4), timber(0.15, cooperage), industrial_chemicals(0.05) | 12–20 game years | D-177 seeding bounds | Specialist |
|
||||
| `luxury_vgv_long` | Confluent (F8V) | agri_produce(0.5, F8V grapes), industrial_chemicals(0.03) | 5+ game years | F8V stellar lock | Monopolist |
|
||||
| `luxury_vgv_short` | Confluent (F8V) | agri_produce(0.5, F8V grapes) | 1–2 game years | F8V stellar lock | Producer |
|
||||
| `luxury_kvitfjell` | Kvitfjell/Nyrheim | stone_aggregate(1.0, Kvitfjell Blue) | None | 800t/y hard ceiling | Monopolist |
|
||||
| `luxury_thrds` | Braemar | organic_biomass(0.6, brach fiber), textiles_composites(0.3) | None | Herd ceiling; actively defended monopoly | Specialist |
|
||||
|
||||
**Brand premiums live in the corporate behavioral layer, not the commodity catalog.** The Specialist archetype running the `luxury_calloway` chain maintains elevated pricing through behavioral parameters. A Monopolist running `luxury_kvitfjell` holds pricing through the 800t/y ceiling constraint. The underlying `luxury_goods` commodity price reflects the aggregate market; corporate agents extract rent by being the only licensed operators of site-bound chains.
|
||||
|
||||
**Miri's VGV split (Grand Vide Classé vs. Vins de Corridors) is preserved without two commodity entries.** Two chains at the same site with different aging depths, run by VGV behaving as both Monopolist (long line) and Producer (short line) with different behavioral pricing parameters. The simulation sees one luxury_goods commodity; the player observes that VGV bottles trade at very different prices and can investigate why.
|
||||
|
||||
**The `aging_ticks` field on the chain record encodes the pipeline delay.** At game start, the Calloway pipeline already contains 12–20 years of maturing stock — D-177 states pipeline contents are fixed by lore, not seeded. The sim inherits this initial state and manages forward flow.
|
||||
|
||||
---
|
||||
|
||||
## 2. The Water→Fuel Chain (Lead Directive)
|
||||
|
||||
This is the most important structural change from Round 1. It resolves Tyre's "energy-as-non-physical carve-out" problem entirely.
|
||||
|
||||
**Water/volatiles** becomes an explicit raw material with `demand_model = utility`.
|
||||
|
||||
**Fusion fuel** becomes an intermediate — refined from water at low yield.
|
||||
|
||||
**Chain: `chain_fusion_fuel`**
|
||||
```
|
||||
inputs: water_volatiles (6.0)
|
||||
output: fusion_fuel (1.0)
|
||||
description: "Deuterium/tritium extraction via centrifuge and electrolysis.
|
||||
6 tonnes of water processed per tonne of fusion fuel.
|
||||
Processing overhead is baked into base_price markup, not
|
||||
modeled as an additional input."
|
||||
```
|
||||
|
||||
**Geographic implications:**
|
||||
- water_volatiles base_price ≈ 2T (near-free on ocean worlds and ice moons; expensive on bare-rock stations)
|
||||
- fusion_fuel base_price ≈ 30T (input cost: 12T of water + processing overhead)
|
||||
- Remote, dry stations pay full transport cost on both water AND fuel — compounding disadvantage
|
||||
- Ocean worlds and ice-moon systems have structural fuel production advantage
|
||||
- Every active station consumes fusion_fuel continuously (`demand_model = utility`): demand floor never drops to zero
|
||||
|
||||
**What this replaces:** My Round 1's R-06 (Energy raw: fissile, reaction mass) is removed. The fissile/nuclear concept is folded into the fusion model — the Reach runs on fusion power. "Energy-rich" systems in the lore = systems with ocean worlds or ice moons that can produce cheap water → cheap fuel. Tyre's `energy` commodity (non-physical, chain-input carve-out) is no longer needed; fusion_fuel is a standard transportable intermediate.
|
||||
|
||||
---
|
||||
|
||||
## 3. Unified Schema
|
||||
|
||||
### Commodity Record (`wiki/economics/commodities.toml`)
|
||||
|
||||
```toml
|
||||
[commodity_id]
|
||||
name = "..." # Display name, Title Case
|
||||
tier = "raw | intermediate | final | service_professional | service_luxury"
|
||||
elasticity_class = "e1_perfectly_inelastic | e2_inelastic | e3_moderate | e4_elastic | e5_location_bound"
|
||||
demand_model = "market | utility | compliance"
|
||||
base_price = 0.0 # Equilibrium price in Tractus; must be > 0
|
||||
bulk_class = "dense_bulk | standard | perishable | precision | oversized | non_physical"
|
||||
production_ubiquity = "ubiquitous | common | regional | concentrated | monopolistic"
|
||||
commission_cert_required = false # Commission must certify; costs Tractus; Compact friction
|
||||
compact_contested = false # Compact rejects Commission authority over this commodity
|
||||
shadow_viable = false # Shadow market routinely operates for this commodity
|
||||
panic_flagged = false # Critical supply: stockpile-target mechanism applies
|
||||
panic_threshold_weeks = 0 # Only set when panic_flagged = true
|
||||
unit = "tonnes | units | contracts"
|
||||
description = "..." # Optional flavor; wiki/UI tooltip
|
||||
```
|
||||
|
||||
**Field provenance and rationale:**
|
||||
|
||||
| Field | Source | Over alternative |
|
||||
|-------|--------|-----------------|
|
||||
| `tier` (5 values) | Tyre | Services as tiers rather than a separate file — clean single-record approach |
|
||||
| `elasticity_class` | Gestalt / Tyre | I defined numeric behavior + α modifiers; Tyre named the enum |
|
||||
| `demand_model` | Burnelli-Sheldon | Utility/compliance goods have floors that never go to zero — not derivable from elasticity alone |
|
||||
| `base_price` | Burnelli-Sheldon | Single equilibrium anchor; tâtonnement starts here |
|
||||
| `bulk_class` (6 values) | Gestalt (synthesized from B-S 5-class) | Transport cost multiplier; drives geographic price differentials |
|
||||
| `production_ubiquity` | Burnelli-Sheldon | Guides `generate_corporations` binary; determines initialization distribution |
|
||||
| `commission_cert_required` | Gestalt | Encodes the Assembly/Compact friction mechanism precisely |
|
||||
| `compact_contested` | Gestalt | Encodes "principled resistance" framing of D-174; not derivable from cert flag alone |
|
||||
| `shadow_viable` | Gestalt | Encodes shadow economy risk per commodity; interacts with node-level intensity |
|
||||
| `panic_flagged` + `panic_threshold_weeks` | Burnelli-Sheldon | Critical supply goods have qualitatively different shortage behavior |
|
||||
| `unit` | Tyre | Keeps chain recipe quantities unambiguous |
|
||||
|
||||
**Eliminated:**
|
||||
- Tyre's single `political_sensitivity` boolean → superseded by 3 sub-flags; lead-endorsed
|
||||
- Tyre's `transportable` → derivable from `bulk_class == non_physical`
|
||||
- Tyre's `energy` commodity (non-physical carve-out) → replaced by water→fuel chain
|
||||
|
||||
### Production Chain Record (`wiki/economics/production_chains.toml`)
|
||||
|
||||
```toml
|
||||
[chain_id]
|
||||
output = "commodity_id"
|
||||
output_quantity = 1.0 # Units produced per cycle; default 1.0
|
||||
inputs = [
|
||||
{ commodity = "commodity_id", quantity = 0.0 },
|
||||
]
|
||||
location_bound = false # If true, chain only operates at site_id
|
||||
site_id = "" # Body reference from systems.db; requires location_bound = true
|
||||
max_output_per_cycle = 0.0 # Optional hard ceiling (Kvitfjell 800t/y equivalent)
|
||||
aging_ticks = 0 # Optional pipeline delay (Calloway 12-20 game years)
|
||||
description = "..."
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## 4. Full Commodity List
|
||||
|
||||
### Raw Materials (8)
|
||||
|
||||
One raw added versus D-173's 7: `water_volatiles`, required by the water→fuel chain (lead directive). `stone_aggregate` absorbs my Round 1's `silicate_mineral`. `organic_biomass` absorbs my Round 1's `chemical_feedstock` (both are organic sources for the industrial chemicals chain). `timber` added as a separate raw from `organic_biomass` because its 40–60y recovery cycle and cooperage-specific use in the Calloway chain are mechanically distinct.
|
||||
|
||||
| ID | Name | Elasticity | Demand | Bulk class | Ubiquity | Cert | Contested | Shadow | Notes |
|
||||
|----|------|-----------|--------|-----------|---------|------|-----------|--------|-------|
|
||||
| `metallic_ore` | Metallic Ore | E-2 | market | dense_bulk | common | No | No | No | Stalownia primary; asteroid and planetary mines |
|
||||
| `stone_aggregate` | Stone / Aggregate | E-3 | market | dense_bulk | common | No | No | Partial | Kvitfjell Blue marble = monopolistic luxury variant; standard aggregate ubiquitous |
|
||||
| `agricultural_produce` | Agricultural Produce | E-1 | utility | perishable | ubiquitous | Partial | No | No | Crops, grain, grapes, livestock; F8V and terroir constraints per site |
|
||||
| `organic_biomass` | Organic Biomass | E-2 | market | standard | regional | No | No | No | Brach fiber (Braemar hard lock), marine catch, biological feedstock; chemical chain input |
|
||||
| `water_volatiles` | Water / Volatiles | E-1 | utility | dense_bulk | ubiquitous | No | No | No | Ocean worlds cheap; bare-rock stations expensive; primary fusion fuel input |
|
||||
| `rare_minerals` | Rare Minerals | E-3 | market | precision | concentrated | No | No | Partial | Rare earths, crystals; 5–10 systems; electronics and alloys bottleneck |
|
||||
| `timber` | Timber | E-3 | market | perishable | regional | No | No | No | Nordmark structural; Dunbar cooperage grade (Calloway chain); 40–60y recovery cycle |
|
||||
| `lattice_grade_material` | Lattice-Grade Material | E-4 | market | precision | monopolistic | Yes (strategic) | No | High | East reach anchor export; neural/gate substrate; Gate Corp strategic interest; no substitute |
|
||||
|
||||
### Intermediate Goods (8)
|
||||
|
||||
`fusion_fuel` replaces my Round 1's `power_cell_fuel` (renamed and now derived from water). `electronics_components` absorbs the "fabricated components" dependency role — it is now the intermediate required by the most finals. `structural_materials` has two production chain routes (stone or timber), giving flexibility in supply.
|
||||
|
||||
| ID | Name | Primary inputs | Elasticity | Bulk class | Ubiquity | Cert | Contested | Shadow | Notes |
|
||||
|----|------|---------------|-----------|-----------|---------|------|-----------|--------|-------|
|
||||
| `refined_metals` | Refined Metals | metallic_ore | E-2 | standard | common | No | No | No | Smelted steel and alloys; Stalownia processes |
|
||||
| `structural_materials` | Structural Materials | stone_aggregate OR timber + refined_metals | E-3 | oversized | regional | No | No | No | Prefab panels, construction composites; two substitute routes |
|
||||
| `processed_food` | Processed Food | agricultural_produce OR organic_biomass | E-1 | standard | common | Partial | No | No | Shelf-stable; fisheries = second route; Mercado distribution |
|
||||
| `textiles_composites` | Textiles / Composites | organic_biomass | E-3 | standard | regional | No | No | No | Clothing, technical fabrics; brach fiber variant = premium Braemar-locked route |
|
||||
| `industrial_chemicals` | Industrial Chemicals | organic_biomass | E-2 | standard | regional | Yes (hazmat) | Yes | Yes | Pharma, solvents, reagents; cert = Assembly tariff by another name |
|
||||
| `electronics_components` | Electronics / Components | rare_minerals + refined_metals | E-3 | precision | concentrated | No | No | No | Circuits, processors; rare minerals bottleneck cascades to implants, gates, vehicles |
|
||||
| `fusion_fuel` | Fusion Fuel | water_volatiles (6:1 input) | E-1 | standard | common | Yes (safety) | Yes | Yes | 6t water → 1t fuel; every station consumes continuously; water-rich systems have structural advantage |
|
||||
| `lattice_substrate` | Lattice Substrate | lattice_grade_material | E-2 | precision | monopolistic | Yes (strategic) | No | High | No substitute; feeds implant_hardware and gate_infrastructure — THE dual chokepoint |
|
||||
|
||||
### Final Goods (7)
|
||||
|
||||
`habitat_modules` (Burnelli-Sheldon's F7) is folded into `heavy_industrial_equipment` as a production chain variant. Its demand function (population-driven) is handled at the corporate behavioral layer, not the commodity catalog. Count stays at 7.
|
||||
|
||||
| ID | Name | Inputs | Elasticity | Bulk class | Ubiquity | Cert | Contested | Shadow | Notes |
|
||||
|----|------|--------|-----------|-----------|---------|------|-----------|--------|-------|
|
||||
| `heavy_industrial_equipment` | Heavy Industrial Equipment | refined_metals + electronics_components + structural_materials | E-4 | oversized | regional | No | No | No | Stalownia rigs, Cygni B station sections; 1–3y lead time; B-5 means manufacturing hubs are structural |
|
||||
| `consumer_goods` | Consumer Goods | processed_food + textiles_composites | E-3 | standard | common | No | No | Partial | Daily necessities; uncertified variants undercut in low-coverage nodes |
|
||||
| `luxury_goods` | Luxury Goods | [5 site-bound chains — see §1] | E-4 | precision/oversized | monopolistic | Partial | No | Yes | One catalog entry; brand in corporate behavior; biological ceilings on production chains |
|
||||
| `transport_vehicles` | Transport Vehicles | refined_metals + fusion_fuel + electronics_components | E-4 | oversized | regional | Yes (safety) | Partial | Partial | Ships, MVG; Commission registration; Compact often operates unregistered |
|
||||
| `implant_hardware` | Implant Hardware | lattice_substrate + electronics_components | E-4 | precision | concentrated | Yes (medical) | High | High | THE political flashpoint; D-037 adjacent; Commission cert = THE Compact grievance |
|
||||
| `gate_infrastructure` | Gate / Infrastructure | refined_metals + lattice_substrate + electronics_components + fusion_fuel | E-4 | oversized | monopolistic | Yes (strategic) | Extreme | High | Gate Corp monopoly + Commission cert = maximum structural extraction; double chokepoint dependency |
|
||||
| `medical_goods` | Medical Goods | industrial_chemicals + electronics_components | E-2 | precision | regional | Yes (medical) | Partial | High | Healthcare + re-embodiment supporting goods; D-174 canonical contraband adjacent |
|
||||
|
||||
---
|
||||
|
||||
## 5. Service List (9 total)
|
||||
|
||||
**Why 6 professional services (not 5):** Commission certification has `demand_model = compliance`, is only available in Commission-presence systems, and is mechanically the smuggling incentive mechanism from D-174. It cannot be collapsed into legal_services without losing that behavior. The lead directive explicitly endorsed it.
|
||||
|
||||
**Why logistics management was removed:** Logistics management is redundant with the transport cost model. The 5–12%/hop gate cost already encodes logistics overhead. Sova Logistics and other logistics corporations operate on `commercial_intelligence` and `habitation_berths` (berth and route management), not a separate logistics-management service commodity.
|
||||
|
||||
**Why re_embodiment is not collapsed into medical_goods:** Medical goods is a transportable physical commodity. Re_embodiment is a location-bound procedure. Different bulk class (non_physical vs. precision), different demand model (compliance vs. market), different shadow economy profile. D-174 names unlicensed re-embodiment as canonical contraband — the licensed service must be distinct.
|
||||
|
||||
### Professional Services (6)
|
||||
|
||||
| ID | Name | Demand | Cert | Contested | Shadow | Key simulation behavior |
|
||||
|----|------|--------|------|-----------|--------|------------------------|
|
||||
| `legal_services` | Legal Services | market | No | No | Partial | Demand = f(economic activity, dispute rate); FM south reach, Crown's Hollow west reach |
|
||||
| `commission_certification` | Commission Certification | compliance | N/A (IS certification) | High | High | Demand = f(regulated goods production); only in Commission-presence nodes; IS the smuggling incentive from D-174 |
|
||||
| `financial_services` | Financial Services | market | No | Partial | Partial | Tractus velocity; cross-zone trade friction; Groombridge clearing house = priority Tier 1 gap |
|
||||
| `insurance` | Insurance | market | No | No | No | Affects trade volume via risk pricing; no goods demand; mutual insurance in south reach |
|
||||
| `commercial_intelligence` | Commercial Intelligence | market | No | No | Partial | Improves `official_coverage_ratio` signal; consolidates B-S's "information brokerage" per lead directive |
|
||||
| `habitation_berths` | Habitation / Berths | utility | No | No | Partial | Covers D-131 "rent" verb; fixed supply per node; booming nodes run out of berths → real estate signal |
|
||||
|
||||
### Luxury / Experiential Services (3)
|
||||
|
||||
| ID | Name | Demand | Notes |
|
||||
|----|------|--------|-------|
|
||||
| `tourism` | Tourism | market | Pulls luxury_goods and consumer_goods demand; deep-corridor prestige; Confluent estates, Calloway distillery circuit |
|
||||
| `entertainment_media` | Entertainment / Media | market | Holo-content, cultural production; pulls fusion_fuel and electronics_components |
|
||||
| `re_embodiment` | Re-embodiment Services | compliance | Commission-licensed; Prometheus-adjacent; shadow market = unlicensed (D-174 canonical); `demand_model = compliance` because clients go where licensed facilities exist |
|
||||
|
||||
---
|
||||
|
||||
## 6. Complete Chain Graph (Summary)
|
||||
|
||||
### Raws → Intermediates
|
||||
|
||||
| Chain ID | Output | Inputs | Sub routes? |
|
||||
|----------|--------|--------|------------|
|
||||
| `ore_smelting` | refined_metals | metallic_ore(2.0) | — |
|
||||
| `stone_panel_fab` | structural_materials | stone_aggregate(1.5) + refined_metals(0.5) | Substitute for timber route |
|
||||
| `timber_panel_fab` | structural_materials | timber(1.0) + refined_metals(0.3) | Substitute for stone route; Nordmark territory |
|
||||
| `food_processing` | processed_food | agricultural_produce(1.5) | Main food chain |
|
||||
| `seafood_processing` | processed_food | organic_biomass(1.2) | Alternative; east reach fisheries anchor |
|
||||
| `fiber_processing` | textiles_composites | organic_biomass(0.8) | Brach fiber = premium Braemar-locked variant of same chain |
|
||||
| `chemical_synthesis` | industrial_chemicals | organic_biomass(1.0) | Pharma + industrial reagents |
|
||||
| `electronics_fab` | electronics_components | rare_minerals(0.5) + refined_metals(0.3) | Rare minerals bottleneck |
|
||||
| `fusion_fuel_extraction` | fusion_fuel | water_volatiles(6.0) | Low yield; key new chain |
|
||||
| `lattice_processing` | lattice_substrate | lattice_grade_material(1.0) | No substitute |
|
||||
|
||||
### Intermediates → Finals
|
||||
|
||||
| Chain ID | Output | Inputs |
|
||||
|----------|--------|--------|
|
||||
| `industrial_assembly` | heavy_industrial_equipment | refined_metals(1.0) + electronics_components(0.3) + structural_materials(0.5) |
|
||||
| `consumer_assembly` | consumer_goods | processed_food(0.3) + textiles_composites(0.3) |
|
||||
| `luxury_calloway` | luxury_goods | agricultural_produce(0.4) + timber(0.15, cooperage) + industrial_chemicals(0.05) |
|
||||
| `luxury_vgv_long` | luxury_goods | agricultural_produce(0.5, F8V grapes) + industrial_chemicals(0.03) |
|
||||
| `luxury_vgv_short` | luxury_goods | agricultural_produce(0.5, F8V grapes) |
|
||||
| `luxury_kvitfjell` | luxury_goods | stone_aggregate(1.0, Kvitfjell Blue) |
|
||||
| `luxury_thrds` | luxury_goods | organic_biomass(0.6, brach fiber) + textiles_composites(0.3) |
|
||||
| `vehicle_assembly` | transport_vehicles | refined_metals(0.8) + fusion_fuel(0.3) + electronics_components(0.3) |
|
||||
| `implant_manufacturing` | implant_hardware | lattice_substrate(0.5) + electronics_components(0.3) |
|
||||
| `gate_construction` | gate_infrastructure | refined_metals(1.0) + lattice_substrate(0.5) + electronics_components(0.4) + fusion_fuel(0.2) |
|
||||
| `medical_manufacturing` | medical_goods | industrial_chemicals(0.3) + electronics_components(0.2) |
|
||||
|
||||
---
|
||||
|
||||
## 7. Chokepoints — Updated for Round 2
|
||||
|
||||
Three chokepoints drive gameplay tension, same locations as Round 1 but one upgraded:
|
||||
|
||||
**1. Lattice chain: lattice_grade_material → lattice_substrate → implant_hardware + gate_infrastructure**
|
||||
- Still the richest chokepoint
|
||||
- Now strengthened: `gate_infrastructure` requires lattice_substrate AND fusion_fuel (two chokepoints converge on gates)
|
||||
- Geographic anchor: east reach. If east reach lattice-grade material exports are disrupted, both Commission-certified implants AND gate maintenance cascade
|
||||
|
||||
**2. Electronics cascade: rare_minerals → electronics_components**
|
||||
- Required by: transport_vehicles, implant_hardware, gate_infrastructure, heavy_industrial_equipment, medical_goods
|
||||
- That's 5 of 7 finals
|
||||
- Replaces my Round 1's "fabricated components" as the broad dependency
|
||||
- Rare minerals at 5–10 systems means geographic concentration; a single region controlling rare mineral supply has leverage over ALL manufacturing
|
||||
|
||||
**3. Luxury goods biological ceilings**
|
||||
- Now structurally encoded in per-chain `max_output_per_cycle` and `aging_ticks` fields
|
||||
- The player observes that no amount of economic activity can increase Kvitfjell marble output past 800t/y
|
||||
- This is the simulation teaching its own rules: some scarcity is structural, not addressable through trade
|
||||
|
||||
---
|
||||
|
||||
## 8. Base Prices (Reference Table)
|
||||
|
||||
Building on Burnelli-Sheldon's margin analysis, adjusted for the water→fuel chain.
|
||||
|
||||
| Commodity | Base price (T) | Key margin note |
|
||||
|-----------|--------------|----------------|
|
||||
| water_volatiles | 2 | Near-free on ocean worlds; expensive on dry stations |
|
||||
| agricultural_produce | 5 | Common output; staple food chain anchor |
|
||||
| stone_aggregate | 8 | Ubiquitous; Kvitfjell Blue commands 15–50× at source |
|
||||
| metallic_ore | 10 | Bulk mining reference commodity |
|
||||
| organic_biomass | 18 | Complex biospheres only; brach fiber in premium tier |
|
||||
| timber | 15 | Less common; cooperage grade commands premium |
|
||||
| rare_minerals | 80 | Scarce; location-specific; electronics bottleneck |
|
||||
| lattice_grade_material | 120 | Strategic; monopolistic; east reach anchor |
|
||||
| refined_metals | 28 | ~180% margin on ore; bulk volume |
|
||||
| structural_materials | 40 | Input cost ~25T; moderate margin |
|
||||
| processed_food | 15 | Near-input-cost; high volume, low margin |
|
||||
| textiles_composites | 50 | Value-add from organic biomass |
|
||||
| industrial_chemicals | 60 | Higher value-add; hazmat cert adds friction |
|
||||
| electronics_components | 120 | High value-add from rare minerals bottleneck |
|
||||
| fusion_fuel | 30 | 12T input (6× water) + ~18T processing overhead |
|
||||
| lattice_substrate | 180 | Near-input-cost; value is the raw material scarcity |
|
||||
| heavy_industrial_equipment | 250 | Complex assembly; B-5 bulk protects manufacturing hubs |
|
||||
| consumer_goods | 80 | Mass market; broad input mix |
|
||||
| luxury_goods | 500 | Price is demand-driven, not cost-driven; brand premium in corporate layer |
|
||||
| transport_vehicles | 350 | Three-input assembly; fusion_fuel dependency |
|
||||
| implant_hardware | 400 | Enormous value-add; political premium |
|
||||
| gate_infrastructure | 800 | Monopoly pricing; strategic premium; four-input cascade |
|
||||
| medical_goods | 150 | High-value; regulatory overhead in cert cost |
|
||||
|
||||
---
|
||||
|
||||
## 9. Delta from Round 1
|
||||
|
||||
| Change | Round 1 | Round 2 | Why |
|
||||
|--------|---------|---------|-----|
|
||||
| Energy raw removed | R-06 (fissile, reaction mass) | Removed | Lead directive; replaced by water→fuel chain |
|
||||
| Raw count | 7 | 8 | water_volatiles required; directive-driven |
|
||||
| Silicate/mineral | Separate raw | Merged into stone_aggregate | Same production chains |
|
||||
| Chemical feedstock | Separate raw (R-05) | Merged into organic_biomass | Both organic sources for industrial chemicals |
|
||||
| Fabricated components | Separate intermediate | Dissolved; electronics_components inherits role | Electronics is the natural high-tech bottleneck |
|
||||
| Timber | Not separate | Added as 8th raw | Cooperage dependency; 40–60y recovery is distinct behavior |
|
||||
| Luxury goods | One commodity, no chain detail | One commodity, 5 site-bound chains with aging_ticks and ceilings | Resolves brand vs. commodity tension |
|
||||
| Services | 5 professional + 3 luxury | 6 professional + 3 luxury | Commission certification added per lead directive |
|
||||
| Logistics management | In service list | Removed | Redundant with transport cost model |
|
||||
| Schema: political_sensitivity | 1 boolean | 3 sub-flags | Lead-endorsed; richer encoding |
|
||||
| Schema: production_ubiquity | Absent | Added | B-S contribution; initialization distribution |
|
||||
| Schema: demand_model | Absent | Added | B-S contribution; utility/compliance tâtonnement behavior |
|
||||
| Schema: panic_flagged | Absent | Added | B-S contribution; stockpile mechanism |
|
||||
|
||||
---
|
||||
|
||||
## 10. Outstanding Questions for Round 3
|
||||
|
||||
**Q1: Rare minerals vs. lattice-grade material — one or two raws?**
|
||||
I kept them separate: rare_minerals feeds electronics_components and advanced manufacturing broadly; lattice_grade_material is the specialized neural/gate substrate. If we collapse them, east reach loses its distinctive export identity (it would just be another rare minerals source). Recommendation: keep separate.
|
||||
|
||||
**Q2: thrds garments — luxury_goods or consumer_goods output?**
|
||||
Argument for luxury: brach exclusivity makes it a prestige product. Argument for consumer: north reach workers treat it as functional gear, not luxury. My proposal puts it in luxury_goods with Specialist markup. If we want thrds penetration in everyday outer-corridor markets, it might need a consumer_goods production variant alongside the luxury output. Worth discussion.
|
||||
|
||||
**Q3: Habitat modules as a separate final?**
|
||||
Burnelli-Sheldon argued for distinct demand function (population-driven vs. industrial-driven). I folded it into heavy_industrial_equipment as a production chain variant. If the simulation needs to model new-settlement expansion as a distinct signal, habitat_modules may need its own entry. Flagged.
|
||||
|
||||
**Q4: water_volatiles bulk class**
|
||||
I set it as `dense_bulk` (shippable as ice or liquid). Is there an argument for splitting the bulk class into "water-as-infrastructure" (local plumbing, not a cargo item) vs. "water-as-cargo" (ice hauled from a distant source)? Or does `dense_bulk` handle both cases correctly via transport cost?
|
||||
|
||||
---
|
||||
|
||||
**Total: 8 raw + 8 intermediate + 7 final + 9 services = 32 commodity types.**
|
||||
|
||||
One above Burnelli-Sheldon's 32 (we have the same count by different routes). Within D-173's "approximately 30" spirit. The additions are lead-directive-driven (water/fuel chain, commission_certification) — not scope creep.
|
||||
@@ -0,0 +1,392 @@
|
||||
# Gestalt — #801 Commodity Catalog Validation Report
|
||||
|
||||
**Files validated:**
|
||||
- `docs/workshops/commodity-catalog/commodities-final.toml` (38 commodities)
|
||||
- `docs/workshops/commodity-catalog/production-chains-final.toml` (21 chains)
|
||||
- `docs/workshops/commodity-catalog/schema-final.md` (schema + validation rules)
|
||||
|
||||
**Date:** 2026-04-05
|
||||
|
||||
---
|
||||
|
||||
## 1. Chain Graph Completeness
|
||||
|
||||
### 1a. All chain inputs reference valid commodity IDs
|
||||
|
||||
Cross-checked every `inputs[].commodity` value against the commodity list:
|
||||
|
||||
| Input referenced | Exists in catalog? |
|
||||
|-----------------|-------------------|
|
||||
| metallic_ore | ✓ |
|
||||
| rare_minerals | ✓ |
|
||||
| lattice_grade_material | ✓ |
|
||||
| water | ✓ |
|
||||
| agricultural_produce | ✓ |
|
||||
| organic_compounds | ✓ |
|
||||
| stone | ✓ |
|
||||
| chemical_feedstock | ✓ |
|
||||
| timber | ✓ |
|
||||
| refined_metals | ✓ |
|
||||
| advanced_alloys | ✓ |
|
||||
| electronics | ✓ |
|
||||
| chemicals | ✓ |
|
||||
| processed_food | ✓ |
|
||||
| textiles | ✓ |
|
||||
| structural_panels | ✓ |
|
||||
| drive_cores | ✓ |
|
||||
| lattice_substrate | ✓ |
|
||||
|
||||
**Result: PASS — no dangling references.**
|
||||
|
||||
### 1b. Every non-service commodity appears as chain input or output
|
||||
|
||||
**Raws (9) — checked as chain inputs:**
|
||||
|
||||
| Commodity | Appears in chain inputs? |
|
||||
|-----------|------------------------|
|
||||
| metallic_ore | ✓ (smelt_ore, alloy_fabrication) |
|
||||
| rare_minerals | ✓ (alloy_fabrication, electronics_fabrication, drive_core_assembly) |
|
||||
| lattice_grade_material | ✓ (lattice_processing) |
|
||||
| timber | ✓ (panel_from_timber) |
|
||||
| agricultural_produce | ✓ (food_processing) |
|
||||
| water | ✓ (fuel_refining, food_processing, chemical_processing, chemical_from_organics) |
|
||||
| organic_compounds | ✓ (chemical_from_organics, textile_production) |
|
||||
| stone | ✓ (panel_from_stone) |
|
||||
| chemical_feedstock | ✓ (chemical_processing) |
|
||||
|
||||
**Result: PASS — all raws consumed in chains.**
|
||||
|
||||
**Intermediates (10) — checked as chain outputs AND inputs:**
|
||||
|
||||
| Commodity | As chain output | As chain input |
|
||||
|-----------|----------------|---------------|
|
||||
| refined_metals | ✓ (smelt_ore) | ✓ (electronics_fabrication, panel_from_timber, panel_from_stone, heavy_equipment_assembly, freight_hauler_construction, rail_construction) |
|
||||
| advanced_alloys | ✓ (alloy_fabrication) | ✓ (drive_core_assembly, vehicle_manufacturing, medical_goods_production, gate_component_assembly) |
|
||||
| fusion_fuel | ✓ (fuel_refining) | **⚠ NOT FOUND AS CHAIN INPUT** |
|
||||
| processed_food | ✓ (food_processing) | ✓ (consumer_goods_assembly) |
|
||||
| electronics | ✓ (electronics_fabrication) | ✓ (8 of 9 finals + lattice_processing uses chemicals which uses feedstock) |
|
||||
| chemicals | ✓ (chemical_processing, chemical_from_organics) | ✓ (textile_production, lattice_processing, implant_fabrication, medical_goods_production, habitat_module_assembly) |
|
||||
| textiles | ✓ (textile_production) | ✓ (consumer_goods_assembly) |
|
||||
| structural_panels | ✓ (panel_from_timber, panel_from_stone) | ✓ (habitat_module_assembly, rail_construction) |
|
||||
| drive_cores | ✓ (drive_core_assembly) | ✓ (heavy_equipment_assembly, vehicle_manufacturing, freight_hauler_construction, gate_component_assembly) |
|
||||
| lattice_substrate | ✓ (lattice_processing) | ✓ (implant_fabrication, gate_component_assembly) |
|
||||
|
||||
**Result: PASS with one design-decision flag on fusion_fuel (see §1c below).**
|
||||
|
||||
**Finals (9) — checked as chain outputs only (must not appear as inputs):**
|
||||
|
||||
All 9 finals (heavy_equipment, transport_vehicles, freight_haulers, consumer_goods, implant_hardware, medical_goods, gate_components, habitat_modules, rail_infrastructure) appear as chain outputs and do NOT appear as any chain input.
|
||||
|
||||
**Result: PASS — finals are correctly end-of-chain.**
|
||||
|
||||
### 1c. ⚠ Fusion Fuel — Design Decision Flag
|
||||
|
||||
`fusion_fuel` is produced by `fuel_refining` but does not appear as an input in any production chain. Its consumption is handled entirely by `demand_model = utility` (exogenous population/station consumption) and `panic_threshold_weeks = 2`.
|
||||
|
||||
**This is not a bug — it is an intentional architectural decision.** Fusion fuel is not a manufacturing input; it is consumed as operational overhead by every active node. The Leontief matrix has zero entries for fusion_fuel as a chain input; demand comes from the utility model.
|
||||
|
||||
**The sim must handle this explicitly:** without a utility demand injection mechanism, fusion_fuel's price will collapse to equilibrium-at-zero-demand (no buyers in the Leontief matrix). The `demand_model = utility` field is the signal to the sim that these commodities require a separate exogenous demand floor calculation.
|
||||
|
||||
Recommend documenting this in the server team's simulation implementation notes: **utility commodities (water, fusion_fuel, agricultural_produce, processed_food) have demand floors generated outside the Leontief matrix, driven by node population × per-capita consumption rate.**
|
||||
|
||||
Water also has this property, but water at least appears in 4 chain inputs — so it has BOTH Leontief chain demand AND utility demand. Fusion_fuel has ONLY utility demand.
|
||||
|
||||
### 1d. No Circular Dependencies
|
||||
|
||||
The chain graph is a strict DAG: Raw → Intermediate → Final. No intermediate produces a raw; no final feeds back to an intermediate. The only multi-level intermediate dependency is:
|
||||
|
||||
```
|
||||
metallic_ore + rare_minerals → advanced_alloys → drive_cores
|
||||
rare_minerals ──────────────────────────────↗
|
||||
```
|
||||
|
||||
`rare_minerals` feeds `advanced_alloys` which feeds `drive_cores` which feeds `advanced_alloys` — **WAIT.** Does `drive_core_assembly` use `advanced_alloys` as input? Let me verify:
|
||||
|
||||
```toml
|
||||
[drive_core_assembly]
|
||||
inputs = [
|
||||
{ commodity = "rare_minerals", quantity = 0.4 },
|
||||
{ commodity = "advanced_alloys", quantity = 0.8 },
|
||||
]
|
||||
```
|
||||
|
||||
And `alloy_fabrication` uses `metallic_ore` + `rare_minerals` — not `drive_cores`. So the chain is:
|
||||
- metallic_ore + rare_minerals → advanced_alloys
|
||||
- rare_minerals + advanced_alloys → drive_cores
|
||||
|
||||
No cycle: advanced_alloys does NOT depend on drive_cores. ✓
|
||||
|
||||
**Result: PASS — the chain graph is a valid DAG with no circular dependencies.**
|
||||
|
||||
---
|
||||
|
||||
## 2. Cascade Analysis
|
||||
|
||||
### The Three Chokepoints
|
||||
|
||||
**Chokepoint 1: lattice_grade_material → lattice_substrate → implant_hardware + gate_components**
|
||||
|
||||
Status: **INTACT AND STRENGTHENED.**
|
||||
|
||||
New addition versus Round 2: `lattice_processing` now takes `chemicals (0.3)` as a second input alongside `lattice_grade_material (1.0)`. This means the lattice chain now has a second upstream dependency — a chemicals disruption also cascades to lattice_substrate.
|
||||
|
||||
Cascade path:
|
||||
```
|
||||
lattice_grade_material (monopolistic, cert required, shadow viable)
|
||||
↓ lattice_processing (also needs chemicals)
|
||||
lattice_substrate (concentrated, cert required, shadow viable)
|
||||
↓ implant_fabrication ↓ gate_component_assembly
|
||||
implant_hardware gate_components
|
||||
(cert+contested+shadow) (cert+contested+shadow, monopolistic)
|
||||
```
|
||||
|
||||
Both terminals are commission_certified + compact_contested + shadow_viable. A lattice_grade_material shortage disrupts both at once. The chemicals dependency adds a second, less geographic chokepoint.
|
||||
|
||||
Politically, this means: the Compact's shadow market for implant_hardware is structurally linked to the lattice_grade_material supply chain, which is east-reach anchored. Disrupting east-reach exports affects the formal market everywhere and the shadow market in the Compact zone.
|
||||
|
||||
**Chokepoint 2: rare_minerals → electronics + advanced_alloys + drive_cores → nearly all finals**
|
||||
|
||||
Status: **INTACT.**
|
||||
|
||||
Rare_minerals feeds 3 intermediates directly:
|
||||
- → electronics (via electronics_fabrication)
|
||||
- → advanced_alloys (via alloy_fabrication, with metallic_ore)
|
||||
- → drive_cores (via drive_core_assembly, with advanced_alloys — DOUBLE rare_minerals dependency)
|
||||
|
||||
Downstream impact:
|
||||
- electronics → 8 of 9 finals (all except gate_components)
|
||||
- advanced_alloys → transport_vehicles, medical_goods, gate_components
|
||||
- drive_cores → heavy_equipment, transport_vehicles, freight_haulers, gate_components
|
||||
|
||||
gate_components is the only final without direct electronics dependency, but has TRIPLE rare_minerals exposure (direct via drive_cores, via advanced_alloys, via drive_cores-through-advanced_alloys).
|
||||
|
||||
A rare_minerals shortage cascades to the ENTIRE manufacturing sector. This is correctly the dominant structural chokepoint.
|
||||
|
||||
**Chokepoint 3: water → fusion_fuel (8:1) + processed_food + chemicals**
|
||||
|
||||
Status: **INTACT, BROADER THAN NOTED IN schema-final.md.**
|
||||
|
||||
Water feeds 4 chains:
|
||||
- fuel_refining (8.0 water → 1.0 fuel) — 8:1 ratio means water disruption = 8x amplified fuel shortage
|
||||
- food_processing (0.2 water) — utility demand, inelastic
|
||||
- chemical_processing (0.5 water) — primary chemicals route
|
||||
- chemical_from_organics (0.3 water) — secondary chemicals route
|
||||
|
||||
schema-final.md lists only the water→fuel cascade. The chemicals cascade through water is equally important: chemicals feeds textile_production, lattice_processing, implant_fabrication, medical_goods_production, habitat_module_assembly. A severe water shortage disrupts BOTH food AND fuel AND the chemicals supply chain.
|
||||
|
||||
Water is the most widely consumed raw in the chain graph — 4 chain inputs. Combined with `panic_threshold_weeks = 1` (the shortest threshold, life-or-death hoarding), water disruption is the single most catastrophic event possible in the simulation.
|
||||
|
||||
### rail_infrastructure Analysis
|
||||
|
||||
`rail_construction` inputs: structural_panels (1.5), electronics (0.3), refined_metals (1.0)
|
||||
|
||||
**Sensible inputs:** ✓
|
||||
- structural_panels → track foundations, station structures, tunnels
|
||||
- electronics → signaling, control systems, communications
|
||||
- refined_metals → rail, brackets, structural fittings
|
||||
|
||||
**Interesting supply chain dependencies created:**
|
||||
|
||||
1. **rail competes with habitat_modules for structural_panels.** Both finals depend heavily on structural_panels:
|
||||
- habitat_modules: 1.2 structural_panels
|
||||
- rail_infrastructure: 1.5 structural_panels
|
||||
A timber shortage (D-177: 40-60y recovery) forces a choice: build homes or build transit. This is a genuine resource allocation tension without any scripting.
|
||||
|
||||
2. **rail touches the electronics bottleneck.** A rare_minerals shortage cascades to rail signaling systems, not just ships and implants. Every major planetary transit project competes with shipbuilding and implant manufacturing for rare_minerals.
|
||||
|
||||
3. **rail is non-Commission-certified and non-compact_contested.** Unlike vehicles and freight_haulers, rail_infrastructure has no political friction. It's a neutral good — both Assembly and Compact systems build rail. This creates an interesting gap: a Compact world can build its own transit infrastructure without Assembly approval, reducing its dependency on certified vehicles.
|
||||
|
||||
One note: rail_infrastructure is `unit_elastic` and `oversized`. The `oversized` bulk class (2.0x multiplier, 16%/hop) means that once rails are manufactured, shipping them between systems is extremely expensive. This correctly implies that rail is built near source materials — planetary transit is a local-production affair.
|
||||
|
||||
**Verdict: rail_infrastructure is a clean addition.** It creates genuine panel competition with habitat_modules, touches the electronics chokepoint, and has a meaningful political identity (neutral, non-certified, accessible to both blocs).
|
||||
|
||||
---
|
||||
|
||||
## 3. D-175 Archetype Coverage
|
||||
|
||||
### 28 Lore-Taxonomy Archetypes
|
||||
|
||||
**Extraction (5):**
|
||||
| Archetype | Commodity slot |
|
||||
|-----------|---------------|
|
||||
| Ore mining | metallic_ore ✓ |
|
||||
| Gas extraction | chemical_feedstock ✓ |
|
||||
| Quarrying | stone ✓, lattice_grade_material ✓ |
|
||||
| Deep ocean fishery | organic_compounds ✓ (marine biological feedstock) |
|
||||
| Maritime salvage | metallic_ore ✓ (salvaged metals) |
|
||||
|
||||
**Agriculture (6):**
|
||||
| Archetype | Commodity slot |
|
||||
|-----------|---------------|
|
||||
| Grain | agricultural_produce ✓ |
|
||||
| Livestock | agricultural_produce ✓ |
|
||||
| Viticulture | agricultural_produce ✓ (grapes are agricultural produce; brand layer handles VGV) |
|
||||
| Whisky distilling | agricultural_produce ✓ (grain), timber ✓ (cooperage wood) |
|
||||
| Biomass farming | organic_compounds ✓ |
|
||||
| Fermentation cooperative | agricultural_produce ✓ (fermentation inputs) |
|
||||
|
||||
**Manufacturing (6):**
|
||||
| Archetype | Commodity slot |
|
||||
|-----------|---------------|
|
||||
| Heavy industry | heavy_equipment ✓ |
|
||||
| Shipbuilding | transport_vehicles ✓, freight_haulers ✓ |
|
||||
| Precision instruments | electronics ✓, drive_cores ✓, lattice_substrate ✓ |
|
||||
| Textile/craft guild | textiles ✓ |
|
||||
| Implant manufacturing | implant_hardware ✓ |
|
||||
| Pharmaceuticals | medical_goods ✓, chemicals ✓ |
|
||||
|
||||
**Trade/logistics (4):**
|
||||
| Archetype | Commodity slot |
|
||||
|-----------|---------------|
|
||||
| Freight | freight_haulers ✓ |
|
||||
| Gate operations | gate_components ✓ |
|
||||
| Distribution | transport_vehicles ✓, consumer_goods ✓ |
|
||||
| Broker | commercial_intelligence ✓, financial_services ✓ |
|
||||
|
||||
**Services (6):**
|
||||
| Archetype | Commodity slot |
|
||||
|-----------|---------------|
|
||||
| Legal | legal_services ✓ |
|
||||
| Banking | financial_services ✓ |
|
||||
| Insurance | insurance ✓ |
|
||||
| Logistics management | ⚠ commercial_intelligence ✓ (partial fit; no dedicated service) |
|
||||
| Information brokerage | commercial_intelligence ✓ |
|
||||
| Cultural experience | tourism ✓, entertainment ✓, hospitality ✓ |
|
||||
|
||||
**Intelligence (1):**
|
||||
| Archetype | Commodity slot |
|
||||
|-----------|---------------|
|
||||
| Commercial intelligence | commercial_intelligence ✓ |
|
||||
|
||||
**5 East-reach archetypes:**
|
||||
All 5 (maritime salvage, precision instruments, fermentation cooperative, maritime fishery, textile/craft guild) have commodity slots — covered under Extraction and Manufacturing above.
|
||||
|
||||
### ⚠ Logistics Management — Minor Gap
|
||||
|
||||
The "logistics management" archetype has no dedicated service commodity. Per the team's decision, logistics management was removed as redundant with the transport cost model. Logistics corporations (Sova and equivalents) can operate on `commercial_intelligence` (route optimization, buffer stock management) and `transport_vehicles`/`freight_haulers` (fleet operations). This is an acceptable fit — the archetype can operate, just without a dedicated commodity slot.
|
||||
|
||||
**This is a design choice, not an error.** Worth documenting for the corporation data authoring phase.
|
||||
|
||||
### 6 Behavioral Archetypes
|
||||
|
||||
| Archetype | Commodity mapping |
|
||||
|-----------|------------------|
|
||||
| Monopolist | Gate Corp → gate_components; Bifröst Marmor → stone; lattice producers → lattice_grade_material |
|
||||
| Distributor | Sova → freight_haulers + commercial_intelligence |
|
||||
| Producer | Stalownia → heavy_equipment; generic manufacturers |
|
||||
| Specialist | Brand layer corporations buying raws (Calloway → agricultural_produce + timber) |
|
||||
| Cooperative | East reach → organic_compounds / agricultural_produce; brach fiber → organic_compounds |
|
||||
| Intermediary | Mercado → commercial_intelligence; Groombridge clearing house → financial_services |
|
||||
|
||||
**Result: PASS — all 28 lore-taxonomy archetypes and all 6 behavioral archetypes have commodity slots.**
|
||||
|
||||
---
|
||||
|
||||
## 4. D-131 Verb Coverage
|
||||
|
||||
| Verb | Backing commodity or service | Status |
|
||||
|------|------------------------------|--------|
|
||||
| buy | All 19 physical commodities | ✓ |
|
||||
| sell | All 19 physical commodities | ✓ |
|
||||
| hire | legal_services, commercial_intelligence, medical_services | ✓ |
|
||||
| rent | habitation_berths (explicitly designed for this verb) | ✓ |
|
||||
| contract | insurance, commission_certification, legal_services | ✓ |
|
||||
| inspect | Signal vocabulary D-181: price_current, price_trend, trade_flow_volume, corporate_presence, stockpile_weeks, production_vs_baseline, official_coverage_ratio | ✓ — inspect is backed by the signal system, not a single commodity |
|
||||
| negotiate | Any transaction; cross-zone currency friction creates negotiation space | ✓ |
|
||||
| invest | financial_services; heavy_equipment, gate_components, rail_infrastructure as capital goods | ✓ (thin for Phase 2; Phase 3+ will need capital allocation mechanics) |
|
||||
|
||||
**Result: PASS — all D-131 verbs have backing.**
|
||||
|
||||
**Note on invest:** The verb is covered but the mechanics are thin until the player layer (Phase 3+). For Phase 2, `invest` is implicitly modeled through corporate agent behavior (corporations expand production chains when returns justify it). No player verb needed for Phase 2 simulation.
|
||||
|
||||
---
|
||||
|
||||
## 5. Service Demand Multipliers
|
||||
|
||||
Services don't participate in production chains but create demand-side pressure on physical commodities. Each service should have a clear goods-demand effect:
|
||||
|
||||
| Service | Physical goods consumed | Mechanism | Strength |
|
||||
|---------|------------------------|-----------|---------|
|
||||
| `legal_services` | electronics (office equipment), fusion_fuel (power) | Indirect; pulls from node-level general consumption | Weak |
|
||||
| `financial_services` | None direct | Tractus velocity; reduces cross-zone trade friction → increases overall trade volume | Indirect |
|
||||
| `medical_services` | chemicals (direct), electronics (direct), medical_goods (direct consumption) | Hospitals consume medical_goods, chemicals for pharmaceuticals, electronics for diagnostic equipment | **Strong** |
|
||||
| `insurance` | None direct | Risk pricing affects which trade routes are used; boosts trade volume on insured routes | Indirect |
|
||||
| `commercial_intelligence` | None direct | Improves `official_coverage_ratio` signal; better market visibility → more efficient commodity allocation | Signal effect |
|
||||
| `commission_certification` | None direct | Tractus sink; certification costs pull Tractus from cross-zone commerce → increases formal goods demand relative to shadow goods | Financial effect |
|
||||
| `habitation_berths` | consumer_goods (residents' daily needs), processed_food (food service), water (life support), fusion_fuel (power) | Population occupying berths generates continuous commodity demand at node level | **Strong** |
|
||||
| `tourism` | consumer_goods (visitors' spending), hospitality chain inputs (agricultural_produce, processed_food) | Pulls consumer_goods demand; indirectly pulls agricultural_produce via hospitality | **Strong (indirect)** |
|
||||
| `entertainment` | electronics (production hardware for content creation), fusion_fuel (power) | Content production infrastructure pulls electronics demand | Moderate |
|
||||
| `hospitality` | agricultural_produce (kitchen inputs, direct), processed_food (direct), chemicals (cleaning, preservation) | Direct physical commodity consumption at the service node | **Strong** |
|
||||
|
||||
**Summary:**
|
||||
- **Strongest goods-demand services:** habitation_berths, medical_services, hospitality
|
||||
- **Moderate:** tourism (indirect via hospitality), entertainment (electronics pull)
|
||||
- **Signal/financial effects only:** financial_services, insurance, commercial_intelligence, commission_certification, legal_services
|
||||
|
||||
**Design note:** The three services with no direct physical goods demand (financial_services, insurance, commercial_intelligence) affect the simulation through price signal quality and trade volume, not commodity consumption. This is mechanically correct — these are information/financial services — but it means their presence at a node creates less traceable emergence. A high-financial_services node attracts trade; a high-hospitality node pulls food supply. Both are valuable interactions but the latter is more legible.
|
||||
|
||||
**Recommendation:** The sim should implement service demand multipliers as node-level modifiers on commodity consumption rates, not as production chain entries. Suggested multipliers (per unit of service throughput per tick):
|
||||
|
||||
| Service | Commodity | Multiplier |
|
||||
|---------|-----------|-----------|
|
||||
| habitation_berths | consumer_goods | +0.3 units/contract |
|
||||
| habitation_berths | processed_food | +0.2 units/contract |
|
||||
| habitation_berths | water | +0.1 units/contract |
|
||||
| medical_services | medical_goods | +0.4 units/contract |
|
||||
| medical_services | chemicals | +0.2 units/contract |
|
||||
| medical_services | electronics | +0.1 units/contract |
|
||||
| hospitality | agricultural_produce | +0.5 units/contract |
|
||||
| hospitality | processed_food | +0.3 units/contract |
|
||||
| tourism | consumer_goods | +0.4 units/contract |
|
||||
| entertainment | electronics | +0.1 units/contract |
|
||||
| entertainment | fusion_fuel | +0.05 units/contract |
|
||||
|
||||
These are calibration-quality estimates; Burnelli-Sheldon should validate the coefficient magnitudes.
|
||||
|
||||
---
|
||||
|
||||
## 6. Findings Summary
|
||||
|
||||
### Passes
|
||||
|
||||
| Check | Result |
|
||||
|-------|--------|
|
||||
| All chain inputs reference valid commodity IDs | ✓ PASS |
|
||||
| All raws consumed in at least one chain | ✓ PASS |
|
||||
| All intermediates appear as both chain inputs and outputs (except fusion_fuel — see below) | ✓ PASS with flag |
|
||||
| All finals are chain outputs only (not consumed by other chains) | ✓ PASS |
|
||||
| No circular dependencies in chain graph | ✓ PASS |
|
||||
| Three chokepoints intact in final TOML | ✓ PASS |
|
||||
| rail_infrastructure sensible inputs and creates competition with habitat_modules | ✓ PASS |
|
||||
| All 28 D-175 lore-taxonomy archetypes have commodity slots | ✓ PASS |
|
||||
| All 6 D-175 behavioral archetypes have commodity slots | ✓ PASS |
|
||||
| All D-131 economic verbs have backing | ✓ PASS |
|
||||
| All services have defined goods-demand effects | ✓ PASS |
|
||||
|
||||
### Issues Requiring Action
|
||||
|
||||
**[DESIGN FLAG — ACTION REQUIRED]**
|
||||
**F-01: fusion_fuel has zero Leontief chain demand.**
|
||||
fusion_fuel is produced by `fuel_refining` but is not an input to any production chain. Its entire demand must come from the `demand_model = utility` exogenous mechanism. If the sim implements demand only from the Leontief matrix, fusion_fuel will have no buyers and its price will collapse.
|
||||
|
||||
**Required action for server team:** Implement a utility consumption mechanism separate from the Leontief chain demand. All commodities with `demand_model = utility` require a population × per-capita consumption rate multiplier applied at each active node, independent of chain inputs. Document this in the simulation architecture. This is not a data error — it is a simulation requirement flagged by the schema design.
|
||||
|
||||
---
|
||||
|
||||
### Minor Observations (no action required)
|
||||
|
||||
**O-01: Elasticity reduced from 5 to 4 classes.**
|
||||
The schema-final.md elasticity enum has 4 values (perfectly_inelastic, inelastic, unit_elastic, elastic). D-173 specified 5 categories. The 5th class (highly_elastic) was applicable primarily to luxury_goods, which was removed per lead directive (f). With luxury_goods gone, 4 classes cover the catalog adequately. No action required, but the D-173 record may need a minor note that the 5th class was merged into elastic with luxury_goods' removal.
|
||||
|
||||
**O-02: Logistics management archetype has no dedicated service commodity.**
|
||||
Minor coverage gap per D-175. The archetype can operate on commercial_intelligence. Acceptable design choice; document during corporation authoring.
|
||||
|
||||
**O-03: Water generates both Leontief demand AND utility demand.**
|
||||
Unlike fusion_fuel (utility-only), water has both chain demand (fuel_refining, food_processing, chemical_processing, chemical_from_organics) AND utility demand (drinking, life support). The sim should sum both demand signals for water, not choose between them. This is the intended behavior but worth explicit documentation.
|
||||
|
||||
**O-04: Chokepoint 3 is broader than schema-final.md describes.**
|
||||
schema-final.md describes water chokepoint as "water → fusion_fuel (8:1)." The full scope is: water disruption also cascades through chemical_processing → chemicals → textiles, lattice_substrate, implant_hardware, habitat_modules. A severe water shortage is a civilization-ending event, not just an energy crisis. The sim should model this correctly given the chain structure — this observation is just to ensure the cascade documentation reflects the full graph.
|
||||
|
||||
---
|
||||
|
||||
*Validation complete. Files are internally consistent and structurally sound. One design-flag issue (F-01: fusion_fuel Leontief demand) requires explicit handling in simulation implementation.*
|
||||
@@ -0,0 +1,319 @@
|
||||
# Worldbuilder Analysis: Commodity Catalog for #801
|
||||
|
||||
I've read economics.md (D-171–D-183), both workshop rounds, and the full wiki corpus (all 13 corporations, factions, contraband). Here is my full analysis.
|
||||
|
||||
---
|
||||
|
||||
## 1. RAW MATERIALS — Lore-Grounded Inventory
|
||||
|
||||
The Reach's raw material base is defined by geography. Six of seven raws are clearly in the wiki; one gap needs filling.
|
||||
|
||||
**Ore (south_reach primary)**
|
||||
The south_reach extraction corridor is the Reach's primary industrial resource zone. Stalownia Kowalski's entire business exists because ore is pulled out of south_reach rock. The "ore" raw should be split or modeled with substitution: south_reach hard-rock ore (the Stalownia terrain) vs. asteroid/moon surface ore (different geology, different equipment). For the simulation, one "ore" raw with multiple production sites covers this.
|
||||
|
||||
**Brach fiber (Braemar only — HARD CEILING)**
|
||||
D-177 already captures this. One additional constraint the wiki makes explicit: thrds has refused live brach export and blocked biological sample requests for 300 years. The location lock is not just biological — it is actively defended commercial policy. Any seeding that puts brach fiber production outside Braemar is a lore violation.
|
||||
|
||||
**Marble (Kvitfjell/Nyrheim only — 800t/y HARD CEILING)**
|
||||
D-177 covers this. Additional note: the geological formation is deeper than published reserves indicate (Bifrost Marmor's silence). The simulation should not know this — it should model the published 800t/y ceiling. The hidden reserve depth is narrative, not simulation input.
|
||||
|
||||
**Timber (Stillvakt/west_reach — soft ceiling)**
|
||||
Nordmark Skog operates 40–60 year replanting cycles across four forest cohorts. This is not a hard geological ceiling but a managed harvest ceiling. An event (fire, blight, governance collapse) could disrupt the pipeline for decades — not a productivity multiplier but a production-halt event. Seeding range: +/-15-20% annual variance is realistic; the 40–60 year cycle means disruption has very long recovery times.
|
||||
|
||||
**A critical timber dependency missed by D-177:** Calloway whisky requires aging casks from Dunbar (GJ 3991) managed forestry. This is a separate timber production node — not Nordmark Skog's softwood, but cooperage-grade hardwood from Dunbar's specific forest management program. If Dunbar cooperage wood fails, the Calloway 12–20 year aging pipeline breaks. This is a supply chain input that the commodity model should capture, even if modeled as a sub-type of the timber raw.
|
||||
|
||||
**Agricultural produce (multiple systems)**
|
||||
This is necessarily a broad raw category. Within it, lore distinguishes:
|
||||
- **Grain** (Calloway Reach — cold-adapted barley, 400y adapted) — used for distilling
|
||||
- **Wine grapes** (Confluent — Carignan de Vide and Gris Blanc, F8V adapted, 400y genetic divergence from Earth varietals) — the VGV F8V constraint in D-177 applies here
|
||||
- **General agricultural surplus** — Groenland (GJ 3333) joined the Compact specifically because their agricultural surplus became commercially viable through Compact trade terms. This is generic staple agriculture, the food that keeps populations fed.
|
||||
- **Jeonnam fermented ingredients** — mentioned in Mercado's shelves as "Jeonnam Old Table fermented paste." East_reach origin. Distinct product with distinct inputs.
|
||||
|
||||
For the simulation, "agricultural produce" as a single raw with regional production nodes captures this. The F8V stellar spectrum constraint and grain terroir constraints are seeding ceilings, not separate commodity types.
|
||||
|
||||
**Seafood/fisheries (east_reach primary)**
|
||||
Mercado explicitly stocks "Dagat Blue label fisheries products from the east." The east_reach deep ocean fishery is one of Miri's Round 2 archetypes. This is a lore-grounded raw material with a specific geographic anchor. The east_reach's economic identity (flagged as the major gap in Round 1) is at least partially maritime/fishery-based. "Dagat" suggests Filipino/Tagalog heritage in the east_reach founding communities.
|
||||
|
||||
**Rare metals / precision minerals (PROPOSED — currently a gap)**
|
||||
The simulation needs a raw material for the manufacturing of neural lattice components, span gate components, and precision instruments. The wiki doesn't name a specific mineral, but the production chains demand it. Precision instrument manufacturing (east_reach archetype, Round 2) suggests there's a local mineral resource. I propose this as a 7th raw: **precision-grade minerals** (rare earth / crystal substrates for neural lattice fabrication and precision optics). East_reach origin would give that corridor its distinctive export and close the economic identity gap. Setting note: do NOT call these "dilithium" or any Star Trek-adjacent name. Something like "cerulith" or "lattice-grade substrate" is appropriate. Name is open for Mellanie to settle.
|
||||
|
||||
---
|
||||
|
||||
## 2. INTERMEDIATE GOODS — Production Chain Logic
|
||||
|
||||
From the lore, these intermediates are implied by existing corporations and their production processes:
|
||||
|
||||
**Refined metals** — Ore -> refined metals (Stalownia processes ore at extraction sites). Used for: heavy equipment, span gate components, construction.
|
||||
|
||||
**Spun brach yarn** — Raw brach fiber -> processed yarn (thrds' proprietary treatment process, on-site at Braemar). Input to: thrds garments. LOCATION LOCKED to Braemar.
|
||||
|
||||
**Milled structural lumber** — Timber -> Nordmark Dark Grain panels (processed at Fallstaden, Stillvakt). Inputs: Nordmark Skog timber. Output to: station interiors, habitat construction.
|
||||
|
||||
**Malted grain / distillation spirit** — Agricultural grain -> malted wort -> new-make spirit (the intermediate before aging creates the final whisky). This intermediate has a 12–20 year aging pipeline before it becomes Calloway whisky. Simulation note: the pipeline contents at game start are fixed (D-177). The intermediate here is "new-make spirit in cask" — a work-in-progress inventory commodity.
|
||||
|
||||
**Wine must / aging wine** — Grapes -> fermented must -> aging wine. VGV's Grand Vide Classe wines require 5y+ aging; corridor wines 1–2y. Same pipeline logic as whisky but shorter.
|
||||
|
||||
**Processed seafood / cured fish** — Seafood -> processed seafood. East_reach fisheries output before it becomes branded Dagat Blue label products.
|
||||
|
||||
**Precision components** — Precision-grade minerals -> machined components (intermediate for lattice hardware and gate components).
|
||||
|
||||
**Span gate sub-assemblies** — Refined metals + precision components -> aperture components (manufactured at Renaissance, Gate Corporation). These are the physical products shipped out for intra-system installation.
|
||||
|
||||
That gives 8 intermediates, matching Burnelli-Sheldon's count.
|
||||
|
||||
---
|
||||
|
||||
## 3. FINAL GOODS — Cultural Identity Encoding
|
||||
|
||||
D-173 specifies that final goods carry cultural identity. Here is what that means for each final good, grounded in specific wiki lore:
|
||||
|
||||
**Calloway single malt whisky**
|
||||
Cultural identity: north_reach self-sufficiency, unreproducible terroir, patience as commercial virtue. The 12–20 year aging cycle is not just a production constraint — it is a cultural statement about time horizons. Corridors know: "Calloway" means nobody cut corners.
|
||||
- Political sensitivity: LOW in Assembly territory, MEDIUM in Compact (it's north_reach, not west_reach, but appreciated)
|
||||
- Elasticity: highly inelastic (D-177's hard ceiling + long pipeline creates scarcity floor)
|
||||
|
||||
**VGV wine (two tiers: Grand Vide Classe + Vins de Corridors)**
|
||||
Cultural identity: west_reach deep-corridor prestige, distance-as-quality-signal, the F8V terroir that cannot be reproduced. Grand Vide Classe is inner-corridor collector status; Vins de Corridors is what corridor workers drink.
|
||||
- This probably should be two separate final commodities (not one) because their elasticities, buyers, and price points are radically different. The Grand Vide Classe trades at "case prices" in inner-corridor collector markets; the Vins de Corridors is everyday volume goods. Splitting them would accurately model the Compact's trade dynamics.
|
||||
|
||||
**Talbreu Franconian farmhouse lager**
|
||||
Cultural identity: west_reach transit corridor working culture — Bruckenau at GJ 798 has Germanic-heritage founding community. The lager is the everyday west_reach cultural product without the prestige ceiling of VGV wine.
|
||||
- No aging pipeline (unlike whisky and wine). Short fermentation. Higher volume, lower price, higher elasticity.
|
||||
|
||||
**thrds garments (cold-weather technical)**
|
||||
Cultural identity: north_reach functional craft — working clothes that happen to be beautiful, designed by people who wear them. The aesthetic was never designed; it emerged. Inner-corridor fashion adopted it, which thrds finds mildly irritating.
|
||||
- Elasticity: inelastic for outer-corridor workers (it's their standard cold-weather gear), elastic in inner-corridor fashion market (status good)
|
||||
- Hard volume ceiling: brach herd cannot be rapidly expanded (D-177)
|
||||
|
||||
**Heavy industrial equipment (Stalownia)**
|
||||
Cultural identity: south_reach engineering pragmatism — not elegant, maintainable in the field without specialists, sized for real conditions. The Kowalski brand carries three centuries of knowing what south_reach rock actually does to equipment.
|
||||
- Political sensitivity: NONE (infrastructure good, crosses all blocs)
|
||||
- Long lead times (1–3 years for large rigs, per D-177)
|
||||
|
||||
**Transit vehicles (MVG)**
|
||||
Cultural identity: Nova Roma institutional prestige — the vehicles that move civilization. MVG builds what passes through gates. The brand is ubiquitous and deliberately neutral-feeling.
|
||||
- Note: MVG and Stalownia share a product boundary (mobile extraction platforms, mining vehicles). This is a designed conflict point in the simulation — both corporations can produce competing goods in the boundary zone.
|
||||
|
||||
**Longevity/medical hardware (Prometheus Labs)**
|
||||
Cultural identity: none publicly performed — Prometheus's cultural identity is deliberately effaced. The hardware is unmarked in most clinical contexts. Its cultural significance is structural: it defines the Perpetual class. Inner-corridor buyers, high-wealth individuals.
|
||||
- Hard monopoly: no substitution possible. Seeding cannot vary location or provider.
|
||||
- Political sensitivity: HIGH — the class structure it maintains is politically charged. Compact members may have strong opinions.
|
||||
|
||||
That's 7 final goods (with VGV as one or two, depending on granularity decision for the team). If VGV splits, it becomes 8 final goods total.
|
||||
|
||||
---
|
||||
|
||||
## 4. SERVICES — Lore-Grounded, Location-Bound
|
||||
|
||||
D-173 added services but left them unspecified (OQ-8). Here is my full accounting with lore grounding.
|
||||
|
||||
**Professional Services (~5):**
|
||||
|
||||
**Trade arbitration / commercial law**
|
||||
Canonical example: Ferreira Monteiro (Matamba, GJ 884). Also: Crown's Hollow chancery (parallel tradition, different corridor). The Customs Brokers' Guild provides documentation certification. Commission certification services are a sub-type.
|
||||
- Location-bound: a south_reach arbitration ruling cannot be "freighted" to the east_reach. The service's authority is geographic.
|
||||
- Corporate precedent: FM handles 400 years of south_reach cooperative/Assembly boundary cases. This institution gap creates an opening for east_reach and Compact-zone parallel legal services.
|
||||
- Shadow economy interaction: the Commission certification IS the price floor for formal goods. Compact members paying Commission fees in Tractus (converted from Mark at ~3% friction) face a structural cost that makes uncertified goods competitive. The legal service cost IS the smuggling incentive.
|
||||
|
||||
**Banking / credit / clearing (PRIORITY GAP)**
|
||||
D-175 explicitly names the Groombridge clearing house as a Tier 1 priority gap. This institution does not yet exist in the wiki. It should be located near Sirius (Assembly headquarters zone), as it handles Tractus/Mark cross-zone settlement. The service function: currency conversion clearing, trade credit lines, cross-corridor payment settlement.
|
||||
- Without this, the three-currency system (D-171) has no institutional home for Mark/Tractus exchange. The clearing house is not just a corporation gap — it's the service commodity that enables cross-bloc trade.
|
||||
- Compact-adjacent question: does the Compact have its own banking/clearing institution, or do Compact members use the Groombridge clearing house at friction rates? This is an open question with significant gameplay implications.
|
||||
|
||||
**Insurance / freight underwriting**
|
||||
D-173 mentions it. No canonical corporation exists yet. The lore demands it: VGV ships fragile cargo through 6-10 hops, Stalownia ships 1-3 year lead-time equipment, Gate Corporation ships aperture components worth civilizational infrastructure. Somebody underwrites this.
|
||||
- South_reach cooperative structure suggests a mutual insurance model for south_reach freight. Inner-corridor freight probably uses a Syndic-tier insurer.
|
||||
- Shadow economy interaction: uninsured contraband shipments are implicitly self-insured by the ring's risk tolerance. Insurance availability (or unavailability) is a marker of shadow economy intensity.
|
||||
|
||||
**Logistics management**
|
||||
Mercado Travessia's core competency is logistics intelligence — gate cycle optimization, buffer stock management, supplier coordination. This is a service that other companies purchase. The VGV transit packaging standards (developed by VGV, licensed to all wine shippers) are a form of logistics IP.
|
||||
- Assembly systems have formal logistics coordination infrastructure. Compact systems use the Compact's internal trade network. These are not the same service.
|
||||
|
||||
**Commission certification**
|
||||
The Lattice Commission's certification process is an economic transaction. Components must be certified. Medical procedures must be licensed. Gate infrastructure must pass Commission review. This is explicitly what creates the shadow economy: certification costs money, Commission fees are Tractus-denominated, and Commission presence is inverse to shadow economy intensity (D-174 seeding formula).
|
||||
- This service is the most politically charged commodity in the simulation. It is not available in Compact-primary zones except at extreme friction. It is the mechanism by which the Assembly's authority translates into economic reality.
|
||||
|
||||
**Luxury/Experiential Services (~3):**
|
||||
|
||||
**Deep-corridor tourism / prestige destination experiences**
|
||||
Confluent wine country (hop 10) and Calloway Reach (hop 6) are the natural lore anchors. Inner-corridor Perpetual-class clients paying for the experience of being somewhere that takes time to reach. VGV already has a tourism sub-industry implied by the estate descriptions. Calloway Reach has a tourist profile implied by its corridor reputation.
|
||||
- The service is literally location-bound: you cannot freight the experience of being in the Vallee de l'Interieur at Confluent. The grape-and-star combination is the product.
|
||||
- This service accrues primarily to final-corridor systems that have prestige production. It creates an economic incentive for deep-corridor systems to maintain their cultural distinctiveness.
|
||||
|
||||
**Holo-content / commercial information goods**
|
||||
Adams & Ford Publishing produces The Drifter's Guide. There's a broader commercial information economy: market reports, intelligence briefings, trade data, entertainment. Mercado's supply chain data, VGV's 350-year commercial archive, and FM's case precedents are all implicit information commodities.
|
||||
- The "unregistered commercial intelligence" contraband type (D-174) implies there's a registered / licensed version that is a formal service. Information brokerage at Syndic tier is a legal profession.
|
||||
- This service is unusual: it's technically non-local (information can be transmitted through the Meridian), but the value of deep-source intelligence is location-dependent. A well-placed informant at Nyrheim whose intelligence reaches inner-corridor buyers — the service originates at Nyrheim even if transmitted.
|
||||
|
||||
**Re-embodiment services (MISSING FROM CURRENT LIST)**
|
||||
D-174 lists "unlicensed re-embodiment" as a canonical contraband type. The existence of unlicensed implies licensed exists. This is a MISSING final service that must be in the commodity table.
|
||||
- Lore grounding: Prometheus Labs technology is directly adjacent to re-embodiment (they manage extended-lifespan biology). The re-embodiment service is almost certainly gated by Prometheus hardware and by Commission licensing (under the same regulatory carve-out that protects longevity protocols).
|
||||
- Location-bound: you cannot freight a re-embodiment. The procedure is performed at licensed facilities. Geographic availability mirrors Prometheus's maintenance network (major hubs, not peripheral systems).
|
||||
- Shadow economy interaction: unlicensed re-embodiment in Compact systems is explicitly canonical. The formal service is unavailable (Commission certification required, facilities scarce) and the informal service fills the gap.
|
||||
|
||||
---
|
||||
|
||||
## 5. WHAT'S MISSING FROM THE 22-COMMODITY LIST
|
||||
|
||||
After cross-referencing all wiki content against Burnelli-Sheldon's 7/8/7 structure, these gaps are significant:
|
||||
|
||||
**Gap 1: Licensed neural lattice hardware (Commission-certified)**
|
||||
The contraband lattice components wiki entry (D-037) tells us the formal commodity market exists: Commission-certified lattice components are manufactured and sold legally. The aftermarket undercuts them at 3-5x cost advantage. This is a FINAL GOOD with strong political sensitivity — its price determines who can upgrade their capabilities, who stays locked at Baseline, and what the shadow economy arbitrage looks like.
|
||||
- Producer: unnamed Syndic-adjacent manufacturers (Tier 1 corp gap: a lattice hardware manufacturer needs to exist)
|
||||
- Location-bound production: no (can be manufactured anywhere with precision components)
|
||||
- Cultural identity: Core/Assembly — Commission-certified goods carry institutional imprimatur. Compact members buying certified lattice hardware are buying into the Assembly's regulatory framework, which some find distasteful.
|
||||
|
||||
**Gap 2: Standard medical goods**
|
||||
Beyond Prometheus longevity hardware. The Echternach wiki entry (deep-corridor member who joined the Compact for "medical hardware imports") confirms that basic medical supplies are a commodity that isolated communities import. What is it, specifically?
|
||||
- Likely a Final Good category: medical consumables (Commission-certified medicines, surgical hardware, basic diagnostic components). Not longevity — that's Prometheus. This is everyday healthcare.
|
||||
- Geographic distribution: availability should be lowest in deep-frontier systems (where the shadow economy provides unlicensed alternatives). The Commission regulates it; Commission presence determines formal access.
|
||||
|
||||
**Gap 3: Energy carriers / fuel cells**
|
||||
How do span gates, stations, and transit vehicles power themselves? The wiki does not specify an energy commodity, but a civilization of this scale needs fuel. If energy is fully embedded in transit costs (gate fees), the simulation might not need it as a separate commodity. But if some systems are energy-rich (fusion fuel sources, specific geological resources) and others are energy-poor, there's a commodity flow. I do not have enough lore to call this definitively — but it's worth asking whether energy should appear in the commodity list or be modeled as embedded in transit costs.
|
||||
|
||||
**Gap 4: Construction materials (generic)**
|
||||
Beyond marble and timber. Station hulls (Cygni B combines), habitat construction (Stalownia), and new settlement infrastructure all require bulk construction materials. Refined metals partially cover this, but generic construction aggregate/composite panels are implied.
|
||||
|
||||
**Gap 5: Re-embodiment services**
|
||||
Already discussed above — MISSING from the services list entirely.
|
||||
|
||||
---
|
||||
|
||||
## 6. ADDITIONAL LORE CONSTRAINTS BEYOND D-177
|
||||
|
||||
These are constraints that D-177 does not yet capture but are implied by the wiki:
|
||||
|
||||
**Dunbar cooperage wood dependency**
|
||||
Calloway whisky aging requires specific cask wood from Dunbar (GJ 3991). If Dunbar's managed forestry is disrupted, the Calloway aging pipeline halts at the cask-filling stage. This is a second-order constraint on the whisky pipeline. Productivity seed: the timber yield at Dunbar affects how many casks Calloway can fill in a given year, which affects whisky output 12–20 years later.
|
||||
|
||||
**Nordmark 40–60 year replanting cycle**
|
||||
Not a hard ceiling but a structural recovery time. An event that destroys Nordmark Skog's current harvest cohort (say 25% of standing timber) cannot be recovered for 40–60 years at that site. The simulation should model this as a very long-duration shock rather than a +/-40% productivity variance.
|
||||
|
||||
**thrds brach herd export lockout**
|
||||
Brach fiber production cannot migrate off Braemar even if demand exceeds supply — not because the biology won't transfer (it might) but because the cooperative actively prevents it. This is a political ceiling on supply expansion, not a biological one. Seeding cannot model a "high productivity" scenario that involves off-Braemar production because that would require defeating three centuries of actively enforced monopoly.
|
||||
|
||||
**Prometheus maintenance network sparsity**
|
||||
Longevity maintenance is not available everywhere — clients in peripheral systems either travel (expensive) or pay for field teams (more expensive). This creates a geographic service availability gradient that affects where Perpetual-class individuals cluster. Compact-primary systems have lower Prometheus network density, which is a subtle economic disadvantage for Compact members who have or aspire to longevity status.
|
||||
|
||||
**VGV F8V varietal genetic lock**
|
||||
The Carignan de Vide and Gris Blanc varietals have diverged from Earth-origin grapes over 400 years under F8V stellar radiation. They are now specific to Confluent conditions. The wiki makes clear that attempts to reproduce these wines elsewhere produce "different" results. This is both a terroir constraint (location) and a genetic lock (the input cannot be sourced elsewhere even if the climate could be replicated).
|
||||
|
||||
**Gate Corporation span gate lead times**
|
||||
Already in D-177 (1–3 years for new span gate pairs). Additional constraint: Gate Corporation has veto authority over all aperture specifications. No competing infrastructure can be built to different standards. This means the logistics network topology is fixed by Gate Corporation decisions, not by demand — a structural constraint on which passive nodes can become active nodes.
|
||||
|
||||
---
|
||||
|
||||
## 7. COMPACT VS. CORE FINAL GOODS — CULTURAL IDENTITY
|
||||
|
||||
D-173 says final goods carry cultural identity. The wiki makes clear that this is not just aesthetic — it has political and economic content.
|
||||
|
||||
**Core/Assembly final goods** carry:
|
||||
- Commission certification marks (regulatory trail, Tractus-priced)
|
||||
- Institutional imprimatur (built to Assembly standards, inspected by Assembly-affiliated bodies)
|
||||
- Higher base price (certification overhead + Tractus-denominated transaction costs)
|
||||
- Geographic ubiquity (Core goods are distributed through the Assembly's commercial frameworks, available anywhere with Assembly commercial infrastructure)
|
||||
|
||||
**Compact final goods** carry:
|
||||
- No Commission certification required (internal Compact quality validation)
|
||||
- Mark-denominated (no currency conversion friction within Compact zone)
|
||||
- Lower transaction costs (no certification overhead)
|
||||
- Cultural specificity: west_reach Germanic/Nordic character — VGV wine, Talbreu lager, Kvitfjell marble, Nordmark panels. These are not generic; they are emphatically of a place.
|
||||
- Political statement: buying Compact goods in an Assembly-primary system is not just a commercial act. It is a mild declaration of sympathy with the Compact's position on Assembly authority.
|
||||
|
||||
**Mechanical implication for the simulation:**
|
||||
- The `political_sensitivity` flag on commodities should be HIGH for Compact-origin goods entering Assembly-primary systems (not because of legal prohibition, but because the Assembly's commercial frameworks impose friction on goods that lack Commission certification).
|
||||
- Compact members buying Core goods pay ~3% Tractus conversion friction plus certification-overhead markup. This is the structural incentive to buy locally.
|
||||
- The Commission certification service is itself a commodity: its price, availability, and the friction of paying for it in Tractus is the mechanism that created the Compact's shadow economy (per D-174 — this is explicitly stated as structural, not coincidental).
|
||||
|
||||
---
|
||||
|
||||
## 8. PROPOSED REVISED COMMODITY STRUCTURE
|
||||
|
||||
Based on the above, here is my proposed commodity structure grounded in lore. Count increases from 22 to ~30-32 before services.
|
||||
|
||||
**Raw materials (8 proposed, up from 7):**
|
||||
1. Ore (south_reach extraction, multiple production sites, seeding +/-20-30%)
|
||||
2. Brach fiber (Braemar only, herd expansion ceiling, HARD LOCATION LOCK)
|
||||
3. Marble (Kvitfjell/Nyrheim only, 800t/y HARD CEILING)
|
||||
4. Timber — structural (Stillvakt/west_reach + other sites, 40-60y recovery constraint)
|
||||
5. Timber — cooperage grade (Dunbar, Calloway pipeline dependency)
|
||||
6. Agricultural produce (broad: grain, grapes, staple crops — multiple sites, F8V and terroir seeding constraints apply per site)
|
||||
7. Seafood / marine harvest (east_reach primary, deep ocean fishery)
|
||||
8. Precision-grade minerals / lattice substrates (east_reach anchor, PROPOSED — closes the east_reach economic gap and provides the raw for neural lattice manufacturing)
|
||||
|
||||
Note: I've split timber into structural and cooperage-grade. This is the only split I'd argue for — it activates the Calloway/Dunbar supply chain dependency that's currently invisible to the simulation.
|
||||
|
||||
**Intermediate goods (8):**
|
||||
1. Refined metals (ore -> metals, Stalownia process)
|
||||
2. Spun brach yarn (raw fiber -> processed yarn, Braemar, location-locked)
|
||||
3. Milled structural panels (timber -> Nordmark Dark Grain, Stillvakt)
|
||||
4. New-make spirit / aged spirit in pipeline (grain -> distillation intermediate -> aging pipeline, Calloway)
|
||||
5. Aging wine must (grapes -> fermentation -> aging stock, Confluent)
|
||||
6. Processed seafood (raw catch -> cured/processed products, east_reach)
|
||||
7. Precision components (precision minerals -> machined lattice/gate sub-components)
|
||||
8. Span gate sub-assemblies (refined metals + precision components -> aperture components, Renaissance)
|
||||
|
||||
**Final goods (9 proposed, up from 7):**
|
||||
1. Calloway single malt whisky (north_reach terroir identity, 12-20y pipeline)
|
||||
2. VGV Grand Vide Classe wine (west_reach prestige, F8V terroir, 5y+ pipeline, inner-corridor premium)
|
||||
3. VGV Vins de Corridors wine (west_reach everyday, 1-2y pipeline, high-volume corridor good)
|
||||
4. Talbreu lager (west_reach transit corridor, no aging pipeline, Germanic working-culture identity)
|
||||
5. thrds garments (north_reach functional craft, brach fiber monopoly input)
|
||||
6. Heavy industrial equipment (south_reach engineering pragmatism, Stalownia, 1-3y lead time)
|
||||
7. Transit vehicles (MVG, Nova Roma, reach-wide, Assembly-adjacent)
|
||||
8. Commission-certified neural lattice hardware (Core/Assembly identity, Commission certification embedded, political sensitivity HIGH in Compact zones)
|
||||
9. Longevity / neural enhancement hardware (Prometheus, hard monopoly, Perpetual-class buyers)
|
||||
|
||||
Note: I split VGV wine into two finals (Grand Vide Classe vs. Vins de Corridors) because their market positions, elasticities, and buyer profiles are radically different. The simulation needs both if it's going to model the inner-corridor premium market vs. the west_reach corridor market realistically.
|
||||
|
||||
**Professional services (5):**
|
||||
1. Trade arbitration / commercial law (FM south_reach; Crown's Hollow west_reach; location-bound authority)
|
||||
2. Banking / credit / clearing (GROOMBRIDGE CLEARING HOUSE — priority Tier 1 corp to create, D-175)
|
||||
3. Freight insurance / underwriting (no corporation yet — priority gap)
|
||||
4. Logistics management (Mercado-tier; Assembly systems vs. Compact internal network)
|
||||
5. Commission certification (Lattice Commission; Tractus-denominated; inverse of shadow economy intensity)
|
||||
|
||||
**Luxury/experiential services (3):**
|
||||
1. Deep-corridor prestige tourism (Confluent wine estates, Calloway distillery circuit)
|
||||
2. Commercial information services / intelligence brokerage (Adams & Ford tier; legal tier = FM case precedents; criminal tier = unregistered commercial intelligence, D-174)
|
||||
3. Re-embodiment services (MISSING FROM CURRENT LIST; Prometheus-adjacent; Commission-licensed; shadow market = unlicensed, D-174 canonical contraband)
|
||||
|
||||
---
|
||||
|
||||
## 9. ORIGINALITY FLAGS
|
||||
|
||||
The setting is drawing on Hamilton's Commonwealth (primary inspiration). A few commodity concepts need watching:
|
||||
|
||||
**Longevity hardware (Prometheus):** Hamilton has rejuvenation technology distributed through CST/Senate infrastructure. Prometheus is distinguished by: single-system defensible monopoly, regulatory capture at the Assembly founding, Perpetual class as deliberate creation rather than broad social good, the silence around client selection criteria. The mechanism differs (longevity maintenance vs. rejuvenation). I consider this safely original but worth noting.
|
||||
|
||||
**Neural lattice / Commission certification:** Hamilton's neural OCtattoos are a closer structural analogue. The distinction is the Commission's role as a class-stratification mechanism (Baseline vs. Enhanced tier), the Commission certification cost as the mechanism driving the black market, and the Guardians of Autonomy as a political response. This is original enough — it's the same technological concept (neural augmentation) used for different dramatic purposes.
|
||||
|
||||
**Span gates (Gate Corporation):** Hamilton's wormholes are built by CST. Span gates are built by a corporation that licensed technology from an entity that reverse-engineered alien infrastructure. The political structure (Gate Corp veto on specifications, Commission regulation, Veil Institute founding relationship) is substantially different from anything in Hamilton. Not a concern.
|
||||
|
||||
**Re-embodiment:** Resurrection/memory backup appears in Hamilton (the Commonwealth) and Reynolds (Revelation Space). In the Reach, it's regulated, expensive, and the unlicensed version is canonical contraband — not a broadly available technology but a gated service. The framing is different enough, but this is worth Gestalt and Paula's attention when they design the system in detail.
|
||||
|
||||
---
|
||||
|
||||
## Summary for Round 3
|
||||
|
||||
The questions Round 3 must answer that depend on my analysis:
|
||||
|
||||
1. **Split VGV wine into two finals?** My recommendation: yes. Different elasticities, different markets, meaningful to model separately.
|
||||
|
||||
2. **Split timber into structural + cooperage grade?** My recommendation: yes. The Calloway/Dunbar pipeline dependency is invisible otherwise.
|
||||
|
||||
3. **8th raw material: precision-grade minerals?** My recommendation: yes. Closes east_reach gap, anchors lattice hardware production chain, and provides the east_reach with its export identity (parallel to brach fiber for north_reach, marble for west_reach).
|
||||
|
||||
4. **Add Commission-certified neural lattice hardware as a final good?** My recommendation: yes. It's the most politically charged commodity in the simulation and the mechanism for the shadow economy. It needs to be in the commodity table.
|
||||
|
||||
5. **Add re-embodiment as a luxury service?** My recommendation: yes. D-174 says unlicensed re-embodiment is canonical contraband. The licensed version must exist as the formal commodity.
|
||||
|
||||
6. **Groombridge clearing house:** Must be created before the simulation can model cross-zone currency settlement. D-175 already flags this as Tier 1 priority. I'd suggest this is a pre-Phase 2 deliverable, not a nice-to-have.
|
||||
|
||||
7. **Freight insurance corporation:** No corporation exists yet. The simulation can model insurance as a service commodity with generic coverage, but a Tier 1 or 2 corporation should eventually own this.
|
||||
|
||||
Total proposed: 8 raws + 8 intermediates + 9 finals + 5 professional services + 3 luxury services = **33 commodities**, within the ~30 D-173 target.
|
||||
|
||||
Setting note — lore texture: The single most important lore decision embedded in the commodity list is the Commission certification service. It is not just a service — it is the mechanism that makes the Compact's shadow economy rational rather than deviant, and the mechanism that makes the Assembly's authority economically concrete. Every commodity that requires Commission certification carries the Assembly's political alignment embedded in its price. That's the richest single design decision in the whole list.
|
||||
|
||||
Miri
|
||||
@@ -0,0 +1,333 @@
|
||||
# Miri — Commodity Catalog Round 2
|
||||
## Converged Proposal: Lore Grounding + Schema Unification
|
||||
|
||||
*Cross-read: tyre-round1.md, burnelli-sheldon-round1.md, gestalt-round1.md, miri-round1.md*
|
||||
|
||||
---
|
||||
|
||||
## 0. Round 1 Correction
|
||||
|
||||
My Round 1 analysis proposed brand-specific final goods: Calloway single malt whisky, VGV Grand Vide Classé wine, thrds garments, etc. Directive (a) rules these out. The commodity catalog operates at abstract category level. Brands are corporate behavioral agents — a Specialist archetype commands premium pricing for the same commodity category; the brand premium lives in the margin, not the catalog.
|
||||
|
||||
Everything below is restructured accordingly. I have also accepted B-S's water/fusion fuel split (directive c), reconciled the schema (directive d), and addressed the luxury goods tension (directive b) as my primary Round 2 contribution.
|
||||
|
||||
---
|
||||
|
||||
## 1. The Luxury Goods Tension: Resolution
|
||||
|
||||
**The problem (directive b):** If "luxury goods" is one abstract category, a Kvitfjell marble shortage and a Calloway whisky surplus merge into one price signal. The tâtonnement can't distinguish them. Worse, marble and whisky have genuinely different bulk classes: marble is oversized cargo (expensive to ship, generates manufacturing hub stickiness), whisky is precision cargo (cheap to ship relative to value, crosses distances easily). One bulk_class field cannot cover both.
|
||||
|
||||
**The resolution: two abstract luxury categories, neither named for a brand.**
|
||||
|
||||
The luxury space contains two economically distinct types of good that happen to both be "expensive things rich people want":
|
||||
|
||||
| Category | `luxury_goods` | `prestige_objects` |
|
||||
|----------|---------------|-------------------|
|
||||
| Nature | Premium consumables | Luxury architectural/decorative materials |
|
||||
| Bulk class | `precision` | `oversized` |
|
||||
| Demand driver | Cultural identity, social signaling, occasion | Construction prestige, institutional display, status installation |
|
||||
| Input origin | Agricultural/biological (terroir-locked, aging pipeline possible) | Geological (monopoly source, geological ceiling) |
|
||||
| Supply shock behavior | Shortage is cultural scarcity — the good stuff isn't available | Shortage stalls construction, delays institutional projects |
|
||||
| Examples (NOT commodity names) | Fine spirits, aged wine, specialty textiles, fermented delicacies | Decorative marble, carved stone, high-spec architectural finishings |
|
||||
|
||||
These are not brand names — they are genuine economic categories with different production chains, different bulk classes, and different simulation behaviors. A marble shortage (prestige_objects) should NOT affect whisky prices (luxury_goods). Merging them would produce nonsensical price signals.
|
||||
|
||||
**How the constraints are encoded without per-brand entries:**
|
||||
|
||||
The constraints D-177 describes live in three places, none of which is the commodity record:
|
||||
|
||||
1. **Production chain: `location_bound = true`** — the chain that produces `luxury_goods` via aged spirits requires `agricultural_produce` from a terroir-locked site. The Calloway chain is anchored to Calloway Reach. A Confluent chain is anchored to Confluent. The commodity record says nothing about location; the chain record carries the constraint.
|
||||
|
||||
2. **Production chain: `production_lag_ticks`** — the aging pipeline (12-20 years for whisky, 5+ years for Grand Vide Classé) is a chain property, not a commodity property. The pipeline contents at game start are initialized from the corporation record and not re-seeded (D-177).
|
||||
|
||||
3. **Corporation-site record** — the 800t/y Kvitfjell ceiling is a hard capacity cap on the Bifröst Marmor production site. The corporation record carries `capacity_ceiling = 800` and `location_bound = "kvitfjell"`. The simulation never seeds above this, and the commodity record for `prestige_objects` knows nothing about marble specifically — it's just the abstract category that Bifröst Marmor's site happens to produce.
|
||||
|
||||
This architecture cleanly separates:
|
||||
- **What** is being traded (commodity record — abstract, no brands)
|
||||
- **How** it's made (production chain record — carries timing and location constraints)
|
||||
- **Who** makes it and where (corporation-site record — carries capacity ceilings and location locks)
|
||||
|
||||
The commodity catalog has two luxury finals. The corporation corpus provides the specific nouns. This is the correct division.
|
||||
|
||||
---
|
||||
|
||||
## 2. Water → Fusion Fuel: Lore Grounding
|
||||
|
||||
Directive (c) establishes: water/volatiles is a raw material; fusion fuel (deuterium/tritium) is an intermediate refined from water at low yield.
|
||||
|
||||
**Lore context for the Reach:**
|
||||
|
||||
Every inhabited body in the Reach runs on fusion power — stations, ships, gate transit infrastructure. The Gate Corporation's span gate installations have continuous power demands. MVG vehicles run fusion drives. Stalownia's ore processing facilities are energy-intensive. Prometheus Labs' Perpetual-class maintenance hardware requires continuous power.
|
||||
|
||||
Deuterium is extracted from water (D₂O separation, electrolytic processes) with an inherently low yield — roughly 1 part fuel-grade deuterium per 6,500 parts water by mass, though industrial processes run closer to extracting 1 economic unit of fusion fuel per 8-12 units of water input. This isn't a technology failure; it's physics. The fuel is cheap to produce where water is abundant. The fuel is ruinously expensive on bare-rock stations far from ice sources.
|
||||
|
||||
**Why this matters for the Reach's political geography:**
|
||||
|
||||
The Compact's energy independence is a live political project (Gestalt, Round 1). Compact member systems at hops 6-9 have varying access to water/volatiles — gas giant moons, comet-rich systems. Member systems with good ice access have structural fuel cost advantages; those without are more dependent on Assembly-zone imports. The Compact's no-internal-tariff principle (D-172) means fuel flows freely within the Compact zone at no conversion friction, which is a real economic benefit of membership for fuel-poor systems.
|
||||
|
||||
Commission safety certification applies to fusion fuel (Gestalt, Round 1: "R-06 Energy raw — Yes, safety/fissile, Compact contested"). The certification friction on fuel is one reason the Compact's energy independence drive carries political weight beyond economics — it's partly a rejection of Commission jurisdiction over the power that keeps their stations alive.
|
||||
|
||||
**The low-yield mechanism creates durable geographic variation:**
|
||||
|
||||
Water is ubiquitous (every ocean world, every comet-rich belt, every ice moon). Fusion fuel is NOT ubiquitous, even though its feedstock is everywhere. The refining yield ratio (roughly 10:1 water input to fuel output) means:
|
||||
- A water-rich system at 2T/unit water produces fuel at ~25-30T/unit (water cost + refining overhead)
|
||||
- A water-poor station importing water at 5.4T/unit (after 10 hops) produces fuel at ~65-75T/unit
|
||||
- The 2-3x fuel cost differential persists structurally, not just at game start
|
||||
|
||||
This creates permanent energy cost geography without requiring event generation — exactly the "boring economics" mandate of D-178.
|
||||
|
||||
**Production chain record:**
|
||||
|
||||
```toml
|
||||
[water_to_fusion_fuel]
|
||||
output = "fusion_fuel"
|
||||
output_quantity = 0.1
|
||||
inputs = [
|
||||
{ commodity = "water_volatiles", quantity = 1.0 },
|
||||
{ commodity = "chemical_feedstock", quantity = 0.1 },
|
||||
]
|
||||
description = "Deuterium extraction via electrolytic separation. Low yield rate — 10 units water yields ~1 unit fuel-grade deuterium. The inefficiency is physics, not engineering failure."
|
||||
```
|
||||
|
||||
Note: `chemical_feedstock` at 0.1 quantity captures the industrial process requirements (catalysts, separation media). The water is the dominant input; the chemical input is secondary but present.
|
||||
|
||||
---
|
||||
|
||||
## 3. Unified Schema
|
||||
|
||||
Combining Tyre's base schema, B-S's `production_ubiquity` and `demand_model`, and Gestalt's three political sub-flags. Eliminating duplicates per directive (d):
|
||||
|
||||
**What I'm keeping from Tyre:** Flat slug IDs, underscore convention, flat TOML record structure, `name`, `tier`, `elasticity`, `base_price`, `bulk_class`, `unit`, `description`. Clean and correct.
|
||||
|
||||
**What I'm replacing from Tyre:** `political_sensitivity: bool` → three sub-flags (Gestalt). A single boolean loses too much information.
|
||||
|
||||
**What I'm adding from B-S:** `production_ubiquity`, `demand_model`. These guide initialization and tâtonnement behavior in ways no other field covers.
|
||||
|
||||
**What I'm NOT adding from B-S:** `panic_flagged` and `panic_threshold_weeks` — these are simulation behavior parameters, not authored commodity data. They belong in Rust sim constants (or the corporation-site record), not in content-author TOML. B-S's panic mechanism is correct, but it should be hardcoded for the specific commodities that exhibit it (`water_volatiles`, `fusion_fuel`, `processed_food`, `chemicals_pharma`), not carried in a commodity field that content authors can accidentally misuse.
|
||||
|
||||
**What I'm adding from Gestalt:** Three political sub-flags instead of boolean. Gestalt's bulk class scheme is also more differentiated than Tyre's four classes — I've reconciled to six classes below.
|
||||
|
||||
**Resolved schema (TOML record fields):**
|
||||
|
||||
```toml
|
||||
# Each commodity is a TOML table with the following fields:
|
||||
|
||||
[commodity_id] # flat slug — underscore convention
|
||||
name = "" # display name (English, Title Case)
|
||||
tier = "" # raw | intermediate | final | service_professional | service_luxury
|
||||
elasticity = "" # perfectly_inelastic | inelastic | unit_elastic | elastic | highly_elastic
|
||||
base_price = 0.0 # equilibrium price at a typical producing node, Tractus-denominated
|
||||
bulk_class = "" # heavy | standard | liquid_gas | oversized | precision | non_physical
|
||||
commission_certification_required = false # Commission must certify before sale; Compact friction
|
||||
compact_contested = false # Compact officially rejects Commission authority here
|
||||
shadow_viable = false # shadow market routinely exists for this commodity
|
||||
production_ubiquity = "" # ubiquitous | common | regional | concentrated | monopolistic
|
||||
demand_model = "" # market | utility | compliance
|
||||
unit = "" # tonnes | units | contracts
|
||||
description = "" # optional flavor text (wiki/UI)
|
||||
```
|
||||
|
||||
**Bulk class taxonomy (6 classes, reconciling Tyre/B-S/Gestalt):**
|
||||
|
||||
| Class | Name | Transport cost | Key property |
|
||||
|-------|------|---------------|--------------|
|
||||
| `heavy` | Dense bulk | 1.0x | Low value density; cheap per-unit but volume is the cost (ore, stone, water) |
|
||||
| `standard` | Standard cargo | 1.15x | Normal packaged goods (processed food, textiles, refined metals) |
|
||||
| `liquid_gas` | Liquid/gas cargo | 1.3x | Requires special containers; fusion fuel, chemical feedstock, volatiles |
|
||||
| `oversized` | Oversized/special | 2.5x | Partial assembly, special handling; manufacturing hub stickiness (heavy equipment, infrastructure, prestige objects) |
|
||||
| `precision` | High-value/low-mass | 0.7x | Cheap to ship relative to value; scarcity drives differentials, not transport (rare minerals, electronics, luxury goods, implant hardware) |
|
||||
| `non_physical` | Non-transportable | infinity | Services only; production = consumption node |
|
||||
|
||||
**Three political sub-flags:**
|
||||
|
||||
Taken from Gestalt with minor clarification:
|
||||
- `commission_certification_required`: Commission certification must be obtained before lawful sale. This costs Tractus, is unavailable in Compact-primary zones except at extreme friction. This is the shadow economy incentive mechanism (D-174): if true + shadow_economy_intensity > threshold → shadow market pressure.
|
||||
- `compact_contested`: The Compact officially rejects Commission authority over this commodity. In Mark-primary zones, this means Commission certification carries no legal weight even if obtained. In mixed zones, this flag is a source of arbitrage.
|
||||
- `shadow_viable`: A shadow market routinely exists for this commodity across the Reach. Not always illegal — in some zones it's simply the normal market. Combined with `shadow_economy_intensity` at the node level, this determines actual shadow market depth.
|
||||
|
||||
**Production_ubiquity guidance:**
|
||||
|
||||
| Value | % of inhabited nodes producing | Initialization guidance |
|
||||
|-------|--------------------------------|------------------------|
|
||||
| `ubiquitous` | 50%+ | Spread widely; price variation small; no geographic specialization |
|
||||
| `common` | 20–50% | Moderate coverage; some regional specialization |
|
||||
| `regional` | 5–20% | Significant variation; corridor specialization |
|
||||
| `concentrated` | 1–5% | Strong price gradients; single-corridor anchors |
|
||||
| `monopolistic` | <1% (1–3 sites) | Extreme variation; the interesting chokepoints |
|
||||
|
||||
**Demand_model values:**
|
||||
|
||||
| Value | Behavior | Examples |
|
||||
|-------|----------|---------|
|
||||
| `market` | Demand driven by economic activity and consumer preference | Most goods |
|
||||
| `utility` | Demand driven by population and infrastructure; has a floor that never drops to zero | water_volatiles, fusion_fuel |
|
||||
| `compliance` | Demand driven by regulatory requirements; exists regardless of economic conditions | legal_services, banking_credit |
|
||||
|
||||
---
|
||||
|
||||
## 4. Full Commodity List
|
||||
|
||||
### Raw Materials (7)
|
||||
|
||||
| ID | Name | Base price | Bulk | Cert? | Compact? | Shadow? | Ubiquity | Demand |
|
||||
|----|------|-----------|------|-------|---------|---------|---------|--------|
|
||||
| `metallic_ore` | Metallic Ore | 10T | heavy | No | No | No | common | market |
|
||||
| `stone_aggregate` | Stone & Aggregate | 8T | heavy | No | No | Partial | common | market |
|
||||
| `agricultural_produce` | Agricultural Produce | 5T | standard | Partial | No | No | ubiquitous | market |
|
||||
| `organic_fiber_biomass` | Organic Fiber & Biomass | 15T | standard | No | No | No | regional | market |
|
||||
| `rare_minerals` | Rare Minerals | 80T | precision | Yes | No | High | concentrated | market |
|
||||
| `water_volatiles` | Water & Volatiles | 2T | liquid_gas | No | No | No | ubiquitous | utility |
|
||||
| `chemical_feedstock` | Chemical Feedstock | 20T | liquid_gas | Yes | Yes | Yes | common | market |
|
||||
|
||||
**Lore notes:**
|
||||
- `stone_aggregate`: Kvitfjell marble is `production_ubiquity = monopolistic` at the Bifröst Marmor site. The commodity is abstract; the corporation record carries the site constraint.
|
||||
- `organic_fiber_biomass`: Covers timber (Nordmark Skog), brach fiber (thrds, Braemar-locked), marine catch (east_reach fisheries), pharmaceutical biologicals. Individual corporation sites have `location_bound = true` where warranted. Brach fiber lockout is political, not biological — thrds' corporation record carries the production constraint.
|
||||
- `rare_minerals`: Lattice-grade variant is geographically concentrated in east_reach systems (closing the east_reach economic gap flagged in Round 1). The Commission considers these "strategic materials" — hence certification required.
|
||||
- `chemical_feedstock`: Compact contested because the Commission's hazmat certification framework is seen as a de facto Assembly import tax on frontier industrial self-sufficiency.
|
||||
- `water_volatiles`: Near-free on ocean worlds and ice-moon systems. The most expensive commodity on bare-rock stations, absolutely. Models the "life-or-death expensive" profile B-S identified.
|
||||
|
||||
---
|
||||
|
||||
### Intermediate Goods (8)
|
||||
|
||||
| ID | Name | Inputs | Base price | Bulk | Notes |
|
||||
|----|------|--------|-----------|------|-------|
|
||||
| `refined_metals` | Refined Metals | metallic_ore (×2) | 30T | standard | Basic smelting. Stalownia's operational baseline |
|
||||
| `advanced_alloys` | Advanced Alloys | metallic_ore (×1.5), rare_minerals (×0.3) | 100T | precision | Rare minerals are the bottleneck input |
|
||||
| `structural_panels` | Structural Panels | organic_fiber_biomass (×1.0), refined_metals (×0.5) | 45T | oversized | Timber + metal. Nordmark chain is location_bound to Stillvakt |
|
||||
| `processed_food` | Processed Food | agricultural_produce (×1.5), water_volatiles (×0.2) | 15T | standard | Mercado distributes these. Water is rarely the constraint |
|
||||
| `electronics` | Electronics & Components | rare_minerals (×0.5), refined_metals (×0.3) | 120T | precision | Rare minerals are the scarcity driver; lattice components use this chain |
|
||||
| `chemicals_pharma` | Chemicals & Pharmaceuticals | organic_fiber_biomass (×1.0), chemical_feedstock (×0.3) | 60T | standard | Pharmaceutical precision grade requires biosphere access |
|
||||
| `textiles_composites` | Textiles & Composites | organic_fiber_biomass (×0.8), chemicals_pharma (×0.2) | 50T | standard | Brach fiber chain is location_bound to Braemar |
|
||||
| `fusion_fuel` | Fusion Fuel | water_volatiles (×1.0), chemical_feedstock (×0.1) | 25T | liquid_gas | 10:1 yield (output_quantity = 0.1). Low yield IS the mechanism |
|
||||
|
||||
**Key intermediate notes:**
|
||||
|
||||
**Electronics as the lattice chokepoint:** Gestalt correctly identified this as the richest chokepoint. `rare_minerals → electronics → implant_hardware + infrastructure_components`. Any rare minerals shortage cascades to both the lattice hardware the Commission regulates AND the gate components the Gate Corporation monopolizes. This is the single-point-of-failure that touches both political flashpoints simultaneously.
|
||||
|
||||
**Fusion fuel low yield:** The `water_volatiles → fusion_fuel` chain has `output_quantity = 0.1` — meaning 1 unit of water produces 0.1 units of fuel. At base water price (2T), one unit of fuel costs 20T in water alone (plus chemical input and refining overhead), which is consistent with the 25T base price. At bare-rock stations importing water at 5T+, fuel climbs toward 55-70T — creating the structural frontier energy cost premium without any event generation.
|
||||
|
||||
**Structural panels as the habitat chokepoint:** Timber shortage → structural panels down → habitat modules (within infrastructure_components) stall. No new stations. B-S: "politically explosive." This is correct. The Compact's no-internal-tariff principle makes west_reach timber more accessible within the Compact zone, which is a real economic advantage for Compact member settlement expansion.
|
||||
|
||||
**Aging pipeline chains (luxury_goods):** The luxury_goods chains carry a `production_lag` parameter not shown in the intermediate table because the aging happens at the CHAIN level, not the intermediate commodity level. There is no "aged spirits" commodity in the catalog — the aging is a temporal constraint on the production chain producing `luxury_goods` from `agricultural_produce`. Specific chains:
|
||||
- `luxury_goods_whisky_chain`: location_bound = Calloway Reach, production_lag = [720, 1460] (game-days for 12-20y)
|
||||
- `luxury_goods_wine_classique_chain`: location_bound = Confluent (F8V terroir), production_lag = [365, 730]
|
||||
- `luxury_goods_wine_corridors_chain`: location_bound = Confluent, production_lag = [90, 180]
|
||||
|
||||
The pipeline contents at game start are initialized from corporation records per D-177. Seeding affects annual input (agricultural_produce yield varies ±20-40%), but the pipeline contents are fixed. Same logic applies to the cooperage wood dependency: the Calloway chain requires `organic_fiber_biomass` input from Dunbar (location_bound = Dunbar) for its cask supply. If Dunbar forestry is disrupted, the whisky chain halts at the cask-filling stage 12-20 years before the output shortage appears.
|
||||
|
||||
---
|
||||
|
||||
### Final Goods (8)
|
||||
|
||||
| ID | Name | Inputs | Base price | Bulk | Cert? | Compact? | Shadow? | Ubiquity | Demand |
|
||||
|----|------|--------|-----------|------|-------|---------|---------|---------|--------|
|
||||
| `heavy_equipment` | Heavy Equipment | advanced_alloys (×1.0), electronics (×0.3), refined_metals (×0.5) | 250T | oversized | No | No | No | regional | market |
|
||||
| `transport_vehicles` | Transport Vehicles | advanced_alloys (×0.8), electronics (×0.3) | 350T | oversized | Yes (safety) | Partial | Partial | regional | market |
|
||||
| `freight_vessels` | Freight Vessels | refined_metals (×1.5), electronics (×0.3) | 300T | oversized | Yes (safety) | Partial | Partial | regional | market |
|
||||
| `consumer_goods` | Consumer Goods | processed_food (×0.3), textiles_composites (×0.3), electronics (×0.2) | 80T | standard | No | No | Partial | ubiquitous | market |
|
||||
| `luxury_goods` | Luxury Goods | agricultural_produce (×0.3), textiles_composites (×0.2), chemicals_pharma (×0.2) | 500T | precision | Partial | No | Yes | monopolistic | market |
|
||||
| `prestige_objects` | Prestige Objects | stone_aggregate (×1.0), structural_panels (×0.3) | 600T | oversized | No | No | Partial | monopolistic | market |
|
||||
| `implant_hardware` | Implant Hardware | electronics (×0.5), chemicals_pharma (×0.3), advanced_alloys (×0.2) | 400T | precision | Yes | High | High | concentrated | market |
|
||||
| `medical_goods` | Medical Goods | chemicals_pharma (×0.5), electronics (×0.2) | 150T | precision | Yes | Partial | High | regional | market |
|
||||
|
||||
**Final goods notes:**
|
||||
|
||||
**heavy_equipment vs. transport_vehicles vs. freight_vessels:** B-S's case for separating freight vessels from transport vehicles is correct — demand responds to different signals. Adding a third separation (heavy equipment) is validated by lore: Stalownia produces heavy equipment for extraction sites, MVG produces transit vehicles for population movement, and freight vessel demand tracks trade volume. These three respond to entirely different economic conditions and should not be merged.
|
||||
|
||||
**luxury_goods (premium consumables):** The 987% margin B-S identified is correct — the input cost is ~50T, the price is 500T. This is the brand premium expressed through Specialist corporate agents. The production chains that produce luxury_goods are lore-differentiated (aging lag, location_bound, terroir inputs) but the commodity is abstract. Any Specialist operating in this space commands these margins through behavioral pricing, not through unique commodity entries.
|
||||
|
||||
**prestige_objects (luxury architectural):** Distinct from luxury_goods because: (a) bulk_class oversized — marble is expensive to ship, which creates hub geography around inner-corridor distribution points; (b) demand driven by construction activity and institutional prestige rather than cultural consumption; (c) Kvitfjell marble is the canonical example, but the commodity category includes any luxury decorative stone — the Bifröst Marmor corporation is the only producer currently, with monopolistic production_ubiquity.
|
||||
|
||||
**implant_hardware — THE political flashpoint:** `commission_certification_required = true`, `compact_contested = true (High)`, `shadow_viable = true (High)`. This is the commodity that drives the shadow economy from the demand side. The lore-grounding: Commission-certified implant components cost 3-5x the aftermarket price and take 6-12 months to process (per the contraband wiki, D-037). The shadow market exists because the gap is enormous and the product is identical. The Compact's rejection of Commission authority here is principled political resistance, not crime.
|
||||
|
||||
**medical_goods vs. implant_hardware:** Different input chains, different elasticities, different political profiles. Medical goods (standard healthcare) are inelastic — people need medicine. Implant hardware is elastic — you can defer an augmentation upgrade. Medical goods have partial Commission certification requirement; Compact accepts alternatives to Commission certification. Implant hardware is the high-friction item. The Echternach wiki entry (joined Compact for "medical hardware imports") suggests medical goods availability in deep-frontier systems is an actual dependency, not just background detail.
|
||||
|
||||
**freight_vessels split from transport_vehicles:** B-S's argument holds. Freight vessel demand = f(trade_volume, fleet_age). Transport vehicle demand = f(population, wealth). A trade boom should increase freight vessel demand without affecting personal vehicle demand. These need to be separate commodities for the tâtonnement to produce correct signals.
|
||||
|
||||
---
|
||||
|
||||
## 5. Full Service List
|
||||
|
||||
Per directive (e), more is richer. Services have distinct simulation behavior — don't collapse to hit a number.
|
||||
|
||||
### Professional Services (5)
|
||||
|
||||
| ID | Name | Location bound | Demand model | Cert? | Compact? | Shadow? | Lore anchors |
|
||||
|----|------|---------------|-------------|-------|---------|---------|-------------|
|
||||
| `legal_services` | Legal Services | Yes | compliance | Partial | Partial | No | Ferreira Monteiro (south_reach), Crown's Hollow chancery (west_reach) |
|
||||
| `banking_credit` | Banking & Credit | Yes | compliance | Partial | Yes | Yes | Groombridge clearing house (Tier 1 gap, D-175) |
|
||||
| `insurance` | Insurance & Risk | Yes | market | No | No | Partial | No corporation yet — priority Tier 2 gap |
|
||||
| `commercial_intelligence` | Commercial Intelligence | Yes | market | No | No | Yes | Adams & Ford, Mercado logistics data, FM precedent archive |
|
||||
| `habitation_berths` | Habitation & Berths | Yes | utility | No | No | Partial | Station housing, worker accommodation; covers "rent" verb D-131 |
|
||||
|
||||
**Service notes:**
|
||||
|
||||
**Legal services:** Commission certification is NOT a separate service commodity. It is modeled through (a) `commission_certification_required` flags on specific commodities, (b) `commission_presence` per node (D-174 seeding), and (c) shadow_economy_intensity (inversely correlated). The Commission is a regulatory body, not a commercial service provider; making certification a purchasable service would create strange dynamics. Legal services as a commodity covers commercial law, arbitration, and documentation work — all of which are provided by commercial firms (FM, Crown's Hollow, Guild documentation offices).
|
||||
|
||||
**Banking & credit:** The Groombridge clearing house is a prerequisite for the three-currency simulation (D-171). Without this institution, Mark/Tractus cross-zone settlement has no institutional home. This corporation must be created before Phase 2 begins — it is not optional. The service commodity exists regardless of whether the corporation has been authored; the corporation authoring gates whether the simulation has a realistic provider.
|
||||
|
||||
**Commercial intelligence (replacing logistics management):** Gestalt's argument is correct — logistics management is implicit in transport costs; commercial intelligence is a distinct archetype with no other commodity backing. Adams & Ford Publishing (The Drifter's Guide), Mercado's supply chain intelligence, FM's 400-year case archive, VGV's 350-year distribution records — all of these are commercial intelligence products. The "unregistered commercial intelligence" contraband type (D-174) implies the licensed version is a real service.
|
||||
|
||||
**Habitation & berths:** Gestalt's addition. Covers the "rent" verb (D-131). Physical space on a station is inherently location-bound, fixed supply. A booming node runs out of berths → caps service growth → real estate price signal. This is mechanically distinct from all other services and should be in the catalog.
|
||||
|
||||
### Luxury / Experiential Services (3)
|
||||
|
||||
| ID | Name | Location bound | Demand model | Cert? | Compact? | Shadow? | Lore anchors |
|
||||
|----|------|---------------|-------------|-------|---------|---------|-------------|
|
||||
| `tourism` | Tourism | Yes | market | No | No | No | Confluent wine estates, Calloway distillery circuit, prestige deep-corridor destinations |
|
||||
| `entertainment` | Entertainment & Media | Yes | market | No | No | Partial | Adams & Ford (consumer tier), holo-content production, live performances |
|
||||
| `re_embodiment` | Re-embodiment Services | Yes | market | Yes | High | High | Prometheus-adjacent; Commission-licensed; unlicensed = canonical contraband (D-174) |
|
||||
|
||||
**Service notes:**
|
||||
|
||||
**Re-embodiment as luxury service (not professional):** B-S classified this as professional (medical/re-embodiment combined). I've separated them. Standard medical goods is a physical commodity (in the final goods tier). Re-embodiment is a service — you cannot freight it. It belongs in luxury/experiential because (a) it is not a necessity for daily function (unlike habitation or legal compliance), (b) it is prohibitively expensive at the licensed end, and (c) its unlicensed version is explicitly canonical contraband (D-174). Luxury does not mean frivolous; it means discretionary, high-value, and not in the compliance or utility demand model.
|
||||
|
||||
**Re-embodiment's political profile:** `commission_certification_required = true`, `compact_contested = true (High)`, `shadow_viable = true (High)`. The unlicensed version in Compact systems is principled rejection of Assembly medical authority over biological restoration — not crime by the Compact's own framework. The Commission's licensing of re-embodiment services (under the same regulatory carve-out that protects Prometheus longevity protocols) is one of the most politically charged regulatory acts in the Reach. This service carries the most political weight per commodity in the entire catalog.
|
||||
|
||||
---
|
||||
|
||||
## 6. Additional Lore Constraints for D-177 / Corporation Records
|
||||
|
||||
These do not appear in the commodity record — they belong in corporation-site records and chain records. Documenting here so they're not lost.
|
||||
|
||||
**Dunbar cooperage wood (new, unlisted in current D-177):**
|
||||
The Calloway whisky production chain requires `organic_fiber_biomass` from Dunbar (GJ 3991) specifically for cooperage-grade hardwood. This is a second-order constraint: Dunbar forestry disruption halts cask production, which halts whisky pipeline filling, which reduces output 12-20 years later. The simulation chain record: `chain.luxury_goods_whisky_chain` has `location_bound_inputs = [{ commodity = "organic_fiber_biomass", system = "GJ-3991" }]`.
|
||||
|
||||
**Nordmark 40-60 year recovery:**
|
||||
Structural timber disruption has multi-decade recovery. Model as a very long-duration shock to `organic_fiber_biomass` production at Stillvakt, not as a productivity variance. The chain record should carry a `recovery_time_estimate = "decades"` annotation for event system reference.
|
||||
|
||||
**Compact's energy independence as structural seeding:**
|
||||
Compact member systems with gas giant moons or comet-rich belts should be seeded with higher water_volatiles production and fusion fuel refining capacity. This is a political choice encoded as economic geography — it gives Compact systems structural energy self-sufficiency that reduces their dependency on Assembly-adjacent fuel suppliers.
|
||||
|
||||
**Prometheus maintenance network sparsity:**
|
||||
Re-embodiment services (and implicitly Prometheus longevity maintenance) have lower `service_capacity` seeds at Compact-primary and frontier nodes. This is a geographic availability gradient: the licensed re-embodiment service is concentrated near major hubs, matching Prometheus's network. The shadow market for unlicensed re-embodiment fills the gap in precisely the places formal services are absent.
|
||||
|
||||
---
|
||||
|
||||
## 7. Summary
|
||||
|
||||
**Commodity list:** 7 raws + 8 intermediates + 8 finals + 5 professional services + 3 luxury services = **31 commodities**
|
||||
|
||||
Within D-173's "approximately 30" target.
|
||||
|
||||
**Key convergences accepted from other Round 1 agents:**
|
||||
- Tyre: flat slug IDs, TOML schema foundation, validation rules
|
||||
- B-S: production_ubiquity field, demand_model field, water/fusion fuel split, base pricing framework, elasticity classes
|
||||
- Gestalt: three political sub-flags (replacing single boolean), habitation/berths as professional service, commercial intelligence replacing logistics management, B-5/oversized bulk class for heavy goods
|
||||
|
||||
**Key contributions from this document:**
|
||||
- Luxury goods tension resolution: two abstract categories (luxury_goods precision + prestige_objects oversized), neither per-brand
|
||||
- Water → fusion fuel lore grounding: Compact energy independence, bare-rock station structural disadvantage, low-yield mechanism explanation
|
||||
- Lore constraints moved to correct record types (chain, corporation-site, not commodity)
|
||||
- Dunbar cooperage wood as an unlisted D-177 constraint
|
||||
- Re-embodiment as luxury service (not professional) with high political profile
|
||||
- freight_vessels as distinct from transport_vehicles (different demand signals)
|
||||
|
||||
**Three production chokepoints (from Gestalt, confirmed lore-grounded):**
|
||||
|
||||
1. **Rare minerals → electronics → implant_hardware + infrastructure_components**: The richest chokepoint. Touches Commission-certified implants AND Gate Corp gate components in the same cascade. Both are politically charged. One disruption, two flashpoints.
|
||||
|
||||
2. **organic_fiber_biomass → structural_panels → infrastructure_components**: Timber disruption stalls habitat module construction. No new stations. Long recovery time (Nordmark's 40-60 year cycle). Politically explosive because station construction is how the frontier expands.
|
||||
|
||||
3. **agricultural_produce (terroir-locked) → luxury_goods**: Hard biological ceilings (D-177). The sim learns that economics alone can't solve scarcity — adding economic activity at Confluent doesn't expand VGV vineyard capacity because the F8V terroir is the ceiling, not the investment level. Sol-denominated black market pricing appears here naturally.
|
||||
@@ -0,0 +1,116 @@
|
||||
# Lore Validation — Commodity Catalog (Round 3)
|
||||
**Validator:** Miri
|
||||
**Files reviewed:** `commodities-final.toml`, `production-chains-final.toml`
|
||||
**Date:** 2026-04-05
|
||||
|
||||
---
|
||||
|
||||
## 1. Corporation Coverage
|
||||
|
||||
All 13 wiki corporations accounted for. Producer role = makes/extracts the commodity. Brand-layer = consumes commodities as inputs, operates outside tâtonnement.
|
||||
|
||||
| Corporation | Commodity role | Status |
|
||||
|---|---|---|
|
||||
| Gate Corporation | `gate_components` producer; gate transit buyer | ✓ |
|
||||
| MVG | `transport_vehicles` producer | ✓ (see flag below) |
|
||||
| Prometheus Labs | `implant_hardware` buyer/producer; `medical_services` provider | ✓ partial |
|
||||
| Adams & Ford Publishing | `commercial_intelligence` producer | ✓ |
|
||||
| Mercado Travessia | `consumer_goods` distributor; `processed_food` buyer | ✓ |
|
||||
| Stalownia Kowalski | `heavy_equipment` producer; buys `metallic_ore`, `electronics`, `drive_cores` | ✓ |
|
||||
| Ferreira Monteiro | `legal_services` producer | ✓ |
|
||||
| Calloway Distillery | `agricultural_produce` buyer — brand layer | ✓ |
|
||||
| thrds | `organic_compounds` + `chemicals` buyer — brand layer | ✓ |
|
||||
| Bífröst Marmor | `stone` buyer — brand layer | ✓ |
|
||||
| Nordmark Skog | `timber` producer | ✓ |
|
||||
| Talbräu | `agricultural_produce` buyer — brand layer | ✓ |
|
||||
| Vins de Grand Vide | `agricultural_produce` buyer — brand layer | ✓ |
|
||||
|
||||
**Flag — `rail_infrastructure`:** This final good has no named wiki corporation to produce it. MVG produces transit vehicles (different final). Cygni B Combines (structural/heavy industry) are the likeliest candidates but are not among the 13 named corporations. Either assign `rail_infrastructure` to MVG (they do heavy transport infrastructure) or note that a Tier 2 template corporation fills this slot — not a Tier 1 named entity. Does not break anything, but should be resolved before corporation-seeding in Phase 2.
|
||||
|
||||
---
|
||||
|
||||
## 2. Geographic Anchoring
|
||||
|
||||
`production_ubiquity` values against wiki lore:
|
||||
|
||||
| Commodity | Ubiquity in TOML | Lore verdict |
|
||||
|---|---|---|
|
||||
| `metallic_ore` | concentrated | ✓ — inner_reach mining corridors |
|
||||
| `rare_minerals` | concentrated | ✓ — specific geological contexts |
|
||||
| `lattice_grade_material` | monopolistic | ✓ — east_reach anchor; correct |
|
||||
| `timber` | regional | ✓ — requires established biosphere; Braemar/forest worlds |
|
||||
| `agricultural_produce` | ubiquitous | ✓ — hydroponic capability is baseline civilizational tech |
|
||||
| `water` | ubiquitous | ✓ — ice mining, atmospheric capture widely available |
|
||||
| `organic_compounds` | regional | ✓ — requires biosphere or synthetic capacity |
|
||||
| `stone` | common | ✓ — widespread; Kvitfjell marble is a brand-layer distinction, not commodity-level |
|
||||
| `chemical_feedstock` | concentrated | ✓ — geological/gas giant sourcing |
|
||||
| `fusion_fuel` | common | Acceptable — downstream of water; "common" is slightly generous given 8:1 ratio, but water ubiquity makes this defensible |
|
||||
|
||||
All values pass. No lore contradictions.
|
||||
|
||||
---
|
||||
|
||||
## 3. D-177 Constraints (Brand Layer vs. Commodity Layer)
|
||||
|
||||
D-177 names three constraint classes: terroir, aging pipelines, and capital goods lead times.
|
||||
|
||||
- All 21 production chains: `location_bound = false` ✓
|
||||
- No aging pipeline parameters appear in any TOML record ✓
|
||||
- No terroir flags in commodity records ✓
|
||||
- Kvitfjell marble distinction not encoded in commodity layer ✓ — correctly deferred to brand layer
|
||||
- Calloway 12–20 year aging lag not encoded in commodity layer ✓ — correctly deferred to brand layer
|
||||
- Brach fiber location lock not encoded in commodity layer ✓ — correctly deferred to brand layer
|
||||
|
||||
D-177 constraints are cleanly separated. Brand layer will need to implement all three classes when it is designed.
|
||||
|
||||
---
|
||||
|
||||
## 4. Additional Lore Constraints for Brand Layer Design
|
||||
|
||||
Constraints the brand layer must carry that are NOT in the commodity catalog:
|
||||
|
||||
- **Lattice fabrication geography:** Prometheus Labs can only operate full lattice fabrication within east_reach proximity. Implant hardware of longevity-tier specification requires east_reach supply chain, even if the commodity `lattice_substrate` trades freely.
|
||||
- **Kvitfjell marble:** Bífröst Marmor's prestige stone products are location-locked to the Kvitfjell system. Raw `stone` is common; the Kvitfjell variant is not. The brand layer must encode this distinction.
|
||||
- **Calloway aging:** 12–20 year pipeline lag is a brand-layer input constraint, not a commodity signal. This creates Calloway's price stability story.
|
||||
- **Brach fiber (thrds):** `organic_compounds` is regional ubiquity, but thrds' brach-fiber pathway is location-locked to Braemar. thrds products derived from brach fiber cannot be replicated at arbitrary `organic_compounds` nodes. Brand layer must flag this.
|
||||
- **VGV terroir:** Vins de Grand Vide's appellations are tied to specific orbital/atmospheric conditions. Generic `agricultural_produce` cannot substitute. Brand layer must encode the provenance chain.
|
||||
- **Talbräu and agricultural specificity:** Similar terroir constraint to VGV. Generic agricultural_produce ≠ heritage grain varieties.
|
||||
- **Gate Corporation monopoly on gate_components:** Already in the TOML description. Brand layer / corporate agent layer should enforce that no competitor produces `gate_components` — this is Gate Corp's structural monopoly.
|
||||
|
||||
---
|
||||
|
||||
## 5. East_reach Economic Identity
|
||||
|
||||
The east_reach production chain:
|
||||
|
||||
```
|
||||
lattice_grade_material (monopolistic) + chemicals → lattice_substrate
|
||||
lattice_substrate → implant_hardware (with electronics + chemicals)
|
||||
lattice_substrate → gate_components (with advanced_alloys + drive_cores)
|
||||
```
|
||||
|
||||
Assessment:
|
||||
- **Viable.** `lattice_grade_material` is the only monopolistic raw in the catalog. East_reach holds the only source. Everything downstream of lattice_substrate is gated on east_reach supply.
|
||||
- `implant_hardware` and `gate_components` are both high-value finals requiring lattice_substrate. This gives east_reach structural importance to two critical civilizational systems (neural tech and wormhole infrastructure).
|
||||
- `commission_certified = true` and `shadow_viable = true` on `lattice_grade_material` correctly models the east_reach political tension — state-sanctioned scarcity creates black market pressure.
|
||||
- The double-path through lattice (implants + gates) means east_reach supply disruption has cascading effects in two independent final-good chains simultaneously. This is good design; it makes east_reach conflict economically legible.
|
||||
|
||||
---
|
||||
|
||||
## 6. Disputes and Open Flags
|
||||
|
||||
Items where the final TOML diverges from my Round 2 recommendations. Not blocking, but flagged for the lead's awareness.
|
||||
|
||||
**F-1 — `rail_infrastructure` (new, unworkshoped):** Not discussed in any workshop round. No named wiki corporation produces it. If MVG is reassigned to cover both transit vehicles and rail, the corporation profile needs updating. If this is a Tier 2 slot, confirm intentional.
|
||||
|
||||
**F-2 — `commission_certification` as a service:** I recommended modeling this as a node parameter (`commission_presence: bool`) rather than a tradeable service commodity. Keeping it as a service creates plausible dynamics ("who sells certifications and at what price?") but also risks market weirdness — certification cannot be arbitraged between nodes the way services can. Flagging for economic model review, not rejecting.
|
||||
|
||||
**F-3 — Re-embodiment placement:** Licensed re-embodiment has no explicit luxury service slot. It is absorbed into `medical_services` by description. This is workable — but D-174's contraband connection (unlicensed re-embodiment as shadow economy) is cleaner if there's a distinct luxury tier entry to contrast against. Low priority flag.
|
||||
|
||||
**F-4 — `panic_threshold_weeks` as TOML field vs. sim constant:** I recommended this be a simulation constant calibrated at runtime. As a per-commodity TOML field, it is accessible to content authors who may set it incorrectly for non-panic commodities. Risk is low in a small catalog; reconsider if catalog grows.
|
||||
|
||||
**F-5 — Fusion fuel yield 8:1 vs. 6:1:** Both are defensible. At 8:1 the frontier fuel premium is steeper — a water-poor bare-rock station faces roughly 40T water input cost per fuel unit before transport markup. This creates meaningful cost geography. Lore accepts 8:1; no contradiction.
|
||||
|
||||
---
|
||||
|
||||
*End of lore validation.*
|
||||
@@ -0,0 +1,250 @@
|
||||
# ==========================================================================
|
||||
# Settled Reach — Production Chain Recipes
|
||||
# Source of truth. Compiled to systems.db via `make economy-db`.
|
||||
#
|
||||
# Leontief fixed-coefficient recipes (D-173, D-178).
|
||||
# Multiple chains MAY produce the same output (structural substitution).
|
||||
# Services have NO production chains — they are demand sinks.
|
||||
# Brands are NOT in this system — brand corporations are commodity buyers.
|
||||
#
|
||||
# Fields:
|
||||
# output commodity_id of the product
|
||||
# output_quantity units produced per cycle (float, default 1.0)
|
||||
# inputs array of { commodity, quantity } pairs
|
||||
# location_bound chain requires specific local resources (default false)
|
||||
# description human-readable recipe description (optional)
|
||||
#
|
||||
# Decisions: D-173 (taxonomy), D-178 (Leontief), D-182 (TOML pipeline)
|
||||
# ==========================================================================
|
||||
|
||||
|
||||
# ==========================================================================
|
||||
# RAW → INTERMEDIATE (12 chains, including 2 substitution routes)
|
||||
# ==========================================================================
|
||||
|
||||
[smelt_ore]
|
||||
output = "refined_metals"
|
||||
output_quantity = 1.0
|
||||
inputs = [
|
||||
{ commodity = "metallic_ore", quantity = 2.0 },
|
||||
{ commodity = "fusion_fuel", quantity = 0.3 },
|
||||
]
|
||||
location_bound = false
|
||||
description = "Smelting: 2t ore + fuel → 1t refined metal. Energy-intensive."
|
||||
|
||||
[alloy_fabrication]
|
||||
output = "advanced_alloys"
|
||||
output_quantity = 1.0
|
||||
inputs = [
|
||||
{ commodity = "metallic_ore", quantity = 1.5 },
|
||||
{ commodity = "rare_minerals", quantity = 0.3 },
|
||||
{ commodity = "fusion_fuel", quantity = 0.2 },
|
||||
]
|
||||
location_bound = false
|
||||
description = "High-tech alloying. Rare minerals are the bottleneck input. Precision metallurgy."
|
||||
|
||||
[fuel_refining]
|
||||
output = "fusion_fuel"
|
||||
output_quantity = 1.0
|
||||
inputs = [
|
||||
{ commodity = "water", quantity = 8.0 },
|
||||
]
|
||||
location_bound = false
|
||||
description = "Deuterium/tritium extraction. 8:1 yield ratio — water-rich systems have structural fuel advantage."
|
||||
|
||||
[food_processing]
|
||||
output = "processed_food"
|
||||
output_quantity = 1.0
|
||||
inputs = [
|
||||
{ commodity = "agricultural_produce", quantity = 1.5 },
|
||||
{ commodity = "water", quantity = 0.2 },
|
||||
]
|
||||
location_bound = false
|
||||
description = "Preservation, packaging, shelf-stabilization."
|
||||
|
||||
[electronics_fabrication]
|
||||
output = "electronics"
|
||||
output_quantity = 1.0
|
||||
inputs = [
|
||||
{ commodity = "rare_minerals", quantity = 0.5 },
|
||||
{ commodity = "refined_metals", quantity = 0.3 },
|
||||
{ commodity = "fusion_fuel", quantity = 0.2 },
|
||||
]
|
||||
location_bound = false
|
||||
description = "Circuit fabrication, processor assembly. Rare minerals are the scarcity driver. Fab power."
|
||||
|
||||
[chemical_processing]
|
||||
output = "chemicals"
|
||||
output_quantity = 1.0
|
||||
inputs = [
|
||||
{ commodity = "chemical_feedstock", quantity = 2.0 },
|
||||
{ commodity = "water", quantity = 0.5 },
|
||||
]
|
||||
location_bound = false
|
||||
description = "Industrial chemistry from geological/gas feedstock. Primary path."
|
||||
|
||||
# -- Substitution route: chemicals from biological path --
|
||||
[chemical_from_organics]
|
||||
output = "chemicals"
|
||||
output_quantity = 0.8
|
||||
inputs = [
|
||||
{ commodity = "organic_compounds", quantity = 1.0 },
|
||||
{ commodity = "water", quantity = 0.3 },
|
||||
]
|
||||
location_bound = false
|
||||
description = "Biochemical processing. Lower yield, different source. Substitution route."
|
||||
|
||||
[textile_production]
|
||||
output = "textiles"
|
||||
output_quantity = 1.0
|
||||
inputs = [
|
||||
{ commodity = "organic_compounds", quantity = 0.8 },
|
||||
{ commodity = "chemicals", quantity = 0.2 },
|
||||
]
|
||||
location_bound = false
|
||||
description = "Fiber processing, weaving, composite layup. Includes brach fiber pathway."
|
||||
|
||||
[panel_from_timber]
|
||||
output = "structural_panels"
|
||||
output_quantity = 1.0
|
||||
inputs = [
|
||||
{ commodity = "timber", quantity = 1.0 },
|
||||
{ commodity = "refined_metals", quantity = 0.5 },
|
||||
]
|
||||
location_bound = false
|
||||
description = "Timber-based construction panels. Forest world proximity matters."
|
||||
|
||||
# -- Substitution route: panels from stone --
|
||||
[panel_from_stone]
|
||||
output = "structural_panels"
|
||||
output_quantity = 0.8
|
||||
inputs = [
|
||||
{ commodity = "stone", quantity = 1.5 },
|
||||
{ commodity = "refined_metals", quantity = 0.5 },
|
||||
]
|
||||
location_bound = false
|
||||
description = "Stone-based construction panels. Lower yield but uses different raw. Quarry proximity."
|
||||
|
||||
[drive_core_assembly]
|
||||
output = "drive_cores"
|
||||
output_quantity = 1.0
|
||||
inputs = [
|
||||
{ commodity = "rare_minerals", quantity = 0.4 },
|
||||
{ commodity = "advanced_alloys", quantity = 0.8 },
|
||||
]
|
||||
location_bound = false
|
||||
description = "Precision assembly. Double rare-minerals dependency (direct + via alloys)."
|
||||
|
||||
[lattice_processing]
|
||||
output = "lattice_substrate"
|
||||
output_quantity = 1.0
|
||||
inputs = [
|
||||
{ commodity = "lattice_grade_material", quantity = 1.0 },
|
||||
{ commodity = "chemicals", quantity = 0.3 },
|
||||
]
|
||||
location_bound = false
|
||||
description = "Lattice wafer processing for neural and gate applications. From east reach material."
|
||||
|
||||
|
||||
# ==========================================================================
|
||||
# INTERMEDIATE → FINAL (9 chains)
|
||||
# ==========================================================================
|
||||
|
||||
[heavy_equipment_assembly]
|
||||
output = "heavy_equipment"
|
||||
output_quantity = 1.0
|
||||
inputs = [
|
||||
{ commodity = "refined_metals", quantity = 1.0 },
|
||||
{ commodity = "electronics", quantity = 0.3 },
|
||||
{ commodity = "drive_cores", quantity = 0.2 },
|
||||
]
|
||||
location_bound = false
|
||||
description = "Mining rigs, construction machinery. Stalownia's core recipe."
|
||||
|
||||
[vehicle_manufacturing]
|
||||
output = "transport_vehicles"
|
||||
output_quantity = 1.0
|
||||
inputs = [
|
||||
{ commodity = "advanced_alloys", quantity = 0.8 },
|
||||
{ commodity = "electronics", quantity = 0.3 },
|
||||
{ commodity = "drive_cores", quantity = 0.3 },
|
||||
]
|
||||
location_bound = false
|
||||
description = "Ships, ground vehicles. Premium materials — alloys, not base metal."
|
||||
|
||||
[freight_hauler_construction]
|
||||
output = "freight_haulers"
|
||||
output_quantity = 1.0
|
||||
inputs = [
|
||||
{ commodity = "refined_metals", quantity = 1.5 },
|
||||
{ commodity = "drive_cores", quantity = 0.5 },
|
||||
{ commodity = "electronics", quantity = 0.3 },
|
||||
]
|
||||
location_bound = false
|
||||
description = "Commercial cargo vessels. Metal and drive-core intensive."
|
||||
|
||||
[consumer_goods_assembly]
|
||||
output = "consumer_goods"
|
||||
output_quantity = 1.0
|
||||
inputs = [
|
||||
{ commodity = "processed_food", quantity = 0.3 },
|
||||
{ commodity = "textiles", quantity = 0.3 },
|
||||
{ commodity = "electronics", quantity = 0.2 },
|
||||
]
|
||||
location_bound = false
|
||||
description = "Daily necessities, household items. Broad, diversified input mix."
|
||||
|
||||
[implant_fabrication]
|
||||
output = "implant_hardware"
|
||||
output_quantity = 1.0
|
||||
inputs = [
|
||||
{ commodity = "electronics", quantity = 0.5 },
|
||||
{ commodity = "chemicals", quantity = 0.3 },
|
||||
{ commodity = "lattice_substrate", quantity = 0.4 },
|
||||
]
|
||||
location_bound = false
|
||||
description = "Neural interfaces, lattice components. Lattice substrate is the critical input."
|
||||
|
||||
[medical_goods_production]
|
||||
output = "medical_goods"
|
||||
output_quantity = 1.0
|
||||
inputs = [
|
||||
{ commodity = "chemicals", quantity = 0.4 },
|
||||
{ commodity = "electronics", quantity = 0.3 },
|
||||
{ commodity = "advanced_alloys", quantity = 0.2 },
|
||||
]
|
||||
location_bound = false
|
||||
description = "Pharmaceuticals, surgical equipment, diagnostics."
|
||||
|
||||
[gate_component_assembly]
|
||||
output = "gate_components"
|
||||
output_quantity = 1.0
|
||||
inputs = [
|
||||
{ commodity = "advanced_alloys", quantity = 1.0 },
|
||||
{ commodity = "drive_cores", quantity = 0.5 },
|
||||
{ commodity = "lattice_substrate", quantity = 0.3 },
|
||||
]
|
||||
location_bound = false
|
||||
description = "Gate maintenance and construction. Most input-intensive final. Gate Corp monopoly."
|
||||
|
||||
[habitat_module_assembly]
|
||||
output = "habitat_modules"
|
||||
output_quantity = 1.0
|
||||
inputs = [
|
||||
{ commodity = "structural_panels", quantity = 1.2 },
|
||||
{ commodity = "electronics", quantity = 0.3 },
|
||||
{ commodity = "chemicals", quantity = 0.2 },
|
||||
]
|
||||
location_bound = false
|
||||
description = "Station and settlement living/working units. Panel-heavy — timber/stone scarcity cascades here."
|
||||
|
||||
[rail_construction]
|
||||
output = "rail_infrastructure"
|
||||
output_quantity = 1.0
|
||||
inputs = [
|
||||
{ commodity = "refined_metals", quantity = 1.0 },
|
||||
{ commodity = "structural_panels", quantity = 1.5 },
|
||||
{ commodity = "electronics", quantity = 0.3 },
|
||||
]
|
||||
location_bound = false
|
||||
description = "Heavy steel construction — tracks, carriages, stations, signaling systems."
|
||||
@@ -0,0 +1,228 @@
|
||||
# Commodity Catalog — Schema Specification
|
||||
|
||||
Definitive schema for #804 (systems.db extension), TOML field spec, and validation rules.
|
||||
|
||||
**Decisions:** D-173, D-177, D-178, D-182
|
||||
|
||||
---
|
||||
|
||||
## 1. SQL Schema (for #804)
|
||||
|
||||
```sql
|
||||
-- =========================================================================
|
||||
-- Compiled from wiki/economics/commodities.toml
|
||||
-- =========================================================================
|
||||
|
||||
CREATE TABLE commodities (
|
||||
commodity_id TEXT PRIMARY KEY,
|
||||
name TEXT NOT NULL,
|
||||
tier TEXT NOT NULL CHECK(tier IN (
|
||||
'raw', 'intermediate', 'final',
|
||||
'service_professional', 'service_luxury'
|
||||
)),
|
||||
elasticity TEXT NOT NULL CHECK(elasticity IN (
|
||||
'perfectly_inelastic', 'inelastic', 'unit_elastic', 'elastic'
|
||||
)),
|
||||
base_price REAL NOT NULL CHECK(base_price > 0),
|
||||
bulk_class TEXT NOT NULL CHECK(bulk_class IN (
|
||||
'bulk', 'liquid', 'perishable', 'standard', 'compact',
|
||||
'precision', 'oversized', 'non_physical'
|
||||
)),
|
||||
unit TEXT NOT NULL CHECK(unit IN ('tonnes', 'units', 'contracts')),
|
||||
production_ubiquity TEXT NOT NULL CHECK(production_ubiquity IN (
|
||||
'ubiquitous', 'common', 'regional', 'concentrated', 'monopolistic'
|
||||
)),
|
||||
demand_model TEXT NOT NULL CHECK(demand_model IN (
|
||||
'market', 'utility', 'compliance'
|
||||
)),
|
||||
commission_certified INTEGER NOT NULL DEFAULT 0,
|
||||
compact_contested INTEGER NOT NULL DEFAULT 0,
|
||||
shadow_viable INTEGER NOT NULL DEFAULT 0,
|
||||
panic_threshold_weeks INTEGER NOT NULL DEFAULT 0 CHECK(panic_threshold_weeks >= 0),
|
||||
description TEXT
|
||||
);
|
||||
|
||||
-- =========================================================================
|
||||
-- Compiled from wiki/economics/production_chains.toml
|
||||
-- =========================================================================
|
||||
|
||||
CREATE TABLE production_chains (
|
||||
chain_id TEXT PRIMARY KEY,
|
||||
output_commodity TEXT NOT NULL REFERENCES commodities(commodity_id),
|
||||
output_quantity REAL NOT NULL DEFAULT 1.0 CHECK(output_quantity > 0),
|
||||
location_bound INTEGER NOT NULL DEFAULT 0,
|
||||
description TEXT
|
||||
);
|
||||
|
||||
CREATE TABLE chain_inputs (
|
||||
chain_id TEXT NOT NULL REFERENCES production_chains(chain_id) ON DELETE CASCADE,
|
||||
commodity_id TEXT NOT NULL REFERENCES commodities(commodity_id),
|
||||
quantity REAL NOT NULL CHECK(quantity > 0),
|
||||
PRIMARY KEY (chain_id, commodity_id)
|
||||
);
|
||||
|
||||
-- =========================================================================
|
||||
-- Indexes
|
||||
-- =========================================================================
|
||||
|
||||
CREATE INDEX idx_commodities_tier ON commodities(tier);
|
||||
CREATE INDEX idx_commodities_ubiquity ON commodities(production_ubiquity);
|
||||
CREATE INDEX idx_commodities_demand ON commodities(demand_model);
|
||||
CREATE INDEX idx_chains_output ON production_chains(output_commodity);
|
||||
CREATE INDEX idx_chain_inputs_commodity ON chain_inputs(commodity_id);
|
||||
```
|
||||
|
||||
### Alignment notes for server team
|
||||
|
||||
- Every column maps 1:1 from a TOML field. No computed columns.
|
||||
- Booleans are INTEGER (0/1) — standard SQLite convention, consistent with existing schema (`inhabited`, `asteroid_belt`, etc.).
|
||||
- FK constraints enforce referential integrity at the DB level.
|
||||
- `chain_inputs` composite PK: one commodity appears at most once per chain (Leontief fixed-coefficient — one coefficient per input per chain).
|
||||
- `panic_threshold_weeks` is integer ≥ 0. Zero means no panic behavior. Non-zero triggers the stockpile-target panic mechanism at runtime when actual stockpile falls below this threshold.
|
||||
|
||||
---
|
||||
|
||||
## 2. TOML Field Specification
|
||||
|
||||
### commodities.toml
|
||||
|
||||
| Field | Type | Required | Constraint | Source |
|
||||
|-------|------|----------|------------|--------|
|
||||
| *TOML key* | string | yes | `[a-z][a-z0-9_]*` (snake_case slug) | ID |
|
||||
| `name` | string | yes | non-empty, Title Case | display |
|
||||
| `tier` | enum | yes | `raw`, `intermediate`, `final`, `service_professional`, `service_luxury` | D-173 |
|
||||
| `elasticity` | enum | yes | `perfectly_inelastic`, `inelastic`, `unit_elastic`, `elastic` | D-173 (4 classes) |
|
||||
| `base_price` | float | yes | > 0 | Tractus equilibrium |
|
||||
| `bulk_class` | enum | yes | `bulk`, `liquid`, `perishable`, `standard`, `compact`, `precision`, `oversized`, `non_physical` | transport cost |
|
||||
| `unit` | enum | yes | `tonnes`, `units`, `contracts` | quantity basis |
|
||||
| `production_ubiquity` | enum | yes | `ubiquitous`, `common`, `regional`, `concentrated`, `monopolistic` | B-S init guidance |
|
||||
| `demand_model` | enum | yes | `market`, `utility`, `compliance` | B-S demand floors |
|
||||
| `commission_certified` | bool | yes | true/false | Gestalt political |
|
||||
| `compact_contested` | bool | yes | true/false | Gestalt political |
|
||||
| `shadow_viable` | bool | yes | true/false | Gestalt political |
|
||||
| `panic_threshold_weeks` | int | yes | ≥ 0 | B-S panic mechanism |
|
||||
| `description` | string | no | — | flavor text |
|
||||
|
||||
### production_chains.toml
|
||||
|
||||
| Field | Type | Required | Constraint | Source |
|
||||
|-------|------|----------|------------|--------|
|
||||
| *TOML key* | string | yes | `[a-z][a-z0-9_]*` (snake_case slug) | chain ID |
|
||||
| `output` | string | yes | must exist in commodities.toml | commodity_id ref |
|
||||
| `output_quantity` | float | no | > 0, default 1.0 | yield per cycle |
|
||||
| `inputs` | array | yes | ≥ 1 entry, each `{ commodity, quantity }` | recipe |
|
||||
| `inputs[].commodity` | string | yes | must exist in commodities.toml | commodity_id ref |
|
||||
| `inputs[].quantity` | float | yes | > 0 | input coefficient |
|
||||
| `location_bound` | bool | no | default false | geographic constraint |
|
||||
| `description` | string | no | — | human-readable recipe |
|
||||
|
||||
---
|
||||
|
||||
## 3. Bulk Class Transport Multipliers
|
||||
|
||||
| Class | Multiplier | Gate cost at 8% base | 5-hop price | 10-hop price | Commodities |
|
||||
|-------|-----------|---------------------|-------------|--------------|-------------|
|
||||
| `bulk` | 1.2x | 9.6%/hop | 1.58x | 2.50x | ore, stone, timber |
|
||||
| `liquid` | 1.3x | 10.4%/hop | 1.64x | 2.69x | water, chemical_feedstock, fusion_fuel |
|
||||
| `perishable` | 1.8x | 14.4%/hop | 1.97x | 3.87x | agricultural_produce |
|
||||
| `standard` | 1.0x | 8.0%/hop | 1.47x | 2.16x | refined_metals, alloys, food, chemicals, textiles, panels |
|
||||
| `compact` | 0.8x | 6.4%/hop | 1.36x | 1.86x | electronics, drive_cores, lattice_substrate, consumer_goods, medical_goods |
|
||||
| `precision` | 0.6x | 4.8%/hop | 1.26x | 1.60x | rare_minerals, lattice_grade_material, implant_hardware |
|
||||
| `oversized` | 2.0x | 16.0%/hop | 2.10x | 4.41x | heavy_equipment, vehicles, haulers, gate_components, habitat_modules, rail |
|
||||
| `non_physical` | ∞ | N/A | N/A | N/A | all services |
|
||||
|
||||
---
|
||||
|
||||
## 4. Validation Rules for `make economy-db`
|
||||
|
||||
### Hard failures (build aborts)
|
||||
|
||||
| # | Rule | Rationale |
|
||||
|---|------|-----------|
|
||||
| V-01 | Every `inputs[].commodity` must exist in commodities.toml | Dangling reference |
|
||||
| V-02 | Every `output` must exist in commodities.toml | Dangling reference |
|
||||
| V-03 | Every chain must have ≥ 1 input | Zero-input chain = free production, breaks Leontief |
|
||||
| V-04 | No commodity may appear as both input and output in the same chain | Self-referential production |
|
||||
| V-05 | No circular dependencies in the chain graph (topological sort) | Infinite loop in sim |
|
||||
| V-06 | `base_price > 0` for all commodities | Zero/negative prices break tâtonnement |
|
||||
| V-07 | `quantity > 0` for all chain inputs and `output_quantity > 0` | Dead inputs |
|
||||
| V-08 | All enum fields match their allowed values | Typo protection |
|
||||
| V-09 | No duplicate commodity IDs (TOML-enforced, but validate) | Collision |
|
||||
| V-10 | Services (`tier = service_*`) must NOT appear as chain inputs or outputs | D-173: services outside production chain |
|
||||
| V-11 | `panic_threshold_weeks >= 0` | Schema constraint |
|
||||
| V-12 | `demand_model = "utility"` requires `elasticity` ∈ {perfectly_inelastic, inelastic} | Utility demand can't be highly deferrable |
|
||||
| V-13 | `demand_model = "compliance"` requires `commission_certified = true` | Compliance demand requires a certifying authority |
|
||||
| V-14 | Services must have `bulk_class = "non_physical"` | Services can't be transported |
|
||||
| V-15 | Services must have `unit = "contracts"` | Service unit convention |
|
||||
| V-16 | Commodity IDs must match pattern `[a-z][a-z0-9_]*` | Slug format for Rust/SQL |
|
||||
|
||||
### Soft warnings (build succeeds, prints warning)
|
||||
|
||||
| # | Rule | Rationale |
|
||||
|---|------|-----------|
|
||||
| W-01 | Every non-service physical commodity SHOULD appear as chain input or chain output | Orphan detection |
|
||||
| W-02 | Raw tier commodities SHOULD NOT appear as chain outputs | Raws are extracted, not produced |
|
||||
| W-03 | Final tier commodities SHOULD NOT appear as chain inputs | Finals are end-of-chain |
|
||||
| W-04 | `shadow_viable = true` SHOULD have `commission_certified = true` OR `compact_contested = true` | Shadow markets arise from regulatory friction |
|
||||
| W-05 | `production_ubiquity = "monopolistic"` commodities with `elasticity = "inelastic"` SHOULD be reviewed | Monopoly + inelastic = potential runaway pricing |
|
||||
|
||||
### Coverage warnings (future — gated by corp data)
|
||||
|
||||
| # | Rule | Rationale |
|
||||
|---|------|-----------|
|
||||
| C-01 | 3+ corporations per major commodity type (D-175) | Simulation density |
|
||||
| C-02 | 1+ corporation per inhabited system > 100K population (D-175) | Coverage threshold |
|
||||
|
||||
---
|
||||
|
||||
## 5. Catalog Totals
|
||||
|
||||
| Category | Count | Notes |
|
||||
|----------|-------|-------|
|
||||
| Raw materials | 9 | +2 over D-173's ~7: chemical_feedstock (substitution route), lattice_grade_material (east reach anchor) |
|
||||
| Intermediate goods | 10 | +2 over D-173's ~8: fusion_fuel (water→fuel, locked), lattice_substrate (lattice chain) |
|
||||
| Final goods | 9 | +2 over D-173's ~7: freight_haulers (distinct demand function), rail_infrastructure (locked) |
|
||||
| Professional services | 5 | commission_certification (shadow economy mechanism) is the key addition |
|
||||
| Luxury services | 3 | matches D-173 |
|
||||
| **Total** | **36** | D-173 target: ~30. Each addition has locked justification. |
|
||||
|
||||
### Production chains
|
||||
|
||||
| Tier transition | Count | Substitution routes |
|
||||
|----------------|-------|---------------------|
|
||||
| Raw → Intermediate | 12 | 2 (chemicals: geological vs biological; panels: timber vs stone) |
|
||||
| Intermediate → Final | 9 | 0 |
|
||||
| **Total** | **21** | **2** |
|
||||
|
||||
### Panic-flagged commodities
|
||||
|
||||
| Commodity | Threshold | Behavior |
|
||||
|-----------|-----------|----------|
|
||||
| water | 1 week | Life-or-death hoarding. Demand spikes 3-5x |
|
||||
| fusion_fuel | 2 weeks | Station emergency reserves. Demand spikes 2-3x |
|
||||
| processed_food | 2 weeks | Consumer panic buying. Demand spikes 1.5-2x |
|
||||
| chemicals | 3 weeks | Hospital/industrial stockpiling. Demand spikes 1.5x |
|
||||
|
||||
All other commodities: `panic_threshold_weeks = 0` (no panic behavior).
|
||||
|
||||
### Key chokepoints
|
||||
|
||||
1. **lattice_grade_material → lattice_substrate → implant_hardware + gate_components**: Geographically sparse, no substitute, feeds the two most politically sensitive finals. Single supply disruption cascades to both neural tech AND gate infrastructure.
|
||||
|
||||
2. **rare_minerals → electronics / advanced_alloys / drive_cores**: Appears in 3 intermediate chains. Electronics is input to 9 of 9 finals. A rare minerals shortage cascades to the entire manufacturing sector.
|
||||
|
||||
3. **water → fusion_fuel + chemicals + processed_food**: Water feeds three intermediate chains (fuel at 8:1, chemicals, food processing). A water shortage simultaneously degrades energy, industrial chemistry, AND food supply. Fuel is the sharpest cascade (8:1 amplification), but the breadth across three chains makes water the single most dangerous raw material disruption. Frontier stations far from ice sources face permanent cost pressure on all three fronts.
|
||||
|
||||
### Design notes for sim implementation
|
||||
|
||||
**Berth capacity as transport cost modifier:** Station docking/berth capacity is NOT a commodity — renting a berth is a property transaction tied to a specific location. However, berth capacity constrains the transport graph: a station with limited docking has higher effective transport costs (queuing, diversion, wait times). Model this as a per-node modifier on the effective hop cost. Expanding station infrastructure (consuming `habitat_modules`) reduces the modifier. This creates an investment incentive for station expansion without requiring a tradeable "berth" commodity.
|
||||
|
||||
**Brand-layer demand:** Brand corporations (Calloway, VGV, thrds, Bífröst Marmor, etc.) appear in the commodity simulation as demand nodes — they purchase raws and intermediates at their local market node. Their output (branded goods) is priced through a separate brand/cultural value system, not through the tâtonnement. Brand revenue appears as a GDP income cluster per system. The brand system is a future DLC deliverable built on top of this commodity foundation.
|
||||
|
||||
**Items removed from catalog during review:** `commercial_intelligence` (corporate behavioral advantage, not a tradeable commodity — what does the buyer receive?), `habitation_berths` (property transaction at a specific location, not a commodity flow through the gate network). Both are real economic concepts but belong in other systems.
|
||||
|
||||
**Gate energy transmission (Level 3 — mass + data + energy):** Span gates transmit mass, data (the Meridian is a live real-time network — already canon), and energy. Energy-over-gate is a **commercial service offered by Gate Corporation** — NOT an Assembly policy. Gate Corp is an independent monopoly with its own interests; it is not a government body and not Assembly-controlled. The Commission regulates gate infrastructure, but Gate Corp's energy service is a corporate commercial decision.
|
||||
|
||||
Implementation: per-node `gate_energy_connected` boolean in systems.db. On-grid nodes get reduced fusion_fuel utility demand (~0.3x baseline — still need backup fuel). Industrial chain inputs are unaffected (smelting still burns fuel per the Leontief recipe). Gate Corp charges a Tractus-denominated service fee. `MARK_PRIMARY` zones default to `gate_energy_connected = false` — the Compact refused Gate Corp energy dependency as a political choice, building independent fusion capacity instead.
|
||||
|
||||
Key dynamics: (1) Gate Corp cutting energy to a dependent node spikes that node's fuel demand — nearby Compact systems with surplus fuel capacity become emergency suppliers. The Compact's political independence becomes an economic asset. (2) Gate Corp energy cutoff is a corporate threat, not a government act — no democratic accountability, which is arguably more frightening. (3) fusion_fuel remains a single commodity; the demand differential emerges from subscription status, not from commodity bifurcation.
|
||||
@@ -0,0 +1,303 @@
|
||||
# Tyre — #801 TOML Schema & Data Pipeline Analysis
|
||||
|
||||
*cracks knuckles* — Let me be honest about what this means technically. The schema design here is the contract between the content authors and the simulation. Get it right and everything downstream compiles cleanly. Get it wrong and we're refactoring TOML files after 30 commodities and 150 production chains are already authored.
|
||||
|
||||
---
|
||||
|
||||
## 1. ID Scheme
|
||||
|
||||
**Recommendation: flat string slugs.** No namespace prefixing.
|
||||
|
||||
```
|
||||
ore, rare_minerals, timber, agricultural_produce, water, energy, organics
|
||||
refined_metals, structural_panels, processed_food, ...
|
||||
legal_services, banking, tourism, ...
|
||||
```
|
||||
|
||||
**Why not namespaced IDs** like `raw.ore` or `intermediate.refined_metals`?
|
||||
|
||||
- The tier is a field on the record, not an identity property. If we ever reclassify something (unlikely but possible), namespaced IDs break all references.
|
||||
- Flat slugs are consistent with existing `corp_id` convention in systems.db (`"gate-corporation"`, `"vethara"` — flat slugs, no hierarchy).
|
||||
- TOML table keys with dots create nested tables in TOML syntax, which would fight us. `[raw.ore]` in TOML means `raw` is a table with key `ore` inside it — that's not what we want.
|
||||
- Production chain references become simpler: `inputs = [{ commodity = "ore", ... }]` vs `inputs = [{ commodity = "raw.ore", ... }]`.
|
||||
|
||||
**Separator convention:** underscores (`refined_metals`), matching the Rust/TOML convention. Hyphens (`refined-metals`) would match corp_id but underscores are more natural in TOML keys and Rust identifiers. Pick one, enforce it. I'd go underscores for the economics TOML domain since it's Rust-consumed.
|
||||
|
||||
---
|
||||
|
||||
## 2. TOML Schema: `wiki/economics/commodities.toml`
|
||||
|
||||
```toml
|
||||
# Every commodity in the simulation. Source of truth — compiled to systems.db
|
||||
# via `make economy-db`. Do NOT edit the .db directly.
|
||||
#
|
||||
# Fields:
|
||||
# name — display name (English, Title Case)
|
||||
# tier — raw | intermediate | final | service_professional | service_luxury
|
||||
# elasticity — perfectly_inelastic | inelastic | unit_elastic | elastic | perfectly_elastic
|
||||
# base_price — equilibrium price in Tractus (positive float)
|
||||
# bulk_class — heavy | standard | light | non_physical
|
||||
# political_sensitivity — boolean; if true, price signals emit to political layer
|
||||
# unit — tonnes | units | contracts
|
||||
# description — short flavor text (optional, for wiki/UI)
|
||||
|
||||
[ore]
|
||||
name = "Metallic Ore"
|
||||
tier = "raw"
|
||||
elasticity = "inelastic"
|
||||
base_price = 12.0
|
||||
bulk_class = "heavy"
|
||||
political_sensitivity = false
|
||||
unit = "tonnes"
|
||||
description = "Unrefined ferrous and non-ferrous metallic ore. Extracted from planetary mines and asteroid operations."
|
||||
|
||||
[energy]
|
||||
name = "Energy"
|
||||
tier = "raw"
|
||||
elasticity = "perfectly_inelastic"
|
||||
base_price = 8.0
|
||||
bulk_class = "non_physical"
|
||||
political_sensitivity = true
|
||||
unit = "units"
|
||||
description = "Fusion output, solar collection, and geothermal harvest. Non-transportable through gates; consumed locally or converted to stored fuel."
|
||||
|
||||
[legal_services]
|
||||
name = "Legal Services"
|
||||
tier = "service_professional"
|
||||
elasticity = "inelastic"
|
||||
base_price = 45.0
|
||||
bulk_class = "non_physical"
|
||||
political_sensitivity = true
|
||||
unit = "contracts"
|
||||
description = "Commercial law, contract arbitration, Commission compliance certification. Location-bound."
|
||||
```
|
||||
|
||||
### Field rationale
|
||||
|
||||
| Field | Type | Why |
|
||||
|-------|------|-----|
|
||||
| `name` | string | Display name. TOML key is the ID — `name` is for humans. |
|
||||
| `tier` | enum (5 values) | Maps to D-173 categories. 5 tiers, not 3 — services are NOT in the raw→intermediate→final chain. |
|
||||
| `elasticity` | enum (5 values) | Per D-173: "5 categories." These map to numeric coefficients in the sim (Burnelli-Sheldon's tâtonnement parameters). |
|
||||
| `base_price` | float | Equilibrium price in Tractus. The tâtonnement starts here and adjusts. Must be positive. |
|
||||
| `bulk_class` | enum (4 values) | Determines transport cost multiplier. `non_physical` = cannot traverse gates (services, energy). |
|
||||
| `political_sensitivity` | bool | Flags commodities whose price movements emit signals to the political/event layer. Energy, food, legal services — yes. Hull plates — no. |
|
||||
| `unit` | enum (3 values) | Keeps production chain quantities unambiguous. Tonnes for physical bulk goods, units for manufactured items, contracts for services. |
|
||||
| `description` | string (optional) | Flavor text. Not consumed by the sim. Useful for wiki generation and UI tooltips. |
|
||||
|
||||
### What I deliberately excluded
|
||||
|
||||
- **No `transportable` field.** Redundant — derivable from `bulk_class == "non_physical"`. Services can't traverse gates. Everything else can.
|
||||
- **No `category` sub-grouping** within tiers (e.g., "extraction" vs "agriculture" within raw). The tier IS the grouping. Finer categorization is the production chain graph's job.
|
||||
- **No `shadow_economy` flag.** D-174 says shadow economy is per-node intensity, not per-commodity. Contraband isn't a commodity property — it's a node-level enforcement gap. Any commodity can be traded in the shadow economy; what changes is the premium.
|
||||
- **No `currency` field.** All base prices are Tractus-denominated (D-171: Tractus is the simulation numeraire). Mark and Sol conversions are applied by the sim at runtime.
|
||||
|
||||
---
|
||||
|
||||
## 3. TOML Schema: `wiki/economics/production_chains.toml`
|
||||
|
||||
```toml
|
||||
# Production chain recipes. Each chain transforms input commodities into
|
||||
# one output commodity. Multiple chains MAY produce the same output —
|
||||
# this models structural substitution (D-173).
|
||||
#
|
||||
# Fields:
|
||||
# output — commodity_id of the product
|
||||
# output_quantity — units produced per production cycle (float, default 1.0)
|
||||
# inputs — array of { commodity, quantity } pairs
|
||||
# location_bound — if true, chain can only operate where specific
|
||||
# resources exist (optional, default false)
|
||||
# description — human-readable recipe description (optional)
|
||||
|
||||
[refined_metals_from_ore]
|
||||
output = "refined_metals"
|
||||
output_quantity = 1.0
|
||||
inputs = [
|
||||
{ commodity = "ore", quantity = 3.0 },
|
||||
{ commodity = "energy", quantity = 0.5 },
|
||||
]
|
||||
description = "Standard smelting: 3t ore + 0.5 energy units → 1t refined metal."
|
||||
|
||||
[refined_metals_from_rare_minerals]
|
||||
output = "refined_metals"
|
||||
output_quantity = 0.5
|
||||
inputs = [
|
||||
{ commodity = "rare_minerals", quantity = 1.0 },
|
||||
{ commodity = "energy", quantity = 1.0 },
|
||||
]
|
||||
description = "Specialty refining: rare minerals yield less bulk metal but higher value. Structural substitution route."
|
||||
|
||||
[structural_panels]
|
||||
output = "structural_panels"
|
||||
output_quantity = 1.0
|
||||
inputs = [
|
||||
{ commodity = "refined_metals", quantity = 2.0 },
|
||||
{ commodity = "chemicals", quantity = 0.5 },
|
||||
]
|
||||
description = "Composite paneling for construction and hull repair."
|
||||
|
||||
[heavy_equipment]
|
||||
output = "heavy_equipment"
|
||||
output_quantity = 1.0
|
||||
inputs = [
|
||||
{ commodity = "structural_panels", quantity = 2.0 },
|
||||
{ commodity = "components", quantity = 3.0 },
|
||||
{ commodity = "drive_assemblies", quantity = 1.0 },
|
||||
]
|
||||
description = "Industrial machinery, mining rigs, construction equipment."
|
||||
```
|
||||
|
||||
### Key design decisions in the chain schema
|
||||
|
||||
**1. Chain ID is the TOML key, output is a field.** This allows multiple chains to produce the same output (structural substitution per D-173). The chain ID is descriptive (`refined_metals_from_ore`) but the sim uses `output` + `inputs` — the chain ID is just for human readability and DB primary key.
|
||||
|
||||
**2. `output_quantity` defaults to 1.0.** Most chains produce 1 unit. The field exists for substitution routes where yields differ (the rare minerals route above yields 0.5t per cycle).
|
||||
|
||||
**3. `location_bound` is optional.** Most chains are not location-bound. When true, the sim checks whether the corporation operating this chain has access to the required resource at its site. This connects to D-177's productivity constraints.
|
||||
|
||||
**4. Services have NO production chains.** Per D-173: "Services sit outside the production chain (Raw → Intermediate → Final). Services consume goods but do not produce them." Services are consumed by population/corporations but don't appear as chain inputs or outputs. Their supply is driven by `service_throughput` and `service_capacity` seeds (D-176).
|
||||
|
||||
---
|
||||
|
||||
## 4. Mapping to systems.db Tables
|
||||
|
||||
Here's how these TOML files compile to the `#804` schema extensions:
|
||||
|
||||
```sql
|
||||
-- Compiled from wiki/economics/commodities.toml
|
||||
CREATE TABLE commodities (
|
||||
commodity_id TEXT PRIMARY KEY, -- TOML key
|
||||
name TEXT NOT NULL,
|
||||
tier TEXT NOT NULL CHECK(tier IN (
|
||||
'raw', 'intermediate', 'final',
|
||||
'service_professional', 'service_luxury'
|
||||
)),
|
||||
elasticity TEXT NOT NULL CHECK(elasticity IN (
|
||||
'perfectly_inelastic', 'inelastic', 'unit_elastic',
|
||||
'elastic', 'perfectly_elastic'
|
||||
)),
|
||||
base_price REAL NOT NULL CHECK(base_price > 0),
|
||||
bulk_class TEXT NOT NULL CHECK(bulk_class IN (
|
||||
'heavy', 'standard', 'light', 'non_physical'
|
||||
)),
|
||||
political_sensitivity INTEGER NOT NULL DEFAULT 0,
|
||||
unit TEXT NOT NULL CHECK(unit IN ('tonnes', 'units', 'contracts')),
|
||||
description TEXT
|
||||
);
|
||||
|
||||
-- Compiled from wiki/economics/production_chains.toml
|
||||
CREATE TABLE production_chains (
|
||||
chain_id TEXT PRIMARY KEY, -- TOML key
|
||||
output_commodity TEXT NOT NULL REFERENCES commodities(commodity_id),
|
||||
output_quantity REAL NOT NULL DEFAULT 1.0 CHECK(output_quantity > 0),
|
||||
location_bound INTEGER NOT NULL DEFAULT 0,
|
||||
description TEXT
|
||||
);
|
||||
|
||||
CREATE TABLE chain_inputs (
|
||||
chain_id TEXT NOT NULL REFERENCES production_chains(chain_id) ON DELETE CASCADE,
|
||||
commodity_id TEXT NOT NULL REFERENCES commodities(commodity_id),
|
||||
quantity REAL NOT NULL CHECK(quantity > 0),
|
||||
PRIMARY KEY (chain_id, commodity_id)
|
||||
);
|
||||
|
||||
-- Indexes
|
||||
CREATE INDEX idx_commodities_tier ON commodities(tier);
|
||||
CREATE INDEX idx_chains_output ON production_chains(output_commodity);
|
||||
CREATE INDEX idx_chain_inputs_commodity ON chain_inputs(commodity_id);
|
||||
```
|
||||
|
||||
**Alignment notes for the server team (#804):**
|
||||
- Every column maps 1:1 from a TOML field. No computed columns in the compiled DB.
|
||||
- `political_sensitivity` becomes INTEGER (0/1) — standard SQLite boolean convention, consistent with existing schema (`inhabited`, `asteroid_belt`, etc.).
|
||||
- FK constraints ensure referential integrity at the DB level too, not just the build-step validator.
|
||||
- The `chain_inputs` composite PK means one commodity appears at most once per chain. If a recipe needs the same input twice at different stages... it doesn't. Leontief fixed-coefficient means one coefficient per input per chain.
|
||||
|
||||
---
|
||||
|
||||
## 5. Validation Rules for `make economy-db`
|
||||
|
||||
The build step must enforce these invariants. Fail the build on violation — no warnings, no "best effort."
|
||||
|
||||
### Hard failures (build aborts)
|
||||
|
||||
| Rule | Rationale |
|
||||
|------|-----------|
|
||||
| Every `inputs[].commodity` in production_chains.toml must exist as a key in commodities.toml | Dangling reference = broken simulation |
|
||||
| Every `output` in production_chains.toml must exist as a key in commodities.toml | Same |
|
||||
| Every production chain must have ≥1 input | A chain with zero inputs is free production — breaks Leontief |
|
||||
| No commodity may appear as both input and output in the same chain | Self-referential production is nonsensical |
|
||||
| No circular dependencies in the chain graph | Detect via topological sort. If `A→B→C→A`, the sim will infinite-loop. Note: this is across chains, not within a chain. |
|
||||
| `base_price > 0` for all commodities | Zero or negative prices break tâtonnement |
|
||||
| `quantity > 0` for all chain inputs and outputs | Zero-quantity inputs are dead weight |
|
||||
| All enum fields match their allowed values | Typo protection |
|
||||
| No duplicate commodity IDs | TOML enforces this at parse level, but validate anyway |
|
||||
| Services (`tier = service_*`) must NOT appear as chain inputs or outputs | D-173: services sit outside the production chain |
|
||||
| `bulk_class = "non_physical"` commodities must NOT appear as chain inputs (except energy) | Non-physical goods can't be freighted. Energy is the exception — it's consumed locally in production but listed as non_physical because it can't traverse gates. |
|
||||
|
||||
### Soft warnings (build succeeds but prints warnings)
|
||||
|
||||
| Rule | Rationale |
|
||||
|------|-----------|
|
||||
| Every non-service commodity SHOULD appear as either a chain input or chain output | Orphan commodities are suspicious — might be a typo or missing chain |
|
||||
| Raw tier commodities SHOULD NOT appear as chain outputs | Raws are extracted, not produced. If a chain produces a raw, the tier classification may be wrong. |
|
||||
| Final tier commodities SHOULD NOT appear as chain inputs | Finals are end-of-chain. If a final is consumed by another chain, the tier classification may be wrong. |
|
||||
| `≥3 production chains` should exist per intermediate commodity | Ensures supply resilience in the sim — but this is a content completeness check, not a structural invariant |
|
||||
|
||||
### Coverage warnings (gated by corp data availability)
|
||||
|
||||
| Rule | Rationale |
|
||||
|------|-----------|
|
||||
| 3+ corporations per major commodity type (D-175) | Only enforceable once corp TOML data exists. Warn, don't fail. |
|
||||
| 1+ corporation per inhabited system >100K population (D-175) | Same — future gate |
|
||||
|
||||
---
|
||||
|
||||
## 6. Extensibility
|
||||
|
||||
The schema is designed to grow without restructuring:
|
||||
|
||||
**Adding commodities:** Add a new `[slug]` block to commodities.toml. No schema change. No file restructuring. The TOML file is a flat list of records — 30 or 300 is the same structure.
|
||||
|
||||
**Adding production chains:** Add a new `[chain_id]` block to production_chains.toml. Multiple chains producing the same output is already supported (substitution routes).
|
||||
|
||||
**Adding Tier 2/3 corporations:** Corporation TOML files (separate from commodities) reference commodity IDs. Adding corps doesn't touch the commodity schema at all.
|
||||
|
||||
**Splitting files if they get large:** If commodities.toml grows past ~100 entries (unlikely for commodities, possible for chains), we can split into `production_chains_raw.toml`, `production_chains_intermediate.toml`, etc. The build step can glob `wiki/economics/production_chains*.toml`. But I'd defer this — ~30 commodities and ~40 chains fit comfortably in single files.
|
||||
|
||||
**Future fields:** If the sim needs new per-commodity data (e.g., spoilage rate, contraband premium), add the field to the TOML spec and the DB table. Existing records get a default. No migration needed — the DB is rebuilt from TOML every time.
|
||||
|
||||
---
|
||||
|
||||
## 7. Energy: A Design Note
|
||||
|
||||
Energy is the one commodity that doesn't fit neatly into the schema. It's:
|
||||
- `tier = "raw"` — produced from natural sources
|
||||
- `bulk_class = "non_physical"` — can't be freighted through gates
|
||||
- But it IS a production chain input (smelting, manufacturing, etc.)
|
||||
|
||||
My validation rule above says "non_physical commodities must not appear as chain inputs **except energy**." This is an explicit carve-out. The alternative — making energy `bulk_class = "standard"` — would be wrong because energy genuinely cannot be shipped between systems.
|
||||
|
||||
The sim handles this correctly if energy is produced and consumed locally at each node. The transport graph simply never routes energy. The `non_physical` bulk class already means "transport cost = infinity."
|
||||
|
||||
Burnelli-Sheldon should confirm whether this carve-out is clean from the economic model's perspective, or whether energy should be modeled as a derived capacity constraint rather than a tradeable commodity.
|
||||
|
||||
---
|
||||
|
||||
## 8. What I Need From Other Proposers
|
||||
|
||||
- **Burnelli-Sheldon:** Validate the 5 elasticity class names. Confirm energy-as-commodity vs energy-as-constraint. Review the base_price field — is a single equilibrium price sufficient or does the tâtonnement need a price range (floor/ceiling)?
|
||||
- **Gestalt:** Confirm services have NO production chain participation. If services "consume goods" (D-173), how is that modeled? Separate demand table? Or is service demand just a population-driven consumption rate with no chain?
|
||||
- **Miri:** The `description` field is optional flavor text — but it'll appear in wiki/UI. Should Miri or Mellanie author those, or are they placeholder-quality for now?
|
||||
- **Paula:** Which commodities get `political_sensitivity = true`? I've flagged energy and legal services. Food almost certainly. What else?
|
||||
|
||||
---
|
||||
|
||||
## Difficulty Assessment
|
||||
|
||||
- **TOML schema design:** Tier 1 (straightforward). The schema is a flat record list with a secondary chain file. Nothing exotic.
|
||||
- **Build step (`make economy-db`):** Tier 2 (moderate). TOML parsing + graph validation + SQLite emission. A Python script, ~200 lines. The circular dependency check is the trickiest part (topological sort on the chain graph).
|
||||
- **Schema alignment with #804:** Tier 1 (straightforward). The SQL above is the target. Direct 1:1 mapping from TOML fields.
|
||||
- **Validation rules:** Tier 2 (moderate). The hard failures are simple assertions. The coverage warnings require cross-referencing corp data that may not exist yet.
|
||||
|
||||
Total: this is a clean, well-bounded data engineering task. Feasible. The risk is in content completeness, not technical complexity.
|
||||
@@ -0,0 +1,525 @@
|
||||
# Tyre — Round 2 Converged Proposal
|
||||
|
||||
*cracks knuckles* — I've cross-read all four Round 1 outputs. Here's the converged technical proposal addressing all five lead directives.
|
||||
|
||||
---
|
||||
|
||||
## 1. Resolving the Luxury Goods Tension (Directive b)
|
||||
|
||||
The lead identified the core problem: if "luxury goods" is one abstract commodity, how does Calloway whisky (12-20y aging, terroir ceiling), Kvitfjell marble (800t/y geological ceiling), and VGV wine (F8V stellar lock) coexist in the simulation with their radically different constraints?
|
||||
|
||||
**Solution: three-layer separation.**
|
||||
|
||||
| Layer | What it knows | Example |
|
||||
|-------|--------------|---------|
|
||||
| **Commodity catalog** | One entry: `luxury_goods`. Abstract category. | `luxury_goods`, tier=final, elasticity=highly_elastic |
|
||||
| **Production chains** | Multiple recipes produce the same output from different inputs. | `luxury_from_agriculture`, `luxury_from_stone`, `luxury_from_textiles` |
|
||||
| **Corporation data** | Per-corp production constraints: location lock, capacity ceiling, aging pipeline, terroir. | Calloway operates `luxury_from_agriculture` at Calloway Reach, 12-20y aging, terroir-locked |
|
||||
|
||||
This works because:
|
||||
- The commodity stays abstract (directive a — brands are not commodities)
|
||||
- D-173's structural substitution: multiple chains → same output is already in the spec
|
||||
- D-176 attaches productivity seeds to corporation×site pairs, not to commodities
|
||||
- D-177's hard ceilings (Kvitfjell 800t/y, brach fiber herd, F8V stellar lock) live in corporation constraint data
|
||||
- The 987% luxury margin B-S identified IS the brand premium, expressed through Specialist/Monopolist archetype pricing behavior in the corporate agent layer
|
||||
- New luxury producers are added by creating a corp and assigning it a chain — zero commodity catalog changes
|
||||
|
||||
**Three luxury production chains:**
|
||||
|
||||
```toml
|
||||
[luxury_from_agriculture]
|
||||
output = "luxury_goods"
|
||||
output_quantity = 1.0
|
||||
inputs = [
|
||||
{ commodity = "agricultural_produce", quantity = 2.0 },
|
||||
{ commodity = "chemicals", quantity = 0.3 },
|
||||
]
|
||||
description = "Spirits, wines, premium food. Terroir/aging constraints per corporation."
|
||||
|
||||
[luxury_from_stone]
|
||||
output = "luxury_goods"
|
||||
output_quantity = 0.5
|
||||
inputs = [
|
||||
{ commodity = "stone", quantity = 3.0 },
|
||||
]
|
||||
description = "Decorative stone, luxury marble. Geological ceiling per corporation."
|
||||
|
||||
[luxury_from_textiles]
|
||||
output = "luxury_goods"
|
||||
output_quantity = 1.0
|
||||
inputs = [
|
||||
{ commodity = "textiles", quantity = 1.5 },
|
||||
{ commodity = "organic_compounds", quantity = 0.5 },
|
||||
]
|
||||
description = "Premium garments, technical craft goods. Fiber supply ceiling per corp."
|
||||
```
|
||||
|
||||
Each chain has independent failure modes: a rare minerals shortage doesn't touch luxury goods. A timber shortage doesn't affect wine production. The scarcity cascades are input-specific, and the corporation layer maps which corps operate which chains where.
|
||||
|
||||
---
|
||||
|
||||
## 2. Unified TOML Schema
|
||||
|
||||
### Updated field set
|
||||
|
||||
I'm merging the best from all four proposals. My Round 1 had 8 fields. The converged schema has 12. Each addition creates distinct simulation behavior.
|
||||
|
||||
**From B-S (new):**
|
||||
- `production_ubiquity` — guides `generate_corporations` in distributing production across the map. Without it, the initialization binary has no guidance on geographic spread. 5 tiers from B-S: ubiquitous → monopolistic.
|
||||
- `demand_model` — determines tâtonnement behavior: `market` (standard), `utility` (population-driven floor, never hits zero), `compliance` (regulation-driven, tracks Commission presence). This is what makes water/fuel behave differently from consumer goods under the same supply shock.
|
||||
|
||||
**From Gestalt (replaces my `political_sensitivity` boolean):**
|
||||
- `commission_certified` — requires Commission certification for formal sale. The cost of certification IS the shadow economy incentive.
|
||||
- `compact_contested` — Compact officially contests Commission authority. Creates the political friction.
|
||||
- `shadow_viable` — shadow market routinely exists. Flags where the shadow economy bites.
|
||||
|
||||
Three booleans instead of one gives the sim three independent political signals per commodity. A commodity can be Commission-certified but NOT Compact-contested (e.g., food safety certification — everyone accepts it). Or Compact-contested but NOT shadow-viable (e.g., vehicle registration — contested in principle, but impractical to shadow-market a starship).
|
||||
|
||||
**Retained from my Round 1 (no change):**
|
||||
- `tier`, `elasticity`, `base_price`, `unit`, `description`
|
||||
|
||||
**Refined from my Round 1:**
|
||||
- `bulk_class` — expanded from 4 to 7 values, incorporating B-S's transport cost analysis and Gestalt's oversized/perishable insights
|
||||
|
||||
### Complete TOML record format
|
||||
|
||||
```toml
|
||||
# wiki/economics/commodities.toml
|
||||
#
|
||||
# Source of truth for the simulation's commodity vocabulary.
|
||||
# Compiled to systems.db via `make economy-db`.
|
||||
#
|
||||
# Fields:
|
||||
# name — display name (Title Case)
|
||||
# tier — raw | intermediate | final | service_professional | service_luxury
|
||||
# elasticity — perfectly_inelastic | inelastic | unit_elastic | elastic | highly_elastic
|
||||
# base_price — equilibrium price in Tractus (float, must be > 0)
|
||||
# bulk_class — bulk | liquid | standard | compact | precision | oversized | non_physical
|
||||
# unit — tonnes | units | contracts
|
||||
# production_ubiquity — ubiquitous | common | regional | concentrated | monopolistic
|
||||
# demand_model — market | utility | compliance
|
||||
# commission_certified — bool; requires Commission certification for formal sale
|
||||
# compact_contested — bool; Compact contests Commission authority over this
|
||||
# shadow_viable — bool; shadow market routinely exists for this commodity
|
||||
# description — optional flavor text (for wiki/UI, not consumed by sim)
|
||||
```
|
||||
|
||||
### Updated bulk_class (7 values)
|
||||
|
||||
| Class | Transport multiplier | Rationale |
|
||||
|-------|---------------------|-----------|
|
||||
| `bulk` | 1.2x | Heavy, low-value-density. Ore, stone, timber, agricultural produce |
|
||||
| `liquid` | 1.3x | Requires containment. Water, chemical feedstock, fusion fuel |
|
||||
| `standard` | 1.0x | Normal cargo. Refined metals, panels, processed food, textiles |
|
||||
| `compact` | 0.8x | High-value, low-mass. Electronics, consumer goods, drive cores |
|
||||
| `precision` | 0.6x | Very high value, special handling. Rare minerals, implant hardware, luxury goods |
|
||||
| `oversized` | 2.0x+ | Physically awkward, partial assembly. Heavy equipment, vehicles, habitat modules |
|
||||
| `non_physical` | ∞ | Cannot traverse gates. All services |
|
||||
|
||||
B-S's transport cost analysis (section 5 of his Round 1) shows these multipliers produce 3:1–4:1 ratios for bulk goods and 1.5:1–2:1 for precision goods across the Reach diameter. This is the right range for meaningful geographic specialization without absurd price extremes.
|
||||
|
||||
Gestalt's `oversized` class is the key addition: heavy equipment, vehicles, freight haulers, and habitat modules at 2.0x+ creates durable manufacturing hub economics. You can't arbitrage away Stalownia's advantage by shipping finished rigs — the transport cost is too high. This is what makes manufacturing centers structural rather than transient.
|
||||
|
||||
### Elasticity labels (5 values)
|
||||
|
||||
| Label | ε range | Behavior | Examples |
|
||||
|-------|---------|----------|---------|
|
||||
| `perfectly_inelastic` | 0.0–0.1 | Price absorbs all adjustment. Dramatic spikes | water (on stations), fusion_fuel, medical_services |
|
||||
| `inelastic` | 0.2–0.4 | Modest demand reduction, significant price effect | agricultural_produce, processed_food, chemicals, legal_services, financial_services |
|
||||
| `unit_elastic` | 0.8–1.2 | Proportional adjustment | metallic_ore, structural_panels, electronics, consumer_goods, habitat_modules |
|
||||
| `elastic` | 1.5–2.5 | Buyers defer/substitute | heavy_equipment, vehicles, freight_haulers, entertainment, drive_cores |
|
||||
| `highly_elastic` | 3.0+ | Market collapses to essential buyers | luxury_goods, gate_components, implant_hardware, tourism |
|
||||
|
||||
B-S's panic mechanism (stockpile-target hoarding) is a sim-runtime behavior, not a commodity property. The sim derives it from elasticity + stockpile thresholds. This keeps the TOML clean and the panic behavior configurable without re-authoring commodity data.
|
||||
|
||||
---
|
||||
|
||||
## 3. Unified Commodity List
|
||||
|
||||
### Raw Materials (8)
|
||||
|
||||
D-173 said ~7. The 8th (chemical_feedstock) serves distinct chains from organic_compounds — geological/gas extraction vs. biosphere harvesting. They are not substitutable.
|
||||
|
||||
| ID | Name | Bulk | Ubiquity | Demand | Elasticity | Base (T) | Commission | Compact | Shadow |
|
||||
|----|------|------|----------|--------|------------|----------|------------|---------|--------|
|
||||
| `metallic_ore` | Metallic Ore | bulk | common | market | unit_elastic | 10 | no | no | no |
|
||||
| `rare_minerals` | Rare Minerals | precision | concentrated | market | unit_elastic | 80 | no | no | partial |
|
||||
| `timber` | Timber/Biomass | bulk | regional | market | unit_elastic | 15 | no | no | no |
|
||||
| `agricultural_produce` | Agricultural Produce | bulk | ubiquitous | utility | inelastic | 5 | partial | no | no |
|
||||
| `water` | Water/Volatiles | liquid | ubiquitous | utility | perfectly_inelastic | 2 | no | no | no |
|
||||
| `organic_compounds` | Organic Compounds | standard | regional | market | unit_elastic | 35 | no | no | no |
|
||||
| `stone` | Stone/Aggregate | bulk | common | market | unit_elastic | 8 | no | no | no |
|
||||
| `chemical_feedstock` | Chemical Feedstock | liquid | common | market | unit_elastic | 12 | yes (hazmat) | yes | yes |
|
||||
|
||||
Notes:
|
||||
- `water` is raw. `fusion_fuel` is intermediate — directive (c).
|
||||
- `rare_minerals` subsumes Gestalt's "lattice-grade material" and Miri's "precision-grade minerals" at the abstract level. The lore texture (east_reach lattice substrates, exotic crystals) lives in corporation data.
|
||||
- `chemical_feedstock` is Commission-certified (hazmat) and Compact-contested (Compact views hazmat certification as tariff by another name — Gestalt's analysis, section 4).
|
||||
- `agricultural_produce` has `demand_model = utility` because populations need food regardless of economic conditions (B-S's point about demand floors).
|
||||
|
||||
### Intermediate Goods (9)
|
||||
|
||||
D-173 said ~8. The 9th (fusion_fuel) is mandated by directive (c).
|
||||
|
||||
| ID | Name | Bulk | Ubiquity | Demand | Elasticity | Base (T) | Commission | Compact | Shadow |
|
||||
|----|------|------|----------|--------|------------|----------|------------|---------|--------|
|
||||
| `refined_metals` | Refined Metals | standard | common | market | inelastic | 30 | no | no | no |
|
||||
| `advanced_alloys` | Advanced Alloys | standard | regional | market | unit_elastic | 100 | no | no | no |
|
||||
| `fusion_fuel` | Fusion Fuel | liquid | common | utility | perfectly_inelastic | 20 | yes (safety) | yes | yes |
|
||||
| `processed_food` | Processed Food | standard | ubiquitous | utility | inelastic | 15 | partial | no | no |
|
||||
| `electronics` | Electronics/Components | compact | regional | market | unit_elastic | 120 | no | no | no |
|
||||
| `chemicals` | Chemicals/Pharmaceuticals | standard | regional | market | inelastic | 60 | yes | yes | yes |
|
||||
| `textiles` | Textiles/Composites | standard | regional | market | unit_elastic | 50 | no | no | no |
|
||||
| `structural_panels` | Structural Panels | standard | regional | market | unit_elastic | 45 | no | no | no |
|
||||
| `drive_cores` | Drive Cores | compact | concentrated | market | elastic | 200 | no | no | no |
|
||||
|
||||
Notes:
|
||||
- `fusion_fuel` from water with low yield per directive (c). `demand_model = utility` because every station needs continuous power. Commission-certified (fissile safety), Compact-contested (energy independence is a Compact political project — Gestalt section 4), shadow-viable (frontier fuel without certification).
|
||||
- `chemicals` is Commission-certified, Compact-contested, shadow-viable — same pattern as chemical_feedstock. The certification chain cascades.
|
||||
|
||||
### Final Goods (8)
|
||||
|
||||
D-173 said ~7. The 8th (freight_haulers) has a different demand function from vehicles — B-S's argument that freight hauler demand = f(trade_volume, fleet_age) while vehicle demand = f(population, wealth) is compelling. They respond to different economic signals.
|
||||
|
||||
| ID | Name | Bulk | Ubiquity | Demand | Elasticity | Base (T) | Commission | Compact | Shadow |
|
||||
|----|------|------|----------|--------|------------|----------|------------|---------|--------|
|
||||
| `heavy_equipment` | Heavy Equipment | oversized | regional | market | elastic | 250 | no | no | no |
|
||||
| `vehicles` | Vehicles/Craft | oversized | regional | market | elastic | 350 | yes (safety) | partial | partial |
|
||||
| `freight_haulers` | Freight Haulers | oversized | concentrated | market | elastic | 300 | yes (safety) | partial | partial |
|
||||
| `consumer_goods` | Consumer Goods | compact | ubiquitous | market | unit_elastic | 80 | no | no | partial |
|
||||
| `luxury_goods` | Luxury Goods | precision | monopolistic | market | highly_elastic | 500 | partial | no | yes |
|
||||
| `implant_hardware` | Implant Hardware | precision | concentrated | market | highly_elastic | 400 | yes (medical) | HIGH | HIGH |
|
||||
| `gate_components` | Gate Components | oversized | monopolistic | market | highly_elastic | 800 | yes (strategic) | extreme | high |
|
||||
| `habitat_modules` | Habitat Modules | oversized | regional | market | unit_elastic | 150 | no | no | no |
|
||||
|
||||
Notes:
|
||||
- `luxury_goods` at `production_ubiquity = monopolistic` because premium luxury production is location-locked (terroir, geological ceilings). Generic luxury goods might be produced more widely, but the high-margin stuff is rare. Multiple production chains handle the variety (section 1).
|
||||
- `implant_hardware` is THE political flashpoint — Commission certification + Compact rejection. D-037 canonical contraband territory. Both `compact_contested` and `shadow_viable` are maximally true.
|
||||
- `gate_components` is the Commission's ultimate leverage tool. Monopoly pricing (Gate Corp) + Commission certification = maximum structural extraction. Gestalt nailed this in section 4.
|
||||
- `freight_haulers` with `demand_model = market` but demand function driven by trade volume (the sim derives this from trade flow signals, not population). B-S's separation from vehicles is correct.
|
||||
|
||||
### Professional Services (7)
|
||||
|
||||
D-173 said ~5. Directive (e): more is richer.
|
||||
|
||||
| ID | Name | Ubiquity | Demand | Elasticity | Base (T) | Commission | Compact | Shadow |
|
||||
|----|------|----------|--------|------------|----------|------------|---------|--------|
|
||||
| `legal_services` | Legal Services | common | compliance | inelastic | 100 | yes | partial | partial |
|
||||
| `financial_services` | Financial Services | common | market | inelastic | 120 | no | no | no |
|
||||
| `medical_services` | Medical/Re-embodiment | regional | utility | perfectly_inelastic | 200 | yes (medical) | partial | HIGH |
|
||||
| `insurance` | Insurance/Risk | regional | market | unit_elastic | 75 | no | no | no |
|
||||
| `information_brokerage` | Information Brokerage | regional | market | unit_elastic | 50 | no | no | partial |
|
||||
| `commission_certification` | Commission Certification | concentrated | compliance | inelastic | 100 | inherent | extreme | N/A |
|
||||
| `habitation` | Habitation/Berths | common | utility | inelastic | 40 | no | no | no |
|
||||
|
||||
Notes:
|
||||
- `information_brokerage` consolidates "intelligence" and "information brokerage" per directive (d). Adams & Ford, Ferreira Monteiro, Mercado all provide intelligence products through this service. One service, multiple corporate providers.
|
||||
- `commission_certification` is separate from `legal_services` per Miri's argument: the Commission's own regulatory process is the mechanism that creates the shadow economy. Its cost, availability, and Tractus-denomination is what makes the Compact's alternative economy rational. This is the most politically charged "commodity" in the simulation.
|
||||
- `habitation` covers Gestalt's "rent" verb from D-131 and creates station-capacity pressure. A booming node runs out of berths → caps service growth → creates real estate price signal → forces expansion or migration. Mechanically important.
|
||||
- `medical_services` subsumes Miri's separate "re-embodiment" service. Re-embodiment is the premium tier within medical services, not a separate service. The corporation providing it (Prometheus-adjacent) determines whether re-embodiment is available at a given node.
|
||||
- Logistics management dropped per Gestalt: redundant with transport cost model.
|
||||
|
||||
### Luxury/Experiential Services (3)
|
||||
|
||||
| ID | Name | Ubiquity | Demand | Elasticity | Base (T) | Commission | Compact | Shadow |
|
||||
|----|------|----------|--------|------------|----------|------------|---------|--------|
|
||||
| `tourism` | Tourism | concentrated | market | highly_elastic | 100 | no | no | no |
|
||||
| `entertainment` | Entertainment/Holo-content | common | market | elastic | 30 | no | no | no |
|
||||
| `hospitality` | Fine Dining/Hospitality | regional | market | elastic | 60 | no | no | no |
|
||||
|
||||
---
|
||||
|
||||
## 4. Complete Production Chain Set
|
||||
|
||||
### Raw → Intermediate
|
||||
|
||||
| Chain ID | Output | Inputs | Notes |
|
||||
|----------|--------|--------|-------|
|
||||
| `smelt_ore` | refined_metals (1.0) | metallic_ore (2.0) | High volume, simple processing |
|
||||
| `alloy_fabrication` | advanced_alloys (1.0) | metallic_ore (1.5), rare_minerals (0.3) | Rare minerals are bottleneck |
|
||||
| `fuel_refining` | fusion_fuel (1.0) | water (5.0) | Low yield — directive (c). 5:1 ratio makes fuel expensive despite cheap input |
|
||||
| `food_processing` | processed_food (1.0) | agricultural_produce (1.5), water (0.2) | Ubiquitous, low margin |
|
||||
| `electronics_fabrication` | electronics (1.0) | rare_minerals (0.5), refined_metals (0.3) | Rare minerals are scarcity driver |
|
||||
| `chemical_processing` | chemicals (1.0) | chemical_feedstock (1.0), water (0.3) | Industrial chemistry |
|
||||
| `chemical_from_organics` | chemicals (0.8) | organic_compounds (1.0), water (0.3) | **Substitution route**: biochem path to same output, lower yield |
|
||||
| `textile_production` | textiles (1.0) | organic_compounds (0.8), chemicals (0.2) | Includes brach fiber processing pathway |
|
||||
| `panel_milling` | structural_panels (1.0) | timber (1.0), refined_metals (0.5) | Timber-dependent — forest world proximity matters |
|
||||
| `drive_core_assembly` | drive_cores (1.0) | rare_minerals (0.4), advanced_alloys (0.8) | Double rare_minerals dependency (direct + via alloys) |
|
||||
|
||||
### Intermediate → Final
|
||||
|
||||
| Chain ID | Output | Inputs | Notes |
|
||||
|----------|--------|--------|-------|
|
||||
| `heavy_equipment_assembly` | heavy_equipment (1.0) | refined_metals (1.0), electronics (0.3), drive_cores (0.2) | Stalownia's recipe |
|
||||
| `vehicle_manufacturing` | vehicles (1.0) | advanced_alloys (0.8), electronics (0.3), drive_cores (0.3) | MVG uses alloys, not base metal |
|
||||
| `freight_hauler_construction` | freight_haulers (1.0) | refined_metals (1.5), drive_cores (0.5), electronics (0.3) | Metal and drive-core intensive |
|
||||
| `consumer_goods_assembly` | consumer_goods (1.0) | processed_food (0.3), textiles (0.3), electronics (0.2) | Broad input mix — diversified |
|
||||
| `luxury_from_agriculture` | luxury_goods (1.0) | agricultural_produce (2.0), chemicals (0.3) | Spirits, wines, premium food. Aging/terroir per corp |
|
||||
| `luxury_from_stone` | luxury_goods (0.5) | stone (3.0) | Decorative stone, marble. Geological ceiling per corp |
|
||||
| `luxury_from_textiles` | luxury_goods (1.0) | textiles (1.5), organic_compounds (0.5) | Premium garments, craft goods. Fiber ceiling per corp |
|
||||
| `implant_fabrication` | implant_hardware (1.0) | electronics (0.5), chemicals (0.3), advanced_alloys (0.2) | Electronics-dependent — rare mineral cascade |
|
||||
| `gate_component_assembly` | gate_components (1.0) | advanced_alloys (1.0), drive_cores (0.5), electronics (0.4) | Most input-intensive final. Triple rare_minerals dependency |
|
||||
| `habitat_module_assembly` | habitat_modules (1.0) | structural_panels (1.5), electronics (0.4), chemicals (0.3) | Panel-heavy — timber scarcity cascades here |
|
||||
|
||||
### Substitution Routes (structural, per D-173)
|
||||
|
||||
Two substitution routes in the intermediate tier:
|
||||
1. **chemicals**: two recipes (`chemical_processing` from chemical_feedstock, `chemical_from_organics` from organic_compounds). Different yields, same output. A node near biosphere worlds uses the organic path; a node near gas extraction uses the chemical path. Both produce chemicals.
|
||||
2. **luxury_goods**: three recipes from different raw inputs (agriculture, stone, textiles). Each has independent failure modes and geographic anchors.
|
||||
|
||||
### Scarcity Cascade Analysis (from B-S, validated)
|
||||
|
||||
B-S's cascade analysis holds with the unified list. The critical cascades:
|
||||
|
||||
| Raw shortage | Direct impact | Downstream | Severity |
|
||||
|-------------|--------------|------------|----------|
|
||||
| **rare_minerals** | electronics ↓, advanced_alloys ↓, drive_cores ↓ | implant_hardware ↓↓, gate_components ↓↓↓, vehicles ↓↓ | **CRITICAL** — entire high-tech sector |
|
||||
| **metallic_ore** | refined_metals ↓, advanced_alloys ↓ | heavy_equipment ↓↓, freight_haulers ↓↓, habitat_modules ↓ | Construction + heavy industry halt |
|
||||
| **water** | fusion_fuel ↓↓, processed_food ↓, chemicals ↓ | Nearly everything downstream | **CRITICAL** — water is the hidden universal dependency |
|
||||
| **timber** | structural_panels ↓ | habitat_modules ↓↓ | Narrow but politically explosive (no new stations) |
|
||||
| **organic_compounds** | textiles ↓, chemicals (partial) ↓ | luxury_goods ↓, consumer_goods ↓ | Quality of life degradation |
|
||||
| **agricultural_produce** | processed_food ↓, luxury_goods ↓ | consumer_goods ↓ | Short chain but inelastic — massive price effect |
|
||||
|
||||
**New cascade from directive (c): water → fusion_fuel.** Every system needs fuel. The 5:1 yield ratio means a water disruption creates a 5x amplified fuel shortage. Water-poor stations far from ice sources have permanently elevated operating costs AND energy costs. This is a structural double-whammy that creates real geographic disadvantage for bare-rock frontier stations. Elegant.
|
||||
|
||||
---
|
||||
|
||||
## 5. Service Demand Model (Gestalt integration)
|
||||
|
||||
Services don't participate in production chains (D-173). They are demand sinks on the physical commodity chain. Gestalt's goods-demand multiplier model (section 5 of his Round 1) is the right approach:
|
||||
|
||||
| Service | Goods consumed | Mechanism |
|
||||
|---------|---------------|-----------|
|
||||
| legal_services | fusion_fuel (office power) | Tractus velocity (fees accelerate currency circulation) |
|
||||
| financial_services | — | Tractus velocity; affects cross-zone trade friction |
|
||||
| medical_services | chemicals, electronics | Hospital/clinic consumables |
|
||||
| insurance | — | Affects trade volume through risk pricing |
|
||||
| information_brokerage | — | Affects signal visibility (improves `official_coverage_ratio`) |
|
||||
| commission_certification | — | Tractus sink (certification fees); inverse of shadow economy |
|
||||
| habitation | consumer_goods, fusion_fuel | Station life support and amenities |
|
||||
| tourism | luxury_goods, consumer_goods | Destination consumption |
|
||||
| entertainment | electronics (production hardware), fusion_fuel | Content creation infrastructure |
|
||||
| hospitality | agricultural_produce, processed_food | Kitchen/restaurant inputs |
|
||||
|
||||
This means a high-tourism node pulls increased luxury goods demand. A high-medical-services node increases chemicals demand. These are emergence-generating interactions without explicit service transaction modeling. The service's throughput seed (D-176) determines volume; the goods-demand multiplier creates the supply chain link.
|
||||
|
||||
---
|
||||
|
||||
## 6. Updated SQL Schema (for #804)
|
||||
|
||||
```sql
|
||||
CREATE TABLE commodities (
|
||||
commodity_id TEXT PRIMARY KEY,
|
||||
name TEXT NOT NULL,
|
||||
tier TEXT NOT NULL CHECK(tier IN (
|
||||
'raw', 'intermediate', 'final',
|
||||
'service_professional', 'service_luxury'
|
||||
)),
|
||||
elasticity TEXT NOT NULL CHECK(elasticity IN (
|
||||
'perfectly_inelastic', 'inelastic', 'unit_elastic',
|
||||
'elastic', 'highly_elastic'
|
||||
)),
|
||||
base_price REAL NOT NULL CHECK(base_price > 0),
|
||||
bulk_class TEXT NOT NULL CHECK(bulk_class IN (
|
||||
'bulk', 'liquid', 'standard', 'compact',
|
||||
'precision', 'oversized', 'non_physical'
|
||||
)),
|
||||
unit TEXT NOT NULL CHECK(unit IN ('tonnes', 'units', 'contracts')),
|
||||
production_ubiquity TEXT NOT NULL CHECK(production_ubiquity IN (
|
||||
'ubiquitous', 'common', 'regional',
|
||||
'concentrated', 'monopolistic'
|
||||
)),
|
||||
demand_model TEXT NOT NULL CHECK(demand_model IN (
|
||||
'market', 'utility', 'compliance'
|
||||
)),
|
||||
commission_certified INTEGER NOT NULL DEFAULT 0,
|
||||
compact_contested INTEGER NOT NULL DEFAULT 0,
|
||||
shadow_viable INTEGER NOT NULL DEFAULT 0,
|
||||
description TEXT
|
||||
);
|
||||
|
||||
CREATE TABLE production_chains (
|
||||
chain_id TEXT PRIMARY KEY,
|
||||
output_commodity TEXT NOT NULL REFERENCES commodities(commodity_id),
|
||||
output_quantity REAL NOT NULL DEFAULT 1.0 CHECK(output_quantity > 0),
|
||||
location_bound INTEGER NOT NULL DEFAULT 0,
|
||||
description TEXT
|
||||
);
|
||||
|
||||
CREATE TABLE chain_inputs (
|
||||
chain_id TEXT NOT NULL REFERENCES production_chains(chain_id) ON DELETE CASCADE,
|
||||
commodity_id TEXT NOT NULL REFERENCES commodities(commodity_id),
|
||||
quantity REAL NOT NULL CHECK(quantity > 0),
|
||||
PRIMARY KEY (chain_id, commodity_id)
|
||||
);
|
||||
|
||||
CREATE INDEX idx_commodities_tier ON commodities(tier);
|
||||
CREATE INDEX idx_commodities_ubiquity ON commodities(production_ubiquity);
|
||||
CREATE INDEX idx_chains_output ON production_chains(output_commodity);
|
||||
CREATE INDEX idx_chain_inputs_commodity ON chain_inputs(commodity_id);
|
||||
```
|
||||
|
||||
12 fields per commodity. 1:1 TOML→DB mapping. No computed columns.
|
||||
|
||||
---
|
||||
|
||||
## 7. Updated Validation Rules
|
||||
|
||||
All Round 1 rules remain. Additions for new fields:
|
||||
|
||||
### New hard failures
|
||||
|
||||
| Rule | Rationale |
|
||||
|------|-----------|
|
||||
| All `production_ubiquity` values must match enum | Typo protection |
|
||||
| All `demand_model` values must match enum | Typo protection |
|
||||
| All `bulk_class` values must match enum (7 values now) | Expanded from 4 |
|
||||
| Services must have `bulk_class = "non_physical"` | Services can't be transported |
|
||||
| `demand_model = "utility"` commodities must have `elasticity` ∈ {perfectly_inelastic, inelastic} | Utility goods can't be highly elastic — people need them |
|
||||
| `demand_model = "compliance"` commodities must have `commission_certified = true` | Compliance demand requires a certifying authority |
|
||||
| `fusion_fuel` must appear as an intermediate, not raw | Directive (c) constraint |
|
||||
|
||||
### New soft warnings
|
||||
|
||||
| Rule | Rationale |
|
||||
|------|-----------|
|
||||
| Commodities with `shadow_viable = true` SHOULD have `commission_certified = true` OR `compact_contested = true` | Shadow markets arise from regulatory friction — if there's no friction, why shadow? |
|
||||
| `production_ubiquity = "monopolistic"` commodities SHOULD have `elasticity` ∈ {elastic, highly_elastic} | Monopolistic supply + inelastic demand = runaway prices with no equilibrium |
|
||||
|
||||
---
|
||||
|
||||
## 8. Complete Example TOML Records
|
||||
|
||||
### Raw material example
|
||||
|
||||
```toml
|
||||
[water]
|
||||
name = "Water/Volatiles"
|
||||
tier = "raw"
|
||||
elasticity = "perfectly_inelastic"
|
||||
base_price = 2.0
|
||||
bulk_class = "liquid"
|
||||
unit = "tonnes"
|
||||
production_ubiquity = "ubiquitous"
|
||||
demand_model = "utility"
|
||||
commission_certified = false
|
||||
compact_contested = false
|
||||
shadow_viable = false
|
||||
description = "Water ice, atmospheric gases. Life support critical. Fusion fuel feedstock."
|
||||
```
|
||||
|
||||
### Intermediate example (directive c — the new water→fuel chain)
|
||||
|
||||
```toml
|
||||
[fusion_fuel]
|
||||
name = "Fusion Fuel"
|
||||
tier = "intermediate"
|
||||
elasticity = "perfectly_inelastic"
|
||||
base_price = 20.0
|
||||
bulk_class = "liquid"
|
||||
unit = "tonnes"
|
||||
production_ubiquity = "common"
|
||||
demand_model = "utility"
|
||||
commission_certified = true
|
||||
compact_contested = true
|
||||
shadow_viable = true
|
||||
description = "Deuterium/tritium refined from water. Low yield. Continuous consumption."
|
||||
```
|
||||
|
||||
### Final good example (the politically charged one)
|
||||
|
||||
```toml
|
||||
[implant_hardware]
|
||||
name = "Implant Hardware"
|
||||
tier = "final"
|
||||
elasticity = "highly_elastic"
|
||||
base_price = 400.0
|
||||
bulk_class = "precision"
|
||||
unit = "units"
|
||||
production_ubiquity = "concentrated"
|
||||
demand_model = "market"
|
||||
commission_certified = true
|
||||
compact_contested = true
|
||||
shadow_viable = true
|
||||
description = "Neural interfaces, lattice components. Commission-certified. THE Compact flashpoint."
|
||||
```
|
||||
|
||||
### Production chain example (with substitution)
|
||||
|
||||
```toml
|
||||
[chemical_processing]
|
||||
output = "chemicals"
|
||||
output_quantity = 1.0
|
||||
inputs = [
|
||||
{ commodity = "chemical_feedstock", quantity = 1.0 },
|
||||
{ commodity = "water", quantity = 0.3 },
|
||||
]
|
||||
description = "Industrial chemistry from geological/gas feedstock."
|
||||
|
||||
[chemical_from_organics]
|
||||
output = "chemicals"
|
||||
output_quantity = 0.8
|
||||
inputs = [
|
||||
{ commodity = "organic_compounds", quantity = 1.0 },
|
||||
{ commodity = "water", quantity = 0.3 },
|
||||
]
|
||||
description = "Biochemical processing. Lower yield, different source. Substitution route."
|
||||
```
|
||||
|
||||
### Service example
|
||||
|
||||
```toml
|
||||
[commission_certification]
|
||||
name = "Commission Certification"
|
||||
tier = "service_professional"
|
||||
elasticity = "inelastic"
|
||||
base_price = 100.0
|
||||
bulk_class = "non_physical"
|
||||
unit = "contracts"
|
||||
production_ubiquity = "concentrated"
|
||||
demand_model = "compliance"
|
||||
commission_certified = true
|
||||
compact_contested = true
|
||||
shadow_viable = false
|
||||
description = "Commission regulatory certification. Tractus-denominated. Availability inverse to shadow economy."
|
||||
```
|
||||
|
||||
(Shadow-viable is false for certification itself — you can't shadow-market the Commission's own stamp. You shadow-market the GOODS that skip certification.)
|
||||
|
||||
---
|
||||
|
||||
## 9. Totals and Delta from D-173
|
||||
|
||||
| Category | D-173 target | This proposal | Delta | Justification |
|
||||
|----------|-------------|---------------|-------|---------------|
|
||||
| Raw materials | ~7 | 8 | +1 | chemical_feedstock distinct from organic_compounds |
|
||||
| Intermediate goods | ~8 | 9 | +1 | fusion_fuel per directive (c) |
|
||||
| Final goods | ~7 | 8 | +1 | freight_haulers per B-S demand function analysis |
|
||||
| Professional services | ~5 | 7 | +2 | commission_certification (shadow economy mechanism), habitation (rent verb) |
|
||||
| Luxury services | ~3 | 3 | 0 | — |
|
||||
| **Total** | **~30** | **35** | **+5** | Each addition creates distinct simulation behavior |
|
||||
|
||||
D-173 said "approximately 30." Five additions, each with a clear mechanical justification. None are brand-level splits (directive a). None are gratuitous duplication (directive d). The count follows from what the civilization needs (task framing).
|
||||
|
||||
---
|
||||
|
||||
## 10. Difficulty Assessment (unchanged)
|
||||
|
||||
- **TOML schema**: Tier 1 (straightforward). More fields per record, same flat structure.
|
||||
- **Build step**: Tier 2 (moderate). ~250 lines now (was ~200), extra validation for new fields.
|
||||
- **Schema alignment**: Tier 1 (straightforward). 12-column table, direct mapping.
|
||||
- **Validation rules**: Tier 2 (moderate). Cross-field consistency checks added.
|
||||
|
||||
Total: feasible, well-bounded. The risk remains content completeness, not technical complexity.
|
||||
|
||||
---
|
||||
|
||||
## 11. Open Questions for the Team
|
||||
|
||||
1. **B-S:** Is the 5:1 water→fuel yield ratio right for the economic dynamics you want? Lower ratio = fuel cheaper, less geographic pressure. Higher ratio = more frontier economic stress.
|
||||
|
||||
2. **Gestalt:** The service goods-demand multipliers (section 5) — should these be authored in a TOML file, or hardcoded in the sim? If TOML, we need a `service_demand.toml` schema alongside commodities and chains.
|
||||
|
||||
3. **Miri:** The `description` field — placeholder quality for now, or should Mellanie do a pass before the TOML ships? (This is orthogonal to the schema question but affects the authoring timeline.)
|
||||
|
||||
4. **All:** Is 35 commodities the right count, or should any of my 5 additions be collapsed? I can defend all five, but I'm not attached to chemical_feedstock if it truly collapses into organic_compounds.
|
||||
@@ -0,0 +1,119 @@
|
||||
# Workshop #801 Outcomes: Commodity Catalog
|
||||
|
||||
**Ticket:** #801 — Define commodity catalog (TOML)
|
||||
**Sprint:** 32 (planning branch)
|
||||
**Date:** 2026-04-05
|
||||
**Branch:** `sprint-32/planning`
|
||||
|
||||
---
|
||||
|
||||
## Summary
|
||||
|
||||
**Goal:** Author the commodity catalog and production chain data that seeds the Phase 2 economics simulation. Output: `wiki/economics/commodities.toml` and `wiki/economics/production_chains.toml`.
|
||||
|
||||
**Participants:** Miri (worldbuilding), Gestalt (systems design), Burnelli-Sheldon (economics), Tyre (technical architecture), Qatux (documentation).
|
||||
|
||||
**Rounds:**
|
||||
- **Round 1 — Analysis:** Each participant enumerated commodity space from their domain (lore grounding, system design chokepoints, economic first-principles, schema design).
|
||||
- **Round 2 — Synthesis:** Cross-read outputs, converged on unified commodity list, production chain graph, and TOML schema. Resolved conflicts on fusion fuel position, service count, and luxury goods scope.
|
||||
- **Round 3 — Validation:** Lead compiled `commodities-final.toml` and `production-chains-final.toml`. Agents validated against chain graph completeness, D-175 archetype coverage, D-131 verb coverage, price formation, and cascade dynamics.
|
||||
|
||||
---
|
||||
|
||||
## Decisions Produced
|
||||
|
||||
| Decision | Title | File |
|
||||
|----------|-------|------|
|
||||
| D-184 | Commodity Catalog (36 Types) | `decisions/economics.md` |
|
||||
| D-185 | Brands Are Not Commodities | `decisions/economics.md` |
|
||||
| D-186 | Gate Transmission Levels (Mass + Data + Energy) | `decisions/economics.md` |
|
||||
| D-187 | Fusion Fuel as Intermediate (8:1 Water Yield) | `decisions/economics.md` |
|
||||
|
||||
---
|
||||
|
||||
## Key Design Choices
|
||||
|
||||
### Luxury goods removed from catalog (D-185)
|
||||
|
||||
The draft catalog briefly included a `luxury_goods` commodity to represent high-end physical goods. Removed per lead directive. Named luxury/branded products (Calloway whisky, VGV wine, thrds garments, Bífröst marble) are brand-layer constructs that consume generic commodities as inputs — they are not themselves catalog entries. The tâtonnement terminates at abstract generic finals. Brand premium is modeled in the corporate behavioral layer (future deliverable).
|
||||
|
||||
**Impact on catalog:** Elasticity class `highly_elastic` was dropped (it was primarily applicable to luxury_goods). Final elasticity enum: 4 classes (perfectly_inelastic, inelastic, unit_elastic, elastic). D-173's 5-class specification is superseded by D-184's 4-class implementation.
|
||||
|
||||
### Energy-over-gate as commercial service (D-186)
|
||||
|
||||
Gate Corp's energy transmission service is opt-in at the node level (`gate_energy_connected` boolean). It is not an Assembly mandate. `MARK_PRIMARY` zones default to `false` — the Compact refused dependency as a deliberate political choice, making their surplus capacity an economic asset in Gate Corp cutoff scenarios.
|
||||
|
||||
Gestalt's initial recommendation was Level 2 (no energy transmission). Resolved by the opt-in model: Compact refusal provides the counterplay scenario without adversarial defaults.
|
||||
|
||||
### Fusion fuel as intermediate with 8:1 water yield (D-187)
|
||||
|
||||
Positioned as an intermediate (water → fusion_fuel at 8:1), not a raw material. Creates a structural frontier energy cost premium via compounding water transport costs without requiring event generation. Demand is entirely `demand_model = utility` (exogenous per-node consumption) — it does not appear as an input in any Leontief production chain. **Server team must implement a utility consumption mechanism** separate from the Leontief matrix (all commodities with `demand_model = utility` require a population × per-capita consumption rate multiplier per active node).
|
||||
|
||||
Burnelli-Sheldon flagged the 25% refining margin as negative at non-local-water nodes. Accepted: this is the intended behavior — fuel refining clusters at water-rich nodes, creating the geographic pattern without simulation scripting.
|
||||
|
||||
Burnelli-Sheldon recommended adding fusion_fuel as an input to smelting, alloys, and electronics to create an industrial cascade. This was adopted in the final TOML: `smelt_ore` (0.3), `alloy_fabrication` (0.2), `electronics_fabrication` (0.2). Fusion fuel has BOTH Leontief chain demand AND utility demand (`demand_model = utility` for per-node operational consumption).
|
||||
|
||||
### Final catalog: 36 commodities, 21 chains
|
||||
|
||||
The catalog reached 36 via bottom-up enumeration, not top-down targeting:
|
||||
- 9 raw materials
|
||||
- 10 intermediate goods
|
||||
- 9 final goods
|
||||
- 5 professional services
|
||||
- 3 luxury services
|
||||
|
||||
21 production chains including 2 substitution routes (stone as panel substitute; organic compounds as chemical feedstock substitute). Three confirmed cascade chokepoints: rare_minerals (broadest — all 9 finals), lattice_grade_material (narrowest/most political — implant + gate), water (deepest — fuel + food + chemicals).
|
||||
|
||||
---
|
||||
|
||||
## Items Removed During Review
|
||||
|
||||
### `commercial_intelligence` (professional service)
|
||||
|
||||
Removed as a standalone service commodity. Logistics corporations (Sova and equivalents) can operate on `transport_vehicles`/`freight_haulers` for fleet operations. The archetype coverage gap is accepted — logistics management has no dedicated commodity slot but can function in the simulation via adjacent commodities. Documented in Gestalt's validation as O-02.
|
||||
|
||||
**Rationale:** Adding `commercial_intelligence` as a service commodity required defining a demand mechanism with no clear consumption target. Its economic effect (signal improvement, route optimization) is captured by the `official_coverage_ratio` signal (D-181) at the simulation layer, not as a traded commodity.
|
||||
|
||||
### `habitation_berths` (professional service)
|
||||
|
||||
Removed as a standalone service commodity. Population-driven consumption (the mechanism `habitation_berths` was meant to capture) is handled directly by per-node utility demand multipliers: active nodes generate demand for `consumer_goods`, `processed_food`, `water`, and `fusion_fuel` based on population, without a mediating commodity.
|
||||
|
||||
**Rationale:** `habitation_berths` was redundant with the utility demand model. Modeling housing as a traded commodity would require supply/demand clearing for residential space — a separate simulation that is out of Phase 2 scope. Population counts drive commodity demand directly via the utility mechanism instead.
|
||||
|
||||
---
|
||||
|
||||
## Follow-Up Work
|
||||
|
||||
### Brand demand layer (future deliverable)
|
||||
|
||||
Brands are demand nodes in the commodity tâtonnement — each brand corporation appears as a `BrandDemand` agent with `base_rate`, `price_ceiling`, and `reduction_slope` per commodity. This interface was sketched by Burnelli-Sheldon in the validation report but is not implemented in Phase 2. Without brand demand visibility, stone (used only by Bífröst) and agricultural produce (grown for Calloway and VGV) will have thin demand in the simulation. Brand demand is the mechanism that gives these raws economic substance.
|
||||
|
||||
**Action:** Design `BrandDemand` TOML format and sim integration when brand layer work begins.
|
||||
|
||||
### Wiki copy pass for commodity entries
|
||||
|
||||
The 36 catalog entries in `wiki/economics/commodities.toml` need corresponding wiki copy: in-world descriptions, lore grounding, cultural identity notes. Raw TOML is sufficient for Phase 2 simulation; wiki copy is needed before Phase 3 player interaction.
|
||||
|
||||
**Action:** Mellanie (copywriter) to write commodity wiki entries as a batch task. Brief should specify the 36 commodity IDs and their lore-grounding notes from Miri's workshop contributions.
|
||||
|
||||
### Energy schema implementation
|
||||
|
||||
The `gate_energy_connected` boolean field needs to be added to the star system schema and seeded for all active nodes. `MARK_PRIMARY` zones default to `false`. All other zones default to `true` unless overridden. Utility demand multipliers for on-grid nodes (0.3× `fusion_fuel` consumption) need sim-side implementation.
|
||||
|
||||
**Action:** Tyre to add `gate_energy_connected` to schema design; Dudley to implement utility demand multiplier in simulation.
|
||||
|
||||
### Rail corporation gap
|
||||
|
||||
`rail_infrastructure` final good is in the catalog but no Tier 1 corporation has a primary rail identity. The D-175 corporation taxonomy noted this gap. Rail is `non-commission-certified` and politically neutral — accessible to both Assembly and Compact systems. A transit corporation anchored in a high-density corridor (Sigurd? Ostmark?) would fill this.
|
||||
|
||||
**Action:** Paula/Miri to identify a rail corporation candidate during Tier 1 corporation authoring.
|
||||
|
||||
### Perishable bulk class
|
||||
|
||||
Burnelli-Sheldon recommended a `perishable` bulk class (1.8× multiplier) for `agricultural_produce` and `organic_compounds`, which currently use the `bulk` class. Without it, food price gradients are flatter than economically realistic — frontier stations importing food over 10 hops pay 2.5× instead of the ~5× that real spoilage/refrigeration costs imply.
|
||||
|
||||
**Action:** Held for simulation tuning iteration (D-183 iterative cycle). Revisit when first stability test run reveals whether food price geography is interesting.
|
||||
|
||||
---
|
||||
|
||||
*Workshop #801 complete. 4 D-records filed (D-184–D-187). Maintained by Qatux.*
|
||||
@@ -0,0 +1,591 @@
|
||||
# ==========================================================================
|
||||
# Settled Reach — Commodity Catalog
|
||||
# Source of truth. Compiled to systems.db via `make economy-db`.
|
||||
#
|
||||
# Fields:
|
||||
# name Display name (Title Case)
|
||||
# tier raw | intermediate | final | service_professional | service_luxury
|
||||
# elasticity perfectly_inelastic | inelastic | unit_elastic | elastic
|
||||
# base_price Equilibrium price in Tractus (float > 0)
|
||||
# bulk_class bulk | liquid | perishable | standard | compact | precision | oversized | non_physical
|
||||
# unit tonnes | units | contracts
|
||||
# production_ubiquity ubiquitous | common | regional | concentrated | monopolistic
|
||||
# demand_model market | utility | compliance
|
||||
# commission_certified Requires Commission certification for formal sale
|
||||
# compact_contested Compact contests Commission authority over this
|
||||
# shadow_viable Shadow market routinely exists
|
||||
# panic_threshold_weeks Stockpile level (in weeks) triggering panic hoarding; 0 = no panic
|
||||
# description Flavor text (optional, not consumed by sim)
|
||||
#
|
||||
# Decisions: D-173 (taxonomy), D-177 (constraints), D-178 (model), D-182 (TOML pipeline)
|
||||
# ==========================================================================
|
||||
|
||||
|
||||
# ==========================================================================
|
||||
# RAW MATERIALS (9)
|
||||
# Extracted or harvested. Location-bound production.
|
||||
# ==========================================================================
|
||||
|
||||
[metallic_ore]
|
||||
name = "Metallic Ore"
|
||||
tier = "raw"
|
||||
elasticity = "unit_elastic"
|
||||
base_price = 10.0
|
||||
bulk_class = "bulk"
|
||||
unit = "tonnes"
|
||||
production_ubiquity = "common"
|
||||
demand_model = "market"
|
||||
commission_certified = false
|
||||
compact_contested = false
|
||||
shadow_viable = false
|
||||
panic_threshold_weeks = 0
|
||||
description = "Ferrous and non-ferrous ore from planetary mines and asteroid operations."
|
||||
|
||||
[rare_minerals]
|
||||
name = "Rare Minerals"
|
||||
tier = "raw"
|
||||
elasticity = "unit_elastic"
|
||||
base_price = 80.0
|
||||
bulk_class = "precision"
|
||||
unit = "tonnes"
|
||||
production_ubiquity = "concentrated"
|
||||
demand_model = "market"
|
||||
commission_certified = false
|
||||
compact_contested = false
|
||||
shadow_viable = false
|
||||
panic_threshold_weeks = 0
|
||||
description = "Exotic crystals, rare earths. Scarce, location-specific. Critical bottleneck for high-tech manufacturing."
|
||||
|
||||
[lattice_grade_material]
|
||||
name = "Lattice-Grade Material"
|
||||
tier = "raw"
|
||||
elasticity = "unit_elastic"
|
||||
base_price = 120.0
|
||||
bulk_class = "precision"
|
||||
unit = "tonnes"
|
||||
production_ubiquity = "monopolistic"
|
||||
demand_model = "market"
|
||||
commission_certified = true
|
||||
compact_contested = false
|
||||
shadow_viable = true
|
||||
panic_threshold_weeks = 0
|
||||
description = "Crystalline substrates for neural lattice fabrication and gate optics. East reach anchor. Strategic material."
|
||||
|
||||
[timber]
|
||||
name = "Timber/Biomass"
|
||||
tier = "raw"
|
||||
elasticity = "unit_elastic"
|
||||
base_price = 15.0
|
||||
bulk_class = "bulk"
|
||||
unit = "tonnes"
|
||||
production_ubiquity = "regional"
|
||||
demand_model = "market"
|
||||
commission_certified = false
|
||||
compact_contested = false
|
||||
shadow_viable = false
|
||||
panic_threshold_weeks = 0
|
||||
description = "Structural and decorative wood from managed forests. 40-60 year replanting cycles."
|
||||
|
||||
[agricultural_produce]
|
||||
name = "Agricultural Produce"
|
||||
tier = "raw"
|
||||
elasticity = "inelastic"
|
||||
base_price = 5.0
|
||||
bulk_class = "perishable"
|
||||
unit = "tonnes"
|
||||
production_ubiquity = "ubiquitous"
|
||||
demand_model = "utility"
|
||||
commission_certified = false
|
||||
compact_contested = false
|
||||
shadow_viable = false
|
||||
panic_threshold_weeks = 0
|
||||
description = "Food crops, livestock, grain, grapes. Every terraformed world produces some."
|
||||
|
||||
[water]
|
||||
name = "Water/Volatiles"
|
||||
tier = "raw"
|
||||
elasticity = "perfectly_inelastic"
|
||||
base_price = 2.0
|
||||
bulk_class = "liquid"
|
||||
unit = "tonnes"
|
||||
production_ubiquity = "ubiquitous"
|
||||
demand_model = "utility"
|
||||
commission_certified = false
|
||||
compact_contested = false
|
||||
shadow_viable = false
|
||||
panic_threshold_weeks = 1
|
||||
description = "Water ice, atmospheric gases. Life support critical. Fusion fuel feedstock."
|
||||
|
||||
[organic_compounds]
|
||||
name = "Organic Compounds"
|
||||
tier = "raw"
|
||||
elasticity = "unit_elastic"
|
||||
base_price = 35.0
|
||||
bulk_class = "standard"
|
||||
unit = "tonnes"
|
||||
production_ubiquity = "regional"
|
||||
demand_model = "market"
|
||||
commission_certified = false
|
||||
compact_contested = false
|
||||
shadow_viable = false
|
||||
panic_threshold_weeks = 0
|
||||
description = "Biochemicals, pharmaceutical precursors, biological feedstock. Requires complex biosphere."
|
||||
|
||||
[stone]
|
||||
name = "Stone/Aggregate"
|
||||
tier = "raw"
|
||||
elasticity = "unit_elastic"
|
||||
base_price = 8.0
|
||||
bulk_class = "bulk"
|
||||
unit = "tonnes"
|
||||
production_ubiquity = "common"
|
||||
demand_model = "market"
|
||||
commission_certified = false
|
||||
compact_contested = false
|
||||
shadow_viable = false
|
||||
panic_threshold_weeks = 0
|
||||
description = "Construction stone, ceramics feedstock. Substitution route for structural panels."
|
||||
|
||||
[chemical_feedstock]
|
||||
name = "Chemical Feedstock"
|
||||
tier = "raw"
|
||||
elasticity = "unit_elastic"
|
||||
base_price = 12.0
|
||||
bulk_class = "liquid"
|
||||
unit = "tonnes"
|
||||
production_ubiquity = "common"
|
||||
demand_model = "market"
|
||||
commission_certified = true
|
||||
compact_contested = true
|
||||
shadow_viable = true
|
||||
panic_threshold_weeks = 0
|
||||
description = "Industrial gases, reaction mass, solvents. Hazmat certification required."
|
||||
|
||||
|
||||
# ==========================================================================
|
||||
# INTERMEDIATE GOODS (10)
|
||||
# Processed from raws. Transportable through gates.
|
||||
# ==========================================================================
|
||||
|
||||
[refined_metals]
|
||||
name = "Refined Metals"
|
||||
tier = "intermediate"
|
||||
elasticity = "inelastic"
|
||||
base_price = 30.0
|
||||
bulk_class = "standard"
|
||||
unit = "tonnes"
|
||||
production_ubiquity = "common"
|
||||
demand_model = "market"
|
||||
commission_certified = false
|
||||
compact_contested = false
|
||||
shadow_viable = false
|
||||
panic_threshold_weeks = 0
|
||||
description = "Structural steel, copper wire, aluminum. Backbone of construction and manufacturing."
|
||||
|
||||
[advanced_alloys]
|
||||
name = "Advanced Alloys"
|
||||
tier = "intermediate"
|
||||
elasticity = "unit_elastic"
|
||||
base_price = 100.0
|
||||
bulk_class = "standard"
|
||||
unit = "tonnes"
|
||||
production_ubiquity = "regional"
|
||||
demand_model = "market"
|
||||
commission_certified = false
|
||||
compact_contested = false
|
||||
shadow_viable = false
|
||||
panic_threshold_weeks = 0
|
||||
description = "High-performance materials for hulls, gate infrastructure, precision machinery."
|
||||
|
||||
[fusion_fuel]
|
||||
name = "Fusion Fuel"
|
||||
tier = "intermediate"
|
||||
elasticity = "perfectly_inelastic"
|
||||
base_price = 20.0
|
||||
bulk_class = "liquid"
|
||||
unit = "tonnes"
|
||||
production_ubiquity = "common"
|
||||
demand_model = "utility"
|
||||
commission_certified = true
|
||||
compact_contested = true
|
||||
shadow_viable = true
|
||||
panic_threshold_weeks = 2
|
||||
description = "Deuterium/tritium refined from water at 8:1 ratio. Continuous consumption. Every system needs it."
|
||||
|
||||
[processed_food]
|
||||
name = "Processed Food"
|
||||
tier = "intermediate"
|
||||
elasticity = "inelastic"
|
||||
base_price = 15.0
|
||||
bulk_class = "standard"
|
||||
unit = "tonnes"
|
||||
production_ubiquity = "ubiquitous"
|
||||
demand_model = "utility"
|
||||
commission_certified = false
|
||||
compact_contested = false
|
||||
shadow_viable = false
|
||||
panic_threshold_weeks = 2
|
||||
description = "Shelf-stable, transportable food products."
|
||||
|
||||
[electronics]
|
||||
name = "Electronics/Components"
|
||||
tier = "intermediate"
|
||||
elasticity = "unit_elastic"
|
||||
base_price = 120.0
|
||||
bulk_class = "compact"
|
||||
unit = "units"
|
||||
production_ubiquity = "regional"
|
||||
demand_model = "market"
|
||||
commission_certified = false
|
||||
compact_contested = false
|
||||
shadow_viable = false
|
||||
panic_threshold_weeks = 0
|
||||
description = "Circuits, processors, control systems. Rare mineral-dependent. Input to nearly every final good."
|
||||
|
||||
[chemicals]
|
||||
name = "Chemicals/Pharmaceuticals"
|
||||
tier = "intermediate"
|
||||
elasticity = "inelastic"
|
||||
base_price = 60.0
|
||||
bulk_class = "standard"
|
||||
unit = "tonnes"
|
||||
production_ubiquity = "regional"
|
||||
demand_model = "market"
|
||||
commission_certified = true
|
||||
compact_contested = true
|
||||
shadow_viable = true
|
||||
panic_threshold_weeks = 3
|
||||
description = "Medicines, industrial chemicals, life support consumables. Two production paths."
|
||||
|
||||
[textiles]
|
||||
name = "Textiles/Composites"
|
||||
tier = "intermediate"
|
||||
elasticity = "unit_elastic"
|
||||
base_price = 50.0
|
||||
bulk_class = "standard"
|
||||
unit = "tonnes"
|
||||
production_ubiquity = "regional"
|
||||
demand_model = "market"
|
||||
commission_certified = false
|
||||
compact_contested = false
|
||||
shadow_viable = false
|
||||
panic_threshold_weeks = 0
|
||||
description = "Clothing, technical fabrics, composite materials."
|
||||
|
||||
[structural_panels]
|
||||
name = "Structural Panels"
|
||||
tier = "intermediate"
|
||||
elasticity = "unit_elastic"
|
||||
base_price = 45.0
|
||||
bulk_class = "standard"
|
||||
unit = "units"
|
||||
production_ubiquity = "regional"
|
||||
demand_model = "market"
|
||||
commission_certified = false
|
||||
compact_contested = false
|
||||
shadow_viable = false
|
||||
panic_threshold_weeks = 0
|
||||
description = "Pre-fabricated building components. Two production paths: timber or stone."
|
||||
|
||||
[drive_cores]
|
||||
name = "Drive Cores"
|
||||
tier = "intermediate"
|
||||
elasticity = "elastic"
|
||||
base_price = 200.0
|
||||
bulk_class = "compact"
|
||||
unit = "units"
|
||||
production_ubiquity = "concentrated"
|
||||
demand_model = "market"
|
||||
commission_certified = false
|
||||
compact_contested = false
|
||||
shadow_viable = false
|
||||
panic_threshold_weeks = 0
|
||||
description = "Propulsion components. High-value, specialized. Double rare-minerals dependency."
|
||||
|
||||
[lattice_substrate]
|
||||
name = "Lattice Substrate"
|
||||
tier = "intermediate"
|
||||
elasticity = "unit_elastic"
|
||||
base_price = 180.0
|
||||
bulk_class = "compact"
|
||||
unit = "units"
|
||||
production_ubiquity = "concentrated"
|
||||
demand_model = "market"
|
||||
commission_certified = true
|
||||
compact_contested = false
|
||||
shadow_viable = true
|
||||
panic_threshold_weeks = 0
|
||||
description = "Processed neural lattice wafers and gate optics. From lattice-grade material."
|
||||
|
||||
|
||||
# ==========================================================================
|
||||
# FINAL GOODS (9)
|
||||
# Assembled from intermediates. End of production chain.
|
||||
# ==========================================================================
|
||||
|
||||
[heavy_equipment]
|
||||
name = "Heavy Equipment"
|
||||
tier = "final"
|
||||
elasticity = "elastic"
|
||||
base_price = 250.0
|
||||
bulk_class = "oversized"
|
||||
unit = "units"
|
||||
production_ubiquity = "regional"
|
||||
demand_model = "market"
|
||||
commission_certified = false
|
||||
compact_contested = false
|
||||
shadow_viable = false
|
||||
panic_threshold_weeks = 0
|
||||
description = "Mining rigs, construction machinery. 1-3 year lead times."
|
||||
|
||||
[transport_vehicles]
|
||||
name = "Transport Vehicles"
|
||||
tier = "final"
|
||||
elasticity = "elastic"
|
||||
base_price = 350.0
|
||||
bulk_class = "oversized"
|
||||
unit = "units"
|
||||
production_ubiquity = "regional"
|
||||
demand_model = "market"
|
||||
commission_certified = true
|
||||
compact_contested = true
|
||||
shadow_viable = false
|
||||
panic_threshold_weeks = 0
|
||||
description = "Ships, ground vehicles. Commission safety registration."
|
||||
|
||||
[freight_haulers]
|
||||
name = "Freight Haulers"
|
||||
tier = "final"
|
||||
elasticity = "elastic"
|
||||
base_price = 300.0
|
||||
bulk_class = "oversized"
|
||||
unit = "units"
|
||||
production_ubiquity = "concentrated"
|
||||
demand_model = "market"
|
||||
commission_certified = true
|
||||
compact_contested = true
|
||||
shadow_viable = false
|
||||
panic_threshold_weeks = 0
|
||||
description = "Commercial cargo vessels. Demand driven by trade volume, not population."
|
||||
|
||||
[consumer_goods]
|
||||
name = "Consumer Goods"
|
||||
tier = "final"
|
||||
elasticity = "unit_elastic"
|
||||
base_price = 80.0
|
||||
bulk_class = "compact"
|
||||
unit = "units"
|
||||
production_ubiquity = "ubiquitous"
|
||||
demand_model = "market"
|
||||
commission_certified = false
|
||||
compact_contested = false
|
||||
shadow_viable = false
|
||||
panic_threshold_weeks = 0
|
||||
description = "Daily necessities, household items, personal tech."
|
||||
|
||||
[implant_hardware]
|
||||
name = "Implant Hardware"
|
||||
tier = "final"
|
||||
elasticity = "elastic"
|
||||
base_price = 400.0
|
||||
bulk_class = "precision"
|
||||
unit = "units"
|
||||
production_ubiquity = "concentrated"
|
||||
demand_model = "market"
|
||||
commission_certified = true
|
||||
compact_contested = true
|
||||
shadow_viable = true
|
||||
panic_threshold_weeks = 0
|
||||
description = "Neural interfaces, lattice components. THE Compact political flashpoint. D-037 adjacent."
|
||||
|
||||
[medical_goods]
|
||||
name = "Medical Goods"
|
||||
tier = "final"
|
||||
elasticity = "inelastic"
|
||||
base_price = 200.0
|
||||
bulk_class = "compact"
|
||||
unit = "units"
|
||||
production_ubiquity = "regional"
|
||||
demand_model = "market"
|
||||
commission_certified = true
|
||||
compact_contested = true
|
||||
shadow_viable = true
|
||||
panic_threshold_weeks = 0
|
||||
description = "Pharmaceuticals, surgical equipment, diagnostics, re-embodiment supporting hardware."
|
||||
|
||||
[gate_components]
|
||||
name = "Gate Components"
|
||||
tier = "final"
|
||||
elasticity = "elastic"
|
||||
base_price = 800.0
|
||||
bulk_class = "oversized"
|
||||
unit = "units"
|
||||
production_ubiquity = "monopolistic"
|
||||
demand_model = "market"
|
||||
commission_certified = true
|
||||
compact_contested = true
|
||||
shadow_viable = true
|
||||
panic_threshold_weeks = 0
|
||||
description = "Gate maintenance and construction parts. Gate Corporation monopoly. Triple rare-minerals dependency."
|
||||
|
||||
[habitat_modules]
|
||||
name = "Habitat Modules"
|
||||
tier = "final"
|
||||
elasticity = "unit_elastic"
|
||||
base_price = 150.0
|
||||
bulk_class = "oversized"
|
||||
unit = "units"
|
||||
production_ubiquity = "regional"
|
||||
demand_model = "market"
|
||||
commission_certified = false
|
||||
compact_contested = false
|
||||
shadow_viable = false
|
||||
panic_threshold_weeks = 0
|
||||
description = "Complete living/working units for stations and settlements. 2-5 year lead times."
|
||||
|
||||
[rail_infrastructure]
|
||||
name = "Rail Infrastructure"
|
||||
tier = "final"
|
||||
elasticity = "unit_elastic"
|
||||
base_price = 180.0
|
||||
bulk_class = "oversized"
|
||||
unit = "units"
|
||||
production_ubiquity = "regional"
|
||||
demand_model = "market"
|
||||
commission_certified = false
|
||||
compact_contested = false
|
||||
shadow_viable = false
|
||||
panic_threshold_weeks = 0
|
||||
description = "Planetary transit systems, trains, intra-system transport networks."
|
||||
|
||||
|
||||
# ==========================================================================
|
||||
# PROFESSIONAL SERVICES (7)
|
||||
# Location-bound. Non-transportable through gates.
|
||||
# ==========================================================================
|
||||
|
||||
[legal_services]
|
||||
name = "Legal Services"
|
||||
tier = "service_professional"
|
||||
elasticity = "inelastic"
|
||||
base_price = 100.0
|
||||
bulk_class = "non_physical"
|
||||
unit = "contracts"
|
||||
production_ubiquity = "common"
|
||||
demand_model = "compliance"
|
||||
commission_certified = false
|
||||
compact_contested = false
|
||||
shadow_viable = false
|
||||
panic_threshold_weeks = 0
|
||||
description = "Contract enforcement, dispute resolution, commercial law."
|
||||
|
||||
[financial_services]
|
||||
name = "Financial Services"
|
||||
tier = "service_professional"
|
||||
elasticity = "inelastic"
|
||||
base_price = 120.0
|
||||
bulk_class = "non_physical"
|
||||
unit = "contracts"
|
||||
production_ubiquity = "common"
|
||||
demand_model = "market"
|
||||
commission_certified = false
|
||||
compact_contested = false
|
||||
shadow_viable = false
|
||||
panic_threshold_weeks = 0
|
||||
description = "Banking, credit, clearing, currency exchange. Cross-zone settlement infrastructure."
|
||||
|
||||
[medical_services]
|
||||
name = "Medical/Re-embodiment Services"
|
||||
tier = "service_professional"
|
||||
elasticity = "inelastic"
|
||||
base_price = 200.0
|
||||
bulk_class = "non_physical"
|
||||
unit = "contracts"
|
||||
production_ubiquity = "regional"
|
||||
demand_model = "utility"
|
||||
commission_certified = true
|
||||
compact_contested = true
|
||||
shadow_viable = true
|
||||
panic_threshold_weeks = 0
|
||||
description = "Healthcare, neural backup, licensed re-embodiment. Unlicensed variant is canonical contraband."
|
||||
|
||||
[insurance]
|
||||
name = "Insurance/Risk"
|
||||
tier = "service_professional"
|
||||
elasticity = "unit_elastic"
|
||||
base_price = 75.0
|
||||
bulk_class = "non_physical"
|
||||
unit = "contracts"
|
||||
production_ubiquity = "regional"
|
||||
demand_model = "market"
|
||||
commission_certified = false
|
||||
compact_contested = false
|
||||
shadow_viable = false
|
||||
panic_threshold_weeks = 0
|
||||
description = "Cargo, liability, corporate risk management. Affects trade volume through risk pricing."
|
||||
|
||||
[commission_certification]
|
||||
name = "Commission Certification"
|
||||
tier = "service_professional"
|
||||
elasticity = "inelastic"
|
||||
base_price = 100.0
|
||||
bulk_class = "non_physical"
|
||||
unit = "contracts"
|
||||
production_ubiquity = "concentrated"
|
||||
demand_model = "compliance"
|
||||
commission_certified = true
|
||||
compact_contested = true
|
||||
shadow_viable = false
|
||||
panic_threshold_weeks = 0
|
||||
description = "Lattice Commission regulatory certification. Tractus-denominated. Availability inverse to shadow economy."
|
||||
|
||||
|
||||
# ==========================================================================
|
||||
# LUXURY/EXPERIENTIAL SERVICES (3)
|
||||
# Location-bound. Discretionary consumption.
|
||||
# ==========================================================================
|
||||
|
||||
[tourism]
|
||||
name = "Tourism"
|
||||
tier = "service_luxury"
|
||||
elasticity = "elastic"
|
||||
base_price = 100.0
|
||||
bulk_class = "non_physical"
|
||||
unit = "contracts"
|
||||
production_ubiquity = "concentrated"
|
||||
demand_model = "market"
|
||||
commission_certified = false
|
||||
compact_contested = false
|
||||
shadow_viable = false
|
||||
panic_threshold_weeks = 0
|
||||
description = "Cultural tourism, prestige destinations. Cannot freight the experience."
|
||||
|
||||
[entertainment]
|
||||
name = "Entertainment/Holo-content"
|
||||
tier = "service_luxury"
|
||||
elasticity = "elastic"
|
||||
base_price = 30.0
|
||||
bulk_class = "non_physical"
|
||||
unit = "contracts"
|
||||
production_ubiquity = "common"
|
||||
demand_model = "market"
|
||||
commission_certified = false
|
||||
compact_contested = false
|
||||
shadow_viable = false
|
||||
panic_threshold_weeks = 0
|
||||
description = "Performances, holo-content, cultural production."
|
||||
|
||||
[hospitality]
|
||||
name = "Fine Dining/Hospitality"
|
||||
tier = "service_luxury"
|
||||
elasticity = "elastic"
|
||||
base_price = 60.0
|
||||
bulk_class = "non_physical"
|
||||
unit = "contracts"
|
||||
production_ubiquity = "regional"
|
||||
demand_model = "market"
|
||||
commission_certified = false
|
||||
compact_contested = false
|
||||
shadow_viable = false
|
||||
panic_threshold_weeks = 0
|
||||
description = "Restaurants, hotels, gastronomy."
|
||||
@@ -0,0 +1,18 @@
|
||||
# Advanced Alloys
|
||||
|
||||
| Field | Value |
|
||||
|-------|-------|
|
||||
| Name | Advanced Alloys |
|
||||
| Tier | intermediate |
|
||||
| Elasticity | unit_elastic |
|
||||
| Base Price (Tractus) | 100 |
|
||||
| Bulk Class | standard |
|
||||
| Unit | tonnes |
|
||||
| Production Ubiquity | regional |
|
||||
| Demand Model | market |
|
||||
| Commission Certified | No |
|
||||
| Compact Contested | No |
|
||||
| Shadow Viable | No |
|
||||
| Panic Threshold (weeks) | 0 |
|
||||
| Description | High-performance materials for hulls, gate infrastructure, precision machinery. |
|
||||
|
||||
@@ -0,0 +1,18 @@
|
||||
# Agricultural Produce
|
||||
|
||||
| Field | Value |
|
||||
|-------|-------|
|
||||
| Name | Agricultural Produce |
|
||||
| Tier | raw |
|
||||
| Elasticity | inelastic |
|
||||
| Base Price (Tractus) | 5 |
|
||||
| Bulk Class | perishable |
|
||||
| Unit | tonnes |
|
||||
| Production Ubiquity | ubiquitous |
|
||||
| Demand Model | utility |
|
||||
| Commission Certified | No |
|
||||
| Compact Contested | No |
|
||||
| Shadow Viable | No |
|
||||
| Panic Threshold (weeks) | 0 |
|
||||
| Description | Food crops, livestock, grain, grapes. Every terraformed world produces some. |
|
||||
|
||||
@@ -0,0 +1,18 @@
|
||||
# Chemical Feedstock
|
||||
|
||||
| Field | Value |
|
||||
|-------|-------|
|
||||
| Name | Chemical Feedstock |
|
||||
| Tier | raw |
|
||||
| Elasticity | unit_elastic |
|
||||
| Base Price (Tractus) | 12 |
|
||||
| Bulk Class | liquid |
|
||||
| Unit | tonnes |
|
||||
| Production Ubiquity | common |
|
||||
| Demand Model | market |
|
||||
| Commission Certified | Yes |
|
||||
| Compact Contested | Yes |
|
||||
| Shadow Viable | Yes |
|
||||
| Panic Threshold (weeks) | 0 |
|
||||
| Description | Industrial gases, reaction mass, solvents. Hazmat certification required. |
|
||||
|
||||
@@ -0,0 +1,18 @@
|
||||
# Chemicals/Pharmaceuticals
|
||||
|
||||
| Field | Value |
|
||||
|-------|-------|
|
||||
| Name | Chemicals/Pharmaceuticals |
|
||||
| Tier | intermediate |
|
||||
| Elasticity | inelastic |
|
||||
| Base Price (Tractus) | 60 |
|
||||
| Bulk Class | standard |
|
||||
| Unit | tonnes |
|
||||
| Production Ubiquity | regional |
|
||||
| Demand Model | market |
|
||||
| Commission Certified | Yes |
|
||||
| Compact Contested | Yes |
|
||||
| Shadow Viable | Yes |
|
||||
| Panic Threshold (weeks) | 3 |
|
||||
| Description | Medicines, industrial chemicals, life support consumables. Two production paths. |
|
||||
|
||||
@@ -0,0 +1,18 @@
|
||||
# Commission Certification
|
||||
|
||||
| Field | Value |
|
||||
|-------|-------|
|
||||
| Name | Commission Certification |
|
||||
| Tier | service_professional |
|
||||
| Elasticity | inelastic |
|
||||
| Base Price (Tractus) | 100 |
|
||||
| Bulk Class | non_physical |
|
||||
| Unit | contracts |
|
||||
| Production Ubiquity | concentrated |
|
||||
| Demand Model | compliance |
|
||||
| Commission Certified | Yes |
|
||||
| Compact Contested | Yes |
|
||||
| Shadow Viable | No |
|
||||
| Panic Threshold (weeks) | 0 |
|
||||
| Description | Lattice Commission regulatory certification. Tractus-denominated. Availability inverse to shadow economy. |
|
||||
|
||||
@@ -0,0 +1,18 @@
|
||||
# Consumer Goods
|
||||
|
||||
| Field | Value |
|
||||
|-------|-------|
|
||||
| Name | Consumer Goods |
|
||||
| Tier | final |
|
||||
| Elasticity | unit_elastic |
|
||||
| Base Price (Tractus) | 80 |
|
||||
| Bulk Class | compact |
|
||||
| Unit | units |
|
||||
| Production Ubiquity | ubiquitous |
|
||||
| Demand Model | market |
|
||||
| Commission Certified | No |
|
||||
| Compact Contested | No |
|
||||
| Shadow Viable | No |
|
||||
| Panic Threshold (weeks) | 0 |
|
||||
| Description | Daily necessities, household items, personal tech. |
|
||||
|
||||
@@ -0,0 +1,18 @@
|
||||
# Drive Cores
|
||||
|
||||
| Field | Value |
|
||||
|-------|-------|
|
||||
| Name | Drive Cores |
|
||||
| Tier | intermediate |
|
||||
| Elasticity | elastic |
|
||||
| Base Price (Tractus) | 200 |
|
||||
| Bulk Class | compact |
|
||||
| Unit | units |
|
||||
| Production Ubiquity | concentrated |
|
||||
| Demand Model | market |
|
||||
| Commission Certified | No |
|
||||
| Compact Contested | No |
|
||||
| Shadow Viable | No |
|
||||
| Panic Threshold (weeks) | 0 |
|
||||
| Description | Propulsion components. High-value, specialized. Double rare-minerals dependency. |
|
||||
|
||||
@@ -0,0 +1,18 @@
|
||||
# Electronics/Components
|
||||
|
||||
| Field | Value |
|
||||
|-------|-------|
|
||||
| Name | Electronics/Components |
|
||||
| Tier | intermediate |
|
||||
| Elasticity | unit_elastic |
|
||||
| Base Price (Tractus) | 120 |
|
||||
| Bulk Class | compact |
|
||||
| Unit | units |
|
||||
| Production Ubiquity | regional |
|
||||
| Demand Model | market |
|
||||
| Commission Certified | No |
|
||||
| Compact Contested | No |
|
||||
| Shadow Viable | No |
|
||||
| Panic Threshold (weeks) | 0 |
|
||||
| Description | Circuits, processors, control systems. Rare mineral-dependent. Input to nearly every final good. |
|
||||
|
||||
@@ -0,0 +1,18 @@
|
||||
# Entertainment/Holo-content
|
||||
|
||||
| Field | Value |
|
||||
|-------|-------|
|
||||
| Name | Entertainment/Holo-content |
|
||||
| Tier | service_luxury |
|
||||
| Elasticity | elastic |
|
||||
| Base Price (Tractus) | 30 |
|
||||
| Bulk Class | non_physical |
|
||||
| Unit | contracts |
|
||||
| Production Ubiquity | common |
|
||||
| Demand Model | market |
|
||||
| Commission Certified | No |
|
||||
| Compact Contested | No |
|
||||
| Shadow Viable | No |
|
||||
| Panic Threshold (weeks) | 0 |
|
||||
| Description | Performances, holo-content, cultural production. |
|
||||
|
||||
@@ -0,0 +1,18 @@
|
||||
# Financial Services
|
||||
|
||||
| Field | Value |
|
||||
|-------|-------|
|
||||
| Name | Financial Services |
|
||||
| Tier | service_professional |
|
||||
| Elasticity | inelastic |
|
||||
| Base Price (Tractus) | 120 |
|
||||
| Bulk Class | non_physical |
|
||||
| Unit | contracts |
|
||||
| Production Ubiquity | common |
|
||||
| Demand Model | market |
|
||||
| Commission Certified | No |
|
||||
| Compact Contested | No |
|
||||
| Shadow Viable | No |
|
||||
| Panic Threshold (weeks) | 0 |
|
||||
| Description | Banking, credit, clearing, currency exchange. Cross-zone settlement infrastructure. |
|
||||
|
||||
@@ -0,0 +1,18 @@
|
||||
# Freight Haulers
|
||||
|
||||
| Field | Value |
|
||||
|-------|-------|
|
||||
| Name | Freight Haulers |
|
||||
| Tier | final |
|
||||
| Elasticity | elastic |
|
||||
| Base Price (Tractus) | 300 |
|
||||
| Bulk Class | oversized |
|
||||
| Unit | units |
|
||||
| Production Ubiquity | concentrated |
|
||||
| Demand Model | market |
|
||||
| Commission Certified | Yes |
|
||||
| Compact Contested | Yes |
|
||||
| Shadow Viable | No |
|
||||
| Panic Threshold (weeks) | 0 |
|
||||
| Description | Commercial cargo vessels. Demand driven by trade volume, not population. |
|
||||
|
||||
@@ -0,0 +1,18 @@
|
||||
# Fusion Fuel
|
||||
|
||||
| Field | Value |
|
||||
|-------|-------|
|
||||
| Name | Fusion Fuel |
|
||||
| Tier | intermediate |
|
||||
| Elasticity | perfectly_inelastic |
|
||||
| Base Price (Tractus) | 20 |
|
||||
| Bulk Class | liquid |
|
||||
| Unit | tonnes |
|
||||
| Production Ubiquity | common |
|
||||
| Demand Model | utility |
|
||||
| Commission Certified | Yes |
|
||||
| Compact Contested | Yes |
|
||||
| Shadow Viable | Yes |
|
||||
| Panic Threshold (weeks) | 2 |
|
||||
| Description | Deuterium/tritium refined from water at 8:1 ratio. Continuous consumption. Every system needs it. |
|
||||
|
||||
@@ -0,0 +1,18 @@
|
||||
# Gate Components
|
||||
|
||||
| Field | Value |
|
||||
|-------|-------|
|
||||
| Name | Gate Components |
|
||||
| Tier | final |
|
||||
| Elasticity | elastic |
|
||||
| Base Price (Tractus) | 800 |
|
||||
| Bulk Class | oversized |
|
||||
| Unit | units |
|
||||
| Production Ubiquity | monopolistic |
|
||||
| Demand Model | market |
|
||||
| Commission Certified | Yes |
|
||||
| Compact Contested | Yes |
|
||||
| Shadow Viable | Yes |
|
||||
| Panic Threshold (weeks) | 0 |
|
||||
| Description | Gate maintenance and construction parts. Gate Corporation monopoly. Triple rare-minerals dependency. |
|
||||
|
||||
@@ -0,0 +1,18 @@
|
||||
# Habitat Modules
|
||||
|
||||
| Field | Value |
|
||||
|-------|-------|
|
||||
| Name | Habitat Modules |
|
||||
| Tier | final |
|
||||
| Elasticity | unit_elastic |
|
||||
| Base Price (Tractus) | 150 |
|
||||
| Bulk Class | oversized |
|
||||
| Unit | units |
|
||||
| Production Ubiquity | regional |
|
||||
| Demand Model | market |
|
||||
| Commission Certified | No |
|
||||
| Compact Contested | No |
|
||||
| Shadow Viable | No |
|
||||
| Panic Threshold (weeks) | 0 |
|
||||
| Description | Complete living/working units for stations and settlements. 2-5 year lead times. |
|
||||
|
||||
@@ -0,0 +1,18 @@
|
||||
# Heavy Equipment
|
||||
|
||||
| Field | Value |
|
||||
|-------|-------|
|
||||
| Name | Heavy Equipment |
|
||||
| Tier | final |
|
||||
| Elasticity | elastic |
|
||||
| Base Price (Tractus) | 250 |
|
||||
| Bulk Class | oversized |
|
||||
| Unit | units |
|
||||
| Production Ubiquity | regional |
|
||||
| Demand Model | market |
|
||||
| Commission Certified | No |
|
||||
| Compact Contested | No |
|
||||
| Shadow Viable | No |
|
||||
| Panic Threshold (weeks) | 0 |
|
||||
| Description | Mining rigs, construction machinery. 1-3 year lead times. |
|
||||
|
||||
@@ -0,0 +1,18 @@
|
||||
# Fine Dining/Hospitality
|
||||
|
||||
| Field | Value |
|
||||
|-------|-------|
|
||||
| Name | Fine Dining/Hospitality |
|
||||
| Tier | service_luxury |
|
||||
| Elasticity | elastic |
|
||||
| Base Price (Tractus) | 60 |
|
||||
| Bulk Class | non_physical |
|
||||
| Unit | contracts |
|
||||
| Production Ubiquity | regional |
|
||||
| Demand Model | market |
|
||||
| Commission Certified | No |
|
||||
| Compact Contested | No |
|
||||
| Shadow Viable | No |
|
||||
| Panic Threshold (weeks) | 0 |
|
||||
| Description | Restaurants, hotels, gastronomy. |
|
||||
|
||||
@@ -0,0 +1,18 @@
|
||||
# Implant Hardware
|
||||
|
||||
| Field | Value |
|
||||
|-------|-------|
|
||||
| Name | Implant Hardware |
|
||||
| Tier | final |
|
||||
| Elasticity | elastic |
|
||||
| Base Price (Tractus) | 400 |
|
||||
| Bulk Class | precision |
|
||||
| Unit | units |
|
||||
| Production Ubiquity | concentrated |
|
||||
| Demand Model | market |
|
||||
| Commission Certified | Yes |
|
||||
| Compact Contested | Yes |
|
||||
| Shadow Viable | Yes |
|
||||
| Panic Threshold (weeks) | 0 |
|
||||
| Description | Neural interfaces, lattice components. THE Compact political flashpoint. D-037 adjacent. |
|
||||
|
||||
@@ -0,0 +1,65 @@
|
||||
# Commodities
|
||||
|
||||
The Settled Reach economy trades in **36 commodity types** across five tiers.
|
||||
|
||||
## Raw Materials
|
||||
|
||||
| Commodity | Base Price | Bulk Class | Ubiquity |
|
||||
|-----------|-----------|------------|----------|
|
||||
| [Water/Volatiles](water.md) | 2.0T | liquid | ubiquitous |
|
||||
| [Agricultural Produce](agricultural_produce.md) | 5.0T | perishable | ubiquitous |
|
||||
| [Stone/Aggregate](stone.md) | 8.0T | bulk | common |
|
||||
| [Metallic Ore](metallic_ore.md) | 10.0T | bulk | common |
|
||||
| [Chemical Feedstock](chemical_feedstock.md) | 12.0T | liquid | common |
|
||||
| [Timber/Biomass](timber.md) | 15.0T | bulk | regional |
|
||||
| [Organic Compounds](organic_compounds.md) | 35.0T | standard | regional |
|
||||
| [Rare Minerals](rare_minerals.md) | 80.0T | precision | concentrated |
|
||||
| [Lattice-Grade Material](lattice_grade_material.md) | 120.0T | precision | monopolistic |
|
||||
|
||||
## Intermediate Goods
|
||||
|
||||
| Commodity | Base Price | Bulk Class | Ubiquity |
|
||||
|-----------|-----------|------------|----------|
|
||||
| [Processed Food](processed_food.md) | 15.0T | standard | ubiquitous |
|
||||
| [Fusion Fuel](fusion_fuel.md) | 20.0T | liquid | common |
|
||||
| [Refined Metals](refined_metals.md) | 30.0T | standard | common |
|
||||
| [Structural Panels](structural_panels.md) | 45.0T | standard | regional |
|
||||
| [Textiles/Composites](textiles.md) | 50.0T | standard | regional |
|
||||
| [Chemicals/Pharmaceuticals](chemicals.md) | 60.0T | standard | regional |
|
||||
| [Advanced Alloys](advanced_alloys.md) | 100.0T | standard | regional |
|
||||
| [Electronics/Components](electronics.md) | 120.0T | compact | regional |
|
||||
| [Lattice Substrate](lattice_substrate.md) | 180.0T | compact | concentrated |
|
||||
| [Drive Cores](drive_cores.md) | 200.0T | compact | concentrated |
|
||||
|
||||
## Final Goods
|
||||
|
||||
| Commodity | Base Price | Bulk Class | Ubiquity |
|
||||
|-----------|-----------|------------|----------|
|
||||
| [Consumer Goods](consumer_goods.md) | 80.0T | compact | ubiquitous |
|
||||
| [Habitat Modules](habitat_modules.md) | 150.0T | oversized | regional |
|
||||
| [Rail Infrastructure](rail_infrastructure.md) | 180.0T | oversized | regional |
|
||||
| [Medical Goods](medical_goods.md) | 200.0T | compact | regional |
|
||||
| [Heavy Equipment](heavy_equipment.md) | 250.0T | oversized | regional |
|
||||
| [Freight Haulers](freight_haulers.md) | 300.0T | oversized | concentrated |
|
||||
| [Transport Vehicles](transport_vehicles.md) | 350.0T | oversized | regional |
|
||||
| [Implant Hardware](implant_hardware.md) | 400.0T | precision | concentrated |
|
||||
| [Gate Components](gate_components.md) | 800.0T | oversized | monopolistic |
|
||||
|
||||
## Professional Services
|
||||
|
||||
| Commodity | Base Price | Bulk Class | Ubiquity |
|
||||
|-----------|-----------|------------|----------|
|
||||
| [Insurance/Risk](insurance.md) | 75.0T | non_physical | regional |
|
||||
| [Legal Services](legal_services.md) | 100.0T | non_physical | common |
|
||||
| [Commission Certification](commission_certification.md) | 100.0T | non_physical | concentrated |
|
||||
| [Financial Services](financial_services.md) | 120.0T | non_physical | common |
|
||||
| [Medical/Re-embodiment Services](medical_services.md) | 200.0T | non_physical | regional |
|
||||
|
||||
## Luxury / Experiential Services
|
||||
|
||||
| Commodity | Base Price | Bulk Class | Ubiquity |
|
||||
|-----------|-----------|------------|----------|
|
||||
| [Entertainment/Holo-content](entertainment.md) | 30.0T | non_physical | common |
|
||||
| [Fine Dining/Hospitality](hospitality.md) | 60.0T | non_physical | regional |
|
||||
| [Tourism](tourism.md) | 100.0T | non_physical | concentrated |
|
||||
|
||||
@@ -0,0 +1,18 @@
|
||||
# Insurance/Risk
|
||||
|
||||
| Field | Value |
|
||||
|-------|-------|
|
||||
| Name | Insurance/Risk |
|
||||
| Tier | service_professional |
|
||||
| Elasticity | unit_elastic |
|
||||
| Base Price (Tractus) | 75 |
|
||||
| Bulk Class | non_physical |
|
||||
| Unit | contracts |
|
||||
| Production Ubiquity | regional |
|
||||
| Demand Model | market |
|
||||
| Commission Certified | No |
|
||||
| Compact Contested | No |
|
||||
| Shadow Viable | No |
|
||||
| Panic Threshold (weeks) | 0 |
|
||||
| Description | Cargo, liability, corporate risk management. Affects trade volume through risk pricing. |
|
||||
|
||||
@@ -0,0 +1,18 @@
|
||||
# Lattice-Grade Material
|
||||
|
||||
| Field | Value |
|
||||
|-------|-------|
|
||||
| Name | Lattice-Grade Material |
|
||||
| Tier | raw |
|
||||
| Elasticity | unit_elastic |
|
||||
| Base Price (Tractus) | 120 |
|
||||
| Bulk Class | precision |
|
||||
| Unit | tonnes |
|
||||
| Production Ubiquity | monopolistic |
|
||||
| Demand Model | market |
|
||||
| Commission Certified | Yes |
|
||||
| Compact Contested | No |
|
||||
| Shadow Viable | Yes |
|
||||
| Panic Threshold (weeks) | 0 |
|
||||
| Description | Crystalline substrates for neural lattice fabrication and gate optics. East reach anchor. Strategic material. |
|
||||
|
||||
@@ -0,0 +1,18 @@
|
||||
# Lattice Substrate
|
||||
|
||||
| Field | Value |
|
||||
|-------|-------|
|
||||
| Name | Lattice Substrate |
|
||||
| Tier | intermediate |
|
||||
| Elasticity | unit_elastic |
|
||||
| Base Price (Tractus) | 180 |
|
||||
| Bulk Class | compact |
|
||||
| Unit | units |
|
||||
| Production Ubiquity | concentrated |
|
||||
| Demand Model | market |
|
||||
| Commission Certified | Yes |
|
||||
| Compact Contested | No |
|
||||
| Shadow Viable | Yes |
|
||||
| Panic Threshold (weeks) | 0 |
|
||||
| Description | Processed neural lattice wafers and gate optics. From lattice-grade material. |
|
||||
|
||||
@@ -0,0 +1,18 @@
|
||||
# Legal Services
|
||||
|
||||
| Field | Value |
|
||||
|-------|-------|
|
||||
| Name | Legal Services |
|
||||
| Tier | service_professional |
|
||||
| Elasticity | inelastic |
|
||||
| Base Price (Tractus) | 100 |
|
||||
| Bulk Class | non_physical |
|
||||
| Unit | contracts |
|
||||
| Production Ubiquity | common |
|
||||
| Demand Model | compliance |
|
||||
| Commission Certified | No |
|
||||
| Compact Contested | No |
|
||||
| Shadow Viable | No |
|
||||
| Panic Threshold (weeks) | 0 |
|
||||
| Description | Contract enforcement, dispute resolution, commercial law. |
|
||||
|
||||
@@ -0,0 +1,18 @@
|
||||
# Medical Goods
|
||||
|
||||
| Field | Value |
|
||||
|-------|-------|
|
||||
| Name | Medical Goods |
|
||||
| Tier | final |
|
||||
| Elasticity | inelastic |
|
||||
| Base Price (Tractus) | 200 |
|
||||
| Bulk Class | compact |
|
||||
| Unit | units |
|
||||
| Production Ubiquity | regional |
|
||||
| Demand Model | market |
|
||||
| Commission Certified | Yes |
|
||||
| Compact Contested | Yes |
|
||||
| Shadow Viable | Yes |
|
||||
| Panic Threshold (weeks) | 0 |
|
||||
| Description | Pharmaceuticals, surgical equipment, diagnostics, re-embodiment supporting hardware. |
|
||||
|
||||
@@ -0,0 +1,18 @@
|
||||
# Medical/Re-embodiment Services
|
||||
|
||||
| Field | Value |
|
||||
|-------|-------|
|
||||
| Name | Medical/Re-embodiment Services |
|
||||
| Tier | service_professional |
|
||||
| Elasticity | inelastic |
|
||||
| Base Price (Tractus) | 200 |
|
||||
| Bulk Class | non_physical |
|
||||
| Unit | contracts |
|
||||
| Production Ubiquity | regional |
|
||||
| Demand Model | utility |
|
||||
| Commission Certified | Yes |
|
||||
| Compact Contested | Yes |
|
||||
| Shadow Viable | Yes |
|
||||
| Panic Threshold (weeks) | 0 |
|
||||
| Description | Healthcare, neural backup, licensed re-embodiment. Unlicensed variant is canonical contraband. |
|
||||
|
||||
@@ -0,0 +1,18 @@
|
||||
# Metallic Ore
|
||||
|
||||
| Field | Value |
|
||||
|-------|-------|
|
||||
| Name | Metallic Ore |
|
||||
| Tier | raw |
|
||||
| Elasticity | unit_elastic |
|
||||
| Base Price (Tractus) | 10 |
|
||||
| Bulk Class | bulk |
|
||||
| Unit | tonnes |
|
||||
| Production Ubiquity | common |
|
||||
| Demand Model | market |
|
||||
| Commission Certified | No |
|
||||
| Compact Contested | No |
|
||||
| Shadow Viable | No |
|
||||
| Panic Threshold (weeks) | 0 |
|
||||
| Description | Ferrous and non-ferrous ore from planetary mines and asteroid operations. |
|
||||
|
||||
@@ -0,0 +1,18 @@
|
||||
# Organic Compounds
|
||||
|
||||
| Field | Value |
|
||||
|-------|-------|
|
||||
| Name | Organic Compounds |
|
||||
| Tier | raw |
|
||||
| Elasticity | unit_elastic |
|
||||
| Base Price (Tractus) | 35 |
|
||||
| Bulk Class | standard |
|
||||
| Unit | tonnes |
|
||||
| Production Ubiquity | regional |
|
||||
| Demand Model | market |
|
||||
| Commission Certified | No |
|
||||
| Compact Contested | No |
|
||||
| Shadow Viable | No |
|
||||
| Panic Threshold (weeks) | 0 |
|
||||
| Description | Biochemicals, pharmaceutical precursors, biological feedstock. Requires complex biosphere. |
|
||||
|
||||
@@ -0,0 +1,18 @@
|
||||
# Processed Food
|
||||
|
||||
| Field | Value |
|
||||
|-------|-------|
|
||||
| Name | Processed Food |
|
||||
| Tier | intermediate |
|
||||
| Elasticity | inelastic |
|
||||
| Base Price (Tractus) | 15 |
|
||||
| Bulk Class | standard |
|
||||
| Unit | tonnes |
|
||||
| Production Ubiquity | ubiquitous |
|
||||
| Demand Model | utility |
|
||||
| Commission Certified | No |
|
||||
| Compact Contested | No |
|
||||
| Shadow Viable | No |
|
||||
| Panic Threshold (weeks) | 2 |
|
||||
| Description | Shelf-stable, transportable food products. |
|
||||
|
||||
@@ -0,0 +1,18 @@
|
||||
# Rail Infrastructure
|
||||
|
||||
| Field | Value |
|
||||
|-------|-------|
|
||||
| Name | Rail Infrastructure |
|
||||
| Tier | final |
|
||||
| Elasticity | unit_elastic |
|
||||
| Base Price (Tractus) | 180 |
|
||||
| Bulk Class | oversized |
|
||||
| Unit | units |
|
||||
| Production Ubiquity | regional |
|
||||
| Demand Model | market |
|
||||
| Commission Certified | No |
|
||||
| Compact Contested | No |
|
||||
| Shadow Viable | No |
|
||||
| Panic Threshold (weeks) | 0 |
|
||||
| Description | Planetary transit systems, trains, intra-system transport networks. |
|
||||
|
||||
@@ -0,0 +1,18 @@
|
||||
# Rare Minerals
|
||||
|
||||
| Field | Value |
|
||||
|-------|-------|
|
||||
| Name | Rare Minerals |
|
||||
| Tier | raw |
|
||||
| Elasticity | unit_elastic |
|
||||
| Base Price (Tractus) | 80 |
|
||||
| Bulk Class | precision |
|
||||
| Unit | tonnes |
|
||||
| Production Ubiquity | concentrated |
|
||||
| Demand Model | market |
|
||||
| Commission Certified | No |
|
||||
| Compact Contested | No |
|
||||
| Shadow Viable | No |
|
||||
| Panic Threshold (weeks) | 0 |
|
||||
| Description | Exotic crystals, rare earths. Scarce, location-specific. Critical bottleneck for high-tech manufacturing. |
|
||||
|
||||
@@ -0,0 +1,18 @@
|
||||
# Refined Metals
|
||||
|
||||
| Field | Value |
|
||||
|-------|-------|
|
||||
| Name | Refined Metals |
|
||||
| Tier | intermediate |
|
||||
| Elasticity | inelastic |
|
||||
| Base Price (Tractus) | 30 |
|
||||
| Bulk Class | standard |
|
||||
| Unit | tonnes |
|
||||
| Production Ubiquity | common |
|
||||
| Demand Model | market |
|
||||
| Commission Certified | No |
|
||||
| Compact Contested | No |
|
||||
| Shadow Viable | No |
|
||||
| Panic Threshold (weeks) | 0 |
|
||||
| Description | Structural steel, copper wire, aluminum. Backbone of construction and manufacturing. |
|
||||
|
||||
@@ -0,0 +1,18 @@
|
||||
# Stone/Aggregate
|
||||
|
||||
| Field | Value |
|
||||
|-------|-------|
|
||||
| Name | Stone/Aggregate |
|
||||
| Tier | raw |
|
||||
| Elasticity | unit_elastic |
|
||||
| Base Price (Tractus) | 8 |
|
||||
| Bulk Class | bulk |
|
||||
| Unit | tonnes |
|
||||
| Production Ubiquity | common |
|
||||
| Demand Model | market |
|
||||
| Commission Certified | No |
|
||||
| Compact Contested | No |
|
||||
| Shadow Viable | No |
|
||||
| Panic Threshold (weeks) | 0 |
|
||||
| Description | Construction stone, ceramics feedstock. Substitution route for structural panels. |
|
||||
|
||||
@@ -0,0 +1,18 @@
|
||||
# Structural Panels
|
||||
|
||||
| Field | Value |
|
||||
|-------|-------|
|
||||
| Name | Structural Panels |
|
||||
| Tier | intermediate |
|
||||
| Elasticity | unit_elastic |
|
||||
| Base Price (Tractus) | 45 |
|
||||
| Bulk Class | standard |
|
||||
| Unit | units |
|
||||
| Production Ubiquity | regional |
|
||||
| Demand Model | market |
|
||||
| Commission Certified | No |
|
||||
| Compact Contested | No |
|
||||
| Shadow Viable | No |
|
||||
| Panic Threshold (weeks) | 0 |
|
||||
| Description | Pre-fabricated building components. Two production paths: timber or stone. |
|
||||
|
||||
@@ -0,0 +1,18 @@
|
||||
# Textiles/Composites
|
||||
|
||||
| Field | Value |
|
||||
|-------|-------|
|
||||
| Name | Textiles/Composites |
|
||||
| Tier | intermediate |
|
||||
| Elasticity | unit_elastic |
|
||||
| Base Price (Tractus) | 50 |
|
||||
| Bulk Class | standard |
|
||||
| Unit | tonnes |
|
||||
| Production Ubiquity | regional |
|
||||
| Demand Model | market |
|
||||
| Commission Certified | No |
|
||||
| Compact Contested | No |
|
||||
| Shadow Viable | No |
|
||||
| Panic Threshold (weeks) | 0 |
|
||||
| Description | Clothing, technical fabrics, composite materials. |
|
||||
|
||||
@@ -0,0 +1,18 @@
|
||||
# Timber/Biomass
|
||||
|
||||
| Field | Value |
|
||||
|-------|-------|
|
||||
| Name | Timber/Biomass |
|
||||
| Tier | raw |
|
||||
| Elasticity | unit_elastic |
|
||||
| Base Price (Tractus) | 15 |
|
||||
| Bulk Class | bulk |
|
||||
| Unit | tonnes |
|
||||
| Production Ubiquity | regional |
|
||||
| Demand Model | market |
|
||||
| Commission Certified | No |
|
||||
| Compact Contested | No |
|
||||
| Shadow Viable | No |
|
||||
| Panic Threshold (weeks) | 0 |
|
||||
| Description | Structural and decorative wood from managed forests. 40-60 year replanting cycles. |
|
||||
|
||||
@@ -0,0 +1,18 @@
|
||||
# Tourism
|
||||
|
||||
| Field | Value |
|
||||
|-------|-------|
|
||||
| Name | Tourism |
|
||||
| Tier | service_luxury |
|
||||
| Elasticity | elastic |
|
||||
| Base Price (Tractus) | 100 |
|
||||
| Bulk Class | non_physical |
|
||||
| Unit | contracts |
|
||||
| Production Ubiquity | concentrated |
|
||||
| Demand Model | market |
|
||||
| Commission Certified | No |
|
||||
| Compact Contested | No |
|
||||
| Shadow Viable | No |
|
||||
| Panic Threshold (weeks) | 0 |
|
||||
| Description | Cultural tourism, prestige destinations. Cannot freight the experience. |
|
||||
|
||||
@@ -0,0 +1,18 @@
|
||||
# Transport Vehicles
|
||||
|
||||
| Field | Value |
|
||||
|-------|-------|
|
||||
| Name | Transport Vehicles |
|
||||
| Tier | final |
|
||||
| Elasticity | elastic |
|
||||
| Base Price (Tractus) | 350 |
|
||||
| Bulk Class | oversized |
|
||||
| Unit | units |
|
||||
| Production Ubiquity | regional |
|
||||
| Demand Model | market |
|
||||
| Commission Certified | Yes |
|
||||
| Compact Contested | Yes |
|
||||
| Shadow Viable | No |
|
||||
| Panic Threshold (weeks) | 0 |
|
||||
| Description | Ships, ground vehicles. Commission safety registration. |
|
||||
|
||||
@@ -0,0 +1,18 @@
|
||||
# Water/Volatiles
|
||||
|
||||
| Field | Value |
|
||||
|-------|-------|
|
||||
| Name | Water/Volatiles |
|
||||
| Tier | raw |
|
||||
| Elasticity | perfectly_inelastic |
|
||||
| Base Price (Tractus) | 2 |
|
||||
| Bulk Class | liquid |
|
||||
| Unit | tonnes |
|
||||
| Production Ubiquity | ubiquitous |
|
||||
| Demand Model | utility |
|
||||
| Commission Certified | No |
|
||||
| Compact Contested | No |
|
||||
| Shadow Viable | No |
|
||||
| Panic Threshold (weeks) | 1 |
|
||||
| Description | Water ice, atmospheric gases. Life support critical. Fusion fuel feedstock. |
|
||||
|
||||
@@ -0,0 +1,250 @@
|
||||
# ==========================================================================
|
||||
# Settled Reach — Production Chain Recipes
|
||||
# Source of truth. Compiled to systems.db via `make economy-db`.
|
||||
#
|
||||
# Leontief fixed-coefficient recipes (D-173, D-178).
|
||||
# Multiple chains MAY produce the same output (structural substitution).
|
||||
# Services have NO production chains — they are demand sinks.
|
||||
# Brands are NOT in this system — brand corporations are commodity buyers.
|
||||
#
|
||||
# Fields:
|
||||
# output commodity_id of the product
|
||||
# output_quantity units produced per cycle (float, default 1.0)
|
||||
# inputs array of { commodity, quantity } pairs
|
||||
# location_bound chain requires specific local resources (default false)
|
||||
# description human-readable recipe description (optional)
|
||||
#
|
||||
# Decisions: D-173 (taxonomy), D-178 (Leontief), D-182 (TOML pipeline)
|
||||
# ==========================================================================
|
||||
|
||||
|
||||
# ==========================================================================
|
||||
# RAW → INTERMEDIATE (12 chains, including 2 substitution routes)
|
||||
# ==========================================================================
|
||||
|
||||
[smelt_ore]
|
||||
output = "refined_metals"
|
||||
output_quantity = 1.0
|
||||
inputs = [
|
||||
{ commodity = "metallic_ore", quantity = 2.0 },
|
||||
{ commodity = "fusion_fuel", quantity = 0.3 },
|
||||
]
|
||||
location_bound = false
|
||||
description = "Smelting: 2t ore + fuel → 1t refined metal. Energy-intensive."
|
||||
|
||||
[alloy_fabrication]
|
||||
output = "advanced_alloys"
|
||||
output_quantity = 1.0
|
||||
inputs = [
|
||||
{ commodity = "metallic_ore", quantity = 1.5 },
|
||||
{ commodity = "rare_minerals", quantity = 0.3 },
|
||||
{ commodity = "fusion_fuel", quantity = 0.2 },
|
||||
]
|
||||
location_bound = false
|
||||
description = "High-tech alloying. Rare minerals are the bottleneck input. Precision metallurgy."
|
||||
|
||||
[fuel_refining]
|
||||
output = "fusion_fuel"
|
||||
output_quantity = 1.0
|
||||
inputs = [
|
||||
{ commodity = "water", quantity = 8.0 },
|
||||
]
|
||||
location_bound = false
|
||||
description = "Deuterium/tritium extraction. 8:1 yield ratio — water-rich systems have structural fuel advantage."
|
||||
|
||||
[food_processing]
|
||||
output = "processed_food"
|
||||
output_quantity = 1.0
|
||||
inputs = [
|
||||
{ commodity = "agricultural_produce", quantity = 1.5 },
|
||||
{ commodity = "water", quantity = 0.2 },
|
||||
]
|
||||
location_bound = false
|
||||
description = "Preservation, packaging, shelf-stabilization."
|
||||
|
||||
[electronics_fabrication]
|
||||
output = "electronics"
|
||||
output_quantity = 1.0
|
||||
inputs = [
|
||||
{ commodity = "rare_minerals", quantity = 0.5 },
|
||||
{ commodity = "refined_metals", quantity = 0.3 },
|
||||
{ commodity = "fusion_fuel", quantity = 0.2 },
|
||||
]
|
||||
location_bound = false
|
||||
description = "Circuit fabrication, processor assembly. Rare minerals are the scarcity driver. Fab power."
|
||||
|
||||
[chemical_processing]
|
||||
output = "chemicals"
|
||||
output_quantity = 1.0
|
||||
inputs = [
|
||||
{ commodity = "chemical_feedstock", quantity = 2.0 },
|
||||
{ commodity = "water", quantity = 0.5 },
|
||||
]
|
||||
location_bound = false
|
||||
description = "Industrial chemistry from geological/gas feedstock. Primary path."
|
||||
|
||||
# -- Substitution route: chemicals from biological path --
|
||||
[chemical_from_organics]
|
||||
output = "chemicals"
|
||||
output_quantity = 0.8
|
||||
inputs = [
|
||||
{ commodity = "organic_compounds", quantity = 1.0 },
|
||||
{ commodity = "water", quantity = 0.3 },
|
||||
]
|
||||
location_bound = false
|
||||
description = "Biochemical processing. Lower yield, different source. Substitution route."
|
||||
|
||||
[textile_production]
|
||||
output = "textiles"
|
||||
output_quantity = 1.0
|
||||
inputs = [
|
||||
{ commodity = "organic_compounds", quantity = 0.8 },
|
||||
{ commodity = "chemicals", quantity = 0.2 },
|
||||
]
|
||||
location_bound = false
|
||||
description = "Fiber processing, weaving, composite layup. Includes brach fiber pathway."
|
||||
|
||||
[panel_from_timber]
|
||||
output = "structural_panels"
|
||||
output_quantity = 1.0
|
||||
inputs = [
|
||||
{ commodity = "timber", quantity = 1.0 },
|
||||
{ commodity = "refined_metals", quantity = 0.5 },
|
||||
]
|
||||
location_bound = false
|
||||
description = "Timber-based construction panels. Forest world proximity matters."
|
||||
|
||||
# -- Substitution route: panels from stone --
|
||||
[panel_from_stone]
|
||||
output = "structural_panels"
|
||||
output_quantity = 0.8
|
||||
inputs = [
|
||||
{ commodity = "stone", quantity = 1.5 },
|
||||
{ commodity = "refined_metals", quantity = 0.5 },
|
||||
]
|
||||
location_bound = false
|
||||
description = "Stone-based construction panels. Lower yield but uses different raw. Quarry proximity."
|
||||
|
||||
[drive_core_assembly]
|
||||
output = "drive_cores"
|
||||
output_quantity = 1.0
|
||||
inputs = [
|
||||
{ commodity = "rare_minerals", quantity = 0.4 },
|
||||
{ commodity = "advanced_alloys", quantity = 0.8 },
|
||||
]
|
||||
location_bound = false
|
||||
description = "Precision assembly. Double rare-minerals dependency (direct + via alloys)."
|
||||
|
||||
[lattice_processing]
|
||||
output = "lattice_substrate"
|
||||
output_quantity = 1.0
|
||||
inputs = [
|
||||
{ commodity = "lattice_grade_material", quantity = 1.0 },
|
||||
{ commodity = "chemicals", quantity = 0.3 },
|
||||
]
|
||||
location_bound = false
|
||||
description = "Lattice wafer processing for neural and gate applications. From east reach material."
|
||||
|
||||
|
||||
# ==========================================================================
|
||||
# INTERMEDIATE → FINAL (9 chains)
|
||||
# ==========================================================================
|
||||
|
||||
[heavy_equipment_assembly]
|
||||
output = "heavy_equipment"
|
||||
output_quantity = 1.0
|
||||
inputs = [
|
||||
{ commodity = "refined_metals", quantity = 1.0 },
|
||||
{ commodity = "electronics", quantity = 0.3 },
|
||||
{ commodity = "drive_cores", quantity = 0.2 },
|
||||
]
|
||||
location_bound = false
|
||||
description = "Mining rigs, construction machinery. Stalownia's core recipe."
|
||||
|
||||
[vehicle_manufacturing]
|
||||
output = "transport_vehicles"
|
||||
output_quantity = 1.0
|
||||
inputs = [
|
||||
{ commodity = "advanced_alloys", quantity = 0.8 },
|
||||
{ commodity = "electronics", quantity = 0.3 },
|
||||
{ commodity = "drive_cores", quantity = 0.3 },
|
||||
]
|
||||
location_bound = false
|
||||
description = "Ships, ground vehicles. Premium materials — alloys, not base metal."
|
||||
|
||||
[freight_hauler_construction]
|
||||
output = "freight_haulers"
|
||||
output_quantity = 1.0
|
||||
inputs = [
|
||||
{ commodity = "refined_metals", quantity = 1.5 },
|
||||
{ commodity = "drive_cores", quantity = 0.5 },
|
||||
{ commodity = "electronics", quantity = 0.3 },
|
||||
]
|
||||
location_bound = false
|
||||
description = "Commercial cargo vessels. Metal and drive-core intensive."
|
||||
|
||||
[consumer_goods_assembly]
|
||||
output = "consumer_goods"
|
||||
output_quantity = 1.0
|
||||
inputs = [
|
||||
{ commodity = "processed_food", quantity = 0.3 },
|
||||
{ commodity = "textiles", quantity = 0.3 },
|
||||
{ commodity = "electronics", quantity = 0.2 },
|
||||
]
|
||||
location_bound = false
|
||||
description = "Daily necessities, household items. Broad, diversified input mix."
|
||||
|
||||
[implant_fabrication]
|
||||
output = "implant_hardware"
|
||||
output_quantity = 1.0
|
||||
inputs = [
|
||||
{ commodity = "electronics", quantity = 0.5 },
|
||||
{ commodity = "chemicals", quantity = 0.3 },
|
||||
{ commodity = "lattice_substrate", quantity = 0.4 },
|
||||
]
|
||||
location_bound = false
|
||||
description = "Neural interfaces, lattice components. Lattice substrate is the critical input."
|
||||
|
||||
[medical_goods_production]
|
||||
output = "medical_goods"
|
||||
output_quantity = 1.0
|
||||
inputs = [
|
||||
{ commodity = "chemicals", quantity = 0.4 },
|
||||
{ commodity = "electronics", quantity = 0.3 },
|
||||
{ commodity = "advanced_alloys", quantity = 0.2 },
|
||||
]
|
||||
location_bound = false
|
||||
description = "Pharmaceuticals, surgical equipment, diagnostics."
|
||||
|
||||
[gate_component_assembly]
|
||||
output = "gate_components"
|
||||
output_quantity = 1.0
|
||||
inputs = [
|
||||
{ commodity = "advanced_alloys", quantity = 1.0 },
|
||||
{ commodity = "drive_cores", quantity = 0.5 },
|
||||
{ commodity = "lattice_substrate", quantity = 0.3 },
|
||||
]
|
||||
location_bound = false
|
||||
description = "Gate maintenance and construction. Most input-intensive final. Gate Corp monopoly."
|
||||
|
||||
[habitat_module_assembly]
|
||||
output = "habitat_modules"
|
||||
output_quantity = 1.0
|
||||
inputs = [
|
||||
{ commodity = "structural_panels", quantity = 1.2 },
|
||||
{ commodity = "electronics", quantity = 0.3 },
|
||||
{ commodity = "chemicals", quantity = 0.2 },
|
||||
]
|
||||
location_bound = false
|
||||
description = "Station and settlement living/working units. Panel-heavy — timber/stone scarcity cascades here."
|
||||
|
||||
[rail_construction]
|
||||
output = "rail_infrastructure"
|
||||
output_quantity = 1.0
|
||||
inputs = [
|
||||
{ commodity = "refined_metals", quantity = 1.0 },
|
||||
{ commodity = "structural_panels", quantity = 1.5 },
|
||||
{ commodity = "electronics", quantity = 0.3 },
|
||||
]
|
||||
location_bound = false
|
||||
description = "Heavy steel construction — tracks, carriages, stations, signaling systems."
|
||||
@@ -0,0 +1,228 @@
|
||||
# Commodity Catalog — Schema Specification
|
||||
|
||||
Definitive schema for #804 (systems.db extension), TOML field spec, and validation rules.
|
||||
|
||||
**Decisions:** D-173, D-177, D-178, D-182
|
||||
|
||||
---
|
||||
|
||||
## 1. SQL Schema (for #804)
|
||||
|
||||
```sql
|
||||
-- =========================================================================
|
||||
-- Compiled from wiki/economics/commodities.toml
|
||||
-- =========================================================================
|
||||
|
||||
CREATE TABLE commodities (
|
||||
commodity_id TEXT PRIMARY KEY,
|
||||
name TEXT NOT NULL,
|
||||
tier TEXT NOT NULL CHECK(tier IN (
|
||||
'raw', 'intermediate', 'final',
|
||||
'service_professional', 'service_luxury'
|
||||
)),
|
||||
elasticity TEXT NOT NULL CHECK(elasticity IN (
|
||||
'perfectly_inelastic', 'inelastic', 'unit_elastic', 'elastic'
|
||||
)),
|
||||
base_price REAL NOT NULL CHECK(base_price > 0),
|
||||
bulk_class TEXT NOT NULL CHECK(bulk_class IN (
|
||||
'bulk', 'liquid', 'perishable', 'standard', 'compact',
|
||||
'precision', 'oversized', 'non_physical'
|
||||
)),
|
||||
unit TEXT NOT NULL CHECK(unit IN ('tonnes', 'units', 'contracts')),
|
||||
production_ubiquity TEXT NOT NULL CHECK(production_ubiquity IN (
|
||||
'ubiquitous', 'common', 'regional', 'concentrated', 'monopolistic'
|
||||
)),
|
||||
demand_model TEXT NOT NULL CHECK(demand_model IN (
|
||||
'market', 'utility', 'compliance'
|
||||
)),
|
||||
commission_certified INTEGER NOT NULL DEFAULT 0,
|
||||
compact_contested INTEGER NOT NULL DEFAULT 0,
|
||||
shadow_viable INTEGER NOT NULL DEFAULT 0,
|
||||
panic_threshold_weeks INTEGER NOT NULL DEFAULT 0 CHECK(panic_threshold_weeks >= 0),
|
||||
description TEXT
|
||||
);
|
||||
|
||||
-- =========================================================================
|
||||
-- Compiled from wiki/economics/production_chains.toml
|
||||
-- =========================================================================
|
||||
|
||||
CREATE TABLE production_chains (
|
||||
chain_id TEXT PRIMARY KEY,
|
||||
output_commodity TEXT NOT NULL REFERENCES commodities(commodity_id),
|
||||
output_quantity REAL NOT NULL DEFAULT 1.0 CHECK(output_quantity > 0),
|
||||
location_bound INTEGER NOT NULL DEFAULT 0,
|
||||
description TEXT
|
||||
);
|
||||
|
||||
CREATE TABLE chain_inputs (
|
||||
chain_id TEXT NOT NULL REFERENCES production_chains(chain_id) ON DELETE CASCADE,
|
||||
commodity_id TEXT NOT NULL REFERENCES commodities(commodity_id),
|
||||
quantity REAL NOT NULL CHECK(quantity > 0),
|
||||
PRIMARY KEY (chain_id, commodity_id)
|
||||
);
|
||||
|
||||
-- =========================================================================
|
||||
-- Indexes
|
||||
-- =========================================================================
|
||||
|
||||
CREATE INDEX idx_commodities_tier ON commodities(tier);
|
||||
CREATE INDEX idx_commodities_ubiquity ON commodities(production_ubiquity);
|
||||
CREATE INDEX idx_commodities_demand ON commodities(demand_model);
|
||||
CREATE INDEX idx_chains_output ON production_chains(output_commodity);
|
||||
CREATE INDEX idx_chain_inputs_commodity ON chain_inputs(commodity_id);
|
||||
```
|
||||
|
||||
### Alignment notes for server team
|
||||
|
||||
- Every column maps 1:1 from a TOML field. No computed columns.
|
||||
- Booleans are INTEGER (0/1) — standard SQLite convention, consistent with existing schema (`inhabited`, `asteroid_belt`, etc.).
|
||||
- FK constraints enforce referential integrity at the DB level.
|
||||
- `chain_inputs` composite PK: one commodity appears at most once per chain (Leontief fixed-coefficient — one coefficient per input per chain).
|
||||
- `panic_threshold_weeks` is integer ≥ 0. Zero means no panic behavior. Non-zero triggers the stockpile-target panic mechanism at runtime when actual stockpile falls below this threshold.
|
||||
|
||||
---
|
||||
|
||||
## 2. TOML Field Specification
|
||||
|
||||
### commodities.toml
|
||||
|
||||
| Field | Type | Required | Constraint | Source |
|
||||
|-------|------|----------|------------|--------|
|
||||
| *TOML key* | string | yes | `[a-z][a-z0-9_]*` (snake_case slug) | ID |
|
||||
| `name` | string | yes | non-empty, Title Case | display |
|
||||
| `tier` | enum | yes | `raw`, `intermediate`, `final`, `service_professional`, `service_luxury` | D-173 |
|
||||
| `elasticity` | enum | yes | `perfectly_inelastic`, `inelastic`, `unit_elastic`, `elastic` | D-173 (4 classes) |
|
||||
| `base_price` | float | yes | > 0 | Tractus equilibrium |
|
||||
| `bulk_class` | enum | yes | `bulk`, `liquid`, `perishable`, `standard`, `compact`, `precision`, `oversized`, `non_physical` | transport cost |
|
||||
| `unit` | enum | yes | `tonnes`, `units`, `contracts` | quantity basis |
|
||||
| `production_ubiquity` | enum | yes | `ubiquitous`, `common`, `regional`, `concentrated`, `monopolistic` | B-S init guidance |
|
||||
| `demand_model` | enum | yes | `market`, `utility`, `compliance` | B-S demand floors |
|
||||
| `commission_certified` | bool | yes | true/false | Gestalt political |
|
||||
| `compact_contested` | bool | yes | true/false | Gestalt political |
|
||||
| `shadow_viable` | bool | yes | true/false | Gestalt political |
|
||||
| `panic_threshold_weeks` | int | yes | ≥ 0 | B-S panic mechanism |
|
||||
| `description` | string | no | — | flavor text |
|
||||
|
||||
### production_chains.toml
|
||||
|
||||
| Field | Type | Required | Constraint | Source |
|
||||
|-------|------|----------|------------|--------|
|
||||
| *TOML key* | string | yes | `[a-z][a-z0-9_]*` (snake_case slug) | chain ID |
|
||||
| `output` | string | yes | must exist in commodities.toml | commodity_id ref |
|
||||
| `output_quantity` | float | no | > 0, default 1.0 | yield per cycle |
|
||||
| `inputs` | array | yes | ≥ 1 entry, each `{ commodity, quantity }` | recipe |
|
||||
| `inputs[].commodity` | string | yes | must exist in commodities.toml | commodity_id ref |
|
||||
| `inputs[].quantity` | float | yes | > 0 | input coefficient |
|
||||
| `location_bound` | bool | no | default false | geographic constraint |
|
||||
| `description` | string | no | — | human-readable recipe |
|
||||
|
||||
---
|
||||
|
||||
## 3. Bulk Class Transport Multipliers
|
||||
|
||||
| Class | Multiplier | Gate cost at 8% base | 5-hop price | 10-hop price | Commodities |
|
||||
|-------|-----------|---------------------|-------------|--------------|-------------|
|
||||
| `bulk` | 1.2x | 9.6%/hop | 1.58x | 2.50x | ore, stone, timber |
|
||||
| `liquid` | 1.3x | 10.4%/hop | 1.64x | 2.69x | water, chemical_feedstock, fusion_fuel |
|
||||
| `perishable` | 1.8x | 14.4%/hop | 1.97x | 3.87x | agricultural_produce |
|
||||
| `standard` | 1.0x | 8.0%/hop | 1.47x | 2.16x | refined_metals, alloys, food, chemicals, textiles, panels |
|
||||
| `compact` | 0.8x | 6.4%/hop | 1.36x | 1.86x | electronics, drive_cores, lattice_substrate, consumer_goods, medical_goods |
|
||||
| `precision` | 0.6x | 4.8%/hop | 1.26x | 1.60x | rare_minerals, lattice_grade_material, implant_hardware |
|
||||
| `oversized` | 2.0x | 16.0%/hop | 2.10x | 4.41x | heavy_equipment, vehicles, haulers, gate_components, habitat_modules, rail |
|
||||
| `non_physical` | ∞ | N/A | N/A | N/A | all services |
|
||||
|
||||
---
|
||||
|
||||
## 4. Validation Rules for `make economy-db`
|
||||
|
||||
### Hard failures (build aborts)
|
||||
|
||||
| # | Rule | Rationale |
|
||||
|---|------|-----------|
|
||||
| V-01 | Every `inputs[].commodity` must exist in commodities.toml | Dangling reference |
|
||||
| V-02 | Every `output` must exist in commodities.toml | Dangling reference |
|
||||
| V-03 | Every chain must have ≥ 1 input | Zero-input chain = free production, breaks Leontief |
|
||||
| V-04 | No commodity may appear as both input and output in the same chain | Self-referential production |
|
||||
| V-05 | No circular dependencies in the chain graph (topological sort) | Infinite loop in sim |
|
||||
| V-06 | `base_price > 0` for all commodities | Zero/negative prices break tâtonnement |
|
||||
| V-07 | `quantity > 0` for all chain inputs and `output_quantity > 0` | Dead inputs |
|
||||
| V-08 | All enum fields match their allowed values | Typo protection |
|
||||
| V-09 | No duplicate commodity IDs (TOML-enforced, but validate) | Collision |
|
||||
| V-10 | Services (`tier = service_*`) must NOT appear as chain inputs or outputs | D-173: services outside production chain |
|
||||
| V-11 | `panic_threshold_weeks >= 0` | Schema constraint |
|
||||
| V-12 | `demand_model = "utility"` requires `elasticity` ∈ {perfectly_inelastic, inelastic} | Utility demand can't be highly deferrable |
|
||||
| V-13 | `demand_model = "compliance"` requires `commission_certified = true` | Compliance demand requires a certifying authority |
|
||||
| V-14 | Services must have `bulk_class = "non_physical"` | Services can't be transported |
|
||||
| V-15 | Services must have `unit = "contracts"` | Service unit convention |
|
||||
| V-16 | Commodity IDs must match pattern `[a-z][a-z0-9_]*` | Slug format for Rust/SQL |
|
||||
|
||||
### Soft warnings (build succeeds, prints warning)
|
||||
|
||||
| # | Rule | Rationale |
|
||||
|---|------|-----------|
|
||||
| W-01 | Every non-service physical commodity SHOULD appear as chain input or chain output | Orphan detection |
|
||||
| W-02 | Raw tier commodities SHOULD NOT appear as chain outputs | Raws are extracted, not produced |
|
||||
| W-03 | Final tier commodities SHOULD NOT appear as chain inputs | Finals are end-of-chain |
|
||||
| W-04 | `shadow_viable = true` SHOULD have `commission_certified = true` OR `compact_contested = true` | Shadow markets arise from regulatory friction |
|
||||
| W-05 | `production_ubiquity = "monopolistic"` commodities with `elasticity = "inelastic"` SHOULD be reviewed | Monopoly + inelastic = potential runaway pricing |
|
||||
|
||||
### Coverage warnings (future — gated by corp data)
|
||||
|
||||
| # | Rule | Rationale |
|
||||
|---|------|-----------|
|
||||
| C-01 | 3+ corporations per major commodity type (D-175) | Simulation density |
|
||||
| C-02 | 1+ corporation per inhabited system > 100K population (D-175) | Coverage threshold |
|
||||
|
||||
---
|
||||
|
||||
## 5. Catalog Totals
|
||||
|
||||
| Category | Count | Notes |
|
||||
|----------|-------|-------|
|
||||
| Raw materials | 9 | +2 over D-173's ~7: chemical_feedstock (substitution route), lattice_grade_material (east reach anchor) |
|
||||
| Intermediate goods | 10 | +2 over D-173's ~8: fusion_fuel (water→fuel, locked), lattice_substrate (lattice chain) |
|
||||
| Final goods | 9 | +2 over D-173's ~7: freight_haulers (distinct demand function), rail_infrastructure (locked) |
|
||||
| Professional services | 5 | commission_certification (shadow economy mechanism) is the key addition |
|
||||
| Luxury services | 3 | matches D-173 |
|
||||
| **Total** | **36** | D-173 target: ~30. Each addition has locked justification. |
|
||||
|
||||
### Production chains
|
||||
|
||||
| Tier transition | Count | Substitution routes |
|
||||
|----------------|-------|---------------------|
|
||||
| Raw → Intermediate | 12 | 2 (chemicals: geological vs biological; panels: timber vs stone) |
|
||||
| Intermediate → Final | 9 | 0 |
|
||||
| **Total** | **21** | **2** |
|
||||
|
||||
### Panic-flagged commodities
|
||||
|
||||
| Commodity | Threshold | Behavior |
|
||||
|-----------|-----------|----------|
|
||||
| water | 1 week | Life-or-death hoarding. Demand spikes 3-5x |
|
||||
| fusion_fuel | 2 weeks | Station emergency reserves. Demand spikes 2-3x |
|
||||
| processed_food | 2 weeks | Consumer panic buying. Demand spikes 1.5-2x |
|
||||
| chemicals | 3 weeks | Hospital/industrial stockpiling. Demand spikes 1.5x |
|
||||
|
||||
All other commodities: `panic_threshold_weeks = 0` (no panic behavior).
|
||||
|
||||
### Key chokepoints
|
||||
|
||||
1. **lattice_grade_material → lattice_substrate → implant_hardware + gate_components**: Geographically sparse, no substitute, feeds the two most politically sensitive finals. Single supply disruption cascades to both neural tech AND gate infrastructure.
|
||||
|
||||
2. **rare_minerals → electronics / advanced_alloys / drive_cores**: Appears in 3 intermediate chains. Electronics is input to 9 of 9 finals. A rare minerals shortage cascades to the entire manufacturing sector.
|
||||
|
||||
3. **water → fusion_fuel + chemicals + processed_food**: Water feeds three intermediate chains (fuel at 8:1, chemicals, food processing). A water shortage simultaneously degrades energy, industrial chemistry, AND food supply. Fuel is the sharpest cascade (8:1 amplification), but the breadth across three chains makes water the single most dangerous raw material disruption. Frontier stations far from ice sources face permanent cost pressure on all three fronts.
|
||||
|
||||
### Design notes for sim implementation
|
||||
|
||||
**Berth capacity as transport cost modifier:** Station docking/berth capacity is NOT a commodity — renting a berth is a property transaction tied to a specific location. However, berth capacity constrains the transport graph: a station with limited docking has higher effective transport costs (queuing, diversion, wait times). Model this as a per-node modifier on the effective hop cost. Expanding station infrastructure (consuming `habitat_modules`) reduces the modifier. This creates an investment incentive for station expansion without requiring a tradeable "berth" commodity.
|
||||
|
||||
**Brand-layer demand:** Brand corporations (Calloway, VGV, thrds, Bífröst Marmor, etc.) appear in the commodity simulation as demand nodes — they purchase raws and intermediates at their local market node. Their output (branded goods) is priced through a separate brand/cultural value system, not through the tâtonnement. Brand revenue appears as a GDP income cluster per system. The brand system is a future DLC deliverable built on top of this commodity foundation.
|
||||
|
||||
**Items removed from catalog during review:** `commercial_intelligence` (corporate behavioral advantage, not a tradeable commodity — what does the buyer receive?), `habitation_berths` (property transaction at a specific location, not a commodity flow through the gate network). Both are real economic concepts but belong in other systems.
|
||||
|
||||
**Gate energy transmission (Level 3 — mass + data + energy):** Span gates transmit mass, data (the Meridian is a live real-time network — already canon), and energy. Energy-over-gate is a **commercial service offered by Gate Corporation** — NOT an Assembly policy. Gate Corp is an independent monopoly with its own interests; it is not a government body and not Assembly-controlled. The Commission regulates gate infrastructure, but Gate Corp's energy service is a corporate commercial decision.
|
||||
|
||||
Implementation: per-node `gate_energy_connected` boolean in systems.db. On-grid nodes get reduced fusion_fuel utility demand (~0.3x baseline — still need backup fuel). Industrial chain inputs are unaffected (smelting still burns fuel per the Leontief recipe). Gate Corp charges a Tractus-denominated service fee. `MARK_PRIMARY` zones default to `gate_energy_connected = false` — the Compact refused Gate Corp energy dependency as a political choice, building independent fusion capacity instead.
|
||||
|
||||
Key dynamics: (1) Gate Corp cutting energy to a dependent node spikes that node's fuel demand — nearby Compact systems with surplus fuel capacity become emergency suppliers. The Compact's political independence becomes an economic asset. (2) Gate Corp energy cutoff is a corporate threat, not a government act — no democratic accountability, which is arguably more frightening. (3) fusion_fuel remains a single commodity; the demand differential emerges from subscription status, not from commodity bifurcation.
|
||||
Reference in New Issue
Block a user