{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "$id": "https://nmdvcell.com/resource/api/v1.1/task_contract.schema.json",
  "title": "NMD-VCell TaskContract 1.0",
  "type": "object",
  "additionalProperties": true,
  "required": [
    "task_contract_id",
    "status",
    "scientific_question",
    "disease",
    "donor_policy",
    "cell_state",
    "perturbation",
    "dose",
    "time",
    "readout",
    "target_quantity",
    "split_policy",
    "metric_bundle",
    "prohibited_claims",
    "current_outcome_state"
  ],
  "properties": {
    "task_contract_id": {
      "type": "string",
      "minLength": 1
    },
    "status": {
      "type": "string"
    },
    "scientific_question": {
      "type": "string",
      "minLength": 1
    },
    "disease": {
      "type": "string",
      "minLength": 1
    },
    "donor_policy": {
      "type": "string",
      "minLength": 1
    },
    "cell_state": {
      "type": "string",
      "minLength": 1
    },
    "perturbation": {
      "type": "string",
      "minLength": 1
    },
    "dose": {
      "type": [
        "string",
        "number",
        "null"
      ]
    },
    "time": {
      "type": [
        "string",
        "array",
        "null"
      ]
    },
    "readout": {
      "type": "array",
      "minItems": 1,
      "items": {
        "type": "string"
      }
    },
    "target_quantity": {
      "type": "array",
      "minItems": 1,
      "items": {
        "type": "string"
      }
    },
    "split_policy": {
      "type": "string",
      "minLength": 1
    },
    "metric_bundle": {
      "type": "array",
      "minItems": 1,
      "items": {
        "type": "string"
      }
    },
    "prohibited_claims": {
      "type": "array",
      "minItems": 1,
      "items": {
        "type": "string"
      }
    },
    "current_outcome_state": {
      "type": "string",
      "minLength": 1
    },
    "current_truth_state": {
      "type": "string",
      "minLength": 1,
      "deprecated": true
    }
  }
}
