{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "$id": "https://nmdvcell.com/resource/api/v1.1/virtual_cell_run.schema.json",
  "title": "NMD-VCell virtual cell run object",
  "type": "object",
  "additionalProperties": false,
  "required": [
    "run_schema",
    "resource_release",
    "interface_build",
    "cell_state",
    "disease_context",
    "perturbation",
    "time_hours",
    "primary_endpoint",
    "inference_status"
  ],
  "properties": {
    "run_schema": {
      "const": "nmd-vcell-virtual-cell-run/1.0"
    },
    "resource_release": {
      "const": "v1.0.0-database-resource"
    },
    "interface_build": {
      "const": "EA-20260730-34"
    },
    "cell_state": {
      "type": "string",
      "enum": [
        "proliferating_myoblast",
        "differentiating_myoblast",
        "fusing_myocyte",
        "maturing_myotube",
        "fap_stromal",
        "macrophage_immune",
        "endothelial_vascular"
      ]
    },
    "disease_context": {
      "type": "string",
      "enum": [
        "DMD",
        "healthy_or_corrected_reference",
        "DMD_vs_matched_control"
      ]
    },
    "perturbation": {
      "type": "object",
      "additionalProperties": false,
      "required": [
        "modality",
        "target"
      ],
      "properties": {
        "modality": {
          "type": "string",
          "enum": [
            "CRISPRi",
            "knockout",
            "CRISPRa",
            "drug",
            "pair_or_combination"
          ]
        },
        "target": {
          "type": "string",
          "minLength": 1
        }
      }
    },
    "time_hours": {
      "type": "number",
      "minimum": 0
    },
    "primary_endpoint": {
      "type": "string",
      "enum": [
        "molecular_response",
        "cell_state_transition",
        "muscle_function",
        "toxicity_viability",
        "cell_cell_consequence"
      ]
    },
    "inference_status": {
      "type": "string",
      "enum": [
        "NOT_EXECUTED_EVIDENCE_CHECK_ONLY",
        "LIMITED_SAME_ASSAY_BASELINE",
        "LOCKED_NO_DMD_OUTCOMES"
      ]
    },
    "evidence_links": {
      "type": "array",
      "items": {
        "type": "string",
        "format": "uri-reference"
      }
    },
    "claim_boundary": {
      "type": "string"
    }
  }
}
