{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "$id": "https://raw.githubusercontent.com/api-evangelist/centaur-labs/main/json-schema/centaur-labs-existing-task-segmentation-schema.json",
  "title": "ExistingTaskSegmentation",
  "x-generated": "2026-10-14",
  "x-method": "derived",
  "x-generator": "derive-json-schema.py",
  "x-source": "openapi/centaur-labs-ingest-api-openapi.yml#/components/schemas/ExistingTaskSegmentation",
  "properties": {
    "task_type": {
      "$ref": "#/$defs/TaskTypeSegmentation"
    },
    "title": {
      "type": "string",
      "minLength": 1,
      "title": "Title"
    },
    "prompt": {
      "type": "string",
      "maxLength": 52,
      "minLength": 1,
      "title": "Prompt"
    },
    "answers": {
      "items": {
        "type": "string"
      },
      "type": "array",
      "minItems": 1,
      "title": "Answers",
      "unique_items": true
    },
    "is_variable_answer_choice": {
      "type": "boolean",
      "const": false,
      "title": "Is Variable Answer Choice",
      "default": false
    },
    "description": {
      "anyOf": [
        {
          "type": "string",
          "maxLength": 1024,
          "minLength": 1
        },
        {
          "type": "null"
        }
      ],
      "title": "Description"
    },
    "n_contexts_per_problem": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "number"
        }
      ],
      "title": "N Contexts Per Problem"
    },
    "n_targets_per_problem": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "number"
        }
      ],
      "title": "N Targets Per Problem"
    },
    "view_mapping": {
      "anyOf": [
        {
          "items": {
            "$ref": "#/$defs/ViewMapping"
          },
          "type": "array",
          "maxLength": 10,
          "minLength": 1,
          "unique_items": true
        },
        {
          "type": "null"
        }
      ],
      "title": "View Mapping"
    },
    "organization_id": {
      "anyOf": [
        {
          "type": "integer",
          "exclusiveMinimum": 0
        },
        {
          "type": "null"
        }
      ],
      "title": "Organization Id"
    },
    "project_id": {
      "type": "integer",
      "exclusiveMinimum": 0,
      "title": "Project Id"
    },
    "platforms": {
      "items": {
        "$ref": "#/$defs/TaskPlatform"
      },
      "type": "array",
      "title": "Platforms"
    },
    "audiences": {
      "items": {
        "$ref": "#/$defs/TaskAudience"
      },
      "type": "array",
      "title": "Audiences"
    },
    "id": {
      "type": "integer",
      "title": "Id"
    },
    "created_at": {
      "type": "string",
      "title": "Created At"
    },
    "updated_at": {
      "type": "string",
      "title": "Updated At"
    },
    "is_multi_answer": {
      "type": "boolean",
      "const": true,
      "title": "Is Multi Answer",
      "default": true
    },
    "n_levels_per_problem": {
      "type": "integer",
      "title": "N Levels Per Problem",
      "readOnly": true
    },
    "is_multiple_assets": {
      "type": "boolean",
      "title": "Is Multiple Assets",
      "readOnly": true
    }
  },
  "type": "object",
  "required": [
    "task_type",
    "title",
    "prompt",
    "answers",
    "project_id",
    "id",
    "created_at",
    "updated_at",
    "n_levels_per_problem",
    "is_multiple_assets"
  ],
  "$defs": {
    "TaskAudience": {
      "type": "string",
      "enum": [
        "crowd",
        "expert"
      ],
      "title": "TaskAudience"
    },
    "TaskPlatform": {
      "type": "string",
      "enum": [
        "web",
        "ios"
      ],
      "title": "TaskPlatform"
    },
    "TaskTypeSegmentation": {
      "type": "string",
      "enum": [
        "circle",
        "box",
        "line",
        "polygon",
        "cuboid",
        "pixel_seg",
        "point2d"
      ],
      "title": "TaskTypeSegmentation"
    },
    "ViewMapping": {
      "properties": {
        "view": {
          "type": "string",
          "maxLength": 20,
          "minLength": 1,
          "title": "View"
        },
        "index": {
          "type": "integer",
          "title": "Index"
        }
      },
      "type": "object",
      "required": [
        "view",
        "index"
      ],
      "title": "ViewMapping"
    }
  }
}