Skip to content

hizi documentation changelog ​

v2.3.25 - 16.10.2026 ​

[Hizi App] ​

  • Published a search index for AI agents at https://docs.hizi.io/docs-index.json. The index holds the pages of the site in short sections, each with a link. It does not hold the changelog or the generated API reference pages. The search_docs tool of the hizi MCP server uses it.

v2.3.24 - 12.10.2026 ​

[Operator API] ​

  • Corrected the error handling for credit transactions on doTransactions. hashesProcessed decides the result of a credit, not the HTTP status code. A credit hash with an errorCode is a final error: hizi marks the gameround as stranded and does not void the debit. A missing credit hash keeps the credit pending.
  • Corrected the retry logic for a call with a credit and no debit. hizi makes up to 5 immediate retries with no delay, and does not queue the credit at increasing intervals.
  • Documented when hizi sends a pending credit again: at the next launch of the same game, after your getGameURL call returns, and from the hourly janitor until the maximum gameround age.
  • Corrected Scenario 2: hizi does not send a void for the debit after an error on a credit call.
  • Removed an internal header from the retry rule for 5xx errors in the response codes and in the OpenAPI spec.

[Game Studio API] ​

  • Removed an internal header from the retry rule for 5xx errors in the OpenAPI spec.

v2.3.23 - 08.10.2026 ​

[Operator API] ​

  • Added a Void of the first debit section to doTransactions. A void of the first debit cancels the whole gameround. The operator reverses the debit and any credit of that gameround.
  • Stated that a void always has the hash of a debit and never refers to a credit. For games on the native hizi game studio protocol, the first debit uses the gameRound hash as its hash.
  • Added Scenario 3, a sample for a doTransactions call that times out and the void that follows.
  • Corrected the signature rule: a void that hizi sends after a failed debit has an amount, and the signature includes it.
  • Stated that hizi can send the void type in upper case (VOID) with an amount and a currency. Updated the void sample.
  • Corrected the end transaction: hizi does not send it after a void of the first debit.

v2.3.22 - 30.09.2026 ​

[Engine] ​

  • Removed the Source Audit and Gaps page from the SDK guide. It was an internal page and not documentation for readers.
  • Removed the links to that page from the SDK overview, the settings reference, the release checklist and the jurisdictions page.

[Local Development] ​

  • Removed two internal pages from the site. They were notes for contributors, not documentation.

v2.3.21 - 30.09.2026 ​

  • Documentation housekeeping to remove references to unsupported game engine integration methods.

v2.3.20 - 25.09.2026 ​

[Operator API] ​

  • Added a Launch URL rules section to getGameURL. It states that a launch URL works one time only, and for one game only.
  • Added a sample flow for a change from Game A to Game B.
  • Corrected the validity time of the launch URL from 60 seconds to 120 seconds.
  • Clarified the most frequent cause of SESSIONINVALID (1008).

v2.3.19 - 24.09.2026 ​

[Operator Interface] ​

  • Added a Reality Check section to the Playtech (POP) page. It explains the dialog after error 38 and the sendRealityCheckResponse call.
  • Listed sendRealityCheckResponse as a required method for Playtech (POP).
  • Linked the Playtech (POP) flow from the sendRealityCheckResponse method.

v2.3.18 - 23.09.2026 ​

[Engine] ​

  • Added a Load Config page to the generator docs. It explains how the engine returns IGameConfig.loadConfig in the loadConfig reply.
  • Listed the reserved key names that the engine writes over, and the loadConfig keys that some game types read.
  • Linked the page from the IGameConfig table and from the SDK loading sequence.

v2.3.17 - 18.09.2026 ​

[Game Studio API] ​

  • Clarified HTTP connections and base URLs in the integration guides, API reference, and AI indexes.

v2.3.16 - 04.09.2026 ​

[Hizi App] ​

  • Added a Websockets page. It explains the per-game switch, its default value, and the publish step.
  • Documented the Websocket password field. The field requires the SHA-1 hex digest of the shared secret.
  • Linked the page from the Hizi App overview, sidebar, and What's What in the hizi app.
  • Corrected the Logs entry in What's What in the hizi app. Users search site logs inside the app.

v2.3.15 - 18.09.2026 ​

[Game Studio API] ​

  • Moved External Game Engines to the end of the Game Studio API group and the overview list.

v2.3.14 - 17.09.2026 ​

[Game Studio API] ​

  • Added a dedicated External Game Engines page with a template link, sidebar entry, and overview link.
  • Described the hosting options and setup steps.
  • Added a jurisdiction restriction note with instructions to contact us before production use.

v2.3.13 - 17.09.2026 ​

[Game Studio API] ​

  • Added POST /getPlayerData.
  • Added POST /setPlayerData.

v2.3.12 - 14.09.2026 ​

[Game Studio API] ​

  • Documented POST /startGameOrAddBet. The call places a bet: it starts a new gameround on the first bet, and appends a further debit to the open gameround on each later bet. It is the supported way to hold more than one bet in one gameround.
  • Explained why a second POST /startGameRound on an open gameround fails with error 12 GAMEROUNDALREADYSTARTED. A player has only one open gameround at a time, and /startGameRound always opens a new one. The /startGameRound section now points at /startGameOrAddBet for the second bet.
  • Described how /startGameOrAddBet chooses between "start" and "add bet". It compares externalGameProviderRoundId with the gameround on the session token, then compares debitInformation.externalGameProviderTransactionId with the first bet of that gameround.
  • Listed the three limits of an added bet: the call ignores endGame and creditInformation, a repeated debitInformation.externalGameProviderTransactionId fails with error 37 TRANSACTIONALREADYEXISTS, and a bet cannot join a gameround that started without externalGameProviderRoundId.
  • Added two request examples and one reply example for the new call, on the Calls provided by API V2 page and in the OpenAPI specification.
  • Extended the notes on Data structures. externalGameProviderRoundId becomes the gameround hash. externalGameProviderTransactionId identifies one bet, is limited to 32 characters, and must differ for each bet in a gameround.
  • Added startGameOrAddBet to the round-lifecycle ordering diagram in the OpenAPI specification.
  • Added /startGameOrAddBet to the summary table of engine calls at the top of Calls provided by API V2. The table listed every other call.
  • Stated which of the two bet calls to use. /startGameRound suits every game that takes one debit per gameround, and it is the safer call, because it starts exactly one gameround and takes exactly one debit. Use /startGameOrAddBet only for a game that expects more than one debit. This guidance appears on both call sections and in the OpenAPI specification.
  • Linked every call on Calls provided by API V2 to its page in the OpenAPI reference. Each row of the two summary tables now links to the reference, and each of the 23 call sections carries an API reference link under its heading.

v2.3.11 - 15.09.2026 ​

[Engine] ​

  • Correct factual errors on the per-vertical game pages, found by an audit against the engine, the creator and the SDK.
  • Roulette: remove maxRoundStake and maxRoundWin, which no config carries. Document useTargetRTP. Name the real limits: gameSettings.maxExposure and 500 bets per round. State that the cap rewrites gameResult.totalWin only. Correct the exact integer stake checks, the adjust_odds weight formula, the un-floored per-bet winAmount, and an import of a type the SDK does not export.
  • Mines: a mines game ships no loadConfig of its own. Read the grid, the mine count and the multiplier from the scenario. Read the mine-count options from buyFeatures. Correct the house-edge description.
  • Plinko: the field is multipliers, keyed rows-{N}-risk-{level}, not a nested buckets map. Add minRows, maxRows and risks. Correct two multiplier arrays and one buy-feature id.
  • Keno: a wrong playerNumbers count returns INVALIDPARAMETER. The engine auto-picks only for an absent or empty field. Add numberRange. Correct one buy-feature id and the high-risk payout threshold.
  • Blackjack: capped comes from the operator's maxExposure. Every provably fair row is an int row. insurance.won does reach the wire as false.
  • Hilo: the builder rounds the multipliers, not the engine. Under adjustMultipliers the rounding moves the real RTP off target. Correct the Ace and King rows for strictExtremes. The choice index is not fixed, so match on the feature suffix.
  • Frogger: pfVerify needs one action per hop. The field is cashoutMultiplier, and a death entry carries none. Correct one buy-feature id and the collect response.
  • Bingo: the engine rejects a bad config at bet time with GAMECONFIGNOTSUPPORTED. Correct the win count for two full rows and the exposure ceiling under sum mode.
  • Crash: minMultiplier is also the base factor of the curve.
  • Overunder: the builder rounds the multipliers and adjusts the weights, not the engine.

v2.3.10 - 15.09.2026 ​

[Engine] ​

  • Preserve SDK error codes and operator data in controller and loader failures. Correct stake conversion and effective bound descriptions.

  • Add a focused SDK index for agents. Link it from the site and engine indexes. Order frontend text by the guide.

  • Replace duplicated Operator Interface instructions with links to the existing Operator Interface documentation.

  • Rework the SDK docs into an ordered frontend guide, with a checked slot controller.

  • Cover all 57 SDK settings, loading, audio, stakes, rules, operator events, jurisdiction behavior, and recovery.

  • Add Match, Progressive, and Blank guides. Correct slot scenarios, gamble, banking, feature purchases, and Crash transport.

  • Document source revisions and platform gaps. Add acceptance checks for every supported creator mode.

  • Publish a generated frontend text bundle with checked example source for AI agents.

  • Run TypeScript, request-behavior, download, link, and anchor checks during documentation builds.

  • Correct errors found by an audit against the SDK, engine, creator and Operator Interface sources. The socket example now asks for arraybuffer, so a binary frame from the router no longer discards every reply and broadcast. tokenData carries no totalBet or totalWin. sendRealityCheckResponse rejects on failure. A bank request that rounds to a zero multiplier leaves the remainder outstanding. A consolidated slot round returns one step per call, never an array.

  • Make SDK login() the only documented connect path. login() and refresh() return the session identity in tokenData (playerId, operatorId, gameId, language, currency, currencyMultiplier, mode, gameRound). Remove the adapter that replaced the login call: it risked a second exchange of a single-use launch token and duplicated SDK code. Only gameVariables.rcElapsed and the singular freePlayInfo are lost, and both are now stated as integration requirements. The example file keeps only a launch-parameter helper.

[Operator Interface] ​

  • Replace the broken ReelLink balance link with the engine SDK balance operation.

[Operator API] ​

  • Replace the outdated jurisdiction table with the current SDK inventory. Clarify settings types and custom-stake limits.

v2.3.9 - 15.09.2026 ​

[Game Studio API] ​

  • Documented the error codes that /voidGameRound returns. GAMEROUNDNOTFOUND (14) means the gameround hash is unknown. GAMEROUNDNOTACTIVE (13) means the gameround is no longer open. TRANSACTIONSARERETRYING (26) means a credit was already processed. All three come back as an HTTP 400 response, and you must not retry them. An HTTP 5xx response, a timeout, or a network error on this call is different: retry it.

v2.3.8 - 15.09.2026 ​

[Engine] ​

  • The site now publishes llms.txt index files for AI agents, one per section, with a parent index at https://docs.hizi.io/llms.txt. The engine section keeps its own file at https://docs.hizi.io/engine/llms.txt. It also keeps its groups and its "Optional" block. Every description in it is unchanged.
  • Added three engine pages the old file did not list: Bingo, SDK Freeplays, and Generator Progression Counters. A person wrote the old file by hand, so nothing added a new page to it. The build now generates the file from the page list. A new page cannot go missing again.
  • Rewrote the "For LLMs" section on the engine landing page. It pointed at the engine file and called it an index of the whole site. It now names all three files and says what each one covers.
  • Changed the site crawl policy. robots.txt now welcomes AI systems. It sets Content-Signal: search=yes, ai-input=yes, ai-train=yes, use=full and it names the index files. Note that Cloudflare prepends a managed block ahead of this file for the whole zone. That block still denies the AI crawlers. Somebody must turn it off in the Cloudflare dashboard before the new policy reaches a crawler.
  • The site now publishes https://docs.hizi.io/sitemap.xml. That address returned a 404 error before. It also publishes https://docs.hizi.io/llms-full.txt, which holds the full text of every page in one file.

[Operator API] ​

  • The section now publishes https://docs.hizi.io/operator-api/llms.txt. The file lists every page in sidebar order. It also lists all 31 operations of the OpenAPI specification, each with its verb, its path, and its summary.

[Game Studio API] ​

  • The section now publishes https://docs.hizi.io/game-studio-api/llms.txt. The file lists every page in sidebar order. It also lists all 28 operations of the OpenAPI specification, each with its verb, its path, and its summary.

[Operator Interface] ​

[Operator & Game Settings] ​

[Hizi App] ​

v2.3.7 - 14.09.2026 ​

[Engine] ​

  • Documented the four certified figures on the SDK ILoadConfigConfig page: maxPayout, maxPayoutOdds, maxWin and maxWinOdds. The type carried them through its index signature only, so the page listed none of them. The entry for each field gives the unit (a multiplier of stake), the "1 in N" meaning of an odds field, and the cases in which a game omits the field. Added the same four fields to the loadConfig response sample on the SDK Endpoints page.
  • Added a warning that maxPayoutOdds currently repeats maxWinOdds. The generator computes one odds value, from the chance that an ordinary round hits maxWin, and writes it to both fields. The generator Types page said maxPayoutOdds was the probability of reaching maxPayout, which is not what the field holds today. Corrected that entry.
  • Documented that the generator omits maxWinOdds when only a buy feature reaches the top prize.
  • Noted on maxPayoutCap that the engine does not set it on a loadConfig reply.

v2.3.6 - 02.09.2026 ​

[Engine] ​

  • Split the word "feature" into two words on the generator and SDK pages. A table is a set of entries saved beside the basegame table. A feature is a game mechanic (free spins, a buy feature, a wager feature). This follows the same rename in the hizi-engine-creator UI. The prose now says "table" where it means a set of entries (for example "across all tables", "a synthetic table named bf_<id>"). Wire fields such as feature, featureWeights, and featureToBuy keep their names.

v2.3.5 - 31.08.2026 ​

[Operator API] ​

  • Repaired 17 dead links that the migration from Google Docs left behind. Each one pointed at a Google Docs bookmark ID (for example #kix.ie16ui44qznz). The hash links now point at the Basic types table on the Data types page. The signing-example link now points at the multi-call gameround sample.
  • Replaced three dangling "see here" cross-references with real links. Two point at Structure of player details. One points at Structure of hashesProcessed.
  • Corrected the player detail field affilate to affiliate in two sample payloads on the Operator → hizi.io page. The field table on the same page and the OpenAPI schema both call it affiliate.
  • Corrected the sample profile name jurisidiction-de to jurisdiction-de. Appendix C lists the profile as jurisdiction-de.
  • Corrected 8 malformed JSON keys on the hizi.io → Operator page. Each one read "gameCode: " and was missing the closing quote on the key.
  • Corrected the Step 4a sample of a multi-call gameround. It declared two sibling arrays instead of one transactions array with two entries. Removed two trailing commas from other samples in the same table.
  • Quoted the JSON keys in the registerPlayer response sample and in the getGameList response sample. Replaced the curly quotes in the getGameList sample with straight quotes. Added the missing closing brace to that sample.
  • Documented the HISTORY launch mode on the Operator → hizi.io page. The page said games launch in three modes but described only REAL and DEMO.
  • Corrected the launch URL validity window. One sentence said 60 seconds and the next said 50 seconds. The window is 60 seconds.
  • Corrected three sample tables captioned "Sample call to report a bonus win". They belong to doGameRoundReport, doGameRoundResult, and reportAnimationEnd. None of them reports a bonus win.
  • Corrected the reportAnimationEnd section. It repeated the heading and the endpoint description of doGameRoundReport.
  • Corrected the heading "Authentification" to "Authentication" on the Common definitions page.
  • Rewrote the two blocks of HTTP header fields on the Common definitions page as tables. The blocks used space alignment, which HTML collapses, so each block rendered as one run-on line.
  • Wrapped the playerdetails sample on the Operator → hizi.io page in a code block. It rendered as a paragraph, so the sample lost its JSON structure.
  • Changed the two sample launch URLs from http to https. The overview page states that hizi does not support HTTP.
  • Lowercased "Hizi" to "hizi" in the amounts callout on the overview page.
  • Corrected "Usecase" to "Use case" on the hizi.io → Operator page.

[Engine] ​

  • Repaired the flow diagram on the hizi engine overview page. Two lines overflowed their boxes, so the diagram rendered misaligned.

[Operator & Game Settings] ​

  • Replaced the curly quotes in the "Deny traffic from Ontario" sample with straight quotes. Removed the trailing comma. The sample was not valid JSON.

v2.3.4 - 28.08.2026 ​

[Hizi App] ​

  • Added a note to Step 4 of the Create your engine page in the Studio Quickstart guide. The note tells the user to set the Game's status from DRAFT to PUBLISHED in the game settings.

v2.3.3 - 28.08.2026 ​

[Hizi App] ​

  • Removed the GitLab icon link from the top-right of every page. The link pointed at a private GitLab project, which readers of this public site cannot open.

v2.3.2 - 28.08.2026 ​

[Engine] ​

  • Corrected the hizi engine generator reference against version 0.8.0 of @hizi.io/engine-generator. getOutputFiles() is gone from the API page. getEntries() and getConfig() replace it. addResult() now shows its real signature: options is required, scenario has no null form, and the page documents the progressionInfo and forced options. The entry match key now lists feature and progressionInfo. The constructor table gained maxTotalScenarioRows and maxEntriesPerGame, with the thresholds at which addResult() warns and throws. The API page gained the scenarioRowCount property, and the resolveBuyFeatures(), isCashAward(), isFeatureAward(), and limit-constant exports.
  • Added the missing types to the generator Types page: IProgressionInfo, and the IGameConfig fields rng, minStake, maxStake, enableCardGamble, enableLadderGamble, ladderMultipliers, ladderLives, maxPayout, maxPayoutRoute, maxWin, maxPayoutOdds, maxWinOdds, and certifiedVersion. IGameConfig also gets its own section heading, which it lacked. IBuyFeatureConfig gained maxPayout.
  • Documented computeMaxPayout() and its result types on the KPI Math page. Corrected the win-bucket labels to the six that the package generates. Renamed TVolatilityClass to its public name VolatilityClass. Corrected IKpiEntry and the IGameRtp field list. Rewrote the cash-counter RTP section: a counter with resetOnFeatureEnd is now walked per entry from progressionInfo, and the total-mass formula is only the fallback upper bound.
  • Corrected start(), which opens scenarios.jsonl only. end() writes entries.jsonl. Corrected the zero-win scenario cap to 2,000, the entry ordering in entries.jsonl (weight descending, across all features), and the illustrative numbers in the slot game example. The generator index no longer lists the removed stakeboost buy-feature strategy.
  • Added the caveat that progressionInfo is part of the entry match key, so it does change the generated output even though it does not change gameplay.

v2.3.1 - 27.08.2026 ​

[Operator API] ​

  • Replaced the hero banner on the landing page with a normal overview page. Merged the separate Introduction page into it. /operator-api/ is now the one overview for the section. It gives the scope, the amount-units warning, and the parts of the API. One "What's In This Section" list then links to the rest of the section. The old feature cards are gone, so the page no longer holds a heading per link. The page is listed in the section sidebar. Every page in the section shows breadcrumbs.

[Game Studio API] ​

  • Replaced the hero banner on the landing page with a normal overview page. Merged the separate Introduction page into it. /game-studio-api/ is now the one overview for the section. It gives the scope (including RGS-to-RGS) and the further-references table. One "What's In This Section" list then links to the rest of the section. The old feature cards are gone. Two of those cards only repeated a fact from the scope or from the table, so the page drops them. The page is listed in the section sidebar. Every page in the section shows breadcrumbs.

[Operator Interface] ​

  • Replaced the hero banner on the landing page with a normal overview page. /operator-interface/ is now the overview for the section. The intro states the event-based protocol, the aggregator support, and the TypeScript types. Three feature-card headings held those facts before. The registry login and the install steps keep their own page at /operator-interface/guide/getting-started. The overview links to that page first under "Next Steps". Both pages are listed in the section sidebar. Every page in the section shows breadcrumbs.

[Operator & Game Settings] ​

  • Replaced the hero banner on the landing page with a normal overview page. Merged the separate Introduction page into it. /operator-game-settings/ is now the one overview for the section. One "What's In This Section" list links to the two settings pages. It replaces three feature cards, two of which pointed at the same page. The page is listed in the section sidebar. Every page in the section shows breadcrumbs.

[Engine] ​

  • Replaced the hero banners on the hizi engine, Generator, and SDK landing pages with normal overview pages. Merged the separate "What is hizi engine?" page into /engine/. /engine/, /engine/generator/, and /engine/sdk/ are now the overview for their section. Each overview says what the thing is and how it works. The "Next Steps" list then links to the rest of the section. The setup steps keep their own page in each of the three sections: /engine/getting-started, /engine/generator/getting-started, and /engine/sdk/getting-started. The install steps and the quick-start walkthroughs are on those pages, not on the overview. Each overview links to its Getting Started page first under "Next Steps". The old feature cards are gone. Their links moved into "Next Steps". Their facts moved into the prose and the lists that already cover them. The code samples and tables are unchanged. Every page in the section shows breadcrumbs.

[Local Development] ​

  • The retirement notices now have a sidebar and breadcrumbs, so a reader who arrives from an old link can see where they are and navigate out.

[Hizi App] ​

  • Added an overview page and a sidebar for the section, which previously had neither. Both pages show breadcrumbs.
  • Fixed the home page's Hizi App topic card. It linked to Getting Started. Every other topic card links to its section overview. The card now links to the Hizi App overview too.
  • Split the single Getting Started page into four pages: Getting Started, What's What in the hizi app, Glossary, and Currencies. The Overview page links to all four. The sidebar lists all five Hizi App pages. No prose changed, only the page each section lives on.

v2.3.0 - 27.08.2026 ​

[Hizi App] ​

  • Added a new Studio Quickstart section: the ordered, end-to-end path for a game studio building a game on the hizi engine with its own frontend, from engine config to operator-ready. Five steps: create your engine, set your frontend URL, install the SDK, place bets and collect, and implement the Operator Interface. Each step is a short checklist that links to the existing hizi app, engine, SDK, and Operator Interface pages for the detail, instead of repeating it. Written in ASD-STE100 style.
  • Added a "Getting started as a studio building games on hizi" card as the first card on the home page, pointing at the new quickstart guide.
  • Split the home page into a Guides section (currently just the new Studio Quickstart guide) above the existing Topics section, instead of a single mixed grid of nine cards.
  • Added a CLAUDE.md policy requiring all documentation content to follow ASD-STE100 Simplified Technical English.

v2.2.3 - 27.08.2026 ​

[Engine] ​

  • Rewrote all engine, generator, and SDK pages in ASD-STE100 Simplified Technical English: short sentences, active voice, and one idea per sentence. Code samples, headings, and identifiers are unchanged.

[Game Studio API] ​

  • Rewrote all Game Studio API pages in ASD-STE100 style, including the prose and the hero/feature card text.

[Operator API] ​

  • Rewrote all Operator API pages and appendices in ASD-STE100 style, including the prose and the hero/feature card text.

[Operator Interface] ​

  • Rewrote all Operator Interface guide, API, and per-operator pages in ASD-STE100 style.

[Operator & Game Settings] ​

  • Rewrote all Operator & Game Settings pages in ASD-STE100 style.

[Local Development] ​

  • Rewrote the Local Development pages in ASD-STE100 style.

[Hizi App] ​

  • Rewrote the Hizi App getting-started page, this changelog, the site home page, and the shared Response Codes page in ASD-STE100 style.

v2.2.2 - 27.08.2026 ​

[Game Studio API] ​

  • Corrected BETLIMITREACHED (11). The previous text described passThroughData.clientMessage.msg as commonly absent for this code. In production, the field is reliably present, the same as for REALITYCHECK (38). Presence depends on the operator's own account configuration or responsible-gambling (RG) configuration, not on the error code.

v2.2.1 - 27.08.2026 ​

[Game Studio API] ​

  • Rewrote the note about idempotency (whether a repeated call has the same effect as one call) in the retry-handling appendix. It now states which calls do not deduplicate a retry: addWin, startGameRound, wagerWin, collectWin, endGameRound. It states which call deduplicates a retry: voidGameRound. None of these calls are safe to retry after the gameRound closes.
  • Fixed two wrong error-code references. The previous text cited errorCode 15 for "round already closed" and "round never started". The correct codes are 13 and 14.
  • Clarified that /getGameRoundInfo fails on a closed round. /getGameRoundHistoryInfo fails on an open round. Call /getGameRoundInfo first. If it fails, call /getGameRoundHistoryInfo instead of only querying /getGameRoundInfo.
  • Removed a reference to reconcileTransactions. This call belongs to the Operator API, not the Game Studio API that a game studio can call.

v2.2.0 - 26.08.2026 ​

[Engine] ​

  • Split the single "Engine & Creator Docs" home page card into three cards. Hizi Engine explains how the engine works. Hizi Engine Generator covers turning simulations into the served JSONL files. Hizi Engine SDK covers integrating a frontend. Each card has its own visitor-focused description.
  • Merged the Games section into the SDK docs. /engine/sdk/* and /engine/games/* now share one sidebar with a "Game Guides" group. The SDK Overview lists the eleven per-game guides. The Games overview now reads as part of the SDK section. All existing /engine/games/... URLs stay the same.
  • Gave the Generator and SDK sections their own landing pages, with a hero and a feature grid. These pages match the engine landing page. These sections no longer use plain overview pages. The existing overview content stays on the page below the hero.
  • Updated llms.txt to describe two audiences instead of three: generator authors, and frontend/SDK authors, including per-game integration.
  • Made the Engine section self-contained. Its own landing page and sidebar no longer show the Generator or SDK as sub-parts of Engine. The Generator and SDK are now separate top-level sections. You can reach them from the home page.

[Hizi App] ​

  • Moved the Hizi App card to the first position on the home page.
  • Removed the "About this site" section from the bottom of the home page.

v2.1.21 - 26.08.2026 ​

[Engine] ​

  • Added a Bingo game guide. It covers the three creator templates: Bingo 75, Bingo 90, and Bingo 80. It also covers the fully parameter-driven loadConfig/scenario contract.
  • Fixed the cell-index formula. The previous formula was hardcoded to a 5-column grid, but a board's cols value varies. Added the missing Bingo 80 paytable table. Added Bingo 80's real highest-mode RTP (Return to Player), for the board that actually ships in that pay mode. This sits alongside the illustrative Bingo 75/90 figures.
  • Reworded a passage that described the board-as-config design by contrast with a "variant" concept. This "variant" concept no longer exists in the code.

v2.1.20 - 19.08.2026 ​

[Engine] ​

  • Documented how the KPI math scores playerChoice progression-counter awards. computeGameRtp()/computeEffectiveEntries() default to a uniform selection-fraction assumption across onComplete.awards, not real player behaviour, for the single blended RTP number. Only the playerChoiceAnalysis: true min/max range reflects worst-case and best-case player choice. Added this to KPI Math. Cross-linked it from the generator's Progression Counters page.

v2.1.19 - 19.08.2026 ​

[Engine] ​

  • Added a generator-side Progression Counters page (engine/generator/progression-counters). It mirrors the Buy-Features page. The new page covers four topics. It covers recording progressionAwards on addResult(). It covers configuring progressionCounters (including resetOnFeatureEnd and progressionInfo) at end(). It includes a runnable example. It covers how the KPI-math functions fold counters into RTP. Cross-linked the page from the API, Types, Output Format, and KPI Math pages. Also cross-linked it from the existing SDK · Progression Counters page.
  • Fixed the IProgressionCounterConfig snippet on KPI Math. The snippet was missing resetOnFeatureEnd and stakeSpecific. It also showed feature-only awards and omitted cash options. Added the missing resetOnFeatureEnd field to the Types reference.
  • Corrected the API Reference's description of entry-matching for addResult(). progressionAwards is part of the key that the engine uses to detect duplicate entries. Entries that differ only in counter increments do not merge.
  • Corrected the SDK · Progression Counters page in three ways. First, the hizi-engine runtime no longer supports resetOnFeatureEnd; it no longer resets a counter. The page now flags this with a warning and points to Single-Gameround Jackpots for that shape of mechanic instead. Second, the progressionAwards examples used a flat { counter: number } shape. This does not match the current step-indexed { counter: { step: number } } API. Third, engineData.progressionCounters is only present once a counter has actually incremented, not on every response. Added the same resetOnFeatureEnd caveat to the new generator page and to the Types reference.

v2.1.18 - 14.08.2026 ​

[Game Studio API] ​

  • Documented passThroughData.clientMessage (the PassThroughData/NativeClientMessage structures) as the field for player display on responsible-gambling prompts. Clarified that X-H-ERROR-MSG is diagnostic, log-only text, not localized copy for the player.

v2.1.17 - 14.08.2026 ​

[Game Studio API] ​

  • Removed the "Operator API reference" row from the introduction page's Further references table. The site header already links to the Operator API docs. The row duplicated that link and confused readers.

v2.1.16 - 14.08.2026 ​

[Engine] ​

  • Moved the documentation of the buy-feature ID to its single remaining location. The engine no longer duplicates buyFeatureId at the reply root of placeBet/collect. Read it instead from result.engineData.buyFeatureId. This field is now guaranteed present on every reply of a bought round. The reason: collect replies now always carry a result with closed engineData. Updated the IPlaceBetReply/ICollectReply references on Endpoints and the Buy-Features cross-link.

v2.1.15 - 14.08.2026 ​

[Game Studio API] ​

  • Deep-linked the "Further references" table on the Introduction page to the exact Response Codes & Error Codes sections. These sections cover error codes, HTTP return codes, and response headers. Renamed the row labels to match those section names. Also removed the redundant "Definition of V2 interfaces" row, which pointed at this page's own section.

v2.1.14 - 14.08.2026 ​

[Local Development] ​

  • Retired this section. The local-development/core-docker setup path is no longer a supported integration path. Replaced the Getting Started, Troubleshooting, and overview pages with a retirement notice. The notice stays live so existing links do not 404. Removed the section's sidebar. Dropped its card from the home page.

[Game Studio API] ​

  • Updated the integration-models comparison table and callout on Basics. The local-development/core-docker setup path for the hizi.io-hosted-engine model is now retired. The table no longer links to it as an active guide.

v2.1.13 - 14.08.2026 ​

[Engine] ​

  • Removed this section from the global topbar dropdown navigation. You can now reach it from the left sidebar once inside the section, and from the home page.
  • Reworded the home page feature card to lead with visitor intent. For example: "you want to create a game using the hizi engine". Before, the card just listed content.

[Operator Interface] ​

  • Removed this section from the global topbar dropdown navigation. You can now reach it from the left sidebar once inside the section, and from the home page.
  • Reworded the home page feature card to lead with visitor intent.

[Operator API] ​

  • Removed this section from the global topbar dropdown navigation. You can now reach it from the left sidebar once inside the section, and from the home page.
  • Reworded the home page feature card to lead with visitor intent.

[Game Studio API] ​

  • Removed this section from the global topbar dropdown navigation. You can now reach it from the left sidebar once inside the section, and from the home page.
  • Reworded the home page feature card to lead with visitor intent.

[Operator & Game Settings] ​

  • Removed this section from the global topbar dropdown navigation. You can now reach it from the left sidebar once inside the section, and from the home page.
  • Reworded the home page feature card to lead with visitor intent.

[Local Development] ​

  • Removed this section from the global topbar dropdown navigation. You can now reach it from the left sidebar once inside the section, and from the home page.
  • Reworded the home page feature card to lead with visitor intent. For example: "you want to run the hizi stack on your own machine".

[Hizi App] ​

  • Added a home page entry point: a feature card linking to the Getting Started guide. Before this change, the page had no link anywhere on the site.
  • Reworded the home page feature card to lead with visitor intent.

v2.1.12 - 14.08.2026 ​

[Operator API] ​

  • Removed the outdated "(vX.Y.Z)" version tag from the homepage feature card, the landing-page hero, and the introduction page. This changelog is now the only place on the site that shows a version number.

[Game Studio API] ​

  • Removed the outdated "(vX.Y)" version tag from the homepage feature card, the landing-page hero, and the introduction page. The reason is the same as above.

v2.1.11 - 11.08.2026 ​

[Operator & Game Settings] ​

  • Fixed a copy-paste error where the "Enable animation end reporting" section described maxExposure instead of reportAnimationEnd.
  • Clarified the "Default game settings (specific games)" description to state it applies only to the named game, not all games.
  • Fixed the "Default profile" section, which called defaultProfile a "protocol". defaultProfile actually sets a settings profile (for example, jurisdiction-de). This is a different concept from the operator's integration protocol, described later on the page.
  • Removed stray private-use Unicode glyphs (copy-paste artifacts). These glyphs rendered as broken characters in the GAMEKONG and BETCONSTRUCT protocol sections' headings and code samples. Fixed a malformed ### --- heading. The heading should have been a plain horizontal rule.

[Operator API] ​

  • Removed a stray private-use Unicode glyph from the doGameRoundResult msg field description.

v2.1.10 - 10.08.2026 ​

[Hizi App] ​

  • Added a "FAQs" section to the Getting Started page, beneath the glossary. It includes a "Currencies" topic. This topic covers the default currency list, multipliers, and custom currencies. It also includes a walkthrough for adding a new cryptocurrency.

v2.1.9 - 07.08.2026 ​

[Game Studio API] ​

  • Standardised terminology in prose across the site, for these terms: RGS-to-RGS, third-party, gameround(s), freeplay(s), free spin(s), long-lived/short-lived token, and game engine. API identifiers, error codes, endpoint names, and code samples stay the same.

[Operator API] ​

  • Applied the same terminology standardisation to the Operator API pages, the appendices and the shared Response Codes table.

[Operator Interface] ​

  • Applied the same terminology standardisation to the Operator Interface methods reference.

[Engine] ​

  • Applied the same terminology standardisation to the Engine, SDK and Generator pages.

[Hizi App] ​

  • Applied the same terminology standardisation to the Hizi App Getting Started page and its glossary.

v2.1.8 - 06.08.2026 ​

[Engine] ​

  • Documented the new buyFeatureId field. The engine returns this field on placeBet/collect replies for a round opened by buying a feature. The engine echoes it back on every reply for that round, including continuations and the closing collect. Added the field to the IPlaceBetReply/ICollectReply reference on Endpoints. Cross-linked it from Buy-Features.

v2.1.7 - 04.08.2026 ​

[Hizi App] ​

  • Updated the Glossary on the Getting Started page with clearer term definitions and old-backoffice equivalents.

v2.1.6 - 31.07.2026 ​

[Engine] ​

  • Fixed a bug in the access-restricted internal guide. Users could sometimes reach the guide without its access check. This happened when a user navigated to the guide from elsewhere on the site, rather than opening it directly.

v2.1.5 - 31.07.2026 ​

[Engine] ​

  • Removed screenshots from the internal QA and testing guide.

v2.1.4 - 31.07.2026 ​

[Engine] ​

  • Added an internal QA and testing guide (access-restricted) for the hizi engine. Cross-linked it from a few related pages.

v2.1.3 - 31.07.2026 ​

[Engine] ​

  • Added a "Freeplays" SDK guide (/engine/sdk/free-plays). It covers how a frontend reads freePlaysAvailable from login/refresh/loadConfig. It covers how the frontend picks between multiple packages. It covers how the frontend spends one via placeBet({ useTicket, useTicketFeatureType }). It covers how the frontend keeps its local list in sync, because placeBet does not echo the list back. Linked the guide from Game Flow, Buy Features, and the IFreePlayInfo type entry.

v2.1.2 - 31.07.2026 ​

[Hizi App] ​

  • Added a getting-started page for the hizi app backoffice (app.hizi.io). The page covers three onboarding paths: build with the hizi engine, import your own game, and distribute to operators. It includes a section-by-section overview of the app's 27 backoffice pages. It includes a glossary of common terms. The page is not yet linked from navigation. The team shares it directly with registered tenants for now.

v2.1.1 - 29.07.2026 ​

[Engine] ​

  • Editorial polish across the engine game and SDK pages.

[Local Development] ​

  • Editorial polish of the getting-started and troubleshooting pages.

v2.1.0 - 29.07.2026 ​

[Operator API] ​

  • Added a machine-readable OpenAPI 3.0 specification. It covers every documented call, callback, backoffice endpoint, freeplay or discount call, and health or certified-hash endpoint. In some places, the source docs are ambiguous or self-contradictory (for example, getGameRoundResult's response type, or registerPlayer's reply shape). The spec's descriptions call out these places instead of silently resolving them.
  • Fixed the reportAnimationEnd sample call, mislabeled as POST /gameRound instead of POST /reportAnimationEnd.
  • Added a sample internalPlayerId value to the registerPlayer success response.
  • Added a browsable OpenAPI Reference, one page per operation. vitepress-openapi generates each page from the spec. Each page shows request and response schemas, authentication, and copy-paste code samples. The "Try it out" console is hidden for now. Neither API can actually run from this console. The reasons: computed HMAC signing, and no CORS support on the real servers for this origin.

[Game Studio API] ​

  • Added a machine-readable OpenAPI 3.0 specification. It covers game launch, the full round-lifecycle call set, calls the game engine must implement, and freeplays. The spec models request signing as three chained header security schemes, with the HMAC construction documented inline. The spec documents round ordering (start → wager → end → collect) per operation. OpenAPI has no native construct for call sequencing.
  • Clarified in the voidGameRound spec that a returned balance is not guaranteed accurate. errorCode only appears on failure.
  • Documented the actual mandatory fields for getGameConfiguration: stakes, currency, currencyMultiplier, expectedRtp, maxPayoutOdds, gameCode. The team confirmed these fields against the original red-highlighted source. That source did not survive migration to markdown.
  • Added a browsable OpenAPI Reference, same as the Operator API.

v2.0.8 - 29.07.2026 ​

[Operator API] ​

  • Moved "Response Codes & Error Codes" out of the Operator API section, to a shared top-level page (/response-codes). This page is linked from both the Operator API and Game Studio API nav, sidebar, and homepage cards. Both areas reference it. Dropped the internal-only response headers (X-H-OPERATOR-ERROR_ID, X-H-REPEATCOUNT, X-H-DELAYNEXTRETRY, X-H-DONOTDELAY). These headers are not relevant to external integrators. Fixed a dangling unlinked reference to it in Appendix E: Discounts.
  • Linked the new page from the Operator API Introduction for visibility.

[Game Studio API] ​

  • Linked the shared "Response Codes & Error Codes" page from the Game Studio API nav, sidebar, and homepage card.
  • Repointed three rows in the Game Studio API Introduction's reference table. The rows: "API return codes", "HTTP status codes", and "custom HTTP headers". These rows now link straight to the new page, instead of to the generic Operator API link.

v2.0.7 - 29.07.2026 ​

[Engine] ​

  • Documented the per-transform boardStates breakdown for base spins ('Input' → 'After Expanding Wilds' → 'After Substitution' → 'After Duplication'). Cross-linked it from the Symbol Substitutions and Duplications section.

v2.0.6 - 28.07.2026 ​

[Engine] ​

  • Documented singleGameRoundProgressionData on the Slot Game Responses page. This field supports the new within-round jackpot mechanic, Single-Gameround Jackpots. The documentation covers its shape, how to read the meter, and trigger handling. It also covers how this mechanic differs from Progression Counters. The differences: where it lives, its persistence, and how its cash counts toward maxPayout and max-exposure. Cross-linked this from Progression Counters and Response Handling.

v2.0.5 - 27.07.2026 ​

[Game Studio API] ​

  • Documented inbound request signing (per-endpoint signed fields). Documented the currencyMultiplier and baseStake fields.
  • Clarified authentication of the calls that the RGS makes. doAutoClose is unsigned; attribute it via X-H-AUTH-ID. An egress-IP restriction is recommended for doAutoClose, but not required. health and certifiedfiles must stay open to all IPs, for external monitoring and certification bodies.

v2.0.4 - 24.07.2026 ​

[Engine] ​

  • Documented engineData.progressionEvents on the Progression Counters and Response Handling pages. This field is the per-step feed of progression-counter increments. It also carries any awards resolved as a counter completes: cash wins, feature awards, and player-choice requests. Added a full IProgressionEvent type reference.
  • Documented the resetOnFeatureEnd counter field for feature-scoped progression that resets when a feature run ends.
  • Corrected the progression-counter description in the generator KPI-math reference: a counter awards cash or feature spins, not only feature spins.

v2.0.3 - 23.07.2026 ​

[Operator API] ​

  • Reworded "single source of truth" references.

[Operator & Game Settings] ​

  • Reworded "single source of truth" references.

[Local Development] ​

  • Reworded "single source of truth" references.

v2.0.2 - 22.07.2026 ​

[Operator API] ​

  • Clarified that all amounts use 1/100 of the base currency as a fixed factor, not the currency's ISO minor unit. Added up-front callouts to the Introduction and hizi.io → Operator pages.
  • De-duplicated the currency-multiplier note on maxExposure, maxStake, and minStake in Appendix C.

v2.0.1 - 22.07.2026 ​

[Game Studio API] ​

  • Marked the jackpot payload fields as not currently implemented.

v2.0.0 - 22.07.2026 ​

  • Consolidated the previously separate per-area changelogs into this single changelog. The areas: Operator Interface, Operator API, Game Studio API, Operator & Game Settings, and Local Development. Added a top-level Changelog navigation item. Versioning restarts here. From this version, all documentation areas share one version.