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:
2026-04-05 22:00:33 +02:00
co-authored by Claude Opus 4.6
parent 9b1258568e
commit ac05dbd21f
56 changed files with 6901 additions and 0 deletions
+591
View File
@@ -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. |
+18
View File
@@ -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. |
+18
View File
@@ -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. |
+18
View File
@@ -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. |
+18
View File
@@ -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. |
+18
View File
@@ -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. |
+65
View File
@@ -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 |
+18
View File
@@ -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. |
+18
View File
@@ -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. |
+18
View File
@@ -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. |
+18
View File
@@ -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. |
+18
View File
@@ -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. |
+18
View File
@@ -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. |
+250
View File
@@ -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."
+228
View File
@@ -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.