{
    "$defs": {
        "ASLAssay": {
            "additionalProperties": false,
            "description": "Assay for measuring airway surface liquid properties including ASL height, periciliary layer depth, and ion composition. Informs on Key Event: \"Decreased ASL height\" or \"Altered airway hydration\" in CF-related AOPs.",
            "properties": {
                "assay_date": {
                    "description": "Date when the assay was performed.",
                    "format": "date",
                    "type": [
                        "string",
                        "null"
                    ]
                },
                "description": {
                    "description": "A detailed description of the entity.",
                    "type": [
                        "string",
                        "null"
                    ]
                },
                "follows_protocols": {
                    "description": "The Protocol(s) that this assay follows. Any Protocol or Protocol subclass (ImagingProtocol, StainingProtocol, SpirometryProtocol, MolecularAssayProtocol) is valid. Use this for general protocol references; assay subclasses also have typed protocol slots for domain-specific protocols.",
                    "items": {
                        "anyOf": [
                            {
                                "$ref": "#/$defs/Protocol"
                            },
                            {
                                "$ref": "#/$defs/ImagingProtocol"
                            },
                            {
                                "$ref": "#/$defs/StainingProtocol"
                            },
                            {
                                "$ref": "#/$defs/SpirometryProtocol"
                            },
                            {
                                "$ref": "#/$defs/MolecularAssayProtocol"
                            }
                        ]
                    },
                    "type": [
                        "array",
                        "null"
                    ]
                },
                "has_exposure_condition": {
                    "description": "The exposure condition(s) applied to the study subject. Captures the agent, concentration, duration, and timing of exposure/treatment. Multivalued to support co-exposures or dose-response series.",
                    "items": {
                        "$ref": "#/$defs/ExposureCondition"
                    },
                    "type": [
                        "array",
                        "null"
                    ]
                },
                "has_specified_output": {
                    "anyOf": [
                        {
                            "$ref": "#/$defs/ASLOutput"
                        },
                        {
                            "type": "null"
                        }
                    ],
                    "description": "The measurement results produced by this assay \u2014 the specified output of a planned process (OBI). Contains the domain-specific measurement values (e.g., beat frequency, cilia length for CiliaryFunctionAssay)."
                },
                "id": {
                    "description": "A unique identifier for the entity.",
                    "type": "string"
                },
                "informs_on_key_event": {
                    "anyOf": [
                        {
                            "$ref": "#/$defs/KeyEvent"
                        },
                        {
                            "type": "null"
                        }
                    ],
                    "description": "The Key Event that this assay provides evidence for. This establishes the mechanistic connection between the assay measurements and the Adverse Outcome Pathway framework. Multiple assays can inform on the same key event, providing converging evidence."
                },
                "name": {
                    "description": "A human-readable name for the entity.",
                    "type": [
                        "string",
                        "null"
                    ]
                },
                "study_subject": {
                    "anyOf": [
                        {
                            "$ref": "#/$defs/StudySubject"
                        },
                        {
                            "$ref": "#/$defs/ModelSystem"
                        },
                        {
                            "$ref": "#/$defs/InVivoSubject"
                        },
                        {
                            "$ref": "#/$defs/PopulationSubject"
                        },
                        {
                            "$ref": "#/$defs/CellularSystem"
                        },
                        {
                            "type": "null"
                        }
                    ],
                    "description": "The subject of the study \u2014 what the assay is performed on. Can be a ModelSystem (e.g., CellularSystem), an InVivoSubject, or a PopulationSubject. The type of subject determines which context slots are available."
                }
            },
            "required": [
                "id"
            ],
            "title": "ASLAssay",
            "type": "object"
        },
        "ASLOutput": {
            "additionalProperties": false,
            "description": "Measurement results from an airway surface liquid assay. Contains the measured values for ASL height, periciliary layer depth, and ion composition.",
            "properties": {
                "asl_height_um": {
                    "anyOf": [
                        {
                            "$ref": "#/$defs/QuantityValue"
                        },
                        {
                            "type": "null"
                        }
                    ],
                    "description": "Airway surface liquid height in micrometers. TIER 1 - primary measurement for ASL assays."
                },
                "asl_ph": {
                    "anyOf": [
                        {
                            "$ref": "#/$defs/QuantityValue"
                        },
                        {
                            "type": "null"
                        }
                    ],
                    "description": "pH of airway surface liquid. TIER 3."
                },
                "description": {
                    "description": "A detailed description of the entity.",
                    "type": [
                        "string",
                        "null"
                    ]
                },
                "id": {
                    "description": "A unique identifier for the entity.",
                    "type": "string"
                },
                "ion_composition": {
                    "description": "Ionic composition (Cl-, Na+, K+). TIER 3 - not critical for comparison but relevant for mechanism.",
                    "type": [
                        "string",
                        "null"
                    ]
                },
                "mucus_layer_thickness": {
                    "anyOf": [
                        {
                            "$ref": "#/$defs/QuantityValue"
                        },
                        {
                            "type": "null"
                        }
                    ],
                    "description": "Thickness of the mucus gel layer in micrometers. TIER 2."
                },
                "name": {
                    "description": "A human-readable name for the entity.",
                    "type": [
                        "string",
                        "null"
                    ]
                },
                "periciliary_layer_depth": {
                    "anyOf": [
                        {
                            "$ref": "#/$defs/QuantityValue"
                        },
                        {
                            "type": "null"
                        }
                    ],
                    "description": "Depth of the periciliary layer in micrometers. TIER 1 - helps give confidence to the outcome."
                }
            },
            "required": [
                "id"
            ],
            "title": "ASLOutput",
            "type": "object"
        },
        "AdverseOutcome": {
            "additionalProperties": false,
            "description": "An adverse health outcome at the organism or population level that represents the apical endpoint of an Adverse Outcome Pathway. This is the final, clinically or ecologically relevant effect.",
            "properties": {
                "aopwiki_id": {
                    "description": "The AOP-Wiki identifier for this entity (e.g., \"AOP:411\" for an AOP, \"KE:1234\" for a key event).",
                    "type": [
                        "string",
                        "null"
                    ]
                },
                "biological_process": {
                    "description": "The biological process affected by this key event. Should reference a GO biological process term.",
                    "pattern": "^GO:\\d{7}$",
                    "type": [
                        "string",
                        "null"
                    ]
                },
                "description": {
                    "description": "A detailed description of the entity.",
                    "type": [
                        "string",
                        "null"
                    ]
                },
                "id": {
                    "description": "A unique identifier for the entity.",
                    "type": "string"
                },
                "name": {
                    "description": "A human-readable name for the entity.",
                    "type": [
                        "string",
                        "null"
                    ]
                },
                "occurs_in_anatomy": {
                    "description": "The anatomical location where this key event occurs. Should reference a UBERON anatomy term.",
                    "pattern": "^UBERON:\\d{7}$",
                    "type": [
                        "string",
                        "null"
                    ]
                },
                "outcome_level": {
                    "$ref": "#/$defs/OutcomeLevelEnum",
                    "description": "The level at which the adverse outcome manifests (individual, population)."
                }
            },
            "required": [
                "id"
            ],
            "title": "AdverseOutcome",
            "type": "object"
        },
        "AdverseOutcomePathway": {
            "additionalProperties": false,
            "description": "A sequence of causally linked events at different levels of biological organization that lead from a molecular initiating event through intermediate key events to an adverse health outcome. AOPs provide a structured framework for organizing mechanistic evidence.",
            "properties": {
                "adverse_outcome": {
                    "anyOf": [
                        {
                            "$ref": "#/$defs/AdverseOutcome"
                        },
                        {
                            "type": "null"
                        }
                    ],
                    "description": "The adverse outcome that is the apical endpoint of this AOP."
                },
                "aopwiki_id": {
                    "description": "The AOP-Wiki identifier for this entity (e.g., \"AOP:411\" for an AOP, \"KE:1234\" for a key event).",
                    "type": [
                        "string",
                        "null"
                    ]
                },
                "description": {
                    "description": "A detailed description of the entity.",
                    "type": [
                        "string",
                        "null"
                    ]
                },
                "id": {
                    "description": "A unique identifier for the entity.",
                    "type": "string"
                },
                "key_event_relationships": {
                    "description": "The key event relationships connecting events in this AOP.",
                    "items": {
                        "$ref": "#/$defs/KeyEventRelationship"
                    },
                    "type": [
                        "array",
                        "null"
                    ]
                },
                "key_events": {
                    "description": "The key events in this AOP (intermediate events between MIE and AO).",
                    "items": {
                        "$ref": "#/$defs/KeyEvent"
                    },
                    "type": [
                        "array",
                        "null"
                    ]
                },
                "molecular_initiating_event": {
                    "anyOf": [
                        {
                            "$ref": "#/$defs/MolecularInitiatingEvent"
                        },
                        {
                            "type": "null"
                        }
                    ],
                    "description": "The molecular initiating event that starts this AOP."
                },
                "name": {
                    "description": "A human-readable name for the entity.",
                    "type": [
                        "string",
                        "null"
                    ]
                },
                "stressors": {
                    "description": "Chemical or physical stressors that can trigger this AOP.",
                    "items": {
                        "type": "string"
                    },
                    "type": [
                        "array",
                        "null"
                    ]
                }
            },
            "required": [
                "id"
            ],
            "title": "AdverseOutcomePathway",
            "type": "object"
        },
        "AnatomicalEntityReference": {
            "additionalProperties": false,
            "description": "A reference to an anatomical entity from UBERON.",
            "properties": {
                "id": {
                    "description": "A unique identifier for the entity.",
                    "pattern": "^UBERON:\\d{7}$",
                    "type": "string"
                },
                "name": {
                    "description": "A human-readable name for the entity.",
                    "type": [
                        "string",
                        "null"
                    ]
                }
            },
            "required": [
                "id"
            ],
            "title": "AnatomicalEntityReference",
            "type": "object"
        },
        "AssayContextCapabilityEnum": {
            "description": "Indicates what experimental contexts an assay class supports. Used to constrain valid study_subject types and enable context-appropriate slots.",
            "enum": [
                "in_vitro_only",
                "in_vivo_only",
                "in_vitro_or_in_vivo"
            ],
            "title": "AssayContextCapabilityEnum",
            "type": "string"
        },
        "BALFSputumAssay": {
            "additionalProperties": false,
            "description": "Assay for measuring bronchoalveolar lavage fluid (BALF) or sputum composition. Informs on Key Event: \"Airway inflammation\" and provides evidence for inflammatory cell populations and cytokine levels.\nThis assay is IN VIVO ONLY - requires samples from human or animal subjects.",
            "properties": {
                "assay_date": {
                    "description": "Date when the assay was performed.",
                    "format": "date",
                    "type": [
                        "string",
                        "null"
                    ]
                },
                "description": {
                    "description": "A detailed description of the entity.",
                    "type": [
                        "string",
                        "null"
                    ]
                },
                "follows_protocols": {
                    "description": "The Protocol(s) that this assay follows. Any Protocol or Protocol subclass (ImagingProtocol, StainingProtocol, SpirometryProtocol, MolecularAssayProtocol) is valid. Use this for general protocol references; assay subclasses also have typed protocol slots for domain-specific protocols.",
                    "items": {
                        "anyOf": [
                            {
                                "$ref": "#/$defs/Protocol"
                            },
                            {
                                "$ref": "#/$defs/ImagingProtocol"
                            },
                            {
                                "$ref": "#/$defs/StainingProtocol"
                            },
                            {
                                "$ref": "#/$defs/SpirometryProtocol"
                            },
                            {
                                "$ref": "#/$defs/MolecularAssayProtocol"
                            }
                        ]
                    },
                    "type": [
                        "array",
                        "null"
                    ]
                },
                "has_exposure_condition": {
                    "description": "The exposure condition(s) applied to the study subject. Captures the agent, concentration, duration, and timing of exposure/treatment. Multivalued to support co-exposures or dose-response series.",
                    "items": {
                        "$ref": "#/$defs/ExposureCondition"
                    },
                    "type": [
                        "array",
                        "null"
                    ]
                },
                "has_specified_output": {
                    "anyOf": [
                        {
                            "$ref": "#/$defs/BALFSputumOutput"
                        },
                        {
                            "type": "null"
                        }
                    ],
                    "description": "The measurement results produced by this assay \u2014 the specified output of a planned process (OBI). Contains the domain-specific measurement values (e.g., beat frequency, cilia length for CiliaryFunctionAssay)."
                },
                "id": {
                    "description": "A unique identifier for the entity.",
                    "type": "string"
                },
                "informs_on_key_event": {
                    "anyOf": [
                        {
                            "$ref": "#/$defs/KeyEvent"
                        },
                        {
                            "type": "null"
                        }
                    ],
                    "description": "The Key Event that this assay provides evidence for. This establishes the mechanistic connection between the assay measurements and the Adverse Outcome Pathway framework. Multiple assays can inform on the same key event, providing converging evidence."
                },
                "name": {
                    "description": "A human-readable name for the entity.",
                    "type": [
                        "string",
                        "null"
                    ]
                },
                "study_subject": {
                    "anyOf": [
                        {
                            "$ref": "#/$defs/InVivoSubject"
                        },
                        {
                            "type": "null"
                        }
                    ],
                    "description": "The subject of the study \u2014 what the assay is performed on. Can be a ModelSystem (e.g., CellularSystem), an InVivoSubject, or a PopulationSubject. The type of subject determines which context slots are available."
                },
                "target_cell_type": {
                    "anyOf": [
                        {
                            "$ref": "#/$defs/CellTypeReference"
                        },
                        {
                            "type": "null"
                        }
                    ],
                    "description": "The specific cell type that is the primary focus of this assay's analysis, when the assay examines multiple cell populations in a sample (e.g., neutrophils in a BALF differential)."
                }
            },
            "required": [
                "id"
            ],
            "title": "BALFSputumAssay",
            "type": "object"
        },
        "BALFSputumOutput": {
            "additionalProperties": false,
            "description": "Measurement results from a BALF/sputum assay. Contains inflammatory cell differentials, cytokine concentrations, and microbiome metrics.",
            "properties": {
                "alpha_diversity": {
                    "anyOf": [
                        {
                            "$ref": "#/$defs/QuantityValue"
                        },
                        {
                            "type": "null"
                        }
                    ],
                    "description": "Alpha diversity (microbiome)."
                },
                "bacterial_load": {
                    "anyOf": [
                        {
                            "$ref": "#/$defs/QuantityValue"
                        },
                        {
                            "type": "null"
                        }
                    ],
                    "description": "Bacterial load (16S copies or CFU)."
                },
                "beta_diversity": {
                    "anyOf": [
                        {
                            "$ref": "#/$defs/QuantityValue"
                        },
                        {
                            "type": "null"
                        }
                    ],
                    "description": "Beta diversity (microbiome)."
                },
                "cell_free_dna": {
                    "anyOf": [
                        {
                            "$ref": "#/$defs/QuantityValue"
                        },
                        {
                            "type": "null"
                        }
                    ],
                    "description": "Cell-free DNA concentration."
                },
                "description": {
                    "description": "A detailed description of the entity.",
                    "type": [
                        "string",
                        "null"
                    ]
                },
                "eosinophil_percentage": {
                    "anyOf": [
                        {
                            "$ref": "#/$defs/QuantityValue"
                        },
                        {
                            "type": "null"
                        }
                    ],
                    "description": "Eosinophil percentage in BALF/sputum."
                },
                "id": {
                    "description": "A unique identifier for the entity.",
                    "type": "string"
                },
                "il1_beta_concentration": {
                    "anyOf": [
                        {
                            "$ref": "#/$defs/QuantityValue"
                        },
                        {
                            "type": "null"
                        }
                    ],
                    "description": "IL-1 beta concentration."
                },
                "il6_concentration": {
                    "anyOf": [
                        {
                            "$ref": "#/$defs/QuantityValue"
                        },
                        {
                            "type": "null"
                        }
                    ],
                    "description": "IL-6 concentration."
                },
                "il8_concentration": {
                    "anyOf": [
                        {
                            "$ref": "#/$defs/QuantityValue"
                        },
                        {
                            "type": "null"
                        }
                    ],
                    "description": "IL-8 concentration."
                },
                "lymphocyte_percentage": {
                    "anyOf": [
                        {
                            "$ref": "#/$defs/QuantityValue"
                        },
                        {
                            "type": "null"
                        }
                    ],
                    "description": "Lymphocyte percentage in BALF/sputum."
                },
                "macrophage_percentage": {
                    "anyOf": [
                        {
                            "$ref": "#/$defs/QuantityValue"
                        },
                        {
                            "type": "null"
                        }
                    ],
                    "description": "Macrophage percentage in BALF/sputum."
                },
                "name": {
                    "description": "A human-readable name for the entity.",
                    "type": [
                        "string",
                        "null"
                    ]
                },
                "neutrophil_percentage": {
                    "anyOf": [
                        {
                            "$ref": "#/$defs/QuantityValue"
                        },
                        {
                            "type": "null"
                        }
                    ],
                    "description": "Neutrophil percentage in BALF/sputum."
                },
                "tnf_alpha_concentration": {
                    "anyOf": [
                        {
                            "$ref": "#/$defs/QuantityValue"
                        },
                        {
                            "type": "null"
                        }
                    ],
                    "description": "TNF-alpha concentration."
                },
                "total_cell_count": {
                    "anyOf": [
                        {
                            "$ref": "#/$defs/QuantityValue"
                        },
                        {
                            "type": "null"
                        }
                    ],
                    "description": "Total cell count in BALF/sputum."
                },
                "total_protein_concentration": {
                    "anyOf": [
                        {
                            "$ref": "#/$defs/QuantityValue"
                        },
                        {
                            "type": "null"
                        }
                    ],
                    "description": "Total protein concentration."
                }
            },
            "required": [
                "id"
            ],
            "title": "BALFSputumOutput",
            "type": "object"
        },
        "BiologicalActionEnum": {
            "description": "Types of biological changes or actions in key events.",
            "enum": [
                "increased",
                "decreased",
                "altered",
                "impaired",
                "disrupted",
                "activated",
                "inhibited"
            ],
            "title": "BiologicalActionEnum",
            "type": "string"
        },
        "BiologicalOrganizationLevelEnum": {
            "description": "Levels of biological organization for key events.",
            "enum": [
                "molecular",
                "cellular",
                "tissue",
                "organ",
                "organism",
                "population"
            ],
            "title": "BiologicalOrganizationLevelEnum",
            "type": "string"
        },
        "CFTRFunctionAssay": {
            "additionalProperties": false,
            "description": "Assay for measuring CFTR (Cystic Fibrosis Transmembrane Conductance Regulator) function. Informs on Key Event: \"Decreased CFTR function\" in cystic fibrosis-related AOPs.",
            "properties": {
                "assay_date": {
                    "description": "Date when the assay was performed.",
                    "format": "date",
                    "type": [
                        "string",
                        "null"
                    ]
                },
                "description": {
                    "description": "A detailed description of the entity.",
                    "type": [
                        "string",
                        "null"
                    ]
                },
                "follows_protocols": {
                    "description": "The Protocol(s) that this assay follows. Any Protocol or Protocol subclass (ImagingProtocol, StainingProtocol, SpirometryProtocol, MolecularAssayProtocol) is valid. Use this for general protocol references; assay subclasses also have typed protocol slots for domain-specific protocols.",
                    "items": {
                        "anyOf": [
                            {
                                "$ref": "#/$defs/Protocol"
                            },
                            {
                                "$ref": "#/$defs/ImagingProtocol"
                            },
                            {
                                "$ref": "#/$defs/StainingProtocol"
                            },
                            {
                                "$ref": "#/$defs/SpirometryProtocol"
                            },
                            {
                                "$ref": "#/$defs/MolecularAssayProtocol"
                            }
                        ]
                    },
                    "type": [
                        "array",
                        "null"
                    ]
                },
                "has_exposure_condition": {
                    "description": "The exposure condition(s) applied to the study subject. Captures the agent, concentration, duration, and timing of exposure/treatment. Multivalued to support co-exposures or dose-response series.",
                    "items": {
                        "$ref": "#/$defs/ExposureCondition"
                    },
                    "type": [
                        "array",
                        "null"
                    ]
                },
                "has_specified_output": {
                    "anyOf": [
                        {
                            "$ref": "#/$defs/CFTRFunctionOutput"
                        },
                        {
                            "type": "null"
                        }
                    ],
                    "description": "The measurement results produced by this assay \u2014 the specified output of a planned process (OBI). Contains the domain-specific measurement values (e.g., beat frequency, cilia length for CiliaryFunctionAssay)."
                },
                "id": {
                    "description": "A unique identifier for the entity.",
                    "type": "string"
                },
                "informs_on_key_event": {
                    "anyOf": [
                        {
                            "$ref": "#/$defs/KeyEvent"
                        },
                        {
                            "type": "null"
                        }
                    ],
                    "description": "The Key Event that this assay provides evidence for. This establishes the mechanistic connection between the assay measurements and the Adverse Outcome Pathway framework. Multiple assays can inform on the same key event, providing converging evidence."
                },
                "inhibitor_used": {
                    "description": "Inhibitor used (e.g., CFTRinh-172).",
                    "type": [
                        "string",
                        "null"
                    ]
                },
                "name": {
                    "description": "A human-readable name for the entity.",
                    "type": [
                        "string",
                        "null"
                    ]
                },
                "stimulation_agent": {
                    "description": "Stimulation agent used (e.g., forskolin concentration).",
                    "type": [
                        "string",
                        "null"
                    ]
                },
                "study_subject": {
                    "anyOf": [
                        {
                            "$ref": "#/$defs/StudySubject"
                        },
                        {
                            "$ref": "#/$defs/ModelSystem"
                        },
                        {
                            "$ref": "#/$defs/InVivoSubject"
                        },
                        {
                            "$ref": "#/$defs/PopulationSubject"
                        },
                        {
                            "$ref": "#/$defs/CellularSystem"
                        },
                        {
                            "type": "null"
                        }
                    ],
                    "description": "The subject of the study \u2014 what the assay is performed on. Can be a ModelSystem (e.g., CellularSystem), an InVivoSubject, or a PopulationSubject. The type of subject determines which context slots are available."
                }
            },
            "required": [
                "id"
            ],
            "title": "CFTRFunctionAssay",
            "type": "object"
        },
        "CFTRFunctionOutput": {
            "additionalProperties": false,
            "description": "Measurement results from a CFTR function assay. Contains the measured values for CFTR-mediated chloride secretion, forskolin response, and related electrophysiology measurements.",
            "properties": {
                "cftr_chloride_secretion": {
                    "anyOf": [
                        {
                            "$ref": "#/$defs/QuantityValue"
                        },
                        {
                            "type": "null"
                        }
                    ],
                    "description": "CFTR-mediated chloride secretion in uA/cm2."
                },
                "cftr_forskolin_response": {
                    "anyOf": [
                        {
                            "$ref": "#/$defs/QuantityValue"
                        },
                        {
                            "type": "null"
                        }
                    ],
                    "description": "Forskolin-stimulated CFTR response."
                },
                "cftr_specific_current": {
                    "anyOf": [
                        {
                            "$ref": "#/$defs/QuantityValue"
                        },
                        {
                            "type": "null"
                        }
                    ],
                    "description": "CFTR-specific chloride secretory current."
                },
                "description": {
                    "description": "A detailed description of the entity.",
                    "type": [
                        "string",
                        "null"
                    ]
                },
                "id": {
                    "description": "A unique identifier for the entity.",
                    "type": "string"
                },
                "inhibitor_sensitive_current": {
                    "anyOf": [
                        {
                            "$ref": "#/$defs/QuantityValue"
                        },
                        {
                            "type": "null"
                        }
                    ],
                    "description": "Inhibitor-sensitive current measurement."
                },
                "name": {
                    "description": "A human-readable name for the entity.",
                    "type": [
                        "string",
                        "null"
                    ]
                },
                "nasal_potential_difference": {
                    "anyOf": [
                        {
                            "$ref": "#/$defs/QuantityValue"
                        },
                        {
                            "type": "null"
                        }
                    ],
                    "description": "Nasal potential difference in mV."
                },
                "sweat_chloride_concentration": {
                    "anyOf": [
                        {
                            "$ref": "#/$defs/QuantityValue"
                        },
                        {
                            "type": "null"
                        }
                    ],
                    "description": "Sweat chloride concentration in mEq/L (CF diagnostic)."
                }
            },
            "required": [
                "id"
            ],
            "title": "CFTRFunctionOutput",
            "type": "object"
        },
        "CellCultureConditions": {
            "additionalProperties": false,
            "description": "Detailed cell culture parameters including medium, environment, and timing.",
            "properties": {
                "cell_culture_growth_mode": {
                    "$ref": "#/$defs/CellCultureGrowthModeEnum"
                },
                "culture_media": {
                    "anyOf": [
                        {
                            "$ref": "#/$defs/CellCultureMedium"
                        },
                        {
                            "type": "null"
                        }
                    ]
                },
                "days_at_air_liquid_interface": {
                    "type": [
                        "integer",
                        "null"
                    ]
                },
                "donor_count": {
                    "type": [
                        "integer",
                        "null"
                    ]
                },
                "id": {
                    "description": "A unique identifier for the entity.",
                    "type": "string"
                },
                "name": {
                    "description": "A human-readable name for the entity.",
                    "type": [
                        "string",
                        "null"
                    ]
                },
                "passage_number": {
                    "type": [
                        "integer",
                        "null"
                    ]
                },
                "replicates_per_donor": {
                    "description": "Number of biological replicates per donor.",
                    "type": [
                        "integer",
                        "null"
                    ]
                },
                "substrate_type": {
                    "$ref": "#/$defs/SubstrateTypeEnum"
                }
            },
            "required": [
                "id"
            ],
            "title": "CellCultureConditions",
            "type": "object"
        },
        "CellCultureGrowthModeEnum": {
            "description": "Cell culture growth modes.",
            "enum": [
                "adherent",
                "suspension",
                "air_liquid_interface",
                "three_dimensional",
                "organoid",
                "spheroid"
            ],
            "title": "CellCultureGrowthModeEnum",
            "type": "string"
        },
        "CellCultureMedium": {
            "additionalProperties": false,
            "description": "Detailed formulation of cell culture medium including base medium and supplements.",
            "properties": {
                "base_medium": {
                    "type": [
                        "string",
                        "null"
                    ]
                },
                "catalog_number": {
                    "type": [
                        "string",
                        "null"
                    ]
                },
                "id": {
                    "description": "A unique identifier for the entity.",
                    "type": "string"
                },
                "lot_number": {
                    "type": [
                        "string",
                        "null"
                    ]
                },
                "manufacturer": {
                    "type": [
                        "string",
                        "null"
                    ]
                },
                "name": {
                    "description": "A human-readable name for the entity.",
                    "type": [
                        "string",
                        "null"
                    ]
                },
                "osmolality": {
                    "anyOf": [
                        {
                            "$ref": "#/$defs/QuantityValue"
                        },
                        {
                            "type": "null"
                        }
                    ]
                },
                "preparation_date": {
                    "format": "date",
                    "type": [
                        "string",
                        "null"
                    ]
                },
                "serum_concentration": {
                    "anyOf": [
                        {
                            "$ref": "#/$defs/QuantityValue"
                        },
                        {
                            "type": "null"
                        }
                    ]
                },
                "serum_type": {
                    "type": [
                        "string",
                        "null"
                    ]
                },
                "supplements": {
                    "items": {
                        "$ref": "#/$defs/MediumSupplement"
                    },
                    "type": [
                        "array",
                        "null"
                    ]
                }
            },
            "required": [
                "id"
            ],
            "title": "CellCultureMedium",
            "type": "object"
        },
        "CellLine": {
            "additionalProperties": false,
            "description": "A cell line - a genetically stable cultured cell population.",
            "properties": {
                "authentication_method": {
                    "type": [
                        "string",
                        "null"
                    ]
                },
                "catalog_number": {
                    "type": [
                        "string",
                        "null"
                    ]
                },
                "cell_type": {
                    "anyOf": [
                        {
                            "$ref": "#/$defs/CellTypeReference"
                        },
                        {
                            "type": "null"
                        }
                    ],
                    "description": "The cell type being studied. Reference to a Cell Ontology (CL) term. Used on CellularSystem and CellLine to describe the cell identity."
                },
                "disease_state": {
                    "type": [
                        "string",
                        "null"
                    ]
                },
                "id": {
                    "description": "A unique identifier for the entity.",
                    "pattern": "^CLO:\\d{7}$",
                    "type": "string"
                },
                "model_species": {
                    "anyOf": [
                        {
                            "$ref": "#/$defs/SpeciesReference"
                        },
                        {
                            "type": "null"
                        }
                    ],
                    "description": "The species of origin for the cells or organism being studied. Reference to NCBITaxon term."
                },
                "mycoplasma_status": {
                    "type": [
                        "string",
                        "null"
                    ]
                },
                "name": {
                    "description": "A human-readable name for the entity.",
                    "type": [
                        "string",
                        "null"
                    ]
                },
                "supplier": {
                    "type": [
                        "string",
                        "null"
                    ]
                },
                "tissue_origin": {
                    "type": [
                        "string",
                        "null"
                    ]
                }
            },
            "required": [
                "id"
            ],
            "title": "CellLine",
            "type": "object"
        },
        "CellTypeReference": {
            "additionalProperties": false,
            "description": "A reference to a cell type from the Cell Ontology (CL).",
            "properties": {
                "id": {
                    "description": "A unique identifier for the entity.",
                    "pattern": "^CL:\\d{7}$",
                    "type": "string"
                },
                "name": {
                    "description": "A human-readable name for the entity.",
                    "type": [
                        "string",
                        "null"
                    ]
                }
            },
            "required": [
                "id"
            ],
            "title": "CellTypeReference",
            "type": "object"
        },
        "CellularSystem": {
            "additionalProperties": false,
            "description": "Cell-based model systems that use living cells to model biological processes.",
            "properties": {
                "anatomical_origin": {
                    "anyOf": [
                        {
                            "$ref": "#/$defs/AnatomicalEntityReference"
                        },
                        {
                            "type": "null"
                        }
                    ]
                },
                "cell_culture_growth_mode": {
                    "$ref": "#/$defs/CellCultureGrowthModeEnum"
                },
                "cell_line": {
                    "anyOf": [
                        {
                            "$ref": "#/$defs/CellLine"
                        },
                        {
                            "type": "null"
                        }
                    ]
                },
                "cell_type": {
                    "anyOf": [
                        {
                            "$ref": "#/$defs/CellTypeReference"
                        },
                        {
                            "type": "null"
                        }
                    ],
                    "description": "The cell type being studied. Reference to a Cell Ontology (CL) term. Used on CellularSystem and CellLine to describe the cell identity."
                },
                "cell_type_ratios": {
                    "items": {
                        "type": "string"
                    },
                    "type": [
                        "array",
                        "null"
                    ]
                },
                "coating": {
                    "type": [
                        "string",
                        "null"
                    ]
                },
                "confluence_level": {
                    "anyOf": [
                        {
                            "$ref": "#/$defs/QuantityValue"
                        },
                        {
                            "type": "null"
                        }
                    ]
                },
                "culture_conditions": {
                    "anyOf": [
                        {
                            "$ref": "#/$defs/CellCultureConditions"
                        },
                        {
                            "type": "null"
                        }
                    ]
                },
                "culture_media": {
                    "anyOf": [
                        {
                            "$ref": "#/$defs/CellCultureMedium"
                        },
                        {
                            "type": "null"
                        }
                    ]
                },
                "days_at_differentiation": {
                    "description": "Days at air-liquid interface or differentiation stage.",
                    "type": [
                        "integer",
                        "null"
                    ]
                },
                "description": {
                    "description": "A detailed description of the entity.",
                    "type": [
                        "string",
                        "null"
                    ]
                },
                "donor_info": {
                    "description": "Information about cell donor (e.g., healthy non-smoker, CF patient, age, anatomical region).",
                    "type": [
                        "string",
                        "null"
                    ]
                },
                "id": {
                    "description": "A unique identifier for the entity.",
                    "type": "string"
                },
                "matrix_composition": {
                    "type": [
                        "string",
                        "null"
                    ]
                },
                "model_species": {
                    "anyOf": [
                        {
                            "$ref": "#/$defs/SpeciesReference"
                        },
                        {
                            "type": "null"
                        }
                    ],
                    "description": "The species of origin for the cells or organism being studied. Reference to NCBITaxon term."
                },
                "name": {
                    "description": "A human-readable name for the entity.",
                    "type": [
                        "string",
                        "null"
                    ]
                },
                "organoid_type": {
                    "type": [
                        "string",
                        "null"
                    ]
                },
                "passage_number": {
                    "type": [
                        "integer",
                        "null"
                    ]
                },
                "primary_cell": {
                    "anyOf": [
                        {
                            "$ref": "#/$defs/CellTypeReference"
                        },
                        {
                            "type": "null"
                        }
                    ]
                },
                "replicates_per_donor": {
                    "description": "Number of biological replicates per donor.",
                    "type": [
                        "integer",
                        "null"
                    ]
                },
                "seeding_density": {
                    "anyOf": [
                        {
                            "$ref": "#/$defs/QuantityValue"
                        },
                        {
                            "type": "null"
                        }
                    ]
                },
                "size_range": {
                    "anyOf": [
                        {
                            "$ref": "#/$defs/QuantityRange"
                        },
                        {
                            "type": "null"
                        }
                    ]
                },
                "subject_type": {
                    "description": "The specific type of study subject. Used to designate which concrete class (e.g., CellularSystem, InVivoSubject) is instantiated for polymorphic study_subject slots.",
                    "enum": [
                        "CellularSystem"
                    ],
                    "type": [
                        "string",
                        "null"
                    ]
                },
                "substrate_type": {
                    "$ref": "#/$defs/SubstrateTypeEnum"
                }
            },
            "required": [
                "id"
            ],
            "title": "CellularSystem",
            "type": "object"
        },
        "ChemicalEntityReference": {
            "additionalProperties": false,
            "description": "A reference to a chemical entity from CHEBI or an exposure concept from ECTO.",
            "properties": {
                "id": {
                    "description": "A unique identifier for the entity.",
                    "pattern": "^(CHEBI:\\d+|ECTO:\\d{7})$",
                    "type": "string"
                },
                "name": {
                    "description": "A human-readable name for the entity.",
                    "type": [
                        "string",
                        "null"
                    ]
                }
            },
            "required": [
                "id"
            ],
            "title": "ChemicalEntityReference",
            "type": "object"
        },
        "CiliaryFunctionAssay": {
            "additionalProperties": false,
            "description": "Assay for measuring ciliary function including beat frequency, active area, cilia morphology, and ciliated cell populations. Informs on Key Event: \"Decreased ciliary function\" in respiratory AOPs.\nCONTEXT: Can be performed in vitro (tissue slices, spheroids) or in vivo (often using optical coherence tomography).\nTIER 1 slots (critical): beat_frequency_hz, active_area_percentage, cilia_length, cilia_per_cell, percentage_ciliated_cells, cell_type_ratios,",
            "properties": {
                "airway_region": {
                    "description": "Region of airway from which cells originated.",
                    "type": [
                        "string",
                        "null"
                    ]
                },
                "analysis_software": {
                    "description": "Software used for analysis (e.g., SAVA, Cilia FA).",
                    "type": [
                        "string",
                        "null"
                    ]
                },
                "assay_date": {
                    "description": "Date when the assay was performed.",
                    "format": "date",
                    "type": [
                        "string",
                        "null"
                    ]
                },
                "description": {
                    "description": "A detailed description of the entity.",
                    "type": [
                        "string",
                        "null"
                    ]
                },
                "follows_protocols": {
                    "description": "The Protocol(s) that this assay follows. Any Protocol or Protocol subclass (ImagingProtocol, StainingProtocol, SpirometryProtocol, MolecularAssayProtocol) is valid. Use this for general protocol references; assay subclasses also have typed protocol slots for domain-specific protocols.",
                    "items": {
                        "anyOf": [
                            {
                                "$ref": "#/$defs/Protocol"
                            },
                            {
                                "$ref": "#/$defs/ImagingProtocol"
                            },
                            {
                                "$ref": "#/$defs/StainingProtocol"
                            },
                            {
                                "$ref": "#/$defs/SpirometryProtocol"
                            },
                            {
                                "$ref": "#/$defs/MolecularAssayProtocol"
                            }
                        ]
                    },
                    "type": [
                        "array",
                        "null"
                    ]
                },
                "has_exposure_condition": {
                    "description": "The exposure condition(s) applied to the study subject. Captures the agent, concentration, duration, and timing of exposure/treatment. Multivalued to support co-exposures or dose-response series.",
                    "items": {
                        "$ref": "#/$defs/ExposureCondition"
                    },
                    "type": [
                        "array",
                        "null"
                    ]
                },
                "has_specified_output": {
                    "anyOf": [
                        {
                            "$ref": "#/$defs/CiliaryFunctionOutput"
                        },
                        {
                            "type": "null"
                        }
                    ],
                    "description": "The measurement results produced by this assay \u2014 the specified output of a planned process (OBI). Contains the domain-specific measurement values (e.g., beat frequency, cilia length for CiliaryFunctionAssay)."
                },
                "id": {
                    "description": "A unique identifier for the entity.",
                    "type": "string"
                },
                "informs_on_key_event": {
                    "anyOf": [
                        {
                            "$ref": "#/$defs/KeyEvent"
                        },
                        {
                            "type": "null"
                        }
                    ],
                    "description": "The Key Event that this assay provides evidence for. This establishes the mechanistic connection between the assay measurements and the Adverse Outcome Pathway framework. Multiple assays can inform on the same key event, providing converging evidence."
                },
                "name": {
                    "description": "A human-readable name for the entity.",
                    "type": [
                        "string",
                        "null"
                    ]
                },
                "study_subject": {
                    "anyOf": [
                        {
                            "$ref": "#/$defs/StudySubject"
                        },
                        {
                            "$ref": "#/$defs/ModelSystem"
                        },
                        {
                            "$ref": "#/$defs/InVivoSubject"
                        },
                        {
                            "$ref": "#/$defs/PopulationSubject"
                        },
                        {
                            "$ref": "#/$defs/CellularSystem"
                        },
                        {
                            "type": "null"
                        }
                    ],
                    "description": "Can be ModelSystem (in vitro - ALI cultures, tissue slices, spheroids) or InVivoSubject (in vivo - OCT measurements)"
                }
            },
            "required": [
                "id"
            ],
            "title": "CiliaryFunctionAssay",
            "type": "object"
        },
        "CiliaryFunctionOutput": {
            "additionalProperties": false,
            "description": "Measurement results from a ciliary function assay. Contains the measured values for ciliary beat frequency, active area, cilia morphology, and ciliated cell populations.",
            "properties": {
                "active_area_percentage": {
                    "anyOf": [
                        {
                            "$ref": "#/$defs/QuantityValue"
                        },
                        {
                            "type": "null"
                        }
                    ],
                    "description": "Percentage of epithelial surface with actively beating cilia. TIER 1 - critical for assessing ciliary coverage."
                },
                "beat_frequency_hz": {
                    "anyOf": [
                        {
                            "$ref": "#/$defs/QuantityValue"
                        },
                        {
                            "type": "null"
                        }
                    ],
                    "description": "Ciliary beat frequency measured in Hz. TIER 1 - critical for assessing ciliary function."
                },
                "cell_type_ratios": {
                    "items": {
                        "type": "string"
                    },
                    "type": [
                        "array",
                        "null"
                    ]
                },
                "cilia_length": {
                    "anyOf": [
                        {
                            "$ref": "#/$defs/QuantityValue"
                        },
                        {
                            "type": "null"
                        }
                    ],
                    "description": "Length of cilia measured in micrometers. TIER 1 - morphological assessment of cilia."
                },
                "cilia_per_cell": {
                    "anyOf": [
                        {
                            "$ref": "#/$defs/QuantityValue"
                        },
                        {
                            "type": "null"
                        }
                    ],
                    "description": "Number of cilia per ciliated cell. TIER 1."
                },
                "ciliary_beat_amplitude": {
                    "anyOf": [
                        {
                            "$ref": "#/$defs/QuantityValue"
                        },
                        {
                            "type": "null"
                        }
                    ],
                    "description": "Amplitude of ciliary beat. TIER 2."
                },
                "ciliary_motion_patterns": {
                    "$ref": "#/$defs/CiliaryMotionPatternEnum",
                    "description": "Patterns of ciliary motion (coordinated, dyskinetic, immotile). TIER 2 - supporting information."
                },
                "description": {
                    "description": "A detailed description of the entity.",
                    "type": [
                        "string",
                        "null"
                    ]
                },
                "id": {
                    "description": "A unique identifier for the entity.",
                    "type": "string"
                },
                "name": {
                    "description": "A human-readable name for the entity.",
                    "type": [
                        "string",
                        "null"
                    ]
                },
                "percentage_ciliated_cells": {
                    "anyOf": [
                        {
                            "$ref": "#/$defs/QuantityValue"
                        },
                        {
                            "type": "null"
                        }
                    ],
                    "description": "Percentage of cells that are ciliated. TIER 1 - critical for understanding ciliated cell populations."
                }
            },
            "required": [
                "id"
            ],
            "title": "CiliaryFunctionOutput",
            "type": "object"
        },
        "CiliaryMotionPatternEnum": {
            "description": "Patterns of ciliary motion.",
            "enum": [
                "coordinated",
                "dyskinetic",
                "immotile",
                "rotational",
                "stiff"
            ],
            "title": "CiliaryMotionPatternEnum",
            "type": "string"
        },
        "Container": {
            "additionalProperties": false,
            "description": "Root container for outcomes research data. Organized around ASSAYS that inform on Key Events in Adverse Outcome Pathways (AOPs).\nThe schema is assay-centric: each assay class contains named slots for its specific measurements, with an explicit connection to the Key Event it informs via the informs_on_key_event slot.",
            "properties": {
                "adverse_outcome_pathways": {
                    "description": "Collection of Adverse Outcome Pathways. AOPs describe sequences of causally linked events from molecular initiating events to adverse outcomes.",
                    "items": {
                        "$ref": "#/$defs/AdverseOutcomePathway"
                    },
                    "type": [
                        "array",
                        "null"
                    ]
                },
                "asl_assays": {
                    "description": "Collection of airway surface liquid assays. Informs on Key Event: \"Decreased ASL height\" or \"Altered airway hydration\".",
                    "items": {
                        "$ref": "#/$defs/ASLAssay"
                    },
                    "type": [
                        "array",
                        "null"
                    ]
                },
                "balf_sputum_assays": {
                    "description": "Collection of BALF and sputum assays. In vivo only. Informs on Key Event: \"Airway inflammation\".",
                    "items": {
                        "$ref": "#/$defs/BALFSputumAssay"
                    },
                    "type": [
                        "array",
                        "null"
                    ]
                },
                "cftr_assays": {
                    "description": "Collection of CFTR function assays. Informs on Key Event: \"Decreased CFTR function\".",
                    "items": {
                        "$ref": "#/$defs/CFTRFunctionAssay"
                    },
                    "type": [
                        "array",
                        "null"
                    ]
                },
                "ciliary_function_assays": {
                    "description": "Collection of ciliary function assays. Informs on Key Event: \"Decreased ciliary function\". Contains named slots for beat frequency, active area, cilia length, etc.",
                    "items": {
                        "$ref": "#/$defs/CiliaryFunctionAssay"
                    },
                    "type": [
                        "array",
                        "null"
                    ]
                },
                "egfr_signaling_assays": {
                    "description": "Collection of EGFR signaling assays. Informs on Key Event: \"EGFR activation\". Note: EGFR phosphorylation is the most specific evidence for activation.",
                    "items": {
                        "$ref": "#/$defs/EGFRSignalingAssay"
                    },
                    "type": [
                        "array",
                        "null"
                    ]
                },
                "foxj_assays": {
                    "description": "Collection of FoxJ1/ciliogenesis assays. Informs on Key Event: \"Altered ciliogenesis\".",
                    "items": {
                        "$ref": "#/$defs/FoxJExpressionAssay"
                    },
                    "type": [
                        "array",
                        "null"
                    ]
                },
                "gene_expression_assays": {
                    "description": "Collection of gene expression assays. Generic assay for gene/protein expression measurements.",
                    "items": {
                        "$ref": "#/$defs/GeneExpressionAssay"
                    },
                    "type": [
                        "array",
                        "null"
                    ]
                },
                "goblet_cell_assays": {
                    "description": "Collection of goblet cell and mucin assays. Informs on Key Event: \"Goblet cell hyperplasia\" or \"Mucin hypersecretion\". Combined from previous GobletCellMeasurement and MucinProductionMeasurement.",
                    "items": {
                        "$ref": "#/$defs/GobletCellAssay"
                    },
                    "type": [
                        "array",
                        "null"
                    ]
                },
                "key_events": {
                    "description": "The key events in this AOP (intermediate events between MIE and AO).",
                    "items": {
                        "$ref": "#/$defs/KeyEvent"
                    },
                    "type": [
                        "array",
                        "null"
                    ]
                },
                "lung_function_assays": {
                    "description": "Collection of lung function assays. In vivo only. Informs on Adverse Outcome: \"Decreased lung function\" - the composite clinical outcome.",
                    "items": {
                        "$ref": "#/$defs/LungFunctionAssay"
                    },
                    "type": [
                        "array",
                        "null"
                    ]
                },
                "mcc_assays": {
                    "description": "Collection of mucociliary clearance assays. Informs on Key Event: \"Impaired mucociliary clearance\".",
                    "items": {
                        "$ref": "#/$defs/MucociliaryClearanceAssay"
                    },
                    "type": [
                        "array",
                        "null"
                    ]
                },
                "oxidative_stress_assays": {
                    "description": "Collection of oxidative stress assays. Informs on Key Event: \"Increased oxidative stress\" - often a Molecular Initiating Event.",
                    "items": {
                        "$ref": "#/$defs/OxidativeStressAssay"
                    },
                    "type": [
                        "array",
                        "null"
                    ]
                },
                "protocols": {
                    "description": "Collection of protocols. Contains Tier 2/3 procedural details important for reproducibility.",
                    "items": {
                        "anyOf": [
                            {
                                "$ref": "#/$defs/Protocol"
                            },
                            {
                                "$ref": "#/$defs/ImagingProtocol"
                            },
                            {
                                "$ref": "#/$defs/StainingProtocol"
                            },
                            {
                                "$ref": "#/$defs/SpirometryProtocol"
                            },
                            {
                                "$ref": "#/$defs/MolecularAssayProtocol"
                            }
                        ]
                    },
                    "type": [
                        "array",
                        "null"
                    ]
                }
            },
            "title": "Container",
            "type": "object"
        },
        "DirectionalityEnum": {
            "description": "Directionality of mucociliary transport.",
            "enum": [
                "normal",
                "reversed",
                "absent",
                "variable"
            ],
            "title": "DirectionalityEnum",
            "type": "string"
        },
        "EGFRSignalingAssay": {
            "additionalProperties": false,
            "description": "Assay for measuring EGFR phosphorylation and downstream signaling. Informs on Key Event: \"EGFR activation\" in mucus hypersecretion AOPs.\nIMPORTANT: EGFR phosphorylation is the MOST SPECIFIC evidence for activation. Downstream kinase data alone is insufficient - needs phosphorylation measure OR inhibitor reversal for strong evidence. Cell type matters due to receptor location in ALI cultures.\nTIER 1 slots (critical): egfr_phosphorylation with site specification.",
            "properties": {
                "assay_date": {
                    "description": "Date when the assay was performed.",
                    "format": "date",
                    "type": [
                        "string",
                        "null"
                    ]
                },
                "description": {
                    "description": "A detailed description of the entity.",
                    "type": [
                        "string",
                        "null"
                    ]
                },
                "follows_protocols": {
                    "description": "The Protocol(s) that this assay follows. Any Protocol or Protocol subclass (ImagingProtocol, StainingProtocol, SpirometryProtocol, MolecularAssayProtocol) is valid. Use this for general protocol references; assay subclasses also have typed protocol slots for domain-specific protocols.",
                    "items": {
                        "anyOf": [
                            {
                                "$ref": "#/$defs/Protocol"
                            },
                            {
                                "$ref": "#/$defs/ImagingProtocol"
                            },
                            {
                                "$ref": "#/$defs/StainingProtocol"
                            },
                            {
                                "$ref": "#/$defs/SpirometryProtocol"
                            },
                            {
                                "$ref": "#/$defs/MolecularAssayProtocol"
                            }
                        ]
                    },
                    "type": [
                        "array",
                        "null"
                    ]
                },
                "has_exposure_condition": {
                    "description": "The exposure condition(s) applied to the study subject. Captures the agent, concentration, duration, and timing of exposure/treatment. Multivalued to support co-exposures or dose-response series.",
                    "items": {
                        "$ref": "#/$defs/ExposureCondition"
                    },
                    "type": [
                        "array",
                        "null"
                    ]
                },
                "has_specified_output": {
                    "anyOf": [
                        {
                            "$ref": "#/$defs/EGFRSignalingOutput"
                        },
                        {
                            "type": "null"
                        }
                    ],
                    "description": "The measurement results produced by this assay \u2014 the specified output of a planned process (OBI). Contains the domain-specific measurement values (e.g., beat frequency, cilia length for CiliaryFunctionAssay)."
                },
                "id": {
                    "description": "A unique identifier for the entity.",
                    "type": "string"
                },
                "informs_on_key_event": {
                    "anyOf": [
                        {
                            "$ref": "#/$defs/KeyEvent"
                        },
                        {
                            "type": "null"
                        }
                    ],
                    "description": "The Key Event that this assay provides evidence for. This establishes the mechanistic connection between the assay measurements and the Adverse Outcome Pathway framework. Multiple assays can inform on the same key event, providing converging evidence."
                },
                "name": {
                    "description": "A human-readable name for the entity.",
                    "type": [
                        "string",
                        "null"
                    ]
                },
                "normalization_reference": {
                    "description": "Normalization reference (beta-actin, GAPDH, total EGFR).",
                    "type": [
                        "string",
                        "null"
                    ]
                },
                "phosphorylation_site": {
                    "description": "Specific phosphorylation site being measured.",
                    "type": [
                        "string",
                        "null"
                    ]
                },
                "study_subject": {
                    "anyOf": [
                        {
                            "$ref": "#/$defs/StudySubject"
                        },
                        {
                            "$ref": "#/$defs/ModelSystem"
                        },
                        {
                            "$ref": "#/$defs/InVivoSubject"
                        },
                        {
                            "$ref": "#/$defs/PopulationSubject"
                        },
                        {
                            "$ref": "#/$defs/CellularSystem"
                        },
                        {
                            "type": "null"
                        }
                    ],
                    "description": "The subject of the study \u2014 what the assay is performed on. Can be a ModelSystem (e.g., CellularSystem), an InVivoSubject, or a PopulationSubject. The type of subject determines which context slots are available."
                }
            },
            "required": [
                "id"
            ],
            "title": "EGFRSignalingAssay",
            "type": "object"
        },
        "EGFRSignalingOutput": {
            "additionalProperties": false,
            "description": "Measurement results from an EGFR signaling assay. Contains the measured values for EGFR phosphorylation, total protein, and downstream kinase activation.",
            "properties": {
                "akt_phosphorylation": {
                    "anyOf": [
                        {
                            "$ref": "#/$defs/QuantityValue"
                        },
                        {
                            "type": "null"
                        }
                    ],
                    "description": "AKT phosphorylation level. TIER 2."
                },
                "description": {
                    "description": "A detailed description of the entity.",
                    "type": [
                        "string",
                        "null"
                    ]
                },
                "downstream_kinase_activation": {
                    "description": "Activation levels of downstream kinases. TIER 2 - not specific to EGFR alone without phosphorylation data.",
                    "type": [
                        "string",
                        "null"
                    ]
                },
                "egfr_ligand_expression": {
                    "anyOf": [
                        {
                            "$ref": "#/$defs/QuantityValue"
                        },
                        {
                            "type": "null"
                        }
                    ],
                    "description": "Expression of EGFR ligands (EGF, TGF-alpha, amphiregulin)."
                },
                "egfr_membrane_localization": {
                    "anyOf": [
                        {
                            "$ref": "#/$defs/QuantityValue"
                        },
                        {
                            "type": "null"
                        }
                    ],
                    "description": "EGFR membrane localization percentage."
                },
                "egfr_phosphorylation_y1068": {
                    "anyOf": [
                        {
                            "$ref": "#/$defs/QuantityValue"
                        },
                        {
                            "type": "null"
                        }
                    ],
                    "description": "EGFR phosphorylation at Y1068 residue (fold change). TIER 1 - MOST SPECIFIC evidence for EGFR activation."
                },
                "egfr_phosphorylation_y1173": {
                    "anyOf": [
                        {
                            "$ref": "#/$defs/QuantityValue"
                        },
                        {
                            "type": "null"
                        }
                    ],
                    "description": "EGFR phosphorylation at Y1173 residue (fold change). TIER 1."
                },
                "erk_phosphorylation": {
                    "anyOf": [
                        {
                            "$ref": "#/$defs/QuantityValue"
                        },
                        {
                            "type": "null"
                        }
                    ],
                    "description": "ERK phosphorylation level. TIER 2."
                },
                "id": {
                    "description": "A unique identifier for the entity.",
                    "type": "string"
                },
                "name": {
                    "description": "A human-readable name for the entity.",
                    "type": [
                        "string",
                        "null"
                    ]
                },
                "pathway_biomarkers": {
                    "description": "Pathway-specific biomarker signatures. TIER 2 - relationship to outcome needs further investigation.",
                    "items": {
                        "type": "string"
                    },
                    "type": [
                        "array",
                        "null"
                    ]
                },
                "total_egfr_protein": {
                    "anyOf": [
                        {
                            "$ref": "#/$defs/QuantityValue"
                        },
                        {
                            "type": "null"
                        }
                    ],
                    "description": "Total EGFR protein level (loading control). TIER 1."
                }
            },
            "required": [
                "id"
            ],
            "title": "EGFRSignalingOutput",
            "type": "object"
        },
        "EvidenceSupportEnum": {
            "description": "Levels of evidence support for key event relationships.",
            "enum": [
                "strong",
                "moderate",
                "weak",
                "not_specified"
            ],
            "title": "EvidenceSupportEnum",
            "type": "string"
        },
        "ExposureCondition": {
            "additionalProperties": false,
            "description": "A structured description of an exposure or treatment applied to a biological system. Captures what agent was applied, at what concentration, for how long, and when the measurement was taken relative to exposure.",
            "properties": {
                "exposure_agent": {
                    "anyOf": [
                        {
                            "$ref": "#/$defs/ChemicalEntityReference"
                        },
                        {
                            "type": "null"
                        }
                    ],
                    "description": "The chemical, biological, or environmental agent used for exposure or treatment. Reference to a CHEBI or ECTO ontology term."
                },
                "exposure_concentration": {
                    "anyOf": [
                        {
                            "$ref": "#/$defs/QuantityValue"
                        },
                        {
                            "type": "null"
                        }
                    ],
                    "description": "Concentration of the exposure agent applied."
                },
                "exposure_duration": {
                    "anyOf": [
                        {
                            "$ref": "#/$defs/QuantityValue"
                        },
                        {
                            "type": "null"
                        }
                    ],
                    "description": "Duration of exposure or treatment."
                },
                "id": {
                    "description": "A unique identifier for the entity.",
                    "type": "string"
                },
                "name": {
                    "description": "A human-readable name for the entity.",
                    "type": [
                        "string",
                        "null"
                    ]
                },
                "timing_post_exposure": {
                    "anyOf": [
                        {
                            "$ref": "#/$defs/QuantityValue"
                        },
                        {
                            "type": "null"
                        }
                    ],
                    "description": "Time after exposure when the measurement was taken. Used to capture the temporal relationship between exposure and assay readout."
                }
            },
            "required": [
                "id"
            ],
            "title": "ExposureCondition",
            "type": "object"
        },
        "FoxJExpressionAssay": {
            "additionalProperties": false,
            "description": "Assay for measuring FoxJ1 expression related to ciliogenesis. Informs on Key Event: \"Altered ciliogenesis\" in respiratory AOPs. FoxJ1 is a master transcription factor for motile cilia.\nThis assay is primarily IN VITRO focused.",
            "properties": {
                "assay_date": {
                    "description": "Date when the assay was performed.",
                    "format": "date",
                    "type": [
                        "string",
                        "null"
                    ]
                },
                "description": {
                    "description": "A detailed description of the entity.",
                    "type": [
                        "string",
                        "null"
                    ]
                },
                "follows_protocols": {
                    "description": "The Protocol(s) that this assay follows. Any Protocol or Protocol subclass (ImagingProtocol, StainingProtocol, SpirometryProtocol, MolecularAssayProtocol) is valid. Use this for general protocol references; assay subclasses also have typed protocol slots for domain-specific protocols.",
                    "items": {
                        "anyOf": [
                            {
                                "$ref": "#/$defs/Protocol"
                            },
                            {
                                "$ref": "#/$defs/ImagingProtocol"
                            },
                            {
                                "$ref": "#/$defs/StainingProtocol"
                            },
                            {
                                "$ref": "#/$defs/SpirometryProtocol"
                            },
                            {
                                "$ref": "#/$defs/MolecularAssayProtocol"
                            }
                        ]
                    },
                    "type": [
                        "array",
                        "null"
                    ]
                },
                "has_exposure_condition": {
                    "description": "The exposure condition(s) applied to the study subject. Captures the agent, concentration, duration, and timing of exposure/treatment. Multivalued to support co-exposures or dose-response series.",
                    "items": {
                        "$ref": "#/$defs/ExposureCondition"
                    },
                    "type": [
                        "array",
                        "null"
                    ]
                },
                "has_specified_output": {
                    "anyOf": [
                        {
                            "$ref": "#/$defs/FoxJExpressionOutput"
                        },
                        {
                            "type": "null"
                        }
                    ],
                    "description": "The measurement results produced by this assay \u2014 the specified output of a planned process (OBI). Contains the domain-specific measurement values (e.g., beat frequency, cilia length for CiliaryFunctionAssay)."
                },
                "id": {
                    "description": "A unique identifier for the entity.",
                    "type": "string"
                },
                "informs_on_key_event": {
                    "anyOf": [
                        {
                            "$ref": "#/$defs/KeyEvent"
                        },
                        {
                            "type": "null"
                        }
                    ],
                    "description": "The Key Event that this assay provides evidence for. This establishes the mechanistic connection between the assay measurements and the Adverse Outcome Pathway framework. Multiple assays can inform on the same key event, providing converging evidence."
                },
                "name": {
                    "description": "A human-readable name for the entity.",
                    "type": [
                        "string",
                        "null"
                    ]
                },
                "study_subject": {
                    "anyOf": [
                        {
                            "$ref": "#/$defs/StudySubject"
                        },
                        {
                            "$ref": "#/$defs/ModelSystem"
                        },
                        {
                            "$ref": "#/$defs/InVivoSubject"
                        },
                        {
                            "$ref": "#/$defs/PopulationSubject"
                        },
                        {
                            "$ref": "#/$defs/CellularSystem"
                        },
                        {
                            "type": "null"
                        }
                    ],
                    "description": "The subject of the study \u2014 what the assay is performed on. Can be a ModelSystem (e.g., CellularSystem), an InVivoSubject, or a PopulationSubject. The type of subject determines which context slots are available."
                }
            },
            "required": [
                "id"
            ],
            "title": "FoxJExpressionAssay",
            "type": "object"
        },
        "FoxJExpressionOutput": {
            "additionalProperties": false,
            "description": "Measurement results from a FoxJ1 expression assay. Contains the measured values for FoxJ1 mRNA, protein, and cellular localization.",
            "properties": {
                "description": {
                    "description": "A detailed description of the entity.",
                    "type": [
                        "string",
                        "null"
                    ]
                },
                "foxj1_mrna_expression": {
                    "anyOf": [
                        {
                            "$ref": "#/$defs/QuantityValue"
                        },
                        {
                            "type": "null"
                        }
                    ],
                    "description": "FoxJ1 mRNA expression level."
                },
                "foxj1_nuclear_localization": {
                    "anyOf": [
                        {
                            "$ref": "#/$defs/QuantityValue"
                        },
                        {
                            "type": "null"
                        }
                    ],
                    "description": "FoxJ1 nuclear localization."
                },
                "foxj1_positive_cell_percentage": {
                    "anyOf": [
                        {
                            "$ref": "#/$defs/QuantityValue"
                        },
                        {
                            "type": "null"
                        }
                    ],
                    "description": "Percentage of FoxJ1-positive cells."
                },
                "foxj1_protein_expression": {
                    "anyOf": [
                        {
                            "$ref": "#/$defs/QuantityValue"
                        },
                        {
                            "type": "null"
                        }
                    ],
                    "description": "FoxJ1 protein expression level."
                },
                "id": {
                    "description": "A unique identifier for the entity.",
                    "type": "string"
                },
                "name": {
                    "description": "A human-readable name for the entity.",
                    "type": [
                        "string",
                        "null"
                    ]
                }
            },
            "required": [
                "id"
            ],
            "title": "FoxJExpressionOutput",
            "type": "object"
        },
        "GeneExpressionAssay": {
            "additionalProperties": false,
            "description": "General assay for gene expression measurements. Renamed from TranscriptionFactorExpressionMeasurement per domain feedback - gene expression is more commonly the primary output.",
            "properties": {
                "assay_date": {
                    "description": "Date when the assay was performed.",
                    "format": "date",
                    "type": [
                        "string",
                        "null"
                    ]
                },
                "description": {
                    "description": "A detailed description of the entity.",
                    "type": [
                        "string",
                        "null"
                    ]
                },
                "follows_protocols": {
                    "description": "The Protocol(s) that this assay follows. Any Protocol or Protocol subclass (ImagingProtocol, StainingProtocol, SpirometryProtocol, MolecularAssayProtocol) is valid. Use this for general protocol references; assay subclasses also have typed protocol slots for domain-specific protocols.",
                    "items": {
                        "anyOf": [
                            {
                                "$ref": "#/$defs/Protocol"
                            },
                            {
                                "$ref": "#/$defs/ImagingProtocol"
                            },
                            {
                                "$ref": "#/$defs/StainingProtocol"
                            },
                            {
                                "$ref": "#/$defs/SpirometryProtocol"
                            },
                            {
                                "$ref": "#/$defs/MolecularAssayProtocol"
                            }
                        ]
                    },
                    "type": [
                        "array",
                        "null"
                    ]
                },
                "gene_expression_method": {
                    "description": "Method used for gene expression (qRT-PCR, RNA-seq, etc.).",
                    "type": [
                        "string",
                        "null"
                    ]
                },
                "has_exposure_condition": {
                    "description": "The exposure condition(s) applied to the study subject. Captures the agent, concentration, duration, and timing of exposure/treatment. Multivalued to support co-exposures or dose-response series.",
                    "items": {
                        "$ref": "#/$defs/ExposureCondition"
                    },
                    "type": [
                        "array",
                        "null"
                    ]
                },
                "has_specified_output": {
                    "anyOf": [
                        {
                            "$ref": "#/$defs/GeneExpressionOutput"
                        },
                        {
                            "type": "null"
                        }
                    ],
                    "description": "The measurement results produced by this assay \u2014 the specified output of a planned process (OBI). Contains the domain-specific measurement values (e.g., beat frequency, cilia length for CiliaryFunctionAssay)."
                },
                "id": {
                    "description": "A unique identifier for the entity.",
                    "type": "string"
                },
                "informs_on_key_event": {
                    "anyOf": [
                        {
                            "$ref": "#/$defs/KeyEvent"
                        },
                        {
                            "type": "null"
                        }
                    ],
                    "description": "The Key Event that this assay provides evidence for. This establishes the mechanistic connection between the assay measurements and the Adverse Outcome Pathway framework. Multiple assays can inform on the same key event, providing converging evidence."
                },
                "name": {
                    "description": "A human-readable name for the entity.",
                    "type": [
                        "string",
                        "null"
                    ]
                },
                "normalization_reference": {
                    "description": "Normalization reference (beta-actin, GAPDH, total EGFR).",
                    "type": [
                        "string",
                        "null"
                    ]
                },
                "study_subject": {
                    "anyOf": [
                        {
                            "$ref": "#/$defs/StudySubject"
                        },
                        {
                            "$ref": "#/$defs/ModelSystem"
                        },
                        {
                            "$ref": "#/$defs/InVivoSubject"
                        },
                        {
                            "$ref": "#/$defs/PopulationSubject"
                        },
                        {
                            "$ref": "#/$defs/CellularSystem"
                        },
                        {
                            "type": "null"
                        }
                    ],
                    "description": "The subject of the study \u2014 what the assay is performed on. Can be a ModelSystem (e.g., CellularSystem), an InVivoSubject, or a PopulationSubject. The type of subject determines which context slots are available."
                },
                "target_gene": {
                    "description": "Target gene being measured.",
                    "type": [
                        "string",
                        "null"
                    ]
                }
            },
            "required": [
                "id"
            ],
            "title": "GeneExpressionAssay",
            "type": "object"
        },
        "GeneExpressionOutput": {
            "additionalProperties": false,
            "description": "Measurement results from a gene expression assay. Contains the measured values for mRNA level, protein level, and positive cell percentage.",
            "properties": {
                "description": {
                    "description": "A detailed description of the entity.",
                    "type": [
                        "string",
                        "null"
                    ]
                },
                "id": {
                    "description": "A unique identifier for the entity.",
                    "type": "string"
                },
                "mrna_level": {
                    "anyOf": [
                        {
                            "$ref": "#/$defs/QuantityValue"
                        },
                        {
                            "type": "null"
                        }
                    ],
                    "description": "mRNA expression level."
                },
                "name": {
                    "description": "A human-readable name for the entity.",
                    "type": [
                        "string",
                        "null"
                    ]
                },
                "percentage_positive_cells": {
                    "anyOf": [
                        {
                            "$ref": "#/$defs/QuantityValue"
                        },
                        {
                            "type": "null"
                        }
                    ],
                    "description": "Percentage of positive cells (IHC, flow cytometry)."
                },
                "protein_level": {
                    "anyOf": [
                        {
                            "$ref": "#/$defs/QuantityValue"
                        },
                        {
                            "type": "null"
                        }
                    ],
                    "description": "Protein expression level."
                }
            },
            "required": [
                "id"
            ],
            "title": "GeneExpressionOutput",
            "type": "object"
        },
        "GobletCellAssay": {
            "additionalProperties": false,
            "description": "Assay for measuring goblet cell populations and mucin production. Informs on Key Event: \"Goblet cell hyperplasia\" or \"Mucin hypersecretion\".\nIMPORTANT per domain feedback: Need BOTH cell counts AND mucin secretion measurements - cells may stay same but secretion changes. AB-PAS staining common for visualizing goblet cells. Some secreted mucins not tethered to goblet cells.",
            "properties": {
                "assay_date": {
                    "description": "Date when the assay was performed.",
                    "format": "date",
                    "type": [
                        "string",
                        "null"
                    ]
                },
                "description": {
                    "description": "A detailed description of the entity.",
                    "type": [
                        "string",
                        "null"
                    ]
                },
                "follows_protocols": {
                    "description": "The Protocol(s) that this assay follows. Any Protocol or Protocol subclass (ImagingProtocol, StainingProtocol, SpirometryProtocol, MolecularAssayProtocol) is valid. Use this for general protocol references; assay subclasses also have typed protocol slots for domain-specific protocols.",
                    "items": {
                        "anyOf": [
                            {
                                "$ref": "#/$defs/Protocol"
                            },
                            {
                                "$ref": "#/$defs/ImagingProtocol"
                            },
                            {
                                "$ref": "#/$defs/StainingProtocol"
                            },
                            {
                                "$ref": "#/$defs/SpirometryProtocol"
                            },
                            {
                                "$ref": "#/$defs/MolecularAssayProtocol"
                            }
                        ]
                    },
                    "type": [
                        "array",
                        "null"
                    ]
                },
                "has_exposure_condition": {
                    "description": "The exposure condition(s) applied to the study subject. Captures the agent, concentration, duration, and timing of exposure/treatment. Multivalued to support co-exposures or dose-response series.",
                    "items": {
                        "$ref": "#/$defs/ExposureCondition"
                    },
                    "type": [
                        "array",
                        "null"
                    ]
                },
                "has_specified_output": {
                    "anyOf": [
                        {
                            "$ref": "#/$defs/GobletCellOutput"
                        },
                        {
                            "type": "null"
                        }
                    ],
                    "description": "The measurement results produced by this assay \u2014 the specified output of a planned process (OBI). Contains the domain-specific measurement values (e.g., beat frequency, cilia length for CiliaryFunctionAssay)."
                },
                "id": {
                    "description": "A unique identifier for the entity.",
                    "type": "string"
                },
                "informs_on_key_event": {
                    "anyOf": [
                        {
                            "$ref": "#/$defs/KeyEvent"
                        },
                        {
                            "type": "null"
                        }
                    ],
                    "description": "The Key Event that this assay provides evidence for. This establishes the mechanistic connection between the assay measurements and the Adverse Outcome Pathway framework. Multiple assays can inform on the same key event, providing converging evidence."
                },
                "name": {
                    "description": "A human-readable name for the entity.",
                    "type": [
                        "string",
                        "null"
                    ]
                },
                "study_subject": {
                    "anyOf": [
                        {
                            "$ref": "#/$defs/StudySubject"
                        },
                        {
                            "$ref": "#/$defs/ModelSystem"
                        },
                        {
                            "$ref": "#/$defs/InVivoSubject"
                        },
                        {
                            "$ref": "#/$defs/PopulationSubject"
                        },
                        {
                            "$ref": "#/$defs/CellularSystem"
                        },
                        {
                            "type": "null"
                        }
                    ],
                    "description": "The subject of the study \u2014 what the assay is performed on. Can be a ModelSystem (e.g., CellularSystem), an InVivoSubject, or a PopulationSubject. The type of subject determines which context slots are available."
                }
            },
            "required": [
                "id"
            ],
            "title": "GobletCellAssay",
            "type": "object"
        },
        "GobletCellOutput": {
            "additionalProperties": false,
            "description": "Measurement results from a goblet cell assay. Contains the measured values for goblet cell counts, mucin expression, and mucus properties.",
            "properties": {
                "description": {
                    "description": "A detailed description of the entity.",
                    "type": [
                        "string",
                        "null"
                    ]
                },
                "goblet_cell_count": {
                    "anyOf": [
                        {
                            "$ref": "#/$defs/QuantityValue"
                        },
                        {
                            "type": "null"
                        }
                    ],
                    "description": "Number of goblet cells (raw count). TIER 1 - want both raw and relative information."
                },
                "goblet_cell_percentage": {
                    "anyOf": [
                        {
                            "$ref": "#/$defs/QuantityValue"
                        },
                        {
                            "type": "null"
                        }
                    ],
                    "description": "Percentage of goblet cells. TIER 1."
                },
                "goblet_to_ciliated_ratio": {
                    "anyOf": [
                        {
                            "$ref": "#/$defs/QuantityValue"
                        },
                        {
                            "type": "null"
                        }
                    ],
                    "description": "Ratio of goblet cells to ciliated cells. TIER 2 - related to transdifferentiation but not critical for outcome."
                },
                "id": {
                    "description": "A unique identifier for the entity.",
                    "type": "string"
                },
                "muc5ac_mrna_expression": {
                    "anyOf": [
                        {
                            "$ref": "#/$defs/QuantityValue"
                        },
                        {
                            "type": "null"
                        }
                    ],
                    "description": "MUC5AC mRNA expression level (fold change). TIER 1."
                },
                "muc5ac_muc5b_ratio": {
                    "anyOf": [
                        {
                            "$ref": "#/$defs/QuantityValue"
                        },
                        {
                            "type": "null"
                        }
                    ],
                    "description": "MUC5AC to MUC5B ratio. TIER 1 - important for disease state."
                },
                "muc5ac_protein_expression": {
                    "anyOf": [
                        {
                            "$ref": "#/$defs/QuantityValue"
                        },
                        {
                            "type": "null"
                        }
                    ],
                    "description": "MUC5AC protein expression level. TIER 1."
                },
                "muc5b_mrna_expression": {
                    "anyOf": [
                        {
                            "$ref": "#/$defs/QuantityValue"
                        },
                        {
                            "type": "null"
                        }
                    ],
                    "description": "MUC5B mRNA expression level (fold change). TIER 1."
                },
                "muc5b_protein_expression": {
                    "anyOf": [
                        {
                            "$ref": "#/$defs/QuantityValue"
                        },
                        {
                            "type": "null"
                        }
                    ],
                    "description": "MUC5B protein expression level. TIER 1."
                },
                "mucin_protein_concentration": {
                    "anyOf": [
                        {
                            "$ref": "#/$defs/QuantityValue"
                        },
                        {
                            "type": "null"
                        }
                    ],
                    "description": "Total mucin protein concentration. TIER 1 - want both direct and comparative measures."
                },
                "mucin_secretion_rate": {
                    "anyOf": [
                        {
                            "$ref": "#/$defs/QuantityValue"
                        },
                        {
                            "type": "null"
                        }
                    ],
                    "description": "Mucin secretion rate. TIER 1."
                },
                "mucus_viscosity": {
                    "anyOf": [
                        {
                            "$ref": "#/$defs/QuantityValue"
                        },
                        {
                            "type": "null"
                        }
                    ],
                    "description": "Mucus viscosity in centipoise. TIER 2."
                },
                "name": {
                    "description": "A human-readable name for the entity.",
                    "type": [
                        "string",
                        "null"
                    ]
                },
                "percent_solids": {
                    "anyOf": [
                        {
                            "$ref": "#/$defs/QuantityValue"
                        },
                        {
                            "type": "null"
                        }
                    ],
                    "description": "Percent solids in apical secretion (overall secretion). TIER 1."
                }
            },
            "required": [
                "id"
            ],
            "title": "GobletCellOutput",
            "type": "object"
        },
        "ImagingProtocol": {
            "additionalProperties": false,
            "description": "Protocol for imaging-based assays (CBF, ASL, MCC). Captures frame rate, duration, resolution, and tracer/labeling details.",
            "properties": {
                "description": {
                    "description": "A detailed description of the entity.",
                    "type": [
                        "string",
                        "null"
                    ]
                },
                "equipment_required": {
                    "description": "Equipment required for this protocol.",
                    "items": {
                        "type": "string"
                    },
                    "type": [
                        "array",
                        "null"
                    ]
                },
                "evaporation_prevention": {
                    "description": "Method used to prevent evaporation (e.g., perfluorocarbon overlay).",
                    "type": [
                        "string",
                        "null"
                    ]
                },
                "fluorescent_labeling": {
                    "description": "Fluorescent label or tracer used.",
                    "type": [
                        "string",
                        "null"
                    ]
                },
                "fluorescent_tracer": {
                    "description": "Fluorescent tracer used for tracking (MCC assays).",
                    "type": [
                        "string",
                        "null"
                    ]
                },
                "humidity_control": {
                    "anyOf": [
                        {
                            "$ref": "#/$defs/QuantityValue"
                        },
                        {
                            "type": "null"
                        }
                    ],
                    "description": "Humidity conditions during the procedure."
                },
                "id": {
                    "description": "A unique identifier for the entity.",
                    "type": "string"
                },
                "imaging_duration": {
                    "anyOf": [
                        {
                            "$ref": "#/$defs/QuantityValue"
                        },
                        {
                            "type": "null"
                        }
                    ],
                    "description": "Duration of imaging session."
                },
                "imaging_frame_rate": {
                    "anyOf": [
                        {
                            "$ref": "#/$defs/QuantityValue"
                        },
                        {
                            "type": "null"
                        }
                    ],
                    "description": "Frame rate for video/imaging acquisition (e.g., 200 fps)."
                },
                "institution": {
                    "description": "Institution where protocol was developed.",
                    "type": [
                        "string",
                        "null"
                    ]
                },
                "last_updated": {
                    "description": "Date protocol was last updated.",
                    "format": "date",
                    "type": [
                        "string",
                        "null"
                    ]
                },
                "name": {
                    "description": "A human-readable name for the entity.",
                    "type": [
                        "string",
                        "null"
                    ]
                },
                "particle_size": {
                    "anyOf": [
                        {
                            "$ref": "#/$defs/QuantityValue"
                        },
                        {
                            "type": "null"
                        }
                    ],
                    "description": "Size of tracking particles."
                },
                "particle_tracking_method": {
                    "description": "Method used for tracking particles or mucus.",
                    "type": [
                        "string",
                        "null"
                    ]
                },
                "protocol_author": {
                    "description": "Author of the protocol.",
                    "type": [
                        "string",
                        "null"
                    ]
                },
                "protocol_type": {
                    "description": "The specific type of protocol. Used to designate which concrete class (e.g., ImagingProtocol, StainingProtocol, SpirometryProtocol, MolecularAssayProtocol) is instantiated for polymorphic protocol slots.",
                    "enum": [
                        "ImagingProtocol"
                    ],
                    "type": [
                        "string",
                        "null"
                    ]
                },
                "protocol_version": {
                    "description": "Version of the protocol.",
                    "type": [
                        "string",
                        "null"
                    ]
                },
                "publication_reference": {
                    "description": "Reference to protocol publication.",
                    "type": [
                        "string",
                        "null"
                    ]
                },
                "quality_control_criteria": {
                    "description": "Quality control acceptance criteria.",
                    "type": [
                        "string",
                        "null"
                    ]
                },
                "replicate_requirements": {
                    "description": "Number of replicates required.",
                    "type": [
                        "integer",
                        "null"
                    ]
                },
                "spatial_resolution": {
                    "anyOf": [
                        {
                            "$ref": "#/$defs/QuantityValue"
                        },
                        {
                            "type": "null"
                        }
                    ],
                    "description": "Spatial resolution of imaging (e.g., 1-2 um axial resolution)."
                },
                "sub_protocols": {
                    "description": "Other protocols that are part of this protocol's workflow. Use this to compose protocols from reusable steps (e.g., sample preparation, wash steps, fixation, post-processing). Any Protocol or Protocol subclass is valid.",
                    "items": {
                        "anyOf": [
                            {
                                "$ref": "#/$defs/Protocol"
                            },
                            {
                                "$ref": "#/$defs/ImagingProtocol"
                            },
                            {
                                "$ref": "#/$defs/StainingProtocol"
                            },
                            {
                                "$ref": "#/$defs/SpirometryProtocol"
                            },
                            {
                                "$ref": "#/$defs/MolecularAssayProtocol"
                            }
                        ]
                    },
                    "type": [
                        "array",
                        "null"
                    ]
                },
                "temperature_control": {
                    "anyOf": [
                        {
                            "$ref": "#/$defs/QuantityValue"
                        },
                        {
                            "type": "null"
                        }
                    ],
                    "description": "Temperature conditions during the procedure (e.g., 37C)."
                },
                "validation_status": {
                    "description": "Validation status of the protocol.",
                    "type": [
                        "string",
                        "null"
                    ]
                }
            },
            "required": [
                "id"
            ],
            "title": "ImagingProtocol",
            "type": "object"
        },
        "InVivoSubject": {
            "additionalProperties": false,
            "description": "A living human or animal subject from whom measurements are taken. Used for clinical assays (lung function, BALF/sputum) and any assay performed on living subjects.",
            "properties": {
                "age": {
                    "anyOf": [
                        {
                            "$ref": "#/$defs/QuantityValue"
                        },
                        {
                            "type": "null"
                        }
                    ],
                    "description": "Age of the subject."
                },
                "clinical_context": {
                    "description": "Clinical context for in vivo measurements (e.g., routine screening, post-exposure assessment, disease monitoring, baseline spirometry).",
                    "type": [
                        "string",
                        "null"
                    ]
                },
                "collection_date": {
                    "description": "Date when the sample was collected.",
                    "format": "date",
                    "type": [
                        "string",
                        "null"
                    ]
                },
                "collection_site": {
                    "description": "Anatomical site of sample collection.",
                    "type": [
                        "string",
                        "null"
                    ]
                },
                "description": {
                    "description": "A detailed description of the entity.",
                    "type": [
                        "string",
                        "null"
                    ]
                },
                "disease_state": {
                    "type": [
                        "string",
                        "null"
                    ]
                },
                "id": {
                    "description": "A unique identifier for the entity.",
                    "type": "string"
                },
                "model_species": {
                    "anyOf": [
                        {
                            "$ref": "#/$defs/SpeciesReference"
                        },
                        {
                            "type": "null"
                        }
                    ],
                    "description": "The species of origin for the cells or organism being studied. Reference to NCBITaxon term."
                },
                "name": {
                    "description": "A human-readable name for the entity.",
                    "type": [
                        "string",
                        "null"
                    ]
                },
                "sample_collection_method": {
                    "description": "Method used for sample collection in vivo (e.g., bronchoscopy, induced sputum, spirometry).",
                    "type": [
                        "string",
                        "null"
                    ]
                },
                "sample_type": {
                    "$ref": "#/$defs/SampleTypeEnum",
                    "description": "Type of biological sample (e.g., sputum, BALF, blood)."
                },
                "sex": {
                    "description": "Biological sex of the subject.",
                    "type": [
                        "string",
                        "null"
                    ]
                },
                "subject_characteristics": {
                    "description": "Relevant subject characteristics (disease state, medications, etc.). TIER 1 for LungFunctionAssay per user feedback.",
                    "type": [
                        "string",
                        "null"
                    ]
                },
                "subject_type": {
                    "description": "The specific type of study subject. Used to designate which concrete class (e.g., CellularSystem, InVivoSubject) is instantiated for polymorphic study_subject slots.",
                    "enum": [
                        "InVivoSubject"
                    ],
                    "type": [
                        "string",
                        "null"
                    ]
                }
            },
            "required": [
                "id"
            ],
            "title": "InVivoSubject",
            "type": "object"
        },
        "KeyEvent": {
            "additionalProperties": false,
            "description": "A measurable change in biological state that is a step in an Adverse Outcome Pathway. Key Events represent the biological perturbations that assays measure to provide evidence for AOP-based mechanistic understanding. Key events can be Molecular Initiating Events (MIEs), intermediate Key Events, or Adverse Outcomes at the organism/population level.",
            "properties": {
                "aopwiki_id": {
                    "description": "The AOP-Wiki identifier for this entity (e.g., \"AOP:411\" for an AOP, \"KE:1234\" for a key event).",
                    "type": [
                        "string",
                        "null"
                    ]
                },
                "biological_action": {
                    "$ref": "#/$defs/BiologicalActionEnum",
                    "description": "The type of change (increased, decreased, altered, impaired)."
                },
                "biological_object": {
                    "description": "The biological entity affected (protein, cell, tissue, organ).",
                    "type": [
                        "string",
                        "null"
                    ]
                },
                "biological_process": {
                    "description": "The biological process affected by this key event. Should reference a GO biological process term.",
                    "pattern": "^GO:\\d{7}$",
                    "type": [
                        "string",
                        "null"
                    ]
                },
                "description": {
                    "description": "A detailed description of the entity.",
                    "type": [
                        "string",
                        "null"
                    ]
                },
                "downstream_key_events": {
                    "description": "Key events that follow this key event (downstream in the pathway).",
                    "items": {
                        "$ref": "#/$defs/KeyEvent"
                    },
                    "type": [
                        "array",
                        "null"
                    ]
                },
                "id": {
                    "description": "A unique identifier for the entity.",
                    "type": "string"
                },
                "level_of_biological_organization": {
                    "$ref": "#/$defs/BiologicalOrganizationLevelEnum",
                    "description": "The level of biological organization at which this key event occurs."
                },
                "name": {
                    "description": "A human-readable name for the entity.",
                    "type": [
                        "string",
                        "null"
                    ]
                },
                "occurs_in_anatomy": {
                    "description": "The anatomical location where this key event occurs. Should reference a UBERON anatomy term.",
                    "pattern": "^UBERON:\\d{7}$",
                    "type": [
                        "string",
                        "null"
                    ]
                },
                "occurs_in_cell_type": {
                    "description": "The cell type in which this key event occurs. Should reference a Cell Ontology (CL) term.",
                    "pattern": "^CL:\\d{7}$",
                    "type": [
                        "string",
                        "null"
                    ]
                },
                "upstream_key_events": {
                    "description": "Key events that lead to this key event (upstream in the pathway).",
                    "items": {
                        "$ref": "#/$defs/KeyEvent"
                    },
                    "type": [
                        "array",
                        "null"
                    ]
                }
            },
            "required": [
                "id"
            ],
            "title": "KeyEvent",
            "type": "object"
        },
        "KeyEventRelationship": {
            "additionalProperties": false,
            "description": "A directional relationship between two key events in an AOP. Represents the causal linkage between an upstream event and a downstream event with supporting evidence.",
            "properties": {
                "description": {
                    "description": "A detailed description of the entity.",
                    "type": [
                        "string",
                        "null"
                    ]
                },
                "downstream_event": {
                    "anyOf": [
                        {
                            "$ref": "#/$defs/KeyEvent"
                        },
                        {
                            "type": "null"
                        }
                    ],
                    "description": "The downstream key event in this relationship (effect)."
                },
                "evidence_support": {
                    "$ref": "#/$defs/EvidenceSupportEnum",
                    "description": "Level of evidence supporting this key event relationship."
                },
                "id": {
                    "description": "A unique identifier for the entity.",
                    "type": "string"
                },
                "name": {
                    "description": "A human-readable name for the entity.",
                    "type": [
                        "string",
                        "null"
                    ]
                },
                "quantitative_understanding": {
                    "$ref": "#/$defs/QuantitativeUnderstandingEnum",
                    "description": "Level of quantitative understanding of the relationship."
                },
                "relationship_type": {
                    "description": "The type of causal relationship (directly leads to, indirectly leads to).",
                    "type": [
                        "string",
                        "null"
                    ]
                },
                "upstream_event": {
                    "anyOf": [
                        {
                            "$ref": "#/$defs/KeyEvent"
                        },
                        {
                            "type": "null"
                        }
                    ],
                    "description": "The upstream key event in this relationship (cause)."
                }
            },
            "required": [
                "id"
            ],
            "title": "KeyEventRelationship",
            "type": "object"
        },
        "LungFunctionAssay": {
            "additionalProperties": false,
            "description": "Clinical assay for measuring lung function. Informs on Adverse Outcome: \"Decreased lung function\" - the composite clinical outcome.\nIMPORTANT per domain feedback: - Subject characteristics (sex, species, age, height) are critical -\n  often reported as % of predicted baseline\n- Reference dataset (GLI-2012 for humans) is essential for interpretation - Hemoglobin levels pair with DLCO measurements - Recent respiratory illness affects spirometry results\nTIER 1 slots (critical): fev1, fvc, subject_characteristics, reference_dataset. This assay is IN VIVO ONLY.",
            "properties": {
                "assay_date": {
                    "description": "Date when the assay was performed.",
                    "format": "date",
                    "type": [
                        "string",
                        "null"
                    ]
                },
                "description": {
                    "description": "A detailed description of the entity.",
                    "type": [
                        "string",
                        "null"
                    ]
                },
                "follows_protocols": {
                    "description": "The Protocol(s) that this assay follows. Any Protocol or Protocol subclass (ImagingProtocol, StainingProtocol, SpirometryProtocol, MolecularAssayProtocol) is valid. Use this for general protocol references; assay subclasses also have typed protocol slots for domain-specific protocols.",
                    "items": {
                        "anyOf": [
                            {
                                "$ref": "#/$defs/Protocol"
                            },
                            {
                                "$ref": "#/$defs/ImagingProtocol"
                            },
                            {
                                "$ref": "#/$defs/StainingProtocol"
                            },
                            {
                                "$ref": "#/$defs/SpirometryProtocol"
                            },
                            {
                                "$ref": "#/$defs/MolecularAssayProtocol"
                            }
                        ]
                    },
                    "type": [
                        "array",
                        "null"
                    ]
                },
                "has_exposure_condition": {
                    "description": "The exposure condition(s) applied to the study subject. Captures the agent, concentration, duration, and timing of exposure/treatment. Multivalued to support co-exposures or dose-response series.",
                    "items": {
                        "$ref": "#/$defs/ExposureCondition"
                    },
                    "type": [
                        "array",
                        "null"
                    ]
                },
                "has_specified_output": {
                    "anyOf": [
                        {
                            "$ref": "#/$defs/LungFunctionOutput"
                        },
                        {
                            "type": "null"
                        }
                    ],
                    "description": "The measurement results produced by this assay \u2014 the specified output of a planned process (OBI). Contains the domain-specific measurement values (e.g., beat frequency, cilia length for CiliaryFunctionAssay)."
                },
                "hemoglobin_level": {
                    "anyOf": [
                        {
                            "$ref": "#/$defs/QuantityValue"
                        },
                        {
                            "type": "null"
                        }
                    ],
                    "description": "Hemoglobin level. TIER 2 - pairs with DLCO."
                },
                "id": {
                    "description": "A unique identifier for the entity.",
                    "type": "string"
                },
                "informs_on_key_event": {
                    "anyOf": [
                        {
                            "$ref": "#/$defs/KeyEvent"
                        },
                        {
                            "type": "null"
                        }
                    ],
                    "description": "The Key Event that this assay provides evidence for. This establishes the mechanistic connection between the assay measurements and the Adverse Outcome Pathway framework. Multiple assays can inform on the same key event, providing converging evidence."
                },
                "name": {
                    "description": "A human-readable name for the entity.",
                    "type": [
                        "string",
                        "null"
                    ]
                },
                "recent_respiratory_illness": {
                    "description": "Recent respiratory illness (affects spirometry). TIER 2.",
                    "type": [
                        "string",
                        "null"
                    ]
                },
                "reference_dataset": {
                    "description": "Reference dataset for interpretation (GLI-2012 for humans). TIER 1 - essential for interpretation.",
                    "type": [
                        "string",
                        "null"
                    ]
                },
                "study_subject": {
                    "anyOf": [
                        {
                            "$ref": "#/$defs/InVivoSubject"
                        },
                        {
                            "type": "null"
                        }
                    ],
                    "description": "The subject of the study \u2014 what the assay is performed on. Can be a ModelSystem (e.g., CellularSystem), an InVivoSubject, or a PopulationSubject. The type of subject determines which context slots are available."
                }
            },
            "required": [
                "id"
            ],
            "title": "LungFunctionAssay",
            "type": "object"
        },
        "LungFunctionOutput": {
            "additionalProperties": false,
            "description": "Measurement results from a lung function assay. Contains spirometry measurements, diffusing capacity, and related clinical metrics.",
            "properties": {
                "bronchodilator_response": {
                    "anyOf": [
                        {
                            "$ref": "#/$defs/QuantityValue"
                        },
                        {
                            "type": "null"
                        }
                    ],
                    "description": "Response to bronchodilator (% change in FEV1). TIER 2 - informs reversibility."
                },
                "decline_rate": {
                    "anyOf": [
                        {
                            "$ref": "#/$defs/QuantityValue"
                        },
                        {
                            "type": "null"
                        }
                    ],
                    "description": "Longitudinal decline rate in mL/year. TIER 2 - useful for pre/post comparisons."
                },
                "description": {
                    "description": "A detailed description of the entity.",
                    "type": [
                        "string",
                        "null"
                    ]
                },
                "dlco": {
                    "anyOf": [
                        {
                            "$ref": "#/$defs/QuantityValue"
                        },
                        {
                            "type": "null"
                        }
                    ],
                    "description": "Diffusing capacity for carbon monoxide. TIER 2 - measure of fibrosis, needs hemoglobin level."
                },
                "fef25_75": {
                    "anyOf": [
                        {
                            "$ref": "#/$defs/QuantityValue"
                        },
                        {
                            "type": "null"
                        }
                    ],
                    "description": "Forced expiratory flow 25-75%. TIER 3 - more variable than FEV1, FVC."
                },
                "feno": {
                    "anyOf": [
                        {
                            "$ref": "#/$defs/QuantityValue"
                        },
                        {
                            "type": "null"
                        }
                    ],
                    "description": "Fractional exhaled nitric oxide in ppb. TIER 2 - marker for airway inflammation."
                },
                "fev1": {
                    "anyOf": [
                        {
                            "$ref": "#/$defs/QuantityValue"
                        },
                        {
                            "type": "null"
                        }
                    ],
                    "description": "Forced expiratory volume in 1 second. TIER 1 - primary spirometry measurement."
                },
                "fev1_fvc_ratio": {
                    "anyOf": [
                        {
                            "$ref": "#/$defs/QuantityValue"
                        },
                        {
                            "type": "null"
                        }
                    ],
                    "description": "Ratio of FEV1 to FVC (Tiffeneau-Pinelli index). TIER 2 - can be calculated from FEV1 and FVC."
                },
                "functional_residual_capacity": {
                    "anyOf": [
                        {
                            "$ref": "#/$defs/QuantityValue"
                        },
                        {
                            "type": "null"
                        }
                    ],
                    "description": "Functional residual capacity. TIER 3 - requires more equipment."
                },
                "fvc": {
                    "anyOf": [
                        {
                            "$ref": "#/$defs/QuantityValue"
                        },
                        {
                            "type": "null"
                        }
                    ],
                    "description": "Forced vital capacity. TIER 1 - primary spirometry measurement."
                },
                "id": {
                    "description": "A unique identifier for the entity.",
                    "type": "string"
                },
                "lung_compliance": {
                    "anyOf": [
                        {
                            "$ref": "#/$defs/QuantityValue"
                        },
                        {
                            "type": "null"
                        }
                    ],
                    "description": "Lung compliance. TIER 3 - most often reported for animals, difficult to relate to human exposure."
                },
                "lung_elastance": {
                    "anyOf": [
                        {
                            "$ref": "#/$defs/QuantityValue"
                        },
                        {
                            "type": "null"
                        }
                    ],
                    "description": "Lung elastance. TIER 3 - most often reported for animals."
                },
                "lung_resistance": {
                    "anyOf": [
                        {
                            "$ref": "#/$defs/QuantityValue"
                        },
                        {
                            "type": "null"
                        }
                    ],
                    "description": "Lung resistance. TIER 3 - most often reported for animals."
                },
                "name": {
                    "description": "A human-readable name for the entity.",
                    "type": [
                        "string",
                        "null"
                    ]
                },
                "peak_expiratory_flow": {
                    "anyOf": [
                        {
                            "$ref": "#/$defs/QuantityValue"
                        },
                        {
                            "type": "null"
                        }
                    ],
                    "description": "Peak expiratory flow. TIER 2."
                },
                "residual_volume": {
                    "anyOf": [
                        {
                            "$ref": "#/$defs/QuantityValue"
                        },
                        {
                            "type": "null"
                        }
                    ],
                    "description": "Residual volume. TIER 3 - requires more equipment."
                },
                "total_lung_capacity": {
                    "anyOf": [
                        {
                            "$ref": "#/$defs/QuantityValue"
                        },
                        {
                            "type": "null"
                        }
                    ],
                    "description": "Total lung capacity. TIER 3 - requires more equipment."
                }
            },
            "required": [
                "id"
            ],
            "title": "LungFunctionOutput",
            "type": "object"
        },
        "MediumSupplement": {
            "additionalProperties": false,
            "description": "Supplement or additive to cell culture medium.",
            "properties": {
                "catalog_number": {
                    "type": [
                        "string",
                        "null"
                    ]
                },
                "concentration": {
                    "anyOf": [
                        {
                            "$ref": "#/$defs/QuantityValue"
                        },
                        {
                            "type": "null"
                        }
                    ]
                },
                "id": {
                    "description": "A unique identifier for the entity.",
                    "type": "string"
                },
                "manufacturer": {
                    "type": [
                        "string",
                        "null"
                    ]
                },
                "name": {
                    "description": "A human-readable name for the entity.",
                    "type": [
                        "string",
                        "null"
                    ]
                },
                "supplement_type": {
                    "$ref": "#/$defs/SupplementTypeEnum"
                }
            },
            "required": [
                "id"
            ],
            "title": "MediumSupplement",
            "type": "object"
        },
        "ModelSystem": {
            "additionalProperties": false,
            "description": "An in vitro or ex vivo model system used to study biological processes. Parent class for cell-based and other model systems.",
            "properties": {
                "description": {
                    "description": "A detailed description of the entity.",
                    "type": [
                        "string",
                        "null"
                    ]
                },
                "id": {
                    "description": "A unique identifier for the entity.",
                    "type": "string"
                },
                "model_species": {
                    "anyOf": [
                        {
                            "$ref": "#/$defs/SpeciesReference"
                        },
                        {
                            "type": "null"
                        }
                    ],
                    "description": "The species of origin for the cells or organism being studied. Reference to NCBITaxon term."
                },
                "name": {
                    "description": "A human-readable name for the entity.",
                    "type": [
                        "string",
                        "null"
                    ]
                },
                "subject_type": {
                    "description": "The specific type of study subject. Used to designate which concrete class (e.g., CellularSystem, InVivoSubject) is instantiated for polymorphic study_subject slots.",
                    "enum": [
                        "ModelSystem"
                    ],
                    "type": [
                        "string",
                        "null"
                    ]
                }
            },
            "required": [
                "id"
            ],
            "title": "ModelSystem",
            "type": "object"
        },
        "MolecularAssayProtocol": {
            "additionalProperties": false,
            "description": "Protocol for molecular biology assays (qRT-PCR, Western blot, ELISA). Captures detection method, normalization, primers, and platform details.",
            "properties": {
                "antibodies_used": {
                    "description": "Antibodies used in staining or detection.",
                    "items": {
                        "type": "string"
                    },
                    "type": [
                        "array",
                        "null"
                    ]
                },
                "description": {
                    "description": "A detailed description of the entity.",
                    "type": [
                        "string",
                        "null"
                    ]
                },
                "detection_method": {
                    "description": "Detection method used (e.g., flow cytometry, plate reader).",
                    "type": [
                        "string",
                        "null"
                    ]
                },
                "equipment_required": {
                    "description": "Equipment required for this protocol.",
                    "items": {
                        "type": "string"
                    },
                    "type": [
                        "array",
                        "null"
                    ]
                },
                "id": {
                    "description": "A unique identifier for the entity.",
                    "type": "string"
                },
                "institution": {
                    "description": "Institution where protocol was developed.",
                    "type": [
                        "string",
                        "null"
                    ]
                },
                "last_updated": {
                    "description": "Date protocol was last updated.",
                    "format": "date",
                    "type": [
                        "string",
                        "null"
                    ]
                },
                "lysis_buffer": {
                    "description": "Lysis buffer used for sample preparation.",
                    "type": [
                        "string",
                        "null"
                    ]
                },
                "name": {
                    "description": "A human-readable name for the entity.",
                    "type": [
                        "string",
                        "null"
                    ]
                },
                "normalization_method": {
                    "description": "Method used for data normalization.",
                    "type": [
                        "string",
                        "null"
                    ]
                },
                "platform": {
                    "description": "Assay platform or instrument used (e.g., QuantStudio, Illumina).",
                    "type": [
                        "string",
                        "null"
                    ]
                },
                "primer_sequences": {
                    "description": "Primer sequences used for PCR-based methods.",
                    "items": {
                        "type": "string"
                    },
                    "type": [
                        "array",
                        "null"
                    ]
                },
                "protocol_author": {
                    "description": "Author of the protocol.",
                    "type": [
                        "string",
                        "null"
                    ]
                },
                "protocol_type": {
                    "description": "The specific type of protocol. Used to designate which concrete class (e.g., ImagingProtocol, StainingProtocol, SpirometryProtocol, MolecularAssayProtocol) is instantiated for polymorphic protocol slots.",
                    "enum": [
                        "MolecularAssayProtocol"
                    ],
                    "type": [
                        "string",
                        "null"
                    ]
                },
                "protocol_version": {
                    "description": "Version of the protocol.",
                    "type": [
                        "string",
                        "null"
                    ]
                },
                "publication_reference": {
                    "description": "Reference to protocol publication.",
                    "type": [
                        "string",
                        "null"
                    ]
                },
                "quality_control_criteria": {
                    "description": "Quality control acceptance criteria.",
                    "type": [
                        "string",
                        "null"
                    ]
                },
                "reference_gene": {
                    "description": "Reference/housekeeping gene used for normalization.",
                    "type": [
                        "string",
                        "null"
                    ]
                },
                "replicate_requirements": {
                    "description": "Number of replicates required.",
                    "type": [
                        "integer",
                        "null"
                    ]
                },
                "sub_protocols": {
                    "description": "Other protocols that are part of this protocol's workflow. Use this to compose protocols from reusable steps (e.g., sample preparation, wash steps, fixation, post-processing). Any Protocol or Protocol subclass is valid.",
                    "items": {
                        "anyOf": [
                            {
                                "$ref": "#/$defs/Protocol"
                            },
                            {
                                "$ref": "#/$defs/ImagingProtocol"
                            },
                            {
                                "$ref": "#/$defs/StainingProtocol"
                            },
                            {
                                "$ref": "#/$defs/SpirometryProtocol"
                            },
                            {
                                "$ref": "#/$defs/MolecularAssayProtocol"
                            }
                        ]
                    },
                    "type": [
                        "array",
                        "null"
                    ]
                },
                "validation_status": {
                    "description": "Validation status of the protocol.",
                    "type": [
                        "string",
                        "null"
                    ]
                }
            },
            "required": [
                "id"
            ],
            "title": "MolecularAssayProtocol",
            "type": "object"
        },
        "MolecularInitiatingEvent": {
            "additionalProperties": false,
            "description": "The initial molecular-level perturbation that starts an Adverse Outcome Pathway. The MIE is the direct interaction between a stressor and a biological target (e.g., receptor binding, enzyme inhibition).",
            "properties": {
                "aopwiki_id": {
                    "description": "The AOP-Wiki identifier for this entity (e.g., \"AOP:411\" for an AOP, \"KE:1234\" for a key event).",
                    "type": [
                        "string",
                        "null"
                    ]
                },
                "biological_action": {
                    "$ref": "#/$defs/BiologicalActionEnum",
                    "description": "The type of change (increased, decreased, altered, impaired)."
                },
                "biological_object": {
                    "description": "The biological entity affected (protein, cell, tissue, organ).",
                    "type": [
                        "string",
                        "null"
                    ]
                },
                "biological_process": {
                    "description": "The biological process affected by this key event. Should reference a GO biological process term.",
                    "pattern": "^GO:\\d{7}$",
                    "type": [
                        "string",
                        "null"
                    ]
                },
                "description": {
                    "description": "A detailed description of the entity.",
                    "type": [
                        "string",
                        "null"
                    ]
                },
                "downstream_key_events": {
                    "description": "Key events that follow this key event (downstream in the pathway).",
                    "items": {
                        "$ref": "#/$defs/KeyEvent"
                    },
                    "type": [
                        "array",
                        "null"
                    ]
                },
                "id": {
                    "description": "A unique identifier for the entity.",
                    "type": "string"
                },
                "level_of_biological_organization": {
                    "$ref": "#/$defs/BiologicalOrganizationLevelEnum",
                    "description": "The level of biological organization at which this key event occurs."
                },
                "name": {
                    "description": "A human-readable name for the entity.",
                    "type": [
                        "string",
                        "null"
                    ]
                },
                "occurs_in_anatomy": {
                    "description": "The anatomical location where this key event occurs. Should reference a UBERON anatomy term.",
                    "pattern": "^UBERON:\\d{7}$",
                    "type": [
                        "string",
                        "null"
                    ]
                },
                "occurs_in_cell_type": {
                    "description": "The cell type in which this key event occurs. Should reference a Cell Ontology (CL) term.",
                    "pattern": "^CL:\\d{7}$",
                    "type": [
                        "string",
                        "null"
                    ]
                },
                "target_molecule": {
                    "description": "The molecular target of the stressor in the MIE (e.g., receptor, enzyme).",
                    "type": [
                        "string",
                        "null"
                    ]
                },
                "upstream_key_events": {
                    "description": "Key events that lead to this key event (upstream in the pathway).",
                    "items": {
                        "$ref": "#/$defs/KeyEvent"
                    },
                    "type": [
                        "array",
                        "null"
                    ]
                }
            },
            "required": [
                "id"
            ],
            "title": "MolecularInitiatingEvent",
            "type": "object"
        },
        "MucociliaryClearanceAssay": {
            "additionalProperties": false,
            "description": "Assay for measuring mucociliary clearance and transport. Informs on Key Event: \"Impaired mucociliary clearance\" in respiratory AOPs. TIER 1 slots (critical): transport_rate, directionality.",
            "properties": {
                "assay_date": {
                    "description": "Date when the assay was performed.",
                    "format": "date",
                    "type": [
                        "string",
                        "null"
                    ]
                },
                "description": {
                    "description": "A detailed description of the entity.",
                    "type": [
                        "string",
                        "null"
                    ]
                },
                "follows_protocols": {
                    "description": "The Protocol(s) that this assay follows. Any Protocol or Protocol subclass (ImagingProtocol, StainingProtocol, SpirometryProtocol, MolecularAssayProtocol) is valid. Use this for general protocol references; assay subclasses also have typed protocol slots for domain-specific protocols.",
                    "items": {
                        "anyOf": [
                            {
                                "$ref": "#/$defs/Protocol"
                            },
                            {
                                "$ref": "#/$defs/ImagingProtocol"
                            },
                            {
                                "$ref": "#/$defs/StainingProtocol"
                            },
                            {
                                "$ref": "#/$defs/SpirometryProtocol"
                            },
                            {
                                "$ref": "#/$defs/MolecularAssayProtocol"
                            }
                        ]
                    },
                    "type": [
                        "array",
                        "null"
                    ]
                },
                "has_exposure_condition": {
                    "description": "The exposure condition(s) applied to the study subject. Captures the agent, concentration, duration, and timing of exposure/treatment. Multivalued to support co-exposures or dose-response series.",
                    "items": {
                        "$ref": "#/$defs/ExposureCondition"
                    },
                    "type": [
                        "array",
                        "null"
                    ]
                },
                "has_specified_output": {
                    "anyOf": [
                        {
                            "$ref": "#/$defs/MucociliaryClearanceOutput"
                        },
                        {
                            "type": "null"
                        }
                    ],
                    "description": "The measurement results produced by this assay \u2014 the specified output of a planned process (OBI). Contains the domain-specific measurement values (e.g., beat frequency, cilia length for CiliaryFunctionAssay)."
                },
                "id": {
                    "description": "A unique identifier for the entity.",
                    "type": "string"
                },
                "informs_on_key_event": {
                    "anyOf": [
                        {
                            "$ref": "#/$defs/KeyEvent"
                        },
                        {
                            "type": "null"
                        }
                    ],
                    "description": "The Key Event that this assay provides evidence for. This establishes the mechanistic connection between the assay measurements and the Adverse Outcome Pathway framework. Multiple assays can inform on the same key event, providing converging evidence."
                },
                "mucus_composition": {
                    "description": "Composition of mucus. TIER 2 per feedback.",
                    "type": [
                        "string",
                        "null"
                    ]
                },
                "name": {
                    "description": "A human-readable name for the entity.",
                    "type": [
                        "string",
                        "null"
                    ]
                },
                "study_subject": {
                    "anyOf": [
                        {
                            "$ref": "#/$defs/StudySubject"
                        },
                        {
                            "$ref": "#/$defs/ModelSystem"
                        },
                        {
                            "$ref": "#/$defs/InVivoSubject"
                        },
                        {
                            "$ref": "#/$defs/PopulationSubject"
                        },
                        {
                            "$ref": "#/$defs/CellularSystem"
                        },
                        {
                            "type": "null"
                        }
                    ],
                    "description": "The subject of the study \u2014 what the assay is performed on. Can be a ModelSystem (e.g., CellularSystem), an InVivoSubject, or a PopulationSubject. The type of subject determines which context slots are available."
                }
            },
            "required": [
                "id"
            ],
            "title": "MucociliaryClearanceAssay",
            "type": "object"
        },
        "MucociliaryClearanceOutput": {
            "additionalProperties": false,
            "description": "Measurement results from a mucociliary clearance assay. Contains the measured values for transport rate, directionality, and clearance metrics.",
            "properties": {
                "description": {
                    "description": "A detailed description of the entity.",
                    "type": [
                        "string",
                        "null"
                    ]
                },
                "id": {
                    "description": "A unique identifier for the entity.",
                    "type": "string"
                },
                "mucus_layer_thickness": {
                    "anyOf": [
                        {
                            "$ref": "#/$defs/QuantityValue"
                        },
                        {
                            "type": "null"
                        }
                    ],
                    "description": "Thickness of the mucus gel layer in micrometers. TIER 2."
                },
                "name": {
                    "description": "A human-readable name for the entity.",
                    "type": [
                        "string",
                        "null"
                    ]
                },
                "particle_clearance_time": {
                    "anyOf": [
                        {
                            "$ref": "#/$defs/QuantityValue"
                        },
                        {
                            "type": "null"
                        }
                    ],
                    "description": "Time for particle clearance. TIER 2."
                },
                "percentage_active_transport": {
                    "anyOf": [
                        {
                            "$ref": "#/$defs/QuantityValue"
                        },
                        {
                            "type": "null"
                        }
                    ],
                    "description": "Percentage of area showing active transport. TIER 2."
                },
                "transport_directionality": {
                    "$ref": "#/$defs/DirectionalityEnum",
                    "description": "Directionality of mucociliary transport. TIER 1."
                },
                "transport_rate": {
                    "anyOf": [
                        {
                            "$ref": "#/$defs/QuantityValue"
                        },
                        {
                            "type": "null"
                        }
                    ],
                    "description": "Mucociliary transport rate. TIER 1 - primary outcome measure for MCC assays."
                }
            },
            "required": [
                "id"
            ],
            "title": "MucociliaryClearanceOutput",
            "type": "object"
        },
        "NamedEntity": {
            "additionalProperties": false,
            "description": "A reference to an entity with an identifier and name. Used for cell_type, tissue_context, participant references, etc.",
            "properties": {
                "id": {
                    "description": "A unique identifier for the entity.",
                    "type": "string"
                },
                "name": {
                    "description": "A human-readable name for the entity.",
                    "type": [
                        "string",
                        "null"
                    ]
                }
            },
            "required": [
                "id"
            ],
            "title": "NamedEntity",
            "type": "object"
        },
        "NamedThing": {
            "additionalProperties": false,
            "description": "A generic entity with an identifier and name. Base class for all named entities in the schema.",
            "properties": {
                "description": {
                    "description": "A detailed description of the entity.",
                    "type": [
                        "string",
                        "null"
                    ]
                },
                "id": {
                    "description": "A unique identifier for the entity.",
                    "type": "string"
                },
                "name": {
                    "description": "A human-readable name for the entity.",
                    "type": [
                        "string",
                        "null"
                    ]
                }
            },
            "required": [
                "id"
            ],
            "title": "NamedThing",
            "type": "object"
        },
        "OutcomeLevelEnum": {
            "description": "Levels at which adverse outcomes manifest.",
            "enum": [
                "individual",
                "population"
            ],
            "title": "OutcomeLevelEnum",
            "type": "string"
        },
        "OxidativeStressAssay": {
            "additionalProperties": false,
            "description": "Assay for measuring oxidative stress markers. Informs on Key Event: \"Increased oxidative stress\" - often a Molecular Initiating Event (MIE) in respiratory toxicology AOPs. TIER 1 slots (critical): All surrogate markers for oxidative stress. Multiple detection methods expected - no single \"best\" for lung function.",
            "properties": {
                "assay_date": {
                    "description": "Date when the assay was performed.",
                    "format": "date",
                    "type": [
                        "string",
                        "null"
                    ]
                },
                "description": {
                    "description": "A detailed description of the entity.",
                    "type": [
                        "string",
                        "null"
                    ]
                },
                "follows_protocols": {
                    "description": "The Protocol(s) that this assay follows. Any Protocol or Protocol subclass (ImagingProtocol, StainingProtocol, SpirometryProtocol, MolecularAssayProtocol) is valid. Use this for general protocol references; assay subclasses also have typed protocol slots for domain-specific protocols.",
                    "items": {
                        "anyOf": [
                            {
                                "$ref": "#/$defs/Protocol"
                            },
                            {
                                "$ref": "#/$defs/ImagingProtocol"
                            },
                            {
                                "$ref": "#/$defs/StainingProtocol"
                            },
                            {
                                "$ref": "#/$defs/SpirometryProtocol"
                            },
                            {
                                "$ref": "#/$defs/MolecularAssayProtocol"
                            }
                        ]
                    },
                    "type": [
                        "array",
                        "null"
                    ]
                },
                "has_exposure_condition": {
                    "description": "The exposure condition(s) applied to the study subject. Captures the agent, concentration, duration, and timing of exposure/treatment. Multivalued to support co-exposures or dose-response series.",
                    "items": {
                        "$ref": "#/$defs/ExposureCondition"
                    },
                    "type": [
                        "array",
                        "null"
                    ]
                },
                "has_specified_output": {
                    "anyOf": [
                        {
                            "$ref": "#/$defs/OxidativeStressOutput"
                        },
                        {
                            "type": "null"
                        }
                    ],
                    "description": "The measurement results produced by this assay \u2014 the specified output of a planned process (OBI). Contains the domain-specific measurement values (e.g., beat frequency, cilia length for CiliaryFunctionAssay)."
                },
                "id": {
                    "description": "A unique identifier for the entity.",
                    "type": "string"
                },
                "informs_on_key_event": {
                    "anyOf": [
                        {
                            "$ref": "#/$defs/KeyEvent"
                        },
                        {
                            "type": "null"
                        }
                    ],
                    "description": "The Key Event that this assay provides evidence for. This establishes the mechanistic connection between the assay measurements and the Adverse Outcome Pathway framework. Multiple assays can inform on the same key event, providing converging evidence."
                },
                "name": {
                    "description": "A human-readable name for the entity.",
                    "type": [
                        "string",
                        "null"
                    ]
                },
                "ros_probe_type": {
                    "description": "Type of ROS probe used (DCFDA, DHE, MitoSOX, etc.). TIER 1 - varies by method.",
                    "type": [
                        "string",
                        "null"
                    ]
                },
                "study_subject": {
                    "anyOf": [
                        {
                            "$ref": "#/$defs/StudySubject"
                        },
                        {
                            "$ref": "#/$defs/ModelSystem"
                        },
                        {
                            "$ref": "#/$defs/InVivoSubject"
                        },
                        {
                            "$ref": "#/$defs/PopulationSubject"
                        },
                        {
                            "$ref": "#/$defs/CellularSystem"
                        },
                        {
                            "type": "null"
                        }
                    ],
                    "description": "The subject of the study \u2014 what the assay is performed on. Can be a ModelSystem (e.g., CellularSystem), an InVivoSubject, or a PopulationSubject. The type of subject determines which context slots are available."
                }
            },
            "required": [
                "id"
            ],
            "title": "OxidativeStressAssay",
            "type": "object"
        },
        "OxidativeStressOutput": {
            "additionalProperties": false,
            "description": "Measurement results from an oxidative stress assay. Contains all surrogate markers for oxidative stress including ROS levels, lipid peroxidation, protein oxidation, DNA damage, and antioxidant capacity.",
            "properties": {
                "antioxidant_capacity": {
                    "anyOf": [
                        {
                            "$ref": "#/$defs/QuantityValue"
                        },
                        {
                            "type": "null"
                        }
                    ],
                    "description": "Total antioxidant capacity or GSH/GSSG ratio. TIER 1."
                },
                "antioxidant_enzyme_activities": {
                    "description": "Antioxidant enzyme activities (SOD, catalase, GPx). TIER 1.",
                    "type": [
                        "string",
                        "null"
                    ]
                },
                "catalase_activity": {
                    "anyOf": [
                        {
                            "$ref": "#/$defs/QuantityValue"
                        },
                        {
                            "type": "null"
                        }
                    ],
                    "description": "Catalase activity. TIER 1."
                },
                "description": {
                    "description": "A detailed description of the entity.",
                    "type": [
                        "string",
                        "null"
                    ]
                },
                "dna_damage_markers": {
                    "anyOf": [
                        {
                            "$ref": "#/$defs/QuantityValue"
                        },
                        {
                            "type": "null"
                        }
                    ],
                    "description": "DNA damage markers (8-OHdG). TIER 1 - surrogate for OS."
                },
                "eight_isoprostane_level": {
                    "anyOf": [
                        {
                            "$ref": "#/$defs/QuantityValue"
                        },
                        {
                            "type": "null"
                        }
                    ],
                    "description": "8-isoprostane level."
                },
                "eight_ohdg_level": {
                    "anyOf": [
                        {
                            "$ref": "#/$defs/QuantityValue"
                        },
                        {
                            "type": "null"
                        }
                    ],
                    "description": "8-OHdG level (DNA oxidation marker). TIER 1."
                },
                "four_hydroxynonenal_level": {
                    "anyOf": [
                        {
                            "$ref": "#/$defs/QuantityValue"
                        },
                        {
                            "type": "null"
                        }
                    ],
                    "description": "4-HNE level - lipid peroxidation marker."
                },
                "glutathione_peroxidase_activity": {
                    "anyOf": [
                        {
                            "$ref": "#/$defs/QuantityValue"
                        },
                        {
                            "type": "null"
                        }
                    ],
                    "description": "GPx activity. TIER 1."
                },
                "glutathione_ratio": {
                    "anyOf": [
                        {
                            "$ref": "#/$defs/QuantityValue"
                        },
                        {
                            "type": "null"
                        }
                    ],
                    "description": "GSH/GSSG ratio indicating antioxidant status. TIER 1."
                },
                "id": {
                    "description": "A unique identifier for the entity.",
                    "type": "string"
                },
                "lipid_peroxidation": {
                    "anyOf": [
                        {
                            "$ref": "#/$defs/QuantityValue"
                        },
                        {
                            "type": "null"
                        }
                    ],
                    "description": "Lipid peroxidation level. TIER 1 - surrogate marker for OS."
                },
                "malondialdehyde_level": {
                    "anyOf": [
                        {
                            "$ref": "#/$defs/QuantityValue"
                        },
                        {
                            "type": "null"
                        }
                    ],
                    "description": "MDA level - lipid peroxidation marker."
                },
                "name": {
                    "description": "A human-readable name for the entity.",
                    "type": [
                        "string",
                        "null"
                    ]
                },
                "nitrotyrosine_level": {
                    "anyOf": [
                        {
                            "$ref": "#/$defs/QuantityValue"
                        },
                        {
                            "type": "null"
                        }
                    ],
                    "description": "Nitrotyrosine level. TIER 1."
                },
                "nrf2_activation": {
                    "anyOf": [
                        {
                            "$ref": "#/$defs/QuantityValue"
                        },
                        {
                            "type": "null"
                        }
                    ],
                    "description": "Nrf2 activation level. TIER 1."
                },
                "protein_carbonyl_content": {
                    "anyOf": [
                        {
                            "$ref": "#/$defs/QuantityValue"
                        },
                        {
                            "type": "null"
                        }
                    ],
                    "description": "Protein carbonyl content. TIER 1."
                },
                "protein_oxidation_markers": {
                    "description": "Protein oxidation markers (carbonyls, nitrotyrosine). TIER 1.",
                    "items": {
                        "type": "string"
                    },
                    "type": [
                        "array",
                        "null"
                    ]
                },
                "reactive_oxygen_species": {
                    "anyOf": [
                        {
                            "$ref": "#/$defs/QuantityValue"
                        },
                        {
                            "type": "null"
                        }
                    ],
                    "description": "ROS level as fold change or fluorescence intensity. TIER 1."
                },
                "superoxide_dismutase_activity": {
                    "anyOf": [
                        {
                            "$ref": "#/$defs/QuantityValue"
                        },
                        {
                            "type": "null"
                        }
                    ],
                    "description": "SOD activity. TIER 1."
                },
                "total_antioxidant_capacity": {
                    "anyOf": [
                        {
                            "$ref": "#/$defs/QuantityValue"
                        },
                        {
                            "type": "null"
                        }
                    ],
                    "description": "Total antioxidant capacity. TIER 1."
                }
            },
            "required": [
                "id"
            ],
            "title": "OxidativeStressOutput",
            "type": "object"
        },
        "PopulationSubject": {
            "additionalProperties": false,
            "description": "A population or cohort of subjects studied in aggregate. Used for epidemiological or population-level analyses. Can optionally hold references to individual InVivoSubject members.",
            "properties": {
                "age_range": {
                    "anyOf": [
                        {
                            "$ref": "#/$defs/QuantityRange"
                        },
                        {
                            "type": "null"
                        }
                    ],
                    "description": "Age range of the study population."
                },
                "cohort_size": {
                    "description": "Number of subjects in the cohort or population.",
                    "type": [
                        "integer",
                        "null"
                    ]
                },
                "description": {
                    "description": "A detailed description of the entity.",
                    "type": [
                        "string",
                        "null"
                    ]
                },
                "id": {
                    "description": "A unique identifier for the entity.",
                    "type": "string"
                },
                "inclusion_criteria": {
                    "description": "Criteria for inclusion in the study population.",
                    "type": [
                        "string",
                        "null"
                    ]
                },
                "model_species": {
                    "anyOf": [
                        {
                            "$ref": "#/$defs/SpeciesReference"
                        },
                        {
                            "type": "null"
                        }
                    ],
                    "description": "The species of origin for the cells or organism being studied. Reference to NCBITaxon term."
                },
                "name": {
                    "description": "A human-readable name for the entity.",
                    "type": [
                        "string",
                        "null"
                    ]
                },
                "subject_type": {
                    "description": "The specific type of study subject. Used to designate which concrete class (e.g., CellularSystem, InVivoSubject) is instantiated for polymorphic study_subject slots.",
                    "enum": [
                        "PopulationSubject"
                    ],
                    "type": [
                        "string",
                        "null"
                    ]
                },
                "subjects": {
                    "description": "Individual subjects in the population or cohort. Optional \u2014 use when individual-level data is available alongside aggregate cohort metadata.",
                    "items": {
                        "$ref": "#/$defs/InVivoSubject"
                    },
                    "type": [
                        "array",
                        "null"
                    ]
                }
            },
            "required": [
                "id"
            ],
            "title": "PopulationSubject",
            "type": "object"
        },
        "Protocol": {
            "additionalProperties": false,
            "description": "A detailed set of steps for how to perform a specific assay. Protocols ensure reproducibility across laboratories. Contains universal slots; domain-specific details are in protocol subclasses (ImagingProtocol, StainingProtocol, etc.). Protocols can reference other protocols via sub_protocols to represent composite workflows (e.g., sample preparation, wash steps, or post-processing protocols that are shared across assays).",
            "properties": {
                "description": {
                    "description": "A detailed description of the entity.",
                    "type": [
                        "string",
                        "null"
                    ]
                },
                "equipment_required": {
                    "description": "Equipment required for this protocol.",
                    "items": {
                        "type": "string"
                    },
                    "type": [
                        "array",
                        "null"
                    ]
                },
                "id": {
                    "description": "A unique identifier for the entity.",
                    "type": "string"
                },
                "institution": {
                    "description": "Institution where protocol was developed.",
                    "type": [
                        "string",
                        "null"
                    ]
                },
                "last_updated": {
                    "description": "Date protocol was last updated.",
                    "format": "date",
                    "type": [
                        "string",
                        "null"
                    ]
                },
                "name": {
                    "description": "A human-readable name for the entity.",
                    "type": [
                        "string",
                        "null"
                    ]
                },
                "protocol_author": {
                    "description": "Author of the protocol.",
                    "type": [
                        "string",
                        "null"
                    ]
                },
                "protocol_type": {
                    "description": "The specific type of protocol. Used to designate which concrete class (e.g., ImagingProtocol, StainingProtocol, SpirometryProtocol, MolecularAssayProtocol) is instantiated for polymorphic protocol slots.",
                    "enum": [
                        "Protocol"
                    ],
                    "type": [
                        "string",
                        "null"
                    ]
                },
                "protocol_version": {
                    "description": "Version of the protocol.",
                    "type": [
                        "string",
                        "null"
                    ]
                },
                "publication_reference": {
                    "description": "Reference to protocol publication.",
                    "type": [
                        "string",
                        "null"
                    ]
                },
                "quality_control_criteria": {
                    "description": "Quality control acceptance criteria.",
                    "type": [
                        "string",
                        "null"
                    ]
                },
                "replicate_requirements": {
                    "description": "Number of replicates required.",
                    "type": [
                        "integer",
                        "null"
                    ]
                },
                "sub_protocols": {
                    "description": "Other protocols that are part of this protocol's workflow. Use this to compose protocols from reusable steps (e.g., sample preparation, wash steps, fixation, post-processing). Any Protocol or Protocol subclass is valid.",
                    "items": {
                        "anyOf": [
                            {
                                "$ref": "#/$defs/Protocol"
                            },
                            {
                                "$ref": "#/$defs/ImagingProtocol"
                            },
                            {
                                "$ref": "#/$defs/StainingProtocol"
                            },
                            {
                                "$ref": "#/$defs/SpirometryProtocol"
                            },
                            {
                                "$ref": "#/$defs/MolecularAssayProtocol"
                            }
                        ]
                    },
                    "type": [
                        "array",
                        "null"
                    ]
                },
                "validation_status": {
                    "description": "Validation status of the protocol.",
                    "type": [
                        "string",
                        "null"
                    ]
                }
            },
            "required": [
                "id"
            ],
            "title": "Protocol",
            "type": "object"
        },
        "QuantitativeUnderstandingEnum": {
            "description": "Levels of quantitative understanding for key event relationships.",
            "enum": [
                "high",
                "moderate",
                "low",
                "not_specified"
            ],
            "title": "QuantitativeUnderstandingEnum",
            "type": "string"
        },
        "QuantityRange": {
            "additionalProperties": false,
            "description": "A range of quantity values with minimum and maximum bounds.",
            "properties": {
                "max_value": {
                    "anyOf": [
                        {
                            "$ref": "#/$defs/QuantityValue"
                        },
                        {
                            "type": "null"
                        }
                    ]
                },
                "min_value": {
                    "anyOf": [
                        {
                            "$ref": "#/$defs/QuantityValue"
                        },
                        {
                            "type": "null"
                        }
                    ]
                },
                "unit": {
                    "anyOf": [
                        {
                            "$ref": "#/$defs/Unit"
                        },
                        {
                            "type": "null"
                        }
                    ],
                    "description": "The unit of measurement."
                }
            },
            "title": "QuantityRange",
            "type": "object"
        },
        "QuantityValue": {
            "additionalProperties": false,
            "description": "A quantity with a numeric value and unit of measurement. Used for all measurement values in assays.",
            "properties": {
                "unit": {
                    "anyOf": [
                        {
                            "$ref": "#/$defs/Unit"
                        },
                        {
                            "type": "null"
                        }
                    ],
                    "description": "The unit of measurement."
                },
                "value": {
                    "description": "The numeric value of the quantity.",
                    "type": [
                        "string",
                        "null"
                    ]
                }
            },
            "title": "QuantityValue",
            "type": "object"
        },
        "SampleTypeEnum": {
            "description": "Types of biological samples for in vivo assays.",
            "enum": [
                "urine",
                "blood",
                "sputum",
                "balf",
                "nasal_epithelium",
                "bronchial_epithelium",
                "exhaled_breath_condensate",
                "biopsy",
                "sweat"
            ],
            "title": "SampleTypeEnum",
            "type": "string"
        },
        "SpeciesReference": {
            "additionalProperties": false,
            "description": "A reference to a species from the NCBI Taxonomy.",
            "properties": {
                "id": {
                    "description": "A unique identifier for the entity.",
                    "pattern": "^NCBITaxon:\\d+$",
                    "type": "string"
                },
                "name": {
                    "description": "A human-readable name for the entity.",
                    "type": [
                        "string",
                        "null"
                    ]
                }
            },
            "required": [
                "id"
            ],
            "title": "SpeciesReference",
            "type": "object"
        },
        "SpirometryProtocol": {
            "additionalProperties": false,
            "description": "Protocol for lung function / spirometry assays. Captures spirometry standards, bronchodilator details, and plethysmography method.",
            "properties": {
                "bronchodilator_agent": {
                    "description": "Bronchodilator agent used (e.g., albuterol).",
                    "type": [
                        "string",
                        "null"
                    ]
                },
                "bronchodilator_dose": {
                    "anyOf": [
                        {
                            "$ref": "#/$defs/QuantityValue"
                        },
                        {
                            "type": "null"
                        }
                    ],
                    "description": "Dose of bronchodilator administered."
                },
                "description": {
                    "description": "A detailed description of the entity.",
                    "type": [
                        "string",
                        "null"
                    ]
                },
                "equipment_required": {
                    "description": "Equipment required for this protocol.",
                    "items": {
                        "type": "string"
                    },
                    "type": [
                        "array",
                        "null"
                    ]
                },
                "id": {
                    "description": "A unique identifier for the entity.",
                    "type": "string"
                },
                "institution": {
                    "description": "Institution where protocol was developed.",
                    "type": [
                        "string",
                        "null"
                    ]
                },
                "last_updated": {
                    "description": "Date protocol was last updated.",
                    "format": "date",
                    "type": [
                        "string",
                        "null"
                    ]
                },
                "name": {
                    "description": "A human-readable name for the entity.",
                    "type": [
                        "string",
                        "null"
                    ]
                },
                "plethysmography_method": {
                    "description": "Method for plethysmography measurement.",
                    "type": [
                        "string",
                        "null"
                    ]
                },
                "protocol_author": {
                    "description": "Author of the protocol.",
                    "type": [
                        "string",
                        "null"
                    ]
                },
                "protocol_type": {
                    "description": "The specific type of protocol. Used to designate which concrete class (e.g., ImagingProtocol, StainingProtocol, SpirometryProtocol, MolecularAssayProtocol) is instantiated for polymorphic protocol slots.",
                    "enum": [
                        "SpirometryProtocol"
                    ],
                    "type": [
                        "string",
                        "null"
                    ]
                },
                "protocol_version": {
                    "description": "Version of the protocol.",
                    "type": [
                        "string",
                        "null"
                    ]
                },
                "publication_reference": {
                    "description": "Reference to protocol publication.",
                    "type": [
                        "string",
                        "null"
                    ]
                },
                "quality_control_criteria": {
                    "description": "Quality control acceptance criteria.",
                    "type": [
                        "string",
                        "null"
                    ]
                },
                "replicate_requirements": {
                    "description": "Number of replicates required.",
                    "type": [
                        "integer",
                        "null"
                    ]
                },
                "spirometry_standard": {
                    "description": "Spirometry standard followed (e.g., ATS/ERS 2019).",
                    "type": [
                        "string",
                        "null"
                    ]
                },
                "sub_protocols": {
                    "description": "Other protocols that are part of this protocol's workflow. Use this to compose protocols from reusable steps (e.g., sample preparation, wash steps, fixation, post-processing). Any Protocol or Protocol subclass is valid.",
                    "items": {
                        "anyOf": [
                            {
                                "$ref": "#/$defs/Protocol"
                            },
                            {
                                "$ref": "#/$defs/ImagingProtocol"
                            },
                            {
                                "$ref": "#/$defs/StainingProtocol"
                            },
                            {
                                "$ref": "#/$defs/SpirometryProtocol"
                            },
                            {
                                "$ref": "#/$defs/MolecularAssayProtocol"
                            }
                        ]
                    },
                    "type": [
                        "array",
                        "null"
                    ]
                },
                "validation_status": {
                    "description": "Validation status of the protocol.",
                    "type": [
                        "string",
                        "null"
                    ]
                }
            },
            "required": [
                "id"
            ],
            "title": "SpirometryProtocol",
            "type": "object"
        },
        "StainingProtocol": {
            "additionalProperties": false,
            "description": "Protocol for staining-based assays (goblet cell, immunofluorescence). Captures staining type, antibodies, fixation, and detection details.",
            "properties": {
                "antibodies_used": {
                    "description": "Antibodies used in staining or detection.",
                    "items": {
                        "type": "string"
                    },
                    "type": [
                        "array",
                        "null"
                    ]
                },
                "counterstain": {
                    "description": "Counterstain used (e.g., hematoxylin, DAPI).",
                    "type": [
                        "string",
                        "null"
                    ]
                },
                "description": {
                    "description": "A detailed description of the entity.",
                    "type": [
                        "string",
                        "null"
                    ]
                },
                "detection_method": {
                    "description": "Detection method used (e.g., flow cytometry, plate reader).",
                    "type": [
                        "string",
                        "null"
                    ]
                },
                "equipment_required": {
                    "description": "Equipment required for this protocol.",
                    "items": {
                        "type": "string"
                    },
                    "type": [
                        "array",
                        "null"
                    ]
                },
                "fixation_method": {
                    "description": "Fixation method used for tissue/cell preparation.",
                    "type": [
                        "string",
                        "null"
                    ]
                },
                "id": {
                    "description": "A unique identifier for the entity.",
                    "type": "string"
                },
                "institution": {
                    "description": "Institution where protocol was developed.",
                    "type": [
                        "string",
                        "null"
                    ]
                },
                "last_updated": {
                    "description": "Date protocol was last updated.",
                    "format": "date",
                    "type": [
                        "string",
                        "null"
                    ]
                },
                "name": {
                    "description": "A human-readable name for the entity.",
                    "type": [
                        "string",
                        "null"
                    ]
                },
                "normalization_method": {
                    "description": "Method used for data normalization.",
                    "type": [
                        "string",
                        "null"
                    ]
                },
                "protocol_author": {
                    "description": "Author of the protocol.",
                    "type": [
                        "string",
                        "null"
                    ]
                },
                "protocol_type": {
                    "description": "The specific type of protocol. Used to designate which concrete class (e.g., ImagingProtocol, StainingProtocol, SpirometryProtocol, MolecularAssayProtocol) is instantiated for polymorphic protocol slots.",
                    "enum": [
                        "StainingProtocol"
                    ],
                    "type": [
                        "string",
                        "null"
                    ]
                },
                "protocol_version": {
                    "description": "Version of the protocol.",
                    "type": [
                        "string",
                        "null"
                    ]
                },
                "publication_reference": {
                    "description": "Reference to protocol publication.",
                    "type": [
                        "string",
                        "null"
                    ]
                },
                "quality_control_criteria": {
                    "description": "Quality control acceptance criteria.",
                    "type": [
                        "string",
                        "null"
                    ]
                },
                "replicate_requirements": {
                    "description": "Number of replicates required.",
                    "type": [
                        "integer",
                        "null"
                    ]
                },
                "staining_type": {
                    "description": "Type of staining used (e.g., immunofluorescence, AB-PAS).",
                    "type": [
                        "string",
                        "null"
                    ]
                },
                "sub_protocols": {
                    "description": "Other protocols that are part of this protocol's workflow. Use this to compose protocols from reusable steps (e.g., sample preparation, wash steps, fixation, post-processing). Any Protocol or Protocol subclass is valid.",
                    "items": {
                        "anyOf": [
                            {
                                "$ref": "#/$defs/Protocol"
                            },
                            {
                                "$ref": "#/$defs/ImagingProtocol"
                            },
                            {
                                "$ref": "#/$defs/StainingProtocol"
                            },
                            {
                                "$ref": "#/$defs/SpirometryProtocol"
                            },
                            {
                                "$ref": "#/$defs/MolecularAssayProtocol"
                            }
                        ]
                    },
                    "type": [
                        "array",
                        "null"
                    ]
                },
                "validation_status": {
                    "description": "Validation status of the protocol.",
                    "type": [
                        "string",
                        "null"
                    ]
                }
            },
            "required": [
                "id"
            ],
            "title": "StainingProtocol",
            "type": "object"
        },
        "StudySubject": {
            "additionalProperties": false,
            "description": "The subject of a study \u2014 what the assay is performed on. Subclasses capture different experimental contexts (model systems, living subjects, populations) with context-appropriate slots. The type of subject determines which slots are available, replacing the old mixin pattern.",
            "properties": {
                "description": {
                    "description": "A detailed description of the entity.",
                    "type": [
                        "string",
                        "null"
                    ]
                },
                "id": {
                    "description": "A unique identifier for the entity.",
                    "type": "string"
                },
                "model_species": {
                    "anyOf": [
                        {
                            "$ref": "#/$defs/SpeciesReference"
                        },
                        {
                            "type": "null"
                        }
                    ],
                    "description": "The species of origin for the cells or organism being studied. Reference to NCBITaxon term."
                },
                "name": {
                    "description": "A human-readable name for the entity.",
                    "type": [
                        "string",
                        "null"
                    ]
                },
                "subject_type": {
                    "description": "The specific type of study subject. Used to designate which concrete class (e.g., CellularSystem, InVivoSubject) is instantiated for polymorphic study_subject slots.",
                    "enum": [
                        "StudySubject"
                    ],
                    "type": [
                        "string",
                        "null"
                    ]
                }
            },
            "required": [
                "id"
            ],
            "title": "StudySubject",
            "type": "object"
        },
        "SubstrateTypeEnum": {
            "description": "Types of cell culture substrates.",
            "enum": [
                "plastic",
                "collagen_coated",
                "matrigel",
                "fibronectin_coated",
                "laminin_coated",
                "transwell_insert",
                "hydrogel",
                "glass",
                "pdms"
            ],
            "title": "SubstrateTypeEnum",
            "type": "string"
        },
        "SupplementTypeEnum": {
            "description": "Categories of cell culture medium supplements.",
            "enum": [
                "growth_factor",
                "antibiotic",
                "antifungal",
                "hormone",
                "vitamin",
                "amino_acid",
                "lipid",
                "trace_element",
                "attachment_factor",
                "differentiation_factor"
            ],
            "title": "SupplementTypeEnum",
            "type": "string"
        },
        "Unit": {
            "additionalProperties": false,
            "description": "A unit of measurement from a standard ontology (UO, UCUM, QUDT).",
            "properties": {
                "id": {
                    "description": "A unique identifier for the entity.",
                    "pattern": "^(UO:\\d{7}|UCUM:\\S+|QUDT:\\S+)$",
                    "type": "string"
                },
                "name": {
                    "description": "A human-readable name for the entity.",
                    "type": [
                        "string",
                        "null"
                    ]
                }
            },
            "required": [
                "id"
            ],
            "title": "Unit",
            "type": "object"
        }
    },
    "$id": "https://w3id.org/EHS-Data-Standards/soma",
    "$schema": "https://json-schema.org/draft/2019-09/schema",
    "additionalProperties": true,
    "description": "Root container for outcomes research data. Organized around ASSAYS that inform on Key Events in Adverse Outcome Pathways (AOPs).\nThe schema is assay-centric: each assay class contains named slots for its specific measurements, with an explicit connection to the Key Event it informs via the informs_on_key_event slot.",
    "metamodel_version": "1.7.0",
    "properties": {
        "adverse_outcome_pathways": {
            "description": "Collection of Adverse Outcome Pathways. AOPs describe sequences of causally linked events from molecular initiating events to adverse outcomes.",
            "items": {
                "$ref": "#/$defs/AdverseOutcomePathway"
            },
            "type": [
                "array",
                "null"
            ]
        },
        "asl_assays": {
            "description": "Collection of airway surface liquid assays. Informs on Key Event: \"Decreased ASL height\" or \"Altered airway hydration\".",
            "items": {
                "$ref": "#/$defs/ASLAssay"
            },
            "type": [
                "array",
                "null"
            ]
        },
        "balf_sputum_assays": {
            "description": "Collection of BALF and sputum assays. In vivo only. Informs on Key Event: \"Airway inflammation\".",
            "items": {
                "$ref": "#/$defs/BALFSputumAssay"
            },
            "type": [
                "array",
                "null"
            ]
        },
        "cftr_assays": {
            "description": "Collection of CFTR function assays. Informs on Key Event: \"Decreased CFTR function\".",
            "items": {
                "$ref": "#/$defs/CFTRFunctionAssay"
            },
            "type": [
                "array",
                "null"
            ]
        },
        "ciliary_function_assays": {
            "description": "Collection of ciliary function assays. Informs on Key Event: \"Decreased ciliary function\". Contains named slots for beat frequency, active area, cilia length, etc.",
            "items": {
                "$ref": "#/$defs/CiliaryFunctionAssay"
            },
            "type": [
                "array",
                "null"
            ]
        },
        "egfr_signaling_assays": {
            "description": "Collection of EGFR signaling assays. Informs on Key Event: \"EGFR activation\". Note: EGFR phosphorylation is the most specific evidence for activation.",
            "items": {
                "$ref": "#/$defs/EGFRSignalingAssay"
            },
            "type": [
                "array",
                "null"
            ]
        },
        "foxj_assays": {
            "description": "Collection of FoxJ1/ciliogenesis assays. Informs on Key Event: \"Altered ciliogenesis\".",
            "items": {
                "$ref": "#/$defs/FoxJExpressionAssay"
            },
            "type": [
                "array",
                "null"
            ]
        },
        "gene_expression_assays": {
            "description": "Collection of gene expression assays. Generic assay for gene/protein expression measurements.",
            "items": {
                "$ref": "#/$defs/GeneExpressionAssay"
            },
            "type": [
                "array",
                "null"
            ]
        },
        "goblet_cell_assays": {
            "description": "Collection of goblet cell and mucin assays. Informs on Key Event: \"Goblet cell hyperplasia\" or \"Mucin hypersecretion\". Combined from previous GobletCellMeasurement and MucinProductionMeasurement.",
            "items": {
                "$ref": "#/$defs/GobletCellAssay"
            },
            "type": [
                "array",
                "null"
            ]
        },
        "key_events": {
            "description": "The key events in this AOP (intermediate events between MIE and AO).",
            "items": {
                "$ref": "#/$defs/KeyEvent"
            },
            "type": [
                "array",
                "null"
            ]
        },
        "lung_function_assays": {
            "description": "Collection of lung function assays. In vivo only. Informs on Adverse Outcome: \"Decreased lung function\" - the composite clinical outcome.",
            "items": {
                "$ref": "#/$defs/LungFunctionAssay"
            },
            "type": [
                "array",
                "null"
            ]
        },
        "mcc_assays": {
            "description": "Collection of mucociliary clearance assays. Informs on Key Event: \"Impaired mucociliary clearance\".",
            "items": {
                "$ref": "#/$defs/MucociliaryClearanceAssay"
            },
            "type": [
                "array",
                "null"
            ]
        },
        "oxidative_stress_assays": {
            "description": "Collection of oxidative stress assays. Informs on Key Event: \"Increased oxidative stress\" - often a Molecular Initiating Event.",
            "items": {
                "$ref": "#/$defs/OxidativeStressAssay"
            },
            "type": [
                "array",
                "null"
            ]
        },
        "protocols": {
            "description": "Collection of protocols. Contains Tier 2/3 procedural details important for reproducibility.",
            "items": {
                "anyOf": [
                    {
                        "$ref": "#/$defs/Protocol"
                    },
                    {
                        "$ref": "#/$defs/ImagingProtocol"
                    },
                    {
                        "$ref": "#/$defs/StainingProtocol"
                    },
                    {
                        "$ref": "#/$defs/SpirometryProtocol"
                    },
                    {
                        "$ref": "#/$defs/MolecularAssayProtocol"
                    }
                ]
            },
            "type": [
                "array",
                "null"
            ]
        }
    },
    "title": "soma",
    "type": "object",
    "version": null
}
