-- Multi-game support. Every profile (and therefore all of its downstream state, -- which hangs off profiles(id) via profile_id / club_id foreign keys) is scoped to -- a game. Bridges identify their game with the X-OpenFUT-Game request header. -- -- Default 'fifa23' preserves the existing single-game behaviour: the current bridge -- and the integration tests send no game header, so they keep operating on the same -- (now fifa23-tagged) profile with zero behaviour change. The FIFA 17 bridge sends -- X-OpenFUT-Game: fifa17 and therefore gets its own isolated profile/club/state. -- -- Only profiles needs the column: get_active_profile becomes game-scoped, and because -- all other tables reference a profile (directly via profile_id or via -- club_id -> clubs.profile_id), scoping the active profile isolates the whole tree. ALTER TABLE profiles ADD COLUMN game_id TEXT NOT NULL DEFAULT 'fifa23'; CREATE INDEX IF NOT EXISTS idx_profiles_game ON profiles(game_id);