"use client"; /** * Dispatcher for the Beyond Slots originals: picks the scene component from * `definition.presentation.scene` and hosts it in the shared ArcadeShell. * (Minimal harness — the integrator owns the final version.) */ import type { ComponentType } from "react"; import type { GameInfo } from "@spinza/shared"; import type { ArcadeGameDefinition } from "@spinza/game-core/client"; import { ArcadeShell } from "./arcade-shell"; import type { ArcadeGameProps } from "./contract"; import { VaultGame } from "./vault"; import { EscapeGame } from "./escape"; import { DropzoneGame } from "./dropzone"; import { GridbreakGame } from "./gridbreak"; import { OrbitGame } from "./orbit"; const SCENES: Partial>> = { vault: VaultGame, escape: EscapeGame, dropzone: DropzoneGame, gridbreak: GridbreakGame, orbit: OrbitGame, }; export function ArcadeClient({ game, definition }: { game: GameInfo; definition: ArcadeGameDefinition }) { const Game = SCENES[definition.presentation.scene]; if (!Game) return null; return ; }