Files
settled-reach/wiki/economics/settlement_name_locked.toml
T
jpmschweitzerandClaude Fable 5 e63caeb620 fix(db): PR #177 review round — H1/H2/T1/T2/M1
H1+H2: headquarters_body is reset+derived every run (DB is never source); optional authored frontmatter override, hard-validated; tiebreak now population DESC -> city-bearing body -> type rank -> body_id, preserving belt tenancies and fixing GJ702B to GJ702Bb. T2: NULL-reset pass for corp_specialization/hq_placement before authored re-apply (poison-tested). T1: wiki/corporations/*.md globbed into IMPORT_ECONOMICS_SOURCES. M1: licensed_clinical_services vocabulary value (31st, NonPhysical->CityTenant) + somatic-futures retag. Fixpoint verified stable across 4 consecutive regens (0 diffs); regen systems.db.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-07-16 13:00:03 +02:00

95 lines
5.6 KiB
TOML

# ==========================================================================
# Settled Reach — Authored NameLocked Settlement Overrides (D-242, T-1075)
# Source of truth. Compiled by import_economics.py
# (atlas.populate_settlement_population_class) onto atlas_city_names.settlement_class.
#
# D-196 defines four SettlementClass variants. Bake scope (T-1075) only
# assigns two of them: every pooled city defaults to PopulationBudget (the
# D-196 population thresholds — >=50k active / <5k ghost — are read from
# this baked population by a later, not-yet-built GENERATION-time consumer;
# out of this bake's scope); this file is the small authored override list
# that PINS a settlement to NameLocked instead — "named in wiki; always
# active regardless of population" (D-196). EconomicTriggered and
# OrganicGrowth are simulation-time classes (D-196) — out of bake scope,
# never written here.
#
# Use sparingly. NameLocked exists for settlements whose narrative
# significance does not depend on (and must survive) whatever population
# number the rank-size bake happens to produce — capitals and the handful of
# systems with a singular landmark identity (D-237's must-pin hero systems:
# docs/workshops/system-economic-specialization/workshop-outcomes.md §7).
#
# REVISED 2026-07-16 after the first live make regen-db (T-1074+T-1075
# integration test): the first draft of this file picked names straight out
# of the PRE-T-1074 atlas_city_names table (Sirius, Groombridge, Cygni B,
# Renaissance, Parallax, Prometheus, Nova Roma) — those turned out to be
# corp-HQ cross-reference ARTIFACTS from the retired D-207
# populate_atlas_city_names_corps (the corp's authored HQ-city text
# frequently equalled its system's proper_name, e.g. Gate Corp's
# "headquarters: Renaissance (GJ 251)"). Once that insert path was removed
# (D-242's whole point), those names no longer exist in the pure
# markers.json pool. Every entry below is verified against real, repeated
# `make regen-db` runs — see the note on each stanza for its actual source
# row. Note (PR #177 H1/H3): corporations.headquarters_body is RECOMPUTED
# from source on every run now, so the three corp-named Standalone-HQ pins
# below (Cygni Combines, The Gate Corporation, Mastroianni Vehicle Group)
# hold because their HQ bodies carry real authored population — the
# population-first tiebreak re-derives the same body every run (verified:
# two consecutive regens, all 8 pins applied, zero placement drift) — not
# because a stale first-run value is being kept. Prometheus (GJ 702B) is
# DROPPED from this list — verified live: every one of its 12 bodies has
# zero authored markers.json city names AND zero population, so there is
# no settlement to pin at all (a genuine wiki content gap: the Reach's
# longevity-monopoly hero system has no named city anywhere — T-1115
# authors the missing names; the bake cannot invent a name to pin).
#
# Match key: (body_id, name) against atlas_city_names — NOT the numeric
# atlas_city_names.id, which is regen-volatile (AUTOINCREMENT, no
# UNIQUE(body_id, name) — see the atlas_city_names schema comment, D-242).
# A stanza with no matching row is a silent no-op (logged) rather than an
# import error, so a future markers.json rename doesn't hard-fail regen-db.
#
# Decisions: D-196 (SettlementClass), D-242 (population/class baking scope),
# D-237 (the hero-system set these are drawn from). Ticket: T-1075.
# ==========================================================================
[[hero]]
body_id = "GJ144d"
name = "Kallast"
note = "Kallast / GJ 144 (Ran) — THE breadbasket; lore-anchored plains body (D-239 §1). Pure markers.json pool name, unaffected by the corp-HQ-artifact issue."
[[hero]]
body_id = "GJ820Bc"
name = "Cygni Combines"
note = "Cygni B / GJ 820B — shipbuilding cluster, 7 competing combines (D-237). D-242 Standalone-HQ settlement (general_industrial corp_specialization) — the corp's own settlement IS the hero identity here; the pure pool has only 'Metropolis' (generic)."
[[hero]]
body_id = "GJ251c"
name = "The Gate Corporation"
note = "Renaissance / GJ 251 — Gate Corp fabrication monopoly (D-237). D-242 Standalone-HQ settlement (gate_fabrication, MonopolySource) — the pure pool has only 'Tributarium'/'Ruhr' (generic); the monopolist's own company town is the hero place."
[[hero]]
body_id = "GJ764d"
name = "Mastroianni Vehicle Group"
note = "Nova Roma / GJ 764 — MVG vehicle production (D-237). D-242 Standalone-HQ settlement (vehicle_production) — pure pool has only 'Mirafiori'/'Fiorino' (generic)."
[[hero]]
body_id = "GJ380c"
name = "Aldren"
note = "Groombridge / GJ 380 — financial cluster + GSH clearing-house landmark (D-237). D-237's hero identity is the SERVICES/finance character, not any one CityTenant corp's manufacturing HQ — pinned to the lowest-id pure-pool city (a CityTenant host) rather than a Standalone-HQ settlement, since Groombridge's Standalone HQs (Alcyone Tech, Arclamp, ...) are all general_industrial/precision_tech, not financial_hub."
[[hero]]
body_id = "GJ244Ad"
name = "Mandate"
note = "Sirius / GJ 244A — 'the capital' (system_specialization.toml). Lowest-id pure-pool city; the pure pool no longer contains 'Sirius' itself (that was a corp-HQ artifact)."
[[hero]]
body_id = "GJ280Ad"
name = "Strata"
note = "Parallax / GJ 280A — news syndicates / cultural production center (D-237). Lowest-id pure-pool city (CityTenant host for the media_center specialization)."
[[hero]]
body_id = "GJ338Bd"
name = "Viridarium"
note = "Arbour / GJ 338B — estate amenity agriculture (D-237). Lowest-id pure-pool city; reads as the manor/estate theme D-237 describes."