{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "title": "wb-game-video:generate-node-video args",
  "type": "object",
  "additionalProperties": false,
  "required": ["sceneNodeId", "nodeName", "characterRefIds", "sceneRefIds"],
  "properties": {
    "sceneNodeId": { "type": "string", "description": "Owning GameGraph node id." },
    "nodeName": { "type": "string" },
    "seedancePrompt": { "type": "string", "description": "Reviewed shot script (preferred main sequence)." },
    "storyText": { "type": "string", "description": "Fallback node story text when seedancePrompt is absent." },
    "durationSeconds": { "type": "number", "minimum": 1, "maximum": 120, "description": "Total node duration. > 15s auto-splits into segments; strict mode uses provider-native video extension first, then local tail-frame extraction." },
    "artStyle": { "type": "string" },
    "styleKeywords": { "type": "array", "items": { "type": "string" } },
    "characterRefIds": { "type": "array", "items": { "type": "string" }, "minItems": 1, "description": "REQUIRED: >=1 character_ref registry id." },
    "sceneRefIds": { "type": "array", "items": { "type": "string" }, "minItems": 1, "description": "REQUIRED: >=1 scene_ref registry id." },
    "continuityFirstFrameId": { "type": "string", "description": "Optional first segment seam. Later strict segments prefer provider-native reference-video continuation and otherwise use a real extracted tail frame." },
    "continuityMode": { "type": "string", "enum": ["strict", "independent"], "default": "strict", "description": "strict requires a real provider video extension or tail-frame extractor before starting. independent explicitly accepts separately generated segments without cross-segment continuity." },
    "label": { "type": "string" },
    "generateAudio": { "type": "boolean" },
    "transitionHint": { "type": "string", "description": "Seam description for extend segments; a default is used when omitted." },
    "styleAxes": {
      "type": "object",
      "additionalProperties": false,
      "properties": {
        "artMedia": { "type": "string" },
        "director": { "type": "string" },
        "filmLook": { "type": "string" }
      }
    }
  }
}
