{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "$id": "https://artifacts.apis.io/viewmax-studio/json-schema/viewmax-studio-shorts-studio-task-schema.json",
  "title": "ShortsStudioTask",
  "x-generated": "2026-11-03",
  "x-method": "derived",
  "x-generator": "derive-json-schema.py",
  "x-source": "openapi/viewmax-studio-openapi.json#/components/schemas/ShortsStudioTask",
  "type": "object",
  "required": [
    "id",
    "status",
    "phase",
    "costCredits"
  ],
  "properties": {
    "id": {
      "type": "string"
    },
    "status": {
      "type": "string",
      "enum": [
        "pending",
        "processing",
        "success",
        "failed",
        "canceled"
      ]
    },
    "phase": {
      "type": "string",
      "enum": [
        "queued",
        "rendering",
        "completed",
        "failed"
      ]
    },
    "costCredits": {
      "type": "integer"
    },
    "preset": {
      "type": "string",
      "enum": [
        "comic_energy",
        "paper_collage",
        "product_clean"
      ]
    },
    "outputRatio": {
      "type": "string",
      "enum": [
        "9:16",
        "16:9"
      ]
    },
    "videoUrl": {
      "type": "string",
      "format": "uri",
      "description": "Preview MP4, present on success."
    },
    "artifacts": {
      "type": "array",
      "description": "Present on success.",
      "items": {
        "type": "object",
        "required": [
          "kind",
          "role",
          "url",
          "contentType"
        ],
        "properties": {
          "kind": {
            "type": "string",
            "enum": [
              "video",
              "text"
            ]
          },
          "role": {
            "type": "string",
            "enum": [
              "preview",
              "srt",
              "ass"
            ]
          },
          "url": {
            "type": "string",
            "format": "uri"
          },
          "contentType": {
            "type": "string",
            "enum": [
              "video/mp4",
              "application/x-subrip",
              "text/x-ass"
            ]
          }
        }
      }
    },
    "error": {
      "type": "string",
      "enum": [
        "processing_failed"
      ],
      "description": "Present when the task failed."
    }
  }
}