Skip to content

Data Ownership

Data ownership is the heart of CGSP. Knowing what each side stores explains why every endpoint exists. The dividing line: the financial truth lives on the platform; the game truth lives in the service.

The platform owns these. A game service never reads them directly; it reaches them over HTTP.

Table / conceptContents
partnersMaster record of operators (the B2B customers)
operatorsDealer/operator accounts under a partner
partner_allowed_gamesWhich games are open to which operator
partner_allowed_currenciesWhich currencies are open to which operator
servicesRegistered game services (including this one)
gamesPlayable game records (one or more per runtime profile)
service_runtime_profilesAn engine’s behavior config (RTP, max multiplier, …)
transactionsThe financial ledger — one record per bet, idempotent
playersPlayer identities (passed in from the operator)
admin_usersPeople with Back Office access
currencies, currency_rate_historyCurrencies and exchange rates
translator_assignmentsLocalization coordination

The service owns these. The platform never reads them.

Example tableContents
hilo_roundsEach round’s start, card values, and end state
hilo_betsEach player bet’s in-game detail (choice, card, win)
crash_skinsThe service’s skin catalog — skinKey UUIDs, display names
crash_skin_translation_templateInitial translation key set per skin
schema_migrationsThe service’s own migration tracking

A service can add whatever else it needs — round/bet tables, session state, bot history, skin assets and translations. The structure is the developer’s to design. The platform proxies skin and translation APIs through to the service but never owns the underlying records.

The financial record — who won or lost how much — is written to the platform’s transactions ledger as the single source of truth. A service may keep its own financial snapshot, but the platform ledger is always authoritative. See Config + Ledger for how bets are opened and settled there.