{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "$id": "https://artifacts.apis.io/aicontentdrop-com/json-schema/aicontentdrop-com-drop-lanes-schema.json",
  "title": "DropLanes",
  "description": "Every recipe a drop can follow, whether this account may start drops, and which optional parts are on for it. Reading it grants nothing: every write checks again.",
  "x-generated": "2026-11-01",
  "x-method": "derived",
  "x-generator": "derive-json-schema.py",
  "x-source": "openapi/aicontentdrop-com-openapi.json#/components/schemas/DropLanes",
  "type": "object",
  "required": [
    "lanes",
    "access",
    "features"
  ],
  "properties": {
    "lanes": {
      "type": "array",
      "items": {
        "$ref": "#/$defs/DropLane"
      }
    },
    "access": {
      "type": "object",
      "required": [
        "allowed",
        "required"
      ],
      "properties": {
        "allowed": {
          "type": "boolean",
          "description": "Whether this account may start drops."
        },
        "reason": {
          "type": "string",
          "description": "Why not, in one sentence. Present only when `allowed` is false."
        },
        "required": {
          "type": "string",
          "enum": [
            "professional"
          ],
          "description": "The lowest plan that may start drops."
        }
      }
    },
    "features": {
      "type": "object",
      "required": [
        "reference_intake",
        "judge"
      ],
      "properties": {
        "reference_intake": {
          "type": "boolean",
          "description": "POST /v1/engine/analyze answers for this account. When false it is refused with 403 `vision_unavailable`."
        },
        "judge": {
          "type": "boolean",
          "description": "Finished pieces of this account's drops are reviewed and carry `review`."
        }
      }
    }
  },
  "$defs": {
    "DropLane": {
      "type": "object",
      "description": "One recipe a drop can follow, as this account may use it today.",
      "required": [
        "id",
        "label",
        "open",
        "durations"
      ],
      "properties": {
        "id": {
          "type": "string",
          "enum": [
            "cinematic",
            "ugc",
            "marketing",
            "drama",
            "recreate"
          ]
        },
        "label": {
          "type": "string",
          "description": "The recipe's name as a person reads it."
        },
        "open": {
          "type": "boolean",
          "description": "Whether this account may use it today."
        },
        "reason": {
          "type": "string",
          "description": "Why not, when `open` is false."
        },
        "durations": {
          "type": "array",
          "items": {
            "type": "integer"
          },
          "description": "The running times it serves, in seconds."
        }
      }
    }
  }
}