Why a math document is not a code change
When a regulator asks for the math behind a title, they don't want a hash — they want a deterministic chain from RTP claim, through reel strips and paytables, down to the simulation that produced the published RTP within tolerance. That chain is the math document.
If the chain breaks at any step, the certification claim breaks with it. The math document is the contract; the build artefact is just one expression of it.
Pinning, not tagging
We pin the math document to the build artefact via a content-addressable identifier — a hash over the strips, paytables, math constants and the simulator configuration. That hash is what we ship to the lab and what we re-derive from source on every release.
Semver tells you which API to call. The pinned hash tells you which math is on the wire. Operators read both.
GLI-19 minor revisions are not free
When GLI-19 moves between minor revisions, RTP measurement methodology can change in ways that look benign but shift the certified band. We rebuild the simulator under the new methodology before we accept a re-cert; if the band moves, the math document moves with it.
The audit ledger keeps the historical pin so any earlier RTP claim is still rebuildable from source — the lab's old number, under the lab's old methodology.
What this means for an operator integration
Nothing on the wire. The integration contract does not change with a math version-bump; the title's certified-version header does. Operators that consume the audit ledger see a new event-class for math-version transitions, and the changelog entry is a single line.
We don't break semver silently. We don't break math silently either.