# Roleplay Core-architectuur

Game Cloud Roleplay Core is een los verkoopbaar FiveM-product onder
`products/roleplay-core`. Het control-plane distribueert en licenceert releases,
maar is geen runtime-afhankelijkheid van gameplay.

## Resourcegraph

```text
platform-core
└─ platform-characters
   ├─ platform-economy
   │  └─ platform-jobs
   └─ platform-inventory
platform-core + alle domeinresources ─ platform-ui
```

`platform-ui` wacht op alle domeinresources. De optionele `es_extended`- en
`qb-core`-providers starten daarna. FiveM-dependencies en
`server.cfg.example` leggen dezelfde startupvolgorde vast.

## Verantwoordelijkheden

- `platform-core`: contracten, moduleregister, lokale InnoDB-state,
  configuratiecache, outbox en cloudsynchronisatie.
- `platform-characters`: actieve charactercontext en lifecycle-events.
- `platform-economy`: server-authoritative account- en valutacontract.
- `platform-inventory`: server-authoritative inventorycontract.
- `platform-jobs`: jobs/societies-contract en economydependency.
- `platform-ui`: gedeeld NUI-protocol zonder willekeurige code-uitvoering.

Gameplay gebruikt uitsluitend de lokale transactionele runtime. De bridge is
een optionele adapter: cloudstoring verandert de synchronisatiestatus, niet de
beschikbaarheid van gameplay.

## Versies en migraties

Release 0.9.0 gebruikt core API-versie 1. `platform-core` en
`platform-characters` gebruiken moduleschema 2; overige modules blijven op
schema 1. Iedere migratie heeft een vaste
SHA-256-checksum. Het core-register weigert onbekende modules, een onjuiste
startupvolgorde, te oude versies en onvolledige migratieketens.

`release-manifest.json` beschrijft de distributie en dependencygraph.
`migrations/manifest.json` is het release-overzicht; runtimecontracten zijn de
gezaghebbende validatie.

## Exports en compatibility

Alle domeinresources bieden TypeScript/JavaScript-exports en PascalCase
Lua-wrappers voor hun publieke leescontracten. De compatibilitylaag ondersteunt
gangbare ESX- en QBCore-readpaden. Er is geen client-authoritative mutatiepad,
generieke SQL, shell of remote code execution.

Installatie- en exportinformatie staat in `products/roleplay-core/README.md`.
Databasegrenzen, signed-configflow en conflictregels staan in
`docs/roleplay-offline-runtime.md`.
De volledige characterflow staat in `docs/roleplay-characters.md`.
