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>
31 KiB
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:
[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— guidesgenerate_corporationsin 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
# 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:
wateris raw.fusion_fuelis intermediate — directive (c).rare_mineralssubsumes 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_feedstockis Commission-certified (hazmat) and Compact-contested (Compact views hazmat certification as tariff by another name — Gestalt's analysis, section 4).agricultural_producehasdemand_model = utilitybecause 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_fuelfrom water with low yield per directive (c).demand_model = utilitybecause 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).chemicalsis 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_goodsatproduction_ubiquity = monopolisticbecause 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_hardwareis THE political flashpoint — Commission certification + Compact rejection. D-037 canonical contraband territory. Bothcompact_contestedandshadow_viableare maximally true.gate_componentsis the Commission's ultimate leverage tool. Monopoly pricing (Gate Corp) + Commission certification = maximum structural extraction. Gestalt nailed this in section 4.freight_haulerswithdemand_model = marketbut 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_brokerageconsolidates "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_certificationis separate fromlegal_servicesper 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.habitationcovers 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_servicessubsumes 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:
- chemicals: two recipes (
chemical_processingfrom chemical_feedstock,chemical_from_organicsfrom 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. - 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)
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
[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)
[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)
[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)
[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
[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
-
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.
-
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.tomlschema alongside commodities and chains. -
Miri: The
descriptionfield — 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.) -
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.