No description
Add the shared schemas for the quiz request/response cycle, defining the contract between the API and the frontend. - Reorganise packages/shared: move schemas into a schemas/ subdirectory grouped by domain. Delete the old flat schema.ts. - Add AnswerOption, GameQuestion, GameSession, AnswerSubmission, and AnswerResult alongside the existing GameRequest. - optionId is an integer 0-3 (positional, shuffled at session-build time so position carries no information). - questionId and sessionId are UUIDs (globally unique, opaque, natural keys for Valkey storage later). - gloss is rather than optional, for a predictable shape on the frontend. - options array enforced to exactly 4 elements at the schema level. |
||
|---|---|---|
| apps | ||
| data-sources | ||
| documentation | ||
| packages | ||
| scripts | ||
| .dockerignore | ||
| .env.example | ||
| .gitignore | ||
| .prettierignore | ||
| .prettierrc | ||
| docker-compose.yml | ||
| eslint.config.mjs | ||
| mise.toml | ||
| package.json | ||
| pnpm-lock.yaml | ||
| pnpm-workspace.yaml | ||
| README.md | ||
| tsconfig.base.json | ||
| tsconfig.json | ||
| vitest.config.ts | ||