{
  "type": "object",
  "properties": {
    "scenes": {
      "type": "array",
      "items": {
        "type": "object",
        "properties": {
          "scene_index": {"type": "integer"},
          "scene_heading": {"type": "string"},
          "shots": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "shot_index": {"type": "integer"},
                "description": {"type": "string"},
                "characters": {
                  "type": "array",
                  "items": {"type": "string"}
                },
                "based_on_beat": {
                  "type": "integer",
                  "description": "이 Shot의 근거가 된 Beat의 beat_index. beat 없이 원문에서 추출한 경우 0."
                }
              },
              "required": ["shot_index", "description", "characters", "based_on_beat"],
              "additionalProperties": false
            }
          }
        },
        "required": ["scene_index", "scene_heading", "shots"],
        "additionalProperties": false
      }
    }
  },
  "required": ["scenes"],
  "additionalProperties": false
}