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:
@@ -98,7 +98,10 @@ CREATE TABLE IF NOT EXISTS system_economy (
|
||||
economic_base_primary TEXT,
|
||||
economic_base_secondary TEXT,
|
||||
distribution_index TEXT,
|
||||
imprint_access TEXT
|
||||
imprint_access TEXT,
|
||||
-- D-237 authored specialization layer (build-time; NULL = heuristic fallback)
|
||||
economic_specialization TEXT, -- value in specialization_vocabulary.specialization_id
|
||||
cultural_specialization TEXT -- activity- or heritage-type value; drives D-232 template pool (distinct from system_culture.cultural_register)
|
||||
);
|
||||
|
||||
-- Faction presence
|
||||
@@ -269,6 +272,20 @@ CREATE TABLE IF NOT EXISTS commodities (
|
||||
updated_at TEXT DEFAULT (datetime('now'))
|
||||
);
|
||||
|
||||
-- D-237 authored specialization layer: economic-specialization vocabulary.
|
||||
-- Each value maps to a commodity + projected (BulkClass, ProductionUbiquity) for D-233.
|
||||
-- Scale is encoded in the value (breadbasket vs estate_farming); no separate scale column.
|
||||
-- Compiled from wiki/economics/specialization_vocabulary.toml by import_economics.py.
|
||||
CREATE TABLE IF NOT EXISTS specialization_vocabulary (
|
||||
specialization_id TEXT PRIMARY KEY,
|
||||
commodity_id TEXT NOT NULL REFERENCES commodities(commodity_id),
|
||||
production_ubiquity_override TEXT, -- NULL = use the commodity's catalog default
|
||||
bulk_class_projected TEXT NOT NULL, -- pre-computed BulkClass for D-233
|
||||
production_ubiquity_projected TEXT NOT NULL, -- pre-computed ProductionUbiquity for D-233
|
||||
description TEXT NOT NULL
|
||||
);
|
||||
CREATE INDEX IF NOT EXISTS idx_spec_vocab_commodity ON specialization_vocabulary(commodity_id);
|
||||
|
||||
-- Leontief production chain recipes (D-178)
|
||||
-- Source: wiki/economics/production_chains.toml
|
||||
CREATE TABLE IF NOT EXISTS production_chains (
|
||||
|
||||
Reference in New Issue
Block a user