One account owns accountData plus one or more named slots.
Save Model
Persistly stores accounts and slots as canonical save envelopes.
The default model is explicit on purpose: create an account, store accountId and accountSessionToken locally, load the account through that session, then sync account-owned slots with versioned conflict behavior.
Canonical Model
These fields define the public runtime model.
Account routes use accountId plus stable slotId values; internal save handles stay behind the API facade.
version starts at 1 and increments by 1 only after an accepted sync. Treat it as an opaque revision counter.
baseVersion must be the version your client last accepted from create, load, sync, or conflict response.
Account slotInfo is small display/routing JSON; account-wide gameplay data belongs in account.data.accountData.
Slot slotInfo is small per-slot label JSON for selection UIs and lightweight labels.
Slot data is the full current gameplay save JSON and should stay bounded.