// Types concrets de l'épreuve Quiz, partagés client/serveur. // Le payload générique du moteur est `unknown` ; le client le narrow via type === "quiz". // V1 : formats mcq + truefalse (free / image_reveal arrivent avec la DB). import type { QuizFormat } from "./domain" /** Payload diffusé au lancement d'une manche quiz (round:start), SANS la réponse. */ export interface QuizQuestionPayload { format: QuizFormat prompt: string /** Choix proposés (truefalse = ["Vrai", "Faux"]). */ choices: string[] category?: string /** 1 (facile) .. 3 (difficile). */ difficulty?: number } /** Vérité révélée à tous (round:reveal → truth). */ export interface QuizRevealTruth { correctIndex: number } /** Résultat d'un joueur sur la manche. */ export interface QuizPlayerResult { choiceIndex: number | null correct: boolean } /** round:reveal → perPlayerResult : playerId → résultat. */ export type QuizPerPlayerResult = Record