Updated TicTacToeRules and BattleshipRules to implement ApplyMove(state, playerIdx, payload) (bool, bool, int) as required by GameRules.
Added win/draw resolution logic directly inside each game’s ApplyMove return.
Removed obsolete convertToGamePlayers helper.
Updated GenericMatch to call AssignPlayerSymbols with []*structs.Player directly.
Ensured all rule implementations now fully satisfy the GameRules interface.