diff --git a/decisions/architecture.md b/decisions/architecture.md index 8341333d9..5b3c3f5c6 100644 --- a/decisions/architecture.md +++ b/decisions/architecture.md @@ -1205,6 +1205,18 @@ Technical foundation decisions that constrain implementation: engine, client-ser - **Ticket:** #922 - **Raised by:** Generation cascade workshop (#897) - **Cross-reference:** D-096 (DistrictLayoutMode::Organic — consumes block_irregularity), D-194 (district mix — founding_age is an input), D-214 (PoliticalArchetype — archetype_step source) +- **Amendment (2026-05-26 — `founding_age_years` backfill, ticket #1000):** `founding_age_years` is backfilled on every inhabited body in `tooling/economy-db/import_economics.py` MIGRATION_SQL via `COALESCE(events-first, wave-fallback)`. **Events-first:** the system's authored `historical_events.age_years` for an `event_type ∈ {founding, first_settlement, colonization}` — currently empty in the live DB, so it is forward-compatible scaffolding only. **Wave-fallback** — canonical **founding-edge** of each wave's range (`docs/design/systems-framework-final-miri.md:495–499`): + + | `settlement_wave` | era | range (years ago) | founding-edge fallback | + |---|---|---|---| + | `wave_1` | Core Founding | 500–600 | **600** | + | `wave_2` | Trade Expansion | 300–500 | **500** | + | `wave_3` | Working Reach | 100–300 | **300** | + | `wave_4` | Frontier Push | 40–100 | **100** | + | `wave_5` | Activation Edge | 0–40 | **40** | + | `origin` | Sol — predates the wave taxonomy | — | **NULL** (Sol excluded per [D-236](scope.md#d-236)) | + + Founding-edge (not midpoint) so a wave-1 body reads as ~600 years old, matching the canonical Reach age. ±50yr drift from per-system reality is negligible for the `founding_age_years / 1000` arithmetic above. ### D-217: Tile Condition Thresholds (0.63 / 0.43 / 0.23) - **Date:** 2026-05-01