{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "title": "PlayerView",
  "type": "object",
  "required": [
    "storyId",
    "nodeId",
    "branchId",
    "sceneId",
    "sceneTitle",
    "characterName",
    "beats",
    "suggestions",
    "inventory",
    "knowledge",
    "promises",
    "relationship",
    "history",
    "canContinue"
  ],
  "properties": {
    "storyId": {
      "type": "string"
    },
    "nodeId": {
      "type": "string"
    },
    "branchId": {
      "type": "string"
    },
    "sceneId": {
      "type": "string"
    },
    "sceneTitle": {
      "type": "string"
    },
    "characterName": {
      "type": "string"
    },
    "beats": {
      "type": "array",
      "items": {
        "type": "object",
        "required": ["id", "kind", "speaker", "text", "visual"]
      }
    },
    "suggestions": {
      "type": "array"
    },
    "inventory": {
      "type": "array"
    },
    "knowledge": {
      "type": "array"
    },
    "promises": {
      "type": "array"
    },
    "relationship": {
      "type": "object"
    },
    "history": {
      "type": "array"
    },
    "canContinue": {
      "type": "boolean"
    }
  },
  "additionalProperties": false
}
