{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "$id": "vclaw-video-core/video/artifacts/execution-plan",
  "type": "object",
  "required": [
    "projectSlug",
    "productionMode",
    "operationKind",
    "recommendedRouteId",
    "ready",
    "blockers",
    "rationale",
    "generatedAt"
  ],
  "properties": {
    "projectSlug": { "type": "string" },
    "productionMode": { "type": "string", "enum": ["storyboard", "director"] },
    "operationKind": {
      "type": "string",
      "enum": ["text-to-video", "image-to-video", "frames-to-video", "ingredients-to-video", "extend", "edit", "add-audio"]
    },
    "recommendedRouteId": {
      "type": ["string", "null"],
      "enum": ["veo-useapi", "runway-useapi", "dreamina-useapi", "seedance-direct", "magnific-rest", null]
    },
    "ready": { "type": "boolean" },
    "blockers": { "type": "array", "items": { "type": "string" } },
    "rationale": { "type": "array", "items": { "type": "string" } },
    "promptGuidance": {
      "type": "array",
      "items": {
        "type": "object",
        "required": ["name", "reason", "category"],
        "properties": {
          "name": { "type": "string" },
          "reason": { "type": "string" },
          "category": { "type": "string", "enum": ["provider", "framework"] }
        },
        "additionalProperties": true
      }
    },
    "generatedAt": { "type": "string" },
    "executionProfile": {
      "type": "object",
      "properties": {
        "veoModel": { "type": "string", "enum": ["fast", "quality", "lite", "free", "omni-flash"] }
      },
      "additionalProperties": true
    },
    "tasks": {
      "type": "array",
      "items": {
        "type": "object",
        "properties": {
          "voicePreset": { "type": "string" },
          "referenceVideoMediaId": { "type": "string" },
          "firstFrame": { "type": "boolean", "description": "omni-flash First-Frame (startImage/I2V) mode for this task; gated by VCLAW_OMNI_FIRST_FRAME (build-ahead, UNVERIFIED-LIVE until useapi.net ships omni-flash frames mode)." }
        },
        "additionalProperties": true
      }
    }
  },
  "additionalProperties": true
}
