// Types concrets de l'épreuve Blindtest, partagés client/serveur. // L'audio est joué localement par chaque client mais piloté par le DJ (media:sync). /** Payload diffusé au lancement d'une manche blindtest (round:start), SANS la réponse. */ export interface BlindtestRoundPayload { trackId: string youtubeId: string } /** Vérité révélée à tous (round:reveal → truth), inclut qui a soumis le titre. */ export interface BlindtestRevealTruth { title: string artist: string youtubeId: string submittedBy: string submittedByName: string } /** Résultat d'un joueur sur la manche (détail selon le mode). */ export interface BlindtestPlayerResult { titleCorrect?: boolean artistCorrect?: boolean guessedCorrect?: boolean points: number } /** round:reveal → perPlayerResult : playerId → résultat. */ export type BlindtestPerPlayerResult = Record /** Titre récapitulé en fin de partie (export / récupération des liens). */ export interface BlindtestTrackInfo { title: string artist: string youtubeId: string url: string submittedByName: string }