refactor(data): slim star-map.json to topology-only, add Sol and star_systems schema

star-map.json now only carries topology fields (system_id,
astronomical_id, gate_topology, aperture/connections, hop distance)
plus edges. All per-system data lives in wiki frontmatter.

Added Sol as S-000/GJ 0 connected to Gateway. Added star_systems
table to schema for wiki sync mirror.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
2026-03-14 00:23:49 +01:00
co-authored by Claude Opus 4.6
parent de3e04c7a1
commit 68fd61f71c
+106
View File
@@ -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);