CONTENT CONTRACT · VERSION 1
game
Explicit entry point selecting the map, world rules, player profile and presentation.
Signature
{ id: ContentId, kind: "game", name: TextKey, new_player: PlayerProfileId, presentation: PresentationProfileId, ruleset: RulesetId, start_map: MapId }Fields
| Name | Type | Meaning |
|---|---|---|
id | ContentId | Package-qualified identity; unique within its declaring namespace. Length: 1…129; Pattern: ^[a-z][a-z0-9_]{0,31}:[a-z][a-z0-9_]{0,95}$ |
kind | "game" | Discriminant |
name | TextKey | Localization key for the displayed name. Length: 1…129; Pattern: ^[a-z][a-z0-9_]{0,31}:[a-z][a-z0-9_]{0,95}$; Reference: text |
new_player | PlayerProfileId | Profile used when creating a persistent player. Length: 1…129; Pattern: ^[a-z][a-z0-9_]{0,31}:[a-z][a-z0-9_]{0,95}$; Reference: player_profile |
presentation | PresentationProfileId | Presentation profile supplying the game's interface audio. Length: 1…129; Pattern: ^[a-z][a-z0-9_]{0,31}:[a-z][a-z0-9_]{0,95}$; Reference: presentation_profile |
ruleset | RulesetId | Authoritative gameplay limits selected by this game. Length: 1…129; Pattern: ^[a-z][a-z0-9_]{0,31}:[a-z][a-z0-9_]{0,95}$; Reference: ruleset |
start_map | MapId | Map instantiated for the start of this game. Length: 1…129; Pattern: ^[a-z][a-z0-9_]{0,31}:[a-z][a-z0-9_]{0,95}$; Reference: map |
Validated example
{
"id": "core:training",
"kind": "game",
"name": "core:training_name",
"new_player": "core:new_player",
"presentation": "core:default_presentation",
"ruleset": "core:default_rules",
"start_map": "core:valley"
}