diff --git a/db/schema.sql b/db/schema.sql index 20c2aa1ba..a2685c9a9 100644 --- a/db/schema.sql +++ b/db/schema.sql @@ -93,3 +93,109 @@ CREATE INDEX IF NOT EXISTS idx_decisions_domain ON decisions(domain); CREATE INDEX IF NOT EXISTS idx_decisions_status ON decisions(status); CREATE INDEX IF NOT EXISTS idx_decision_refs_source ON decision_refs(source_id); CREATE INDEX IF NOT EXISTS idx_decision_refs_target ON decision_refs(target_id); + +-- --------------------------------------------------------------------------- +-- Star Systems Wiki Mirror +-- Populated by: python3 tooling/db/wiki_sync.py sync +-- Source: wiki/star-systems/*/index.md (YAML frontmatter) +-- --------------------------------------------------------------------------- + +CREATE TABLE IF NOT EXISTS star_systems ( + -- I. Identity and Location + system_id TEXT PRIMARY KEY, + astronomical_id TEXT NOT NULL, + proper_name TEXT, + system_name TEXT, + star_type TEXT, + geographic_sector TEXT, + geographic_band TEXT, + political_zone TEXT, + + -- II. Physical Character + habitable_planet_count INTEGER, + inhabited_planet_count INTEGER, + asteroid_belt TEXT, + gas_giant TEXT, + habitability_profile TEXT, + + -- III. Gate Infrastructure + horizon_station INTEGER, -- boolean 0/1 + aperture_count INTEGER, + gate_connections INTEGER, + gate_topology TEXT, + span_gate_network TEXT, + + -- IV. Settlement History + settlement_wave TEXT, + founding_motivation TEXT, + founding_culture_primary TEXT, + founding_culture_secondary TEXT, + cultural_persistence TEXT, + historical_event TEXT, + historical_event_age_years INTEGER, + religious_status TEXT, + religious_generation_count INTEGER, + + -- V. Economic Life + economic_tier TEXT, + population TEXT, + economic_base_primary TEXT, + economic_base_secondary TEXT, + distribution_index TEXT, + imprint_access TEXT, + supply_dependency TEXT, + + -- VI. Governance + governance_type TEXT, + dominant_faction TEXT, + primary_fault_line TEXT, + secondary_fault_line TEXT, + + -- VII. Faction Presence + assembly_presence TEXT, + commission_presence TEXT, + syndic_presence TEXT, + syndic_type TEXT, + separatist_presence TEXT, + separatist_type TEXT, + institute_presence TEXT, + guardians_presence TEXT, + faction_notes TEXT, + + -- VIII. Cultural Voice + cultural_register TEXT, + cultural_register_secondary TEXT, + ambient_anxiety TEXT, + local_pride TEXT, + atmospheric_tone TEXT, + atmospheric_tone_secondary TEXT, + active_situation TEXT, + silence_threshold TEXT, + silence_topic TEXT, + + -- IX. Political Character + earth_alignment TEXT, + earth_proximity TEXT, + earth_tension TEXT, + + -- X. Narrative Profile + primary_archetype TEXT, + secondary_archetype TEXT, + narrative_notable TEXT, + narrative_hook TEXT, + generation_priority TEXT, + + -- XI. Content Notes + stability_index TEXT, + system_volatility TEXT, + cultural_corridor TEXT, + calibration_note TEXT, + + synced_at TEXT DEFAULT (datetime('now')) +); + +CREATE INDEX IF NOT EXISTS idx_star_systems_astro ON star_systems(astronomical_id); +CREATE INDEX IF NOT EXISTS idx_star_systems_sector ON star_systems(geographic_sector); +CREATE INDEX IF NOT EXISTS idx_star_systems_wave ON star_systems(settlement_wave); +CREATE INDEX IF NOT EXISTS idx_star_systems_topology ON star_systems(gate_topology); +CREATE INDEX IF NOT EXISTS idx_star_systems_star_type ON star_systems(star_type);