{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "$id": "https://artifacts.apis.io/farpy-com/json-schema/farpy-com-capabilities-schema.json",
  "title": "Capabilities",
  "x-generated": "2026-11-08",
  "x-method": "derived",
  "x-generator": "derive-json-schema.py",
  "x-source": "openapi/farpy-com-openapi.json#/components/schemas/Capabilities",
  "type": "object",
  "properties": {
    "ok": {
      "type": "boolean",
      "const": true
    },
    "contract": {
      "type": "string",
      "const": "FARPY-PUBLIC-API-V1"
    },
    "renderers": {
      "type": "array",
      "minItems": 1,
      "maxItems": 1,
      "items": {
        "type": "object",
        "required": [
          "id",
          "application",
          "version",
          "engines",
          "input_formats",
          "output_format",
          "render_device"
        ],
        "properties": {
          "id": {
            "type": "string",
            "const": "blender"
          },
          "application": {
            "type": "string",
            "const": "Blender"
          },
          "version": {
            "type": "string",
            "const": "4.1.1"
          },
          "engines": {
            "type": "array",
            "minItems": 1,
            "maxItems": 1,
            "items": {
              "type": "string",
              "const": "CYCLES"
            }
          },
          "input_formats": {
            "type": "array",
            "minItems": 1,
            "maxItems": 1,
            "items": {
              "type": "string",
              "const": ".blend"
            }
          },
          "output_format": {
            "type": "string",
            "const": ".zip"
          },
          "render_device": {
            "type": "string",
            "const": "GPU"
          }
        }
      }
    },
    "availability": {
      "type": "object",
      "required": [
        "classification",
        "accepting_jobs",
        "queue_state"
      ],
      "properties": {
        "classification": {
          "type": "string",
          "const": "LIVE_PUBLIC_ALPHA"
        },
        "accepting_jobs": {
          "type": "boolean"
        },
        "queue_state": {
          "type": "string"
        }
      }
    },
    "pricing": {
      "type": "object"
    },
    "limits": {
      "type": "object"
    },
    "cancellation": {
      "type": "object"
    },
    "workflow": {
      "type": "array",
      "items": {
        "type": "string"
      }
    },
    "proof": {
      "type": "object"
    },
    "webhooks": {
      "type": "object",
      "additionalProperties": false,
      "required": [
        "supported",
        "signed",
        "transport",
        "terminal_events",
        "delivery_model",
        "redirects_allowed",
        "private_network_targets_allowed"
      ],
      "properties": {
        "supported": {
          "type": "boolean",
          "const": true
        },
        "signed": {
          "type": "boolean",
          "const": true
        },
        "transport": {
          "type": "string",
          "const": "HTTPS"
        },
        "terminal_events": {
          "type": "array",
          "minItems": 3,
          "maxItems": 3,
          "uniqueItems": true,
          "items": {
            "type": "string",
            "enum": [
              "render.completed",
              "render.failed",
              "render.cancelled"
            ]
          }
        },
        "delivery_model": {
          "type": "string",
          "const": "durable_queue"
        },
        "redirects_allowed": {
          "type": "boolean",
          "const": false
        },
        "private_network_targets_allowed": {
          "type": "boolean",
          "const": false
        }
      }
    }
  }
}