2.5 KiB
2.5 KiB
| id | title | priority | status | scope | category | owner | created | updated_at | completed_at | blocked_by | follow_ups | |
|---|---|---|---|---|---|---|---|---|---|---|---|---|
| p3-05d | Economy axis civics catalog | p3 | done | game1 | civics | unassigned | 2026-05-03 | 2026-05-14 | 2026-05-14 |
|
Completion (4/4 acceptance bullets ✓)
Context
The Economy axis in public/games/age-of-dwarves/docs/civics/CIVICS.md covers the wealth-distribution model: Communal Stores, Tribute Economy, Mercantile Markets, Industrial Capitalism, Planned Economy. Each axis choice modulates inequality (p3-07a), trade yields, and stockpile turnover.
Acceptance
- ✓ Five files under
public/resources/civics/economy/*.jsonmatching the names above with the standard schema. Authored 2026-05-14:communal_stores.json,tribute_economy.json,mercantile_markets.json,industrial_capitalism.json,planned_economy.json. - ✓ Shared schema
public/games/age-of-dwarves/data/schemas/civic.schema.jsonacceptsaxis: "economy"modifier subset (inequality_amplifier,trade_yield_pct,stockpile_decay_pct,gold_yield_pct,tribute_extraction_pct,market_radius_bonus). All 5 Economy files validate Draft 2020-12. - ✓
python3 tools/validate-game-data.pynow scanspublic/resources/civics/via the newvalidate_civicsmethod. Run on 2026-05-14: civics block reports 15/15 PASS (5/5 Economy among them). Validator cross-checks declaredaxisvs directory name and enforces id uniqueness across axes. Pre-existing terrain/substrate failures (89) are unrelated. - ✓
cargo test -p mc-core --test civics_catalog test_load_economy_catalog(loader test lives inmc-core/tests/civics_catalog.rssincemc-civicscrate is not yet authored — per the objective's "or-p mc-core" allowance) passes 2026-05-14 — typed deserialisation intoCatalogCivicusingmc_core::civic::CivicAxis::Economy, with invariants on file count (5),is_starting(exactly 1), expected ids (communal_stores,tribute_economy,mercantile_markets,industrial_capitalism,planned_economy), and modifier value types. Test suite: 4 passed, 0 failed.
Source-of-truth rails
- Rust crate:
mc-civics(shared loader fromp3-05b). - JSON path:
public/resources/civics/economy/*.json(per p1-40 SSoT). - mc-core wrapper:
Civicstruct,CivicAxis::Economy.
Out of scope
- Other axis catalogs —
p3-05b,p3-05c. - Modifier application —
p3-05e. - Inequality cascade —
p3-07a/b.
References
public/games/age-of-dwarves/docs/civics/CIVICS.md- Parent:
p3-05a - Siblings:
p3-05b,p3-05c,p3-05e