// Registre des épreuves. Chaque mode s'enregistre via registerRound() ; // le moteur instancie une manche fraîche par round via createRound(). import type { RoundType } from "@nerdware/shared" import type { GameRound } from "./round" export type RoundFactory = () => GameRound const factories = new Map() export function registerRound(type: RoundType, factory: RoundFactory): void { factories.set(type, factory) } export function createRound(type: RoundType): GameRound { const factory = factories.get(type) if (!factory) { throw new Error(`Aucune épreuve enregistrée pour le type "${type}"`) } return factory() } export function hasRound(type: RoundType): boolean { return factories.has(type) }