-- NEO-44: per-player gig XP totals (combat encounter path; level derived server-side when gig curves exist). CREATE TABLE IF NOT EXISTS player_gig_progression ( player_id TEXT NOT NULL REFERENCES player_position(player_id) ON DELETE CASCADE, gig_id TEXT NOT NULL, xp INTEGER NOT NULL CHECK (xp >= 0), updated_at TIMESTAMPTZ NOT NULL DEFAULT now(), PRIMARY KEY (player_id, gig_id) ); COMMENT ON TABLE player_gig_progression IS 'Persisted gig XP per player (NEO-44); prototype main gig breach only until loadout/hub swap lands.';