No dice
Every warrior's mood, personality, and move is a pure function of (name, tick). No Math.random() anywhere. So a war is decided before you watch it — and you can prove the equations didn't change between the commit and the replay.
battleHash from the seed name, the fighter count, and every exchange's tick|winnerSide. That hash is the commitment — the outcome is already locked in.battleHash must match the commitment. If it ever drifts, the equations changed — and every past anchor on BSV mainnet would break. So far, none have.Run a small 4-warrior war and watch the commit-reveal happen with the real numbers.
Committed hash
—
Re-run hash
—
The battleHash proves equation integrity: the same inputs always yield the same war. It is not a BSV mainnet anchor unless you separately anchor it (the live engine at yuragiengine.com does, for real agents). This sandbox runs the exact same core, just without the on-chain step.