export type GameSessionStatus = 'idle' | 'running' | 'finished' | 'failed'
export type GameSessionEndReason = 'completed' | 'timed_out' | 'cancelled' | null
export type GuidanceState = 'searching' | 'distant' | 'approaching' | 'ready'
export type GameModeState = Record<string, unknown> | null

export interface GameSessionState {
  status: GameSessionStatus
  endReason: GameSessionEndReason
  startedAt: number | null
  endedAt: number | null
  completedControlIds: string[]
  skippedControlIds: string[]
  currentTargetControlId: string | null
  inRangeControlId: string | null
  score: number
  guidanceState: GuidanceState
  modeState: GameModeState
}
