feat(schema): D-237 specialization columns + specialization_vocabulary table

Ticket #1011. system_economy gains economic_specialization +
cultural_specialization (TEXT, NULL = heuristic fallback); new
specialization_vocabulary table (specialization_id PK, commodity_id
FK->commodities, production_ubiquity_override, projected BulkClass +
ProductionUbiquity for D-233, description) + commodity index. Columns
mirrored into COLUMN_MIGRATIONS for idempotent migration; table rides
systems-schema.sql. dominant_faction already exists on system_factions
(populate-only). Validated: importer parses; schema applies to scratch DB;
idempotent migration ran 2x on a copy of live systems.db, 301 rows preserved.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
This commit is contained in:
2026-05-31 21:04:00 +02:00
co-authored by Claude Opus 4.8
parent a4541bde18
commit 4f53793755
5 changed files with 442 additions and 2 deletions
@@ -284,7 +284,8 @@ All confirmed by lore/GTTR verification from Miri (economic + cultural) and Paul
| Parallax | GJ-280A | `media_center` | `artistic` | `independent` |
| Gateway | GJ-71 | `transit_hub` | `cosmopolitan` | `mixed` |
| Wolf 359 | GJ-406 | `transit_hub` | `institutional` | `concord_assembly` |
| Vuurkloof | GJ-35 | `geothermal_hub` | `afrikaans_cape` | `concord_assembly` |
| Vuurkloof | GJ-35 | `geothermal_hub` | `afrikaans_cape` | `independent` | <!-- corrected 2026-05-31 (human): guild self-governance, no Assembly presence in GTTR; supersedes the hop-6 concord_assembly default -->
| Keid | GJ-166A | `research_station` | `scholarly` | `independent` |
| Bastion | GJ-570A | `military_industrial` | `military` | `concord_assembly` |
| Arbour | GJ-338B | `estate_farming` | `agrarian` | `concord_assembly` |