refactor(schema): rename commission_certified to commission_certifiable

The flag is a susceptibility marker, not an absolute state — Commission
certification only applies when trading in TRACTUS_PRIMARY zones.
Compact-internal trade ignores it entirely. Renamed across all TOML
source files, schema docs, workshop outputs, and D-184.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
2026-04-06 23:32:18 +02:00
co-authored by Claude Opus 4.6
parent bcf15354d2
commit 4a3febbe29
8 changed files with 94 additions and 94 deletions
+1 -1
View File
@@ -238,7 +238,7 @@ This domain covers: currency system, commodity taxonomy, shadow economy, corpora
- **3 luxury services** — tourism, entertainment/holo-content, fine dining/hospitality; location-bound
- **Source of truth:** `wiki/economics/commodities.toml` and `wiki/economics/production_chains.toml`
- 21 production chains including 2 substitution routes
- Schema: 14 fields per commodity including 3 political sub-flags (`commission_certified`, `compact_contested`, `shadow_viable`), `production_ubiquity`, `demand_model`, `panic_threshold_weeks`
- Schema: 14 fields per commodity including 3 political sub-flags (`commission_certifiable`, `compact_contested`, `shadow_viable`), `production_ubiquity`, `demand_model`, `panic_threshold_weeks`
- **Rationale:** The catalog is the concrete realization of the D-173 taxonomy. 36 types is rich enough to produce meaningful geographic specialization while remaining authorable. The 14-field schema captures economic, political, and behavioral properties needed by the tâtonnement simulation. Two substitution routes prevent hard lock-outs in chains where one raw source is geographically constrained.
- **Raised by:** Full planning team, Sprint 32 Workshop #801.
- **Dissent:** None.
@@ -11,7 +11,7 @@
# unit tonnes | units | contracts
# production_ubiquity ubiquitous | common | regional | concentrated | monopolistic
# demand_model market | utility | compliance
# commission_certified Requires Commission certification for formal sale
# commission_certifiable 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
@@ -35,7 +35,7 @@ bulk_class = "bulk"
unit = "tonnes"
production_ubiquity = "common"
demand_model = "market"
commission_certified = false
commission_certifiable = false
compact_contested = false
shadow_viable = false
panic_threshold_weeks = 0
@@ -50,7 +50,7 @@ bulk_class = "precision"
unit = "tonnes"
production_ubiquity = "concentrated"
demand_model = "market"
commission_certified = false
commission_certifiable = false
compact_contested = false
shadow_viable = false
panic_threshold_weeks = 0
@@ -65,7 +65,7 @@ bulk_class = "precision"
unit = "tonnes"
production_ubiquity = "monopolistic"
demand_model = "market"
commission_certified = true
commission_certifiable = true
compact_contested = false
shadow_viable = true
panic_threshold_weeks = 0
@@ -80,7 +80,7 @@ bulk_class = "bulk"
unit = "tonnes"
production_ubiquity = "regional"
demand_model = "market"
commission_certified = false
commission_certifiable = false
compact_contested = false
shadow_viable = false
panic_threshold_weeks = 0
@@ -95,7 +95,7 @@ bulk_class = "perishable"
unit = "tonnes"
production_ubiquity = "ubiquitous"
demand_model = "utility"
commission_certified = false
commission_certifiable = false
compact_contested = false
shadow_viable = false
panic_threshold_weeks = 0
@@ -110,7 +110,7 @@ bulk_class = "liquid"
unit = "tonnes"
production_ubiquity = "ubiquitous"
demand_model = "utility"
commission_certified = false
commission_certifiable = false
compact_contested = false
shadow_viable = false
panic_threshold_weeks = 1
@@ -125,7 +125,7 @@ bulk_class = "standard"
unit = "tonnes"
production_ubiquity = "regional"
demand_model = "market"
commission_certified = false
commission_certifiable = false
compact_contested = false
shadow_viable = false
panic_threshold_weeks = 0
@@ -140,7 +140,7 @@ bulk_class = "bulk"
unit = "tonnes"
production_ubiquity = "common"
demand_model = "market"
commission_certified = false
commission_certifiable = false
compact_contested = false
shadow_viable = false
panic_threshold_weeks = 0
@@ -155,7 +155,7 @@ bulk_class = "liquid"
unit = "tonnes"
production_ubiquity = "common"
demand_model = "market"
commission_certified = true
commission_certifiable = true
compact_contested = true
shadow_viable = true
panic_threshold_weeks = 0
@@ -176,7 +176,7 @@ bulk_class = "standard"
unit = "tonnes"
production_ubiquity = "common"
demand_model = "market"
commission_certified = false
commission_certifiable = false
compact_contested = false
shadow_viable = false
panic_threshold_weeks = 0
@@ -191,7 +191,7 @@ bulk_class = "standard"
unit = "tonnes"
production_ubiquity = "regional"
demand_model = "market"
commission_certified = false
commission_certifiable = false
compact_contested = false
shadow_viable = false
panic_threshold_weeks = 0
@@ -206,7 +206,7 @@ bulk_class = "liquid"
unit = "tonnes"
production_ubiquity = "common"
demand_model = "utility"
commission_certified = true
commission_certifiable = true
compact_contested = true
shadow_viable = true
panic_threshold_weeks = 2
@@ -221,7 +221,7 @@ bulk_class = "standard"
unit = "tonnes"
production_ubiquity = "ubiquitous"
demand_model = "utility"
commission_certified = false
commission_certifiable = false
compact_contested = false
shadow_viable = false
panic_threshold_weeks = 2
@@ -236,7 +236,7 @@ bulk_class = "compact"
unit = "units"
production_ubiquity = "regional"
demand_model = "market"
commission_certified = false
commission_certifiable = false
compact_contested = false
shadow_viable = false
panic_threshold_weeks = 0
@@ -251,7 +251,7 @@ bulk_class = "standard"
unit = "tonnes"
production_ubiquity = "regional"
demand_model = "market"
commission_certified = true
commission_certifiable = true
compact_contested = true
shadow_viable = true
panic_threshold_weeks = 3
@@ -266,7 +266,7 @@ bulk_class = "standard"
unit = "tonnes"
production_ubiquity = "regional"
demand_model = "market"
commission_certified = false
commission_certifiable = false
compact_contested = false
shadow_viable = false
panic_threshold_weeks = 0
@@ -281,7 +281,7 @@ bulk_class = "standard"
unit = "units"
production_ubiquity = "regional"
demand_model = "market"
commission_certified = false
commission_certifiable = false
compact_contested = false
shadow_viable = false
panic_threshold_weeks = 0
@@ -296,7 +296,7 @@ bulk_class = "compact"
unit = "units"
production_ubiquity = "concentrated"
demand_model = "market"
commission_certified = false
commission_certifiable = false
compact_contested = false
shadow_viable = false
panic_threshold_weeks = 0
@@ -311,7 +311,7 @@ bulk_class = "compact"
unit = "units"
production_ubiquity = "concentrated"
demand_model = "market"
commission_certified = true
commission_certifiable = true
compact_contested = false
shadow_viable = true
panic_threshold_weeks = 0
@@ -332,7 +332,7 @@ bulk_class = "oversized"
unit = "units"
production_ubiquity = "regional"
demand_model = "market"
commission_certified = false
commission_certifiable = false
compact_contested = false
shadow_viable = false
panic_threshold_weeks = 0
@@ -347,7 +347,7 @@ bulk_class = "oversized"
unit = "units"
production_ubiquity = "regional"
demand_model = "market"
commission_certified = true
commission_certifiable = true
compact_contested = true
shadow_viable = false
panic_threshold_weeks = 0
@@ -362,7 +362,7 @@ bulk_class = "oversized"
unit = "units"
production_ubiquity = "concentrated"
demand_model = "market"
commission_certified = true
commission_certifiable = true
compact_contested = true
shadow_viable = false
panic_threshold_weeks = 0
@@ -377,7 +377,7 @@ bulk_class = "compact"
unit = "units"
production_ubiquity = "ubiquitous"
demand_model = "market"
commission_certified = false
commission_certifiable = false
compact_contested = false
shadow_viable = false
panic_threshold_weeks = 0
@@ -392,7 +392,7 @@ bulk_class = "precision"
unit = "units"
production_ubiquity = "concentrated"
demand_model = "market"
commission_certified = true
commission_certifiable = true
compact_contested = true
shadow_viable = true
panic_threshold_weeks = 0
@@ -407,7 +407,7 @@ bulk_class = "compact"
unit = "units"
production_ubiquity = "regional"
demand_model = "market"
commission_certified = true
commission_certifiable = true
compact_contested = true
shadow_viable = true
panic_threshold_weeks = 0
@@ -422,7 +422,7 @@ bulk_class = "oversized"
unit = "units"
production_ubiquity = "monopolistic"
demand_model = "market"
commission_certified = true
commission_certifiable = true
compact_contested = true
shadow_viable = true
panic_threshold_weeks = 0
@@ -437,7 +437,7 @@ bulk_class = "oversized"
unit = "units"
production_ubiquity = "regional"
demand_model = "market"
commission_certified = false
commission_certifiable = false
compact_contested = false
shadow_viable = false
panic_threshold_weeks = 0
@@ -452,7 +452,7 @@ bulk_class = "oversized"
unit = "units"
production_ubiquity = "regional"
demand_model = "market"
commission_certified = false
commission_certifiable = false
compact_contested = false
shadow_viable = false
panic_threshold_weeks = 0
@@ -473,7 +473,7 @@ bulk_class = "non_physical"
unit = "contracts"
production_ubiquity = "common"
demand_model = "market"
commission_certified = false
commission_certifiable = false
compact_contested = false
shadow_viable = false
panic_threshold_weeks = 0
@@ -488,7 +488,7 @@ bulk_class = "non_physical"
unit = "contracts"
production_ubiquity = "common"
demand_model = "market"
commission_certified = false
commission_certifiable = false
compact_contested = false
shadow_viable = false
panic_threshold_weeks = 0
@@ -503,7 +503,7 @@ bulk_class = "non_physical"
unit = "contracts"
production_ubiquity = "regional"
demand_model = "market"
commission_certified = true
commission_certifiable = true
compact_contested = true
shadow_viable = true
panic_threshold_weeks = 0
@@ -518,7 +518,7 @@ bulk_class = "non_physical"
unit = "contracts"
production_ubiquity = "regional"
demand_model = "market"
commission_certified = false
commission_certifiable = false
compact_contested = false
shadow_viable = false
panic_threshold_weeks = 0
@@ -533,7 +533,7 @@ bulk_class = "non_physical"
unit = "contracts"
production_ubiquity = "concentrated"
demand_model = "compliance"
commission_certified = true
commission_certifiable = true
compact_contested = true
shadow_viable = false
panic_threshold_weeks = 0
@@ -554,7 +554,7 @@ bulk_class = "non_physical"
unit = "contracts"
production_ubiquity = "concentrated"
demand_model = "market"
commission_certified = false
commission_certifiable = false
compact_contested = false
shadow_viable = false
panic_threshold_weeks = 0
@@ -569,7 +569,7 @@ bulk_class = "non_physical"
unit = "contracts"
production_ubiquity = "common"
demand_model = "market"
commission_certified = false
commission_certifiable = false
compact_contested = false
shadow_viable = false
panic_threshold_weeks = 0
@@ -584,7 +584,7 @@ bulk_class = "non_physical"
unit = "contracts"
production_ubiquity = "regional"
demand_model = "market"
commission_certified = false
commission_certifiable = false
compact_contested = false
shadow_viable = false
panic_threshold_weeks = 0
@@ -140,7 +140,7 @@ 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.
Both terminals are commission_certifiable + 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.
@@ -92,7 +92,7 @@ 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.
- `commission_certifiable = 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.
---
@@ -35,7 +35,7 @@ CREATE TABLE commodities (
demand_model TEXT NOT NULL CHECK(demand_model IN (
'market', 'utility', 'compliance'
)),
commission_certified INTEGER NOT NULL DEFAULT 0,
commission_certifiable 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),
@@ -97,7 +97,7 @@ CREATE INDEX idx_chain_inputs_commodity ON chain_inputs(commodity_id);
| `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 |
| `commission_certifiable` | 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 |
@@ -151,7 +151,7 @@ CREATE INDEX idx_chain_inputs_commodity ON chain_inputs(commodity_id);
| 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-13 | `demand_model = "compliance"` requires `commission_certifiable = 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 |
@@ -163,7 +163,7 @@ CREATE INDEX idx_chain_inputs_commodity ON chain_inputs(commodity_id);
| 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-04 | `shadow_viable = true` SHOULD have `commission_certifiable = 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)
@@ -69,7 +69,7 @@ I'm merging the best from all four proposals. My Round 1 had 8 fields. The conve
- `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.
- `commission_certifiable` — 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.
@@ -98,7 +98,7 @@ Three booleans instead of one gives the sim three independent political signals
# 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
# commission_certifiable — 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)
@@ -332,7 +332,7 @@ CREATE TABLE commodities (
demand_model TEXT NOT NULL CHECK(demand_model IN (
'market', 'utility', 'compliance'
)),
commission_certified INTEGER NOT NULL DEFAULT 0,
commission_certifiable INTEGER NOT NULL DEFAULT 0,
compact_contested INTEGER NOT NULL DEFAULT 0,
shadow_viable INTEGER NOT NULL DEFAULT 0,
description TEXT
@@ -376,14 +376,14 @@ All Round 1 rules remain. Additions for new fields:
| 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 |
| `demand_model = "compliance"` commodities must have `commission_certifiable = 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? |
| Commodities with `shadow_viable = true` SHOULD have `commission_certifiable = 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 |
---
@@ -402,7 +402,7 @@ bulk_class = "liquid"
unit = "tonnes"
production_ubiquity = "ubiquitous"
demand_model = "utility"
commission_certified = false
commission_certifiable = false
compact_contested = false
shadow_viable = false
description = "Water ice, atmospheric gases. Life support critical. Fusion fuel feedstock."
@@ -420,7 +420,7 @@ bulk_class = "liquid"
unit = "tonnes"
production_ubiquity = "common"
demand_model = "utility"
commission_certified = true
commission_certifiable = true
compact_contested = true
shadow_viable = true
description = "Deuterium/tritium refined from water. Low yield. Continuous consumption."
@@ -438,7 +438,7 @@ bulk_class = "precision"
unit = "units"
production_ubiquity = "concentrated"
demand_model = "market"
commission_certified = true
commission_certifiable = true
compact_contested = true
shadow_viable = true
description = "Neural interfaces, lattice components. Commission-certified. THE Compact flashpoint."
@@ -478,7 +478,7 @@ bulk_class = "non_physical"
unit = "contracts"
production_ubiquity = "concentrated"
demand_model = "compliance"
commission_certified = true
commission_certifiable = true
compact_contested = true
shadow_viable = false
description = "Commission regulatory certification. Tractus-denominated. Availability inverse to shadow economy."
+37 -37
View File
@@ -11,7 +11,7 @@
# unit tonnes | units | contracts
# production_ubiquity ubiquitous | common | regional | concentrated | monopolistic
# demand_model market | utility | compliance
# commission_certified Requires Commission certification for formal sale
# commission_certifiable 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
@@ -35,7 +35,7 @@ bulk_class = "bulk"
unit = "tonnes"
production_ubiquity = "common"
demand_model = "market"
commission_certified = false
commission_certifiable = false
compact_contested = false
shadow_viable = false
panic_threshold_weeks = 0
@@ -50,7 +50,7 @@ bulk_class = "precision"
unit = "tonnes"
production_ubiquity = "concentrated"
demand_model = "market"
commission_certified = false
commission_certifiable = false
compact_contested = false
shadow_viable = false
panic_threshold_weeks = 0
@@ -65,7 +65,7 @@ bulk_class = "precision"
unit = "tonnes"
production_ubiquity = "monopolistic"
demand_model = "market"
commission_certified = true
commission_certifiable = true
compact_contested = false
shadow_viable = true
panic_threshold_weeks = 0
@@ -80,7 +80,7 @@ bulk_class = "bulk"
unit = "tonnes"
production_ubiquity = "regional"
demand_model = "market"
commission_certified = false
commission_certifiable = false
compact_contested = false
shadow_viable = false
panic_threshold_weeks = 0
@@ -95,7 +95,7 @@ bulk_class = "perishable"
unit = "tonnes"
production_ubiquity = "ubiquitous"
demand_model = "utility"
commission_certified = false
commission_certifiable = false
compact_contested = false
shadow_viable = false
panic_threshold_weeks = 0
@@ -110,7 +110,7 @@ bulk_class = "liquid"
unit = "tonnes"
production_ubiquity = "ubiquitous"
demand_model = "utility"
commission_certified = false
commission_certifiable = false
compact_contested = false
shadow_viable = false
panic_threshold_weeks = 1
@@ -125,7 +125,7 @@ bulk_class = "standard"
unit = "tonnes"
production_ubiquity = "regional"
demand_model = "market"
commission_certified = false
commission_certifiable = false
compact_contested = false
shadow_viable = false
panic_threshold_weeks = 0
@@ -140,7 +140,7 @@ bulk_class = "bulk"
unit = "tonnes"
production_ubiquity = "common"
demand_model = "market"
commission_certified = false
commission_certifiable = false
compact_contested = false
shadow_viable = false
panic_threshold_weeks = 0
@@ -155,7 +155,7 @@ bulk_class = "liquid"
unit = "tonnes"
production_ubiquity = "common"
demand_model = "market"
commission_certified = true
commission_certifiable = true
compact_contested = true
shadow_viable = true
panic_threshold_weeks = 0
@@ -176,7 +176,7 @@ bulk_class = "standard"
unit = "tonnes"
production_ubiquity = "common"
demand_model = "market"
commission_certified = false
commission_certifiable = false
compact_contested = false
shadow_viable = false
panic_threshold_weeks = 0
@@ -191,7 +191,7 @@ bulk_class = "standard"
unit = "tonnes"
production_ubiquity = "regional"
demand_model = "market"
commission_certified = false
commission_certifiable = false
compact_contested = false
shadow_viable = false
panic_threshold_weeks = 0
@@ -206,7 +206,7 @@ bulk_class = "liquid"
unit = "tonnes"
production_ubiquity = "common"
demand_model = "utility"
commission_certified = true
commission_certifiable = true
compact_contested = true
shadow_viable = true
panic_threshold_weeks = 2
@@ -221,7 +221,7 @@ bulk_class = "standard"
unit = "tonnes"
production_ubiquity = "ubiquitous"
demand_model = "utility"
commission_certified = false
commission_certifiable = false
compact_contested = false
shadow_viable = false
panic_threshold_weeks = 2
@@ -236,7 +236,7 @@ bulk_class = "compact"
unit = "units"
production_ubiquity = "regional"
demand_model = "market"
commission_certified = false
commission_certifiable = false
compact_contested = false
shadow_viable = false
panic_threshold_weeks = 0
@@ -251,7 +251,7 @@ bulk_class = "standard"
unit = "tonnes"
production_ubiquity = "regional"
demand_model = "market"
commission_certified = true
commission_certifiable = true
compact_contested = true
shadow_viable = true
panic_threshold_weeks = 3
@@ -266,7 +266,7 @@ bulk_class = "standard"
unit = "tonnes"
production_ubiquity = "regional"
demand_model = "market"
commission_certified = false
commission_certifiable = false
compact_contested = false
shadow_viable = false
panic_threshold_weeks = 0
@@ -281,7 +281,7 @@ bulk_class = "standard"
unit = "units"
production_ubiquity = "regional"
demand_model = "market"
commission_certified = false
commission_certifiable = false
compact_contested = false
shadow_viable = false
panic_threshold_weeks = 0
@@ -296,7 +296,7 @@ bulk_class = "compact"
unit = "units"
production_ubiquity = "concentrated"
demand_model = "market"
commission_certified = false
commission_certifiable = false
compact_contested = false
shadow_viable = false
panic_threshold_weeks = 0
@@ -311,7 +311,7 @@ bulk_class = "compact"
unit = "units"
production_ubiquity = "concentrated"
demand_model = "market"
commission_certified = true
commission_certifiable = true
compact_contested = false
shadow_viable = true
panic_threshold_weeks = 0
@@ -332,7 +332,7 @@ bulk_class = "oversized"
unit = "units"
production_ubiquity = "regional"
demand_model = "market"
commission_certified = false
commission_certifiable = false
compact_contested = false
shadow_viable = false
panic_threshold_weeks = 0
@@ -347,7 +347,7 @@ bulk_class = "oversized"
unit = "units"
production_ubiquity = "regional"
demand_model = "market"
commission_certified = true
commission_certifiable = true
compact_contested = true
shadow_viable = false
panic_threshold_weeks = 0
@@ -362,7 +362,7 @@ bulk_class = "oversized"
unit = "units"
production_ubiquity = "concentrated"
demand_model = "market"
commission_certified = true
commission_certifiable = true
compact_contested = true
shadow_viable = false
panic_threshold_weeks = 0
@@ -377,7 +377,7 @@ bulk_class = "compact"
unit = "units"
production_ubiquity = "ubiquitous"
demand_model = "market"
commission_certified = false
commission_certifiable = false
compact_contested = false
shadow_viable = false
panic_threshold_weeks = 0
@@ -392,7 +392,7 @@ bulk_class = "precision"
unit = "units"
production_ubiquity = "concentrated"
demand_model = "market"
commission_certified = true
commission_certifiable = true
compact_contested = true
shadow_viable = true
panic_threshold_weeks = 0
@@ -407,7 +407,7 @@ bulk_class = "compact"
unit = "units"
production_ubiquity = "regional"
demand_model = "market"
commission_certified = true
commission_certifiable = true
compact_contested = true
shadow_viable = true
panic_threshold_weeks = 0
@@ -422,7 +422,7 @@ bulk_class = "oversized"
unit = "units"
production_ubiquity = "monopolistic"
demand_model = "market"
commission_certified = true
commission_certifiable = true
compact_contested = true
shadow_viable = true
panic_threshold_weeks = 0
@@ -437,7 +437,7 @@ bulk_class = "oversized"
unit = "units"
production_ubiquity = "regional"
demand_model = "market"
commission_certified = false
commission_certifiable = false
compact_contested = false
shadow_viable = false
panic_threshold_weeks = 0
@@ -452,7 +452,7 @@ bulk_class = "oversized"
unit = "units"
production_ubiquity = "regional"
demand_model = "market"
commission_certified = false
commission_certifiable = false
compact_contested = false
shadow_viable = false
panic_threshold_weeks = 0
@@ -473,7 +473,7 @@ bulk_class = "non_physical"
unit = "contracts"
production_ubiquity = "common"
demand_model = "market"
commission_certified = false
commission_certifiable = false
compact_contested = false
shadow_viable = false
panic_threshold_weeks = 0
@@ -488,7 +488,7 @@ bulk_class = "non_physical"
unit = "contracts"
production_ubiquity = "common"
demand_model = "market"
commission_certified = false
commission_certifiable = false
compact_contested = false
shadow_viable = false
panic_threshold_weeks = 0
@@ -503,7 +503,7 @@ bulk_class = "non_physical"
unit = "contracts"
production_ubiquity = "regional"
demand_model = "market"
commission_certified = true
commission_certifiable = true
compact_contested = true
shadow_viable = true
panic_threshold_weeks = 0
@@ -518,7 +518,7 @@ bulk_class = "non_physical"
unit = "contracts"
production_ubiquity = "regional"
demand_model = "market"
commission_certified = false
commission_certifiable = false
compact_contested = false
shadow_viable = false
panic_threshold_weeks = 0
@@ -533,7 +533,7 @@ bulk_class = "non_physical"
unit = "contracts"
production_ubiquity = "concentrated"
demand_model = "compliance"
commission_certified = true
commission_certifiable = true
compact_contested = true
shadow_viable = false
panic_threshold_weeks = 0
@@ -554,7 +554,7 @@ bulk_class = "non_physical"
unit = "contracts"
production_ubiquity = "concentrated"
demand_model = "market"
commission_certified = false
commission_certifiable = false
compact_contested = false
shadow_viable = false
panic_threshold_weeks = 0
@@ -569,7 +569,7 @@ bulk_class = "non_physical"
unit = "contracts"
production_ubiquity = "common"
demand_model = "market"
commission_certified = false
commission_certifiable = false
compact_contested = false
shadow_viable = false
panic_threshold_weeks = 0
@@ -584,7 +584,7 @@ bulk_class = "non_physical"
unit = "contracts"
production_ubiquity = "regional"
demand_model = "market"
commission_certified = false
commission_certifiable = false
compact_contested = false
shadow_viable = false
panic_threshold_weeks = 0
+4 -4
View File
@@ -35,7 +35,7 @@ CREATE TABLE commodities (
demand_model TEXT NOT NULL CHECK(demand_model IN (
'market', 'utility', 'compliance'
)),
commission_certified INTEGER NOT NULL DEFAULT 0,
commission_certifiable 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),
@@ -97,7 +97,7 @@ CREATE INDEX idx_chain_inputs_commodity ON chain_inputs(commodity_id);
| `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 |
| `commission_certifiable` | 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 |
@@ -151,7 +151,7 @@ CREATE INDEX idx_chain_inputs_commodity ON chain_inputs(commodity_id);
| 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-13 | `demand_model = "compliance"` requires `commission_certifiable = 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 |
@@ -163,7 +163,7 @@ CREATE INDEX idx_chain_inputs_commodity ON chain_inputs(commodity_id);
| 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-04 | `shadow_viable = true` SHOULD have `commission_certifiable = 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)