/** GET /api/daily response */ export interface DailyResponse { wordId: number; } /** POST /api/guess request */ export interface GuessRequest { wordId: number; guess: string; tryNo: number; } /** POST /api/guess response */ export interface GuessResponse { /** Whether the guess is a valid word in the word bank */ valid: boolean; /** 5-element array of single-char codes: 'g'=green, 'y'=yellow, 'x'=gray. Only present when valid=true. */ colors?: string[]; /** Whether the guess is fully correct (all 'g'). Only present when valid=true. */ correct?: boolean; /** The correct word, revealed only on loss (tryNo=6, correct=false). */ word?: string; /** Word difficulty score, included on final guess response (win or loss). */ difficulty?: number; /** Solver replays, included on final guess response. */ replays?: import('./word-bank.js').SolverReplay[]; } /** POST /api/play-again request */ export interface PlayAgainRequest { skillMetric: number; } /** POST /api/play-again response */ export interface PlayAgainResponse { wordId: number; } /** GET /api/validate/:word response */ export interface ValidateResponse { word: string; valid: boolean; } /** Standard API error shape */ export interface ApiError { error: string; }