From 6e7f6356f09820f693169ec5e90804368885f021 Mon Sep 17 00:00:00 2001 From: Jeroen Schweitzer Date: Thu, 28 May 2026 23:08:51 +0200 Subject: [PATCH] =?UTF-8?q?docs(decisions):=20D-216=20amendment=20?= =?UTF-8?q?=E2=80=94=20canonical=20wave-to-age=20fallback=20for=20founding?= =?UTF-8?q?=5Fage=20backfill=20(#1000)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Anchors the events-first / wave-fallback COALESCE that #1000 will write into import_economics.py MIGRATION_SQL. Founding-edge values from systems-framework-final-miri.md: wave_1=600, wave_2=500, wave_3=300, wave_4=100, wave_5=40, origin=NULL (Sol excluded per D-236). historical_events is currently empty so events-first is forward-compatible scaffolding; wave-fallback is the practical default for all 273 inhabited bodies today. Co-Authored-By: Claude Opus 4.7 (1M context) --- decisions/architecture.md | 12 ++++++++++++ 1 file changed, 12 insertions(+) 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