: undefined}>Game
setSlug(e.target.value)} disabled={!games.data} aria-label="Game">
{!games.data ? : null}
{games.data?.games.map((g) => (
))}
{selected ? (
target RTP {pct(selected.rtp)}
payScale {selected.payScale?.toFixed(4) ?? "—"}
details →
) : null}
Spins
{
setSpins(v);
setCustomSpins("");
}}
items={PRESETS.map((p) => ({ value: p, label: p >= 1_000_000 ? `${p / 1_000_000}M` : `${p / 1000}K` }))}
/>
setCustomSpins(e.target.value.replace(/\D/g, ""))} aria-label="Custom spin count" />
Bet (SC)
setBet(Number(e.target.value))} aria-label="Bet">
{BET_LEVELS.map((b) => (
))}
Certify
{certify ? "report + checks" : "stats only"}
{certify && effectiveSpins < 1_000_000 ?
A production certification needs 1M spins; smaller runs relax the minimum-spins rule and are for exploration only.
: null}
{startError ?
{startError} : null}
)}