Shared vocabulary for this repo: the roles (who's who), the platform/architecture terms, and the iGaming domain terms. When a term maps onto a concrete part of the codebase, the last column points to it.
Read this first - the word "user" is ambiguous in iGaming. In igaming UIs "user" usually means the gambler. In this repo we avoid the bare word: operator / consumer / end user = the developer or company that installs the OSS packages and builds a igaming; player = the gambler who registers, deposits, and plays. Keep them distinct.
| Term | Who it is |
|---|---|
| Operator / consumer / downstream consumer / end user | The developer or company that installs the @openora/* packages and builds + runs their own igaming. They are the "end user" of the package, not a gambler. They bring their own extensions.config.ts, UI adapter, and vendor adapters. |
| Player | The person who registers on an operator's igaming, deposits funds, and plays. The operator's customer. Modeled by the player module + auth User. |
| Admin / backoffice user | Operator staff who manage players, approve withdrawals, configure games, and edit content via the backoffice. A role on the auth User, not a separate person type. |
| Maintainer / core contributor | Someone working on the OSS platform itself (this repo) - distinct from an operator who only consumes it. |
| Term | Meaning | Maps to |
|---|---|---|
| Headless | The platform ships backend only - modules, contracts, API, and SDK consumption surface. The operator supplies the entire frontend (pages, components, styling, theme) in their own repo. | packages/core/src/<domain>/*, @openora/core/react |
| Module | A business domain packaged as an independently loadable unit (auth, wallet, gaming...). Never imports another module. | packages/core/src/<domain>/<module>/ |
| Plugin / extension / overlay | A drop-in object that adds or overrides behavior via { id, register } satisfies Plugin<CoreTokenCatalog>. The only way new functionality enters the system. |
extensions/*, consumer plugins |
| Adapter | The vendor-agnostic interface a module depends on (e.g. KycAdapter, PaymentAdapter) plus its per-vendor implementations. The swap seam: a module declares the interface + DI token in @openora/core/contracts; an operator binds a concrete impl. |
@openora/core/contracts + <domain>/<module>/adapters/<vendor>/ |
| Contract | The composed oRPC router. Drives request validation, the typed client, and the live OpenAPI reference. | @openora/core/contracts |
| Domain schema | A Zod schema - the single source of truth for a shape. Types are z.infer'd, never hand-written. |
@openora/core/contracts, module schemas/ |
| UI plugin | A client-side extension that customizes the look/feel. Lives in the consumer frontend, not in this repo. The platform is headless backend only. | ADR-0013 (superseded) |
| Slot | A typed injection point in a UI surface that a plugin can fill. Owned by the consumer frontend. | ADR-0013 (superseded) |
| Sealed token | A SealedToken<T> whose backing service operators may never override (RG enforcement, KYC writes, AML/SAR, ledger writes, RNG, etc.). Structurally incompatible with Token<T> + runtime-rejected by plugin-host. |
@openora/core/compliance |
| Client page token | ClientPageToken<P> - Tier 3 escape hatch for full client-side page replacement. |
@openora/core/contracts/token.ts |
| Brand scope | Multi-brand operators define brands in PlatformConfig.brands; <ThemeProvider activeBrand="..."> selects the active one; slot fills with brandScope: [...] render only when the active brand matches. |
ADR-0013 T0.5 |
| Platform config | Operator-editable Zod-validated YAML/JSON consumed at boot. Controls feature flags, brands, RG defaults per geo. No admin UI in v1. | @openora/core/contracts/platform-config.ts, @openora/core/server (loadPlatformConfig) |
| Scaffold | A deterministic code-mod that stamps a module/plugin/route/component skeleton. | tools/gen/gen.ts, /scaffold-* |
| MCP dev server | A stdio tool server agents connect to for read-only inspection + scaffolding. | apps/mcp-server-dev |
| RGS (Remote Gaming Server) | The game engine that runs rounds, applies RTP, and settles bets. Can be third-party (a provider) or the platform's own multiplayer/provably-fair foundation. | gaming module + GameAdapter |
| Term | Meaning | Maps to |
|---|---|---|
| KYC (Know Your Customer) | Verifying a player's identity (ID/selfie/proof of address), usually via a third-party provider, before withdrawals above a threshold. | identity / KycAdapter |
| AML (Anti-Money Laundering) | Controls and monitoring to detect/prevent laundering through play (limits, source-of-funds, suspicious-activity flags). | identity, compliance |
| 2FA | Two-factor authentication (TOTP) on a player or admin account. | identity (better-auth) |
| Geo-blocking | Refusing service from restricted jurisdictions based on IP/region. | compliance / GeoIpAdapter |
| Jurisdiction / licensing | The regulatory regime a igaming operates under; dictates allowed countries, game rules, RG requirements, and reporting. | operator concern |
| Term | Meaning | Maps to |
|---|---|---|
| Wallet | A player's balance(s) and the ledger of money movements. | wallet module |
| Balance | Spendable funds, shown in real time; may differ from pending. | wallet |
| Deposit / withdrawal | Money in / money out, in fiat or crypto. | wallet |
| PSP (Payment Service Provider) | A fiat payment vendor (card, bank, e-wallet) integrated behind an adapter. | wallet / PaymentAdapter |
| Fiat / crypto | Government currency (USD, EUR...) vs cryptocurrency (BTC, ETH, USDT...). The platform supports multi-currency display. | wallet |
| Transaction history | The filterable record of deposits, withdrawals, bets, wins, and transfers. | wallet |
| Chargeback | A reversed card payment a player disputes with their bank; a fraud/risk concern for the operator. | operator concern |
| Term | Meaning | Maps to |
|---|---|---|
| Game provider | A studio/vendor supplying games, integrated behind an adapter. | gaming / GameAdapter |
| Aggregator | A single integration that fans out to many game providers' catalogues. | casino/gaming / AggregatorAdapter |
| Game round / session | One play cycle (bet -> result -> settle); a session groups rounds for a player at a game. | casino/gaming |
| Lobby | The browsable surface of games: categories, featured slots, search, recent activity. | lobby |
| RTP (Return To Player) | The long-run % of stakes a game pays back (e.g. 96%). The complement is the house edge. | game config |
| House edge | The operator's expected margin (100% - RTP). | game config |
| Provably fair | A scheme letting players verify a result wasn't tampered with: a server seed is committed (hash published) before the round, combined with a client seed and a nonce, then revealed for recomputation. | gaming (foundation) |
| Term | Meaning | Maps to |
|---|---|---|
| Notifications | In-game and email alerts (deposit confirmed, withdrawal status, game events, promotions). | engagement/notifications |
| VIP tiers | Loyalty levels granting perks based on activity (a consumer extension, not core). | consumer overlay under extensions/ |
| Affiliate | A partner who refers players for a revenue share. | operator concern |
| Term | Meaning | Maps to |
|---|---|---|
| Responsible gaming (RG) | Player-protection features required by most regulators. | compliance |
| Deposit / loss / wager limits | Player-set or mandated caps over a period. | compliance |
| Self-exclusion | A player blocking themselves from play for a set period. | compliance |
| Term | Meaning | Maps to |
|---|---|---|
| CMS | Operator-managed static pages and banners (T&C, FAQ, promos). | cms module |
| Notifications | In-app + email events (deposit confirmed, withdrawal status, bonus credited...). | notifications / NotificationDeliveryAdapter |
| Chat | Global and in-game messaging with soft moderation. | chat module |
| Tip / gift / rain | Player-to-player money mechanics in chat (tip one player; drop a claimable gift; "rain" a split across many). Consumer-specific social features, not core. | consumer plugin |
| GGR / NGR | Gross / Net Gaming Revenue (stakes minus wins; NGR also nets bonuses/fees). The core operator KPI. | analytics |