import { type LonLatPoint } from '../../utils/projection' import { type GameAudioConfig } from '../audio/audioConfig' export type GameMode = 'classic-sequential' | 'score-o' export type GameControlKind = 'start' | 'control' | 'finish' export type PunchPolicyType = 'enter' | 'enter-confirm' export interface GameControlDisplayContent { title: string body: string } export interface GameControl { id: string code: string label: string kind: GameControlKind point: LonLatPoint sequence: number | null score: number | null displayContent: GameControlDisplayContent | null } export interface GameDefinition { id: string mode: GameMode title: string controlRadiusMeters: number punchRadiusMeters: number punchPolicy: PunchPolicyType requiresFocusSelection: boolean skipEnabled: boolean skipRadiusMeters: number skipRequiresConfirm: boolean controls: GameControl[] autoFinishOnLastControl: boolean audioConfig?: GameAudioConfig }