# Sprint 33: Pecunia — Joint Notes **Goal:** Full economics simulation running — Leontief production, spatial price equilibrium, currency zones, corporate behavioral agents across all three corporation tiers, stability tests passing. ## Sprint Completion Proof When Sprint 33 is done, you can: 1. **Run `economy-sim --stability-check`** and see all four D-179 tests pass: cold-start convergence (±5% within 100 days), long-run stability (no drift > ±2% over 1,000 days), shock response (recovery within 200 ticks, no negative prices), cross-zone re-stabilization (within 50 ticks). 2. **See Compact systems with `MARK_PRIMARY` currency zones** in `server/data/systems.db` — `SELECT system_id, currency_zone FROM star_systems WHERE currency_zone != 'TRACTUS_PRIMARY'` returns a non-trivial list matching Compact membership. 3. **See 150 Tier-2 corporations** in `wiki/economics/corporations/tier2/` with distinct names, corridors, backstories, and branded product lists. 4. **See `generated_corporations.toml`** with 5,000+ Tier-3 template instances covering all inhabited systems. 5. **Read 36 commodity wiki pages** at `wiki/economics/commodities/` with full flavor text, lore context, and production chain descriptions. 6. **See `wiki/economics/shadow_economy.toml`** with per-system-type intensity ranges authored and annotated. 7. **See the `icon_tint.gdshader`** in the client with recoloring working on both stroke and fill icon types at all implant theme semantic colors. 8. **Grep for `qdrant`** in the repo and find no references (removal complete). ## Phase 2 Context Phase 2 deliverable (D-166): "Economics spreadsheets/graphs with runtime-tweakable simulation." Sprint 33 is the first economics implementation sprint. The economics schema (`#804`, DONE), commodity catalog (`wiki/economics/commodities.toml`), and production chains (`wiki/economics/production_chains.toml`) were completed in Sprint 32. The Tier-1 corporation corpus (38 named corporations, `#797`, DONE) and archetype taxonomy (`#798`, DONE) are also in place. This sprint builds the simulation binary and completes the corporation corpus (Tier 2 authored, Tier 3 generated). It does not close Phase 2 — the phase deliverable includes the full signal pipeline and runtime-tweakable parameters, which will be Sprint 34+ work. But passing all four stability tests in Sprint 33 validates the model architecture and unblocks everything downstream. ## Pre-Sprint Checklist Before any simulation code is written, verify: | Item | Owner | Status | |------|-------|--------| | `server/data/systems-schema.sql` has `currency_zone` on `star_systems` | server | Done (#804) | | `corp_presence` table exists in schema | server | Done (#804) | | `wiki/economics/commodities.toml` — 36 types present | copy | Done (#801) | | `wiki/economics/production_chains.toml` — 21 chains present | copy | Done (#801) | | `wiki/economics/archetypes/lore.toml` — 28 archetypes defined | copy | Done (#798) | | `wiki/economics/archetypes/behavioral.toml` — 6 archetypes defined | copy | Done (#798) | | 38 Tier-1 corporations in DB + wiki | copy | Done (#797) | ## Cross-Team Dependencies The server simulation chain (#806 → #807 → #808 → #809) has hard blockers on copy team output: - **#809 (corporate agents)** cannot be started until #799 (Tier-2 corps) is in a queryable state. Server team must be able to read `behavioral_archetype` from Tier-2 TOML records. - **#808 (currency zones)** consumes `wiki/economics/shadow_economy.toml` (#803) for per-node `shadow_economy_intensity`. Copy team should deliver #803 by mid-sprint. - **#805 (corp pipeline)** will wire in Compact zone assignments from #820. Copy team must finalize the list of `MARK_PRIMARY` system IDs before #805 runs its full validation pass. - **#800 (Tier-3 pipeline)** is a server Rust binary but reads archetype TOML format authored by copy. Schema for `wiki/economics/archetypes/` must be stable before #800 starts. Server and copy teams: align on this format in the first two days of the sprint. ## Iterative Development Cycle (D-183) This sprint follows the iterative economics cycle: skeleton sim (#806) → data population (copy work running in parallel) → test (#807 stability) → currency layer (#808) → agents (#809). Copy and server work in parallel — they are not sequentially gated except at the #809 merge point. If stability tests fail in #807, do not proceed to #808 until Tests 1 and 2 pass. The tâtonnement parameters (α=0.03, β=0.4) are starting values — Dudley/Tyre should tune them if the model oscillates or drifts. Report to team lead before making architectural changes. ## Dependency Chain ``` Server chain: #813 (energy-over-gate schema) ─────────────────────────────────────────┐ #805 (corp pipeline + validation) → #806 (skeleton sim) | → #807 (trade flows + stability) | → #808 (currency zones) ←───┘ → #809 (corporate agents) Copy unblocks server: #820 (MARK_PRIMARY assignments) → feeds #805 validation #803 (shadow economy ranges) → feeds #808 shadow modifier #799 (Tier-2 corps) ─────────────────────────────────────────────────→ #809 #800 (Tier-3 pipeline, server executes) ───────────────────────────→ #809 Independent: #812 (commodity copy) → standalone #818 (icon_tint shader, client) → standalone #816 (remove Qdrant, CI) → standalone ``` ## Not In Scope - Phase 2 signal delivery to the Godot client — that is Phase 4 player interaction territory - Event input port exercising — port is stubbed in #809, not exercised until Phase 3+ - Heightmap batch (#794) — deferred from Sprint 32, carries into a later sprint - Character creation UI (#694, #618, #619) — Phase 4 - World generation — Phase 5