feat(db): corp-HQ placement boundary re-tune — Standalone only for industrial-complex HQs (T-1076 item 0, D-242)
95->11 Standalone / 60->144 CityTenant per Jeroen's boundary ruling: only extraction/mining/quarrying, heavy vehicle+shipyard, heavy energy, gate infrastructure keep their own settlements; craft/consumer manufacturing, agriculture offices, high-tech fabs flip to CityTenant. Cygni pin moved to Metropolis (its HQ settlement vanishes under the flip). Regen systems.db: 340 city rows, 129 tenant links, fixpoint stable. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
This commit is contained in:
Binary file not shown.
@@ -15,74 +15,75 @@
|
||||
# sits alone). Standalone stanzas carry a second field,
|
||||
# standalone_economic_role, so the emitted atlas_city_names
|
||||
# row has a real economic_role (the existing 10-value
|
||||
# D-195/D-197 vocabulary — manufacturing | financial |
|
||||
# agricultural | extraction | service_mixed | institutional |
|
||||
# transit_hub | research | military | residential) instead
|
||||
# of a generic fallback. CityTenant stanzas do not carry this
|
||||
# field — no settlement is emitted for them, so it would be
|
||||
# dead data.
|
||||
# D-195/D-197 vocabulary). CityTenant stanzas do not carry
|
||||
# this field — no settlement is emitted for them.
|
||||
#
|
||||
# THE BOUNDARY (Jeroen's ruling, T-1076 item 0 — supersedes the earlier
|
||||
# bulk_class-derived default, which over-generalized: it mapped every
|
||||
# physical-goods value Standalone and produced a winery and a leatherworks
|
||||
# as standalone asteroid-belt settlements). Standalone applies ONLY where
|
||||
# the HQ is ITSELF an industrial complex / company town:
|
||||
#
|
||||
# - extraction / mining / quarrying (the deposit IS the site)
|
||||
# - heavy vehicle + shipyard manufacturing (the yard IS the site)
|
||||
# - heavy energy: refinery / extraction complexes (the plant IS the site)
|
||||
# - gate / orbital infrastructure fabrication (the works IS the site)
|
||||
#
|
||||
# EVERYTHING else is CityTenant — explicitly including craft/consumer
|
||||
# manufacturing (distilleries, breweries, wineries, ceramics, textiles,
|
||||
# furniture), agriculture of every scale (the estate/agribusiness OFFICE
|
||||
# sits in a market town; the fields are not the HQ), and high-tech fabs.
|
||||
# Jeroen's rendering note (recorded in D-242): CityTenant HQs often sit on
|
||||
# a settlement's EDGE or in industrial clusters — that is rendering /
|
||||
# district-placement color for later phases, NOT a third placement class.
|
||||
#
|
||||
# This file has exactly one stanza per corp_specialization value — the
|
||||
# REUSED D-237 specialization_vocabulary id-space (see
|
||||
# wiki/economics/specialization_vocabulary.toml): the original 27
|
||||
# system-authored values plus 4 corp-only Services-extension values added
|
||||
# alongside this file (trade_distribution, hospitality_hub,
|
||||
# professional_services, licensed_clinical_services — real gaps the T-1074
|
||||
# corp categorization pass found: ~10% of corps do logistics/hospitality/
|
||||
# consulting/licensed-clinical work no original value covered; the fourth
|
||||
# landed via PR #177 M1). D-242 asked for an authored "specialization -> HQ-placement
|
||||
# map"; this vocabulary already exists and already carries the signal that
|
||||
# decides placement (bulk_class_projected: NonPhysical vs everything else),
|
||||
# so rather than invent a second, parallel corp-only taxonomy, the map below
|
||||
# is this vocabulary keyed onto the two-value placement enum (D-242
|
||||
# amendment, recorded 2026-07-16 alongside T-1074).
|
||||
# system-authored values plus 4 corp-only Services-extension values
|
||||
# (trade_distribution, hospitality_hub, professional_services,
|
||||
# licensed_clinical_services). Flipped stanzas below carry a one-line
|
||||
# justification against the boundary.
|
||||
#
|
||||
# The default follows bulk_class_projected exactly:
|
||||
# NonPhysical (financial/institutional/media/legal/research services)
|
||||
# -> CityTenant — an office; no physical plant needed.
|
||||
# Everything else (BulkSolid/BulkLiquid/PrecisionDense/Perishable —
|
||||
# farms, mines, refineries, shipyards, factories)
|
||||
# -> Standalone — needs land/plant of its own.
|
||||
#
|
||||
# hq_placement is authored EXPLICITLY per value (not computed from
|
||||
# bulk_class_projected at import time) so a future ticket can flip one
|
||||
# value without touching import code — three values in the Services group
|
||||
# (governance_center, transit_hub, research_station) are individually
|
||||
# lore-ambiguous (a "transit hub" corp could plausibly BE its own
|
||||
# spaceport-town, e.g. Gateway/Wolf 359 read as whole transit-identity
|
||||
# systems in the vocabulary's own descriptions) but are pinned to the
|
||||
# bulk_class_projected default here for consistency; revisit case-by-case
|
||||
# if a specific corp's placement reads wrong once bodies are walkable.
|
||||
#
|
||||
# Decisions: D-242 (this map), D-237 (the reused vocabulary + the
|
||||
# bulk_class_projected signal this defaults from). Ticket: T-1074.
|
||||
# Decisions: D-242 (this map + the boundary), D-237 (the reused
|
||||
# vocabulary). Tickets: T-1074 (map created), T-1076 item 0 (boundary
|
||||
# correction). PR #177 review created the 4th extension value (M1).
|
||||
# ==========================================================================
|
||||
|
||||
# -------------------------------------------------------------------------
|
||||
# Agricultural — Standalone (farms/estates need land)
|
||||
# Agricultural — ALL CityTenant (T-1076 item 0). The land/terroir is the
|
||||
# production site, but the HQ is the estate/agribusiness office, and offices
|
||||
# sit in market towns. (Previously Standalone via the bulk_class shortcut.)
|
||||
# -------------------------------------------------------------------------
|
||||
[estate_farming]
|
||||
hq_placement = "Standalone"
|
||||
standalone_economic_role = "agricultural"
|
||||
hq_placement = "CityTenant"
|
||||
# FLIPPED: estate agriculture — Jeroen's explicit example; the estate office
|
||||
# sits in a market town, the manor grounds are not a corporate settlement.
|
||||
|
||||
[breadbasket]
|
||||
hq_placement = "Standalone"
|
||||
standalone_economic_role = "agricultural"
|
||||
hq_placement = "CityTenant"
|
||||
# FLIPPED: industrial-scale agribusiness is still agriculture — the grain
|
||||
# combine's HQ is an office in the region's market hub, not a company town
|
||||
# on the fields.
|
||||
|
||||
[terroir_agriculture]
|
||||
hq_placement = "Standalone"
|
||||
standalone_economic_role = "agricultural"
|
||||
hq_placement = "CityTenant"
|
||||
# FLIPPED: agriculture; the terroir lock is about the LAND, not the HQ.
|
||||
|
||||
[terroir_spirits]
|
||||
hq_placement = "Standalone"
|
||||
standalone_economic_role = "agricultural"
|
||||
hq_placement = "CityTenant"
|
||||
# FLIPPED: distilleries are craft manufacturing — Jeroen's explicit example
|
||||
# (Groot Karoo Cellars as a standalone belt settlement was the named
|
||||
# failure mode this correction eliminates).
|
||||
|
||||
[terroir_organics]
|
||||
hq_placement = "Standalone"
|
||||
standalone_economic_role = "agricultural"
|
||||
hq_placement = "CityTenant"
|
||||
# FLIPPED: herd/ecosystem-origin organics are agriculture; the fiber/dye
|
||||
# house's HQ is a town office.
|
||||
|
||||
# -------------------------------------------------------------------------
|
||||
# Energy — Standalone (extraction/refinery infrastructure)
|
||||
# Energy — Standalone (heavy energy: the refinery/extraction complex IS the
|
||||
# corporate site — explicitly inside Jeroen's boundary).
|
||||
# -------------------------------------------------------------------------
|
||||
[fuel_production]
|
||||
hq_placement = "Standalone"
|
||||
@@ -93,7 +94,8 @@ hq_placement = "Standalone"
|
||||
standalone_economic_role = "extraction"
|
||||
|
||||
# -------------------------------------------------------------------------
|
||||
# Extraction — Standalone (mine/quarry sits on the deposit)
|
||||
# Extraction — Standalone (mining/quarrying: the deposit IS the site; the
|
||||
# company town is the archetype of the whole Standalone class).
|
||||
# -------------------------------------------------------------------------
|
||||
[ore_extraction]
|
||||
hq_placement = "Standalone"
|
||||
@@ -116,11 +118,17 @@ hq_placement = "Standalone"
|
||||
standalone_economic_role = "extraction"
|
||||
|
||||
# -------------------------------------------------------------------------
|
||||
# Manufacturing — Standalone (factory/yard footprint)
|
||||
# Manufacturing — SPLIT by the boundary: heavy vehicle/shipyard/gate works
|
||||
# stay Standalone; craft/consumer fabrication flips to CityTenant.
|
||||
# -------------------------------------------------------------------------
|
||||
[general_industrial]
|
||||
hq_placement = "Standalone"
|
||||
standalone_economic_role = "manufacturing"
|
||||
hq_placement = "CityTenant"
|
||||
# FLIPPED: this value is carried overwhelmingly by craft/consumer
|
||||
# fabricators (leatherworks, furniture, ceramics, glassworks, apparel —
|
||||
# Kalahari Leatherworks as a standalone belt settlement was a named failure
|
||||
# mode). Not heavy vehicle/shipyard work. A future true steel-complex
|
||||
# identity would need its own vocabulary value rather than re-coarsening
|
||||
# this one.
|
||||
|
||||
[shipbuilding]
|
||||
hq_placement = "Standalone"
|
||||
@@ -131,8 +139,9 @@ hq_placement = "Standalone"
|
||||
standalone_economic_role = "manufacturing"
|
||||
|
||||
[consumer_goods_bazaar]
|
||||
hq_placement = "Standalone"
|
||||
standalone_economic_role = "manufacturing"
|
||||
hq_placement = "CityTenant"
|
||||
# FLIPPED: consumer manufacturing, and literally an urban bazaar of small
|
||||
# workshops (Lu Ban) — the epitome of in-city production.
|
||||
|
||||
[gate_fabrication]
|
||||
hq_placement = "Standalone"
|
||||
@@ -143,19 +152,21 @@ hq_placement = "Standalone"
|
||||
standalone_economic_role = "military"
|
||||
|
||||
# -------------------------------------------------------------------------
|
||||
# High-tech — Standalone (fabrication/aquaculture plant)
|
||||
# High-tech — CityTenant (T-1076 item 0: "high-tech fabs" are explicitly
|
||||
# on Jeroen's CityTenant side of the boundary).
|
||||
# -------------------------------------------------------------------------
|
||||
[precision_tech]
|
||||
hq_placement = "Standalone"
|
||||
standalone_economic_role = "manufacturing"
|
||||
hq_placement = "CityTenant"
|
||||
# FLIPPED: high-tech fabs — Jeroen's explicit example; a cleanroom campus
|
||||
# is an urban-edge tenant, not a company town.
|
||||
|
||||
[marine_farming]
|
||||
hq_placement = "Standalone"
|
||||
standalone_economic_role = "agricultural"
|
||||
hq_placement = "CityTenant"
|
||||
# FLIPPED: aquaculture is agriculture's marine twin — the operator's HQ
|
||||
# sits in the harbor town, the kelp beds are not a settlement.
|
||||
|
||||
# -------------------------------------------------------------------------
|
||||
# Services (all NonPhysical) — CityTenant (an office, no plant); no
|
||||
# standalone_economic_role — no settlement is ever emitted for these.
|
||||
# Services (all NonPhysical) — CityTenant (unchanged; an office, no plant).
|
||||
# -------------------------------------------------------------------------
|
||||
[financial_hub]
|
||||
hq_placement = "CityTenant"
|
||||
@@ -179,11 +190,7 @@ hq_placement = "CityTenant"
|
||||
hq_placement = "CityTenant"
|
||||
|
||||
# -------------------------------------------------------------------------
|
||||
# Services extension (4, all NonPhysical) — added alongside the vocabulary
|
||||
# extension in specialization_vocabulary.toml (D-242/T-1074; the fourth via
|
||||
# PR #177 M1). Same rule as the rest of Services: NonPhysical -> CityTenant
|
||||
# (an office/depot/clinic, not a factory — this is exactly what made these
|
||||
# corps hard to place in the original 27).
|
||||
# Services extension (4, all NonPhysical) — CityTenant (unchanged).
|
||||
# -------------------------------------------------------------------------
|
||||
[trade_distribution]
|
||||
hq_placement = "CityTenant"
|
||||
|
||||
@@ -31,17 +31,20 @@
|
||||
# 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).
|
||||
# from source on every run now, so the two corp-named Standalone-HQ pins
|
||||
# below (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 — not because a stale
|
||||
# first-run value is being kept. (T-1076 item 0: the former third
|
||||
# corp-named pin, "Cygni Combines", was retired when Jeroen's placement
|
||||
# boundary flipped general_industrial to CityTenant — that corp no longer
|
||||
# emits a settlement; Cygni B's pin moved to its pure-pool city
|
||||
# 'Metropolis'.) 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
|
||||
@@ -60,8 +63,8 @@ note = "Kallast / GJ 144 (Ran) — THE breadbasket; lore-anchored plains body (D
|
||||
|
||||
[[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)."
|
||||
name = "Metropolis"
|
||||
note = "Cygni B / GJ 820B — shipbuilding cluster, 7 competing combines (D-237). Pure-pool city. (T-1076 item 0: previously pinned the 'Cygni Combines' Standalone-HQ settlement, retired when general_industrial flipped CityTenant under Jeroen's placement boundary.)"
|
||||
|
||||
[[hero]]
|
||||
body_id = "GJ251c"
|
||||
|
||||
Reference in New Issue
Block a user