{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "$id": "https://artifacts.apis.io/cueframe-ai/json-schema/cueframe-ai-component-preview-request-schema.json",
  "title": "ComponentPreviewRequest",
  "x-generated": "2026-11-10",
  "x-method": "derived",
  "x-generator": "derive-json-schema.py",
  "x-source": "openapi/cueframe-ai-evidence-api-openapi.yml#/components/schemas/ComponentPreviewRequest",
  "type": "object",
  "properties": {
    "componentId": {
      "type": "string",
      "minLength": 1
    },
    "params": {
      "type": "object",
      "propertyNames": {
        "type": "string"
      },
      "additionalProperties": {}
    },
    "assets": {
      "description": "Component asset-slot name to org mediaId. Every required manifest slot must be bound.",
      "type": "object",
      "propertyNames": {
        "type": "string",
        "minLength": 1
      },
      "additionalProperties": {
        "type": "string",
        "minLength": 1
      }
    },
    "width": {
      "description": "Exact width of a supported composition format. Width and height must match one aspect ratio/resolution pair; omitted values use the project format.",
      "type": "integer",
      "exclusiveMinimum": 0,
      "maximum": 9007199254740991
    },
    "height": {
      "description": "Exact height paired with width for a supported composition format.",
      "type": "integer",
      "exclusiveMinimum": 0,
      "maximum": 9007199254740991
    },
    "fps": {
      "description": "Preview frame rate: 24, 25, 30, or 60. When omitted, uses the project's format.",
      "anyOf": [
        {
          "type": "number",
          "const": 24
        },
        {
          "type": "number",
          "const": 25
        },
        {
          "type": "number",
          "const": 30
        },
        {
          "type": "number",
          "const": 60
        }
      ]
    },
    "durationInFrames": {
      "description": "Preview frame count. When omitted, uses the component's declared duration; required if the component has none.",
      "type": "integer",
      "minimum": 1,
      "maximum": 3600
    }
  },
  "required": [
    "componentId"
  ],
  "additionalProperties": false
}