-- NEO-135: per-player faction standing snapshots. CREATE TABLE IF NOT EXISTS player_faction_standing ( player_id TEXT NOT NULL REFERENCES player_position(player_id) ON DELETE CASCADE, faction_id TEXT NOT NULL, standing INTEGER NOT NULL, updated_at TIMESTAMPTZ NOT NULL DEFAULT now(), PRIMARY KEY (player_id, faction_id) ); COMMENT ON TABLE player_faction_standing IS 'Persisted faction standing per player (NEO-135); missing row means neutral 0 at read.';