Dialogue.  · The dice specimen

The dice specimen — how a game earns 100% correctness and a voice

大话骰 is the first game the owner hand-prompted into existence, iteration by iteration, over one long day — and it became the specimen: the build where the device's design questions got answered by playing, not by arguing. This page records the design, the inventions, and every law the day paid for, so the next game starts here instead of at zero. Companion pages: the game device · building a cartridge.

The thesis, in one line. A party game becomes worth playing when the world is code and the voice is a mind — every deterministic thing (flow, math, entropy, gates, verdicts) executed by the machine, every human thing (reading a bid, performing a verdict, answering a rules gripe) spoken by a model — and the seam between them engineered so neither ever does the other's job.

1 · Who does what — the three-engine split

The deepest structural decision. Not two engines but three: the day proved that "LLM" is itself a split — a flash tier for tasks needing zero intelligence but a mouth, and the pro tier for judgment, negotiation and performance.

BY CODE — the world · the flow program(cartridge steps) · dice entropy · sealed cups · the deal · strict order + rotation per round · bid LEGALITY(the validator) · the double-飞 · the 1-lock · the ceiling · the tally + WHICH reading applies · THE VERDICT(who pays — arithmetic) · penalty · elimination · END · winner · the board(rows·arrow·outcome·final) · the strip's legal envelope · the 👍 tick · circle detection · dead men · nudges' triggers · timers fails: never(bench-proven, 278 checks) BY FLASH — the quick mouth · NL→strict: 「三个五飞」→ 3·5·飞 · typo reading(费→飞 · 汉字 numerals) · the VOICE of facts-only moments: round-open · verdict · 空开 · void circle reminder · nudges · persona CAPSULE rides every call · fidelity checks: names · numbers (both scripts)· bold · markers ~1s per call · pennies fails: falls back to the pro path, loudly BY PRO — the mind · the OPENING(rules + dials — negotiable, users change dials here) · mid-play QUESTIONS at the host · rules disputes · table talk · the end REVEAL(the performance) · the fall-through interpreter · every flash line's FALLBACK whole megaprompt · full persona moments run COLD(t=0.3)for facts ~4–8s · one call per round, typically
Fig 1 · The three-engine split. The rule of thumb that emerged: if the sentence's content is already known before the model runs, it is a flash job; if the model must decide anything, it is a pro job; if it is a number, it is nobody's job but the machine's.

2 · The stack, updated

The owner's mental model — game device · tools · genre · rulebook — held, and the specimen refined it in three places: genre now contains named machine parts (not just vocabulary), a new flash seam sits between the device and the persona, and the collect phase joined the device as a reusable phase primitive.

RULEBOOK(prose · the kit) the game by hand — dual-mode fallback; dials declared; host style(the referee's silence); no logic, ever CARTRIDGE(the ```flow block) a closed-vocabulary program: deal · roll · collect · button · moment(voice=panel|flash) · rule · end_check · reveal GENRE PARTS(named, dial-set — NEW emphasis) VALIDATORS(liars-bid:the whole ladder as a pure fn)· ENVELOPES(what may be composed)· winner resolvers · facts · a kit NAMES a part; it never carries logic THE DEVICE(the runner — the world) executes the program · holds every number · rules every move · computes every verdict · writes the board · arms the widgets · persists AFTER every advance WIDGETS(the table's furniture) the STRIP(steppers·pill·move chip, envelope-clamped)· the sealed cups card · the ladder BOARD(arrow·outcome· final view)· the 👍 tick jar · @-mention pings · the move button(fill-and-send, never one-tap) THE FLASH SEAM(NEW layer) IN — the interpreter: player lines → strict entries, no panel turn spent · OUT — the voice: device notes → one persona line, fidelity-checked, markers minted by code THE PANEL(the pro persona) the opening's dial talk · questions · the reveal · every fallback · reads the SAME append-only history the flash lines land into — one memory, two mouths arms / notes
Fig 2 · The stack as the specimen left it. The kit stays pure data top to bottom; everything that can be wrong lives in tested code; everything that can be flat lives in a mind.

3 · One bid, end to end

PLAYER FLASH WORLD SCREENS taps the strip(prefilled)or types SEND no thinking bubble — silence is the expected answer the interpreter reads the line → who · count · face · mode(~1s) the validator rules(<1ms) order · climb · 斋/飞 · lock · ceiling ACCEPT — total silence 👍 on the bid · board row + arrow envelope pushes new floors to every strip REJECT — one line the machine's reason → the flash voice 「@Leo 的 2个3 无效:必须加码…」(~1s) legal broken
Fig 3 · A bid's journey — measured median 1.0s from send to tick across 400+ audited bids. The pro model is nowhere in this diagram: a clean bidding window costs zero panel turns.

4 · The open — where every engine meets

开盅 pressed (the press speaks) the VERDICT is arithmetic tally · applicable reading · who pays chip moves · board flips → **开盅-输了 / 赢了** the flash voice speaks it bid · breakdown · **loser**(~1–2s) END gates living ≤ 1? THE PROGRAM WAITS FOR THE VERDICT'S OWN LINE the speech-wait holds the runner until the line lands(or its cap fires)— found when the ending once played backwards: the reveal spoke before the verdict that caused it
Fig 4 · The 开盅 sequence. Everything left of the flash box is deterministic; the one mind in the chain only mouths a sentence whose every term is pre-computed — which is why the verdict can no longer invert, miscount, or use the wrong wilds reading.

5 · The widgets invented — and their reuse contracts

Every widget below rides the orthogonal toolbox — the room's instrument architecture(the toolbox index is the hub; the twelve rulings · the definition of done · the open/close/reveal lifecycle). The dice game reused its instruments whole(the roll card became the sealed cups; the board grew its third row-mode; the button was already the device's move)and grew the toolbox three NEW pieces: the strip, the envelope, and the tick-as-confirmation.

widgetwhat it isreuse in other games
The stripa composer-row bid builder: count/face steppers, the 斋/飞 two-state pill(never neither; face-1 welds it to 斋), the move chip past a divider. Every tap FILLS the composer; the user sends. Prefilled with the minimum legal call on your turn.any structured-move game: auction raises, 20Q guesses, quiz wagers. The pattern is「compose from the envelope, send by hand」.
The legal envelopethe server computes the compose-space(min count per mode, face floors, locked lanes, whose turn, the table ceiling)from the SAME module that validates, and pushes it with every game update. The client only clamps — a fence, not a judge.the one honest way to give a client rule-aware UI without a second rules implementation.
The 👍 tick jara legal move's confirmation is a REACTION on the move's own bubble — a random pick from the owner's emoji jar — never a reply. any accepted move, any game. Confirmation without conversation.
The move buttonthe game's decisive act(开盅)as ONE cartridge-labelled chip; fills its word, greys while its fill sits untouched, the send routes through the press door and speaks as the presser's own bubble. 抢答 · stop · 再来一局 — any first-past-the-post act.
The ladder boardthe pinnable board as the ROUND's live view: arrow on whose turn, each seat's last call, the open's outcome in bold, the final winner view(**赢家** / struck 出局).the third board row-mode(players · log · ladder)— any per-seat-state game.
Order auto-locknot-your-turn dims the bid side of the strip (the challenge chip stays live for all)— the rotation made visible. any strict-order game.
The interpreter contractthe persona reads NL into a strict <entry/> tag; the world rules it. On flow rooms a flash call does the reading and the panel is bypassed entirely.the collect phase's core — word chains, auctions, any ruled window.
The flash voice + capsuledevice notes(plain names, exact numbers)voiced by v4-flash wearing the host's profile head; markers minted by code after; fidelity checks with a pro fallback.every game's facts-only moments, via moment.voice="flash" in the schema.

6 · The speed doctrine

Responsiveness was treated as a first-class requirement, and it decomposed into four disciplines:

beatenginemeasured(final audit suites)
bid → 👍 tick + boardflash + codemedian 1.0s(n>400)
press → verdict linecode + flashmedian ~2s clean · 6–8s when the voice fell back(now rare)
last shake → round-open linecode + flashmedian 3–5s
question at the hostpro(full turn)the normal turn time — worth it

7 · The voice — personality without hallucination

The owner's ruling, now a standing law: never hardcode what a persona says. The device writes a NOTE — bare facts, plain names, exact numbers — and a mind speaks it. What keeps the mind honest is fidelity by construction: every roster name, every number(accepted in either script — 5 or 五 or 两), and every bold span must survive into the line, checked by code; the mention markers are minted by the device on the way out, never trusted to the model; one cold retry, then the full pro fallback. What keeps the mind alive is the persona capsule(the profile's head riding every flash call as a constant, cache-friendly prefix), warmth(t=0.6 behind the guard), and one varying fact per repeated note(「第2圈叫满」)so identical moments stop producing identical lines.

MrBeast, same machinery: 「好,@Nora先叫。一共15颗骰子,你们三个都5颗……来吧,别怂。」· 「Leo开盅!来,所有盅一起掀——」
村上隆, same machinery: 「开来看。全场四:零。一点五个,但斋了不算。这局是斋到底的。」· 「沉默太久,也是一种回答。但规则不会替你选。」

A hype-man and a superflat artist, from the same notes — neither dropping a digit.

7b · The lexicon layer(built 2026-08-03)

The specimen went language-agnostic per the i18n plan. The shape: canonical ids are ENGLISH(plain / zhai / fei, dial ids, reason codes)and never localize; every word a player sees renders once, through the kit's own per-language lexicon block(zh + en, key-parity linted). The runner's notes, board cells, void reasons, verdicts and nudges all go through one lex() door; the bid strip reads a terms slice the envelope carries, so the client owns no words; the interpreter hears every synonym family(no wilds · wild off · spot only · pure → zhai; with wilds · wild on → fei)and a read-time normalizer maps legacy tokens and stray phrasings onto the ids. A room mounted before its kit had a lexicon falls back to the shelf's current block — caught live as a board cell rendering ****.

What the live English game taught: the machinery held(bids med 1.1s, every ruling correct, the board and strip fully English)— but the English flash voice paraphrases harder than the Chinese one: 64 dropped-fact rejections in one game, every round-open churned onto the ~10s pro fallback. The fix stayed inside the voice law: the capsule now names the list-keeping duty, and the cold retry carries a checklist of exactly which names and numbers must survive. Fidelity is cultural, not just numerical — a guard tuned on one language's habits must be re-measured in the next.

8 · The laws this specimen paid for

Each row was a live incident first. This is the section future builds should read twice.

lawthe incident that bought it
The verdict is arithmetic. When the machine holds every term(claim · cups · reading), who-pays is computed, never asked.the GM counted three 2s correctly, said 差了一颗 — and took the die from the CHALLENGER. Right count, inverted direction.
One number in view, ever. A ruled window's tally prints THE applicable count with its breakdown — never both readings.handed plain and wild sums side by side, the host said 一颗都没有 over a wild count of 2.
Cold mouth for facts, warm mouth for talk. Moment turns run at t=0.3; conversation keeps its spark. Temperature never touches the prefix cache. at the provider default(1.0)the recitation garbled twice(面上两颗 over a face count of one).
Fidelity by construction, not by instruction. Plain names in the note, markers minted by code; numbers accepted in both scripts; bold guarded.asking the model to copy @{u:N} verbatim failed 136 times in one suite — it condenses, and Chinese numerals are not disobedience.
The program waits for its own line. An async voice must hold the runner (the speech wait)before the next beat.the ending played backwards: the reveal spoke before the verdict, then the late verdict re-announced the winner.
Persist after the advance. Any path that moves the program off-drain persists when it is done moving.flash-landed advances lived only in memory; a restart(or any disk reader)resumed a stage the room had left.
Chosen silence must be legible to every surface. When「nothing」becomes a lawful answer, every watcher that read nothing-as-failure must learn the difference.the「didn't respond」banner · the empty bubble(the one extractor missing the router's drop line)· the eternal thinking bubble on held turns · the other players' bubbles — four sightings, one family.
The staging layer holds no rulebook. The floor producer may route and pace; it must never judge a move's legality.taught the player-window, it benched the host over bids it declared 合法 — including two illegal ones.
Structure beats teaching for restraint — but the owner chose teaching + the machine. Persona-prose restraint lost to the staging; staging-taught restraint over-held; the resolution was to move the JUDGMENT to code and leave only voice to the mind.the referee's-silence arc, three rounds of it.
The interpreter reads this turn only. History is already ruled; a re-tagged old bid sprays false voids.a fall-through panel turn re-tagged the whole ladder; the machine voided the duplicates correctly and confusingly.
The table is the ceiling. 8 dice cap every face at 8 — a claim past the dice that exist is refused by arithmetic.the owner's own question(「8 of ones or 16 of others?」)— the answer is 8, for every face.
A fence is not a judge. The client clamps to the envelope; the server still rules every send.the strip's locks are conveniences; the validator is the law — hand-typed bids get the same door.
Caches shape prompts. Per-room-constant capsule prefixes; append-only history; pro and flash caches are separate and both survive everything except editing the past.verified live: ~99% cache reads through a day of temperature flips and flash traffic.

9 · The audit method — sims as referees

The acceptance run was not a demo but an adversarial audit: sim players驱动 by an independent replica of the rules(written from the owner's flowchart, no shared code), playing full games with multiple circles per round, deliberate illegal and out-of-turn bids, and Chinese-numeral phrasings — checking five dimensions after every single move: L1 logic(order · validity · verdict)· L2 narrative-vs-code · L3 speed · L4 the board · L5 the envelope. Twelve games across four suites; each suite's failures became fixes before the next.

suitefoundfixed before the next
1(4 games)marker-fidelity churn(verdicts 8s)· fall-through re-tagging · driver divergence on timeoutsnames-then-bind · the no-retag teaching · replica resync
2(3 games)every game「stalled」— actually the persist gap: flash advances never reached disk(a restart would have hit it too)persist after the advance
3(3 games)Chinese numerals rejected as infidelity(136→82 rejections)· round-open notes still churningboth-script numbers · compact Chinese note forms
4(2 games)bold spans dropping · identical notes → identical lines the bold guard · the circle number varies the note

The meta-lesson: the audit reads the room the way a RESUME does(from disk), which is exactly why it caught the persist gap no live client ever would. And the machine's core never once failed a logic check — every failure across twelve games was in the narration seam or the audit's own harness.

10 · What the next game inherits

  1. Write the rulebook, then the cartridgethe method)— dual-mode from the first line.
  2. If the game has ruled player moves, it is a collect window: name a validator (a pure function beside the schema, spec'd by a flowchart, benched branch by branch), get the envelope for free, and the strip pattern for its composer.
  3. Split every line the host will say: facts-only → voice:"flash" with a compact note; judgment or negotiation → the panel, cold for facts(moments at t=0.3).
  4. Wire the confirmations: the tick jar on accepts, the board as the round's live view, bold on the decisive fact(a standing law in the moment builder).
  5. Run the audit driver(an independent replica + the five dimensions)for 3+ full games before a human ever plays; then the human plays, because the sims cannot find what only happens to real people taking real time.
Dialogue · the dice specimen · written 2026-08-03 from one day's hand-prompted build(the collect phase · the flash seam · the arithmetic verdict · twelve audited games)· siblings: game-device · cartridge-method · the toolbox index(the instrument architecture the widgets ride: rulings · DoD · lifecycle)· next: language-agnostic games — the plan · status: the dice game LIVE on dev · the uncommitted arc awaits the owner's commit call