The engine ships as a browser module at https://danvid1009.github.io/gnarone-game-math/pick-one/api/rgs.js. It speaks the RGS provider contract (open, valid-bets, bet, next-action, collect; money in integer minor units; bet debits, collect credits) and rolls with crypto.getRandomValues in your page, so there is no server and every round is live. Pass seed to replay a round.
import { createGame } from 'https://danvid1009.github.io/gnarone-game-math/pick-one/api/rgs.js';
const g = createGame({ preset: 'coin' }); // presets: coin, three, five, weighted
// bet types: OPTION_1, OPTION_2
const s = g.open(); // session, balance 100000, chipLevels [100,200,500,1000,2500,5000,10000]
const r = g.bet({ sessionId: s.sessionId, betAmount: 1000, betType: 'OPTION_2' }); // fresh crypto seed; win in r.totalWinAmount
g.collect({ roundId: r.roundId }); // credits the win → { balance }
// Replay any fixture: same seed, same code path, same answer as rounds/007.json
g.bet({ sessionId: s.sessionId, betAmount: 1000, betType: 'OPTION_2', seed: 'fixture-007' });
Seeds fixture-000 … fixture-099, served as plain JSON (GET, no auth, deterministic). Stake unit is 1000 minor units; scale linearly. The live module reproduces any of them when given the same seed.
curl -s https://danvid1009.github.io/gnarone-game-math/pick-one/api/index.json # presets, parameters, bet types, realised RTP
curl -s https://danvid1009.github.io/gnarone-game-math/pick-one/api/coin/field.json # one preset: frozen config + tables + how to settle
curl -s https://danvid1009.github.io/gnarone-game-math/pick-one/api/coin/rounds/007.json # one round (000–099), settled for every bet type
curl -s https://danvid1009.github.io/gnarone-game-math/pick-one/api/coin/rounds.json # all 100 rounds (stake + win per bet type)
curl -s https://danvid1009.github.io/gnarone-game-math/pick-one/api/coin/sample-request.json # RGS-shaped request
curl -s https://danvid1009.github.io/gnarone-game-math/pick-one/api/coin/sample-response.json # …and its response
One folder per preset: coin, three, five, weighted. Settlement rule is spelled out in each preset's field.json under how_to_settle; the same seed drives every preset, so round 007 has the same u in all of them.
Full write-up: Pick One page.