export interface Player { id: string; name: string; color: string; x: number; y: number; created_at: string; } export interface BoardConfig { min_x: number; max_x: number; min_y: number; max_y: number; grid_cells_x: number; grid_cells_y: number; } export interface TurnInfo { current_player_id: string | null; current_player_name: string | null; round_number: number; turn_number: number; turn_order: string[]; } export interface BoardState { config: BoardConfig; player_count: number; players: Player[]; turn: TurnInfo; } export interface PlayerCreateRequest { name: string; color: string; } export interface MoveCheckResult { direction: string; dx: number; dy: number; target_x: number; target_y: number; available: boolean; reason?: string | null; } export interface AvailableMovesResponse { player_id: string; player_name: string; current_x: number; current_y: number; is_turn: boolean; current_turn_player_id?: string | null; moves: Record; } export interface MoveResponse { success: boolean; player: Player; direction: string; previous_position: { x: number; y: number }; new_position: { x: number; y: number }; turn: TurnInfo; }