api.ts 1.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142
  1. /** GET /api/daily response */
  2. export interface DailyResponse {
  3. wordId: number;
  4. }
  5. /** POST /api/guess request */
  6. export interface GuessRequest {
  7. wordId: number;
  8. guess: string;
  9. tryNo: number;
  10. }
  11. /** POST /api/guess response */
  12. export interface GuessResponse {
  13. /** Whether the guess is a valid word in the word bank */
  14. valid: boolean;
  15. /** 5-element array of single-char codes: 'g'=green, 'y'=yellow, 'x'=gray. Only present when valid=true. */
  16. colors?: string[];
  17. /** Whether the guess is fully correct (all 'g'). Only present when valid=true. */
  18. correct?: boolean;
  19. /** The correct word, revealed only on loss (tryNo=6, correct=false). */
  20. word?: string;
  21. /** Word difficulty score, included on final guess response (win or loss). */
  22. difficulty?: number;
  23. /** Solver replays, included on final guess response. */
  24. replays?: import('./word-bank.js').SolverReplay[];
  25. }
  26. /** POST /api/play-again request */
  27. export interface PlayAgainRequest {
  28. skillMetric: number;
  29. }
  30. /** POST /api/play-again response */
  31. export interface PlayAgainResponse {
  32. wordId: number;
  33. }
  34. /** Standard API error shape */
  35. export interface ApiError {
  36. error: string;
  37. }