{
    "$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"
                    ]
                },
                "evidence": {
                    "description": "Evidence items backing this object's claims. Each one carries an exact quote from a cited publication.",
                    "items": {
                        "$ref": "#/$defs/EvidenceItem"
                    },
                    "type": [
                        "array",
                        "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": {
                    "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). Multivalued: one output record per experimental condition or group, so a control group and each treatment concentration in a dose-response series each get their own record (marked with experimental_group and linked to the exposure via measured_under).",
                    "items": {
                        "$ref": "#/$defs/ASLOutput"
                    },
                    "type": [
                        "array",
                        "null"
                    ]
                },
                "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"
                    ]
                },
                "evidence": {
                    "description": "Evidence items backing this object's claims. Each one carries an exact quote from a cited publication.",
                    "items": {
                        "$ref": "#/$defs/EvidenceItem"
                    },
                    "type": [
                        "array",
                        "null"
                    ]
                },
                "experimental_group": {
                    "$ref": "#/$defs/ExperimentalGroupEnum",
                    "description": "The role of this output record's group in the experimental design: control, vehicle control, baseline, treated, recovery, or sham. Lets extraction distinguish the control/baseline response from the treated response so a change relative to control can be assembled downstream."
                },
                "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"
                    ]
                },
                "measured_under": {
                    "description": "Reference (by id) to the specific ExposureCondition this output record was measured under. Links each set of response values to the concentration/treatment it corresponds to, so a dose-response series keeps each response paired with its exposure level. The referenced condition should be listed in the assay's has_exposure_condition.",
                    "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": "A specialized type of key event that represents the apical endpoint of an Adverse Outcome Pathway. The outcome may be defined at the individual or population level, and is relevant biomedical, clinical, regulator, or ecologically applications.",
            "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"
        },
        "AnatomicalEntityTerm": {
            "description": "An anatomical term from UBERON, under \"anatomical entity\".",
            "title": "AnatomicalEntityTerm",
            "type": "string"
        },
        "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"
                    ]
                },
                "evidence": {
                    "description": "Evidence items backing this object's claims. Each one carries an exact quote from a cited publication.",
                    "items": {
                        "$ref": "#/$defs/EvidenceItem"
                    },
                    "type": [
                        "array",
                        "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": {
                    "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). Multivalued: one output record per experimental condition or group, so a control group and each treatment concentration in a dose-response series each get their own record (marked with experimental_group and linked to the exposure via measured_under).",
                    "items": {
                        "$ref": "#/$defs/BALFSputumOutput"
                    },
                    "type": [
                        "array",
                        "null"
                    ]
                },
                "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."
                },
                "evidence": {
                    "description": "Evidence items backing this object's claims. Each one carries an exact quote from a cited publication.",
                    "items": {
                        "$ref": "#/$defs/EvidenceItem"
                    },
                    "type": [
                        "array",
                        "null"
                    ]
                },
                "experimental_group": {
                    "$ref": "#/$defs/ExperimentalGroupEnum",
                    "description": "The role of this output record's group in the experimental design: control, vehicle control, baseline, treated, recovery, or sham. Lets extraction distinguish the control/baseline response from the treated response so a change relative to control can be assembled downstream."
                },
                "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."
                },
                "measured_under": {
                    "description": "Reference (by id) to the specific ExposureCondition this output record was measured under. Links each set of response values to the concentration/treatment it corresponds to, so a dose-response series keeps each response paired with its exposure level. The referenced condition should be listed in the assay's has_exposure_condition.",
                    "type": [
                        "string",
                        "null"
                    ]
                },
                "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"
                    ]
                },
                "evidence": {
                    "description": "Evidence items backing this object's claims. Each one carries an exact quote from a cited publication.",
                    "items": {
                        "$ref": "#/$defs/EvidenceItem"
                    },
                    "type": [
                        "array",
                        "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": {
                    "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). Multivalued: one output record per experimental condition or group, so a control group and each treatment concentration in a dose-response series each get their own record (marked with experimental_group and linked to the exposure via measured_under).",
                    "items": {
                        "$ref": "#/$defs/CFTRFunctionOutput"
                    },
                    "type": [
                        "array",
                        "null"
                    ]
                },
                "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"
                    ]
                },
                "evidence": {
                    "description": "Evidence items backing this object's claims. Each one carries an exact quote from a cited publication.",
                    "items": {
                        "$ref": "#/$defs/EvidenceItem"
                    },
                    "type": [
                        "array",
                        "null"
                    ]
                },
                "experimental_group": {
                    "$ref": "#/$defs/ExperimentalGroupEnum",
                    "description": "The role of this output record's group in the experimental design: control, vehicle control, baseline, treated, recovery, or sham. Lets extraction distinguish the control/baseline response from the treated response so a change relative to control can be assembled downstream."
                },
                "id": {
                    "description": "A unique identifier for the entity.",
                    "type": "string"
                },
                "inhibitor_sensitive_current": {
                    "anyOf": [
                        {
                            "$ref": "#/$defs/QuantityValue"
                        },
                        {
                            "type": "null"
                        }
                    ],
                    "description": "Inhibitor-sensitive current measurement."
                },
                "measured_under": {
                    "description": "Reference (by id) to the specific ExposureCondition this output record was measured under. Links each set of response values to the concentration/treatment it corresponds to, so a dose-response series keeps each response paired with its exposure level. The referenced condition should be listed in the assay's has_exposure_condition.",
                    "type": [
                        "string",
                        "null"
                    ]
                },
                "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"
        },
        "CellTypeTerm": {
            "description": "A cell type term from the Cell Ontology (CL), under \"cell\".",
            "title": "CellTypeTerm",
            "type": "string"
        },
        "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"
        },
        "CentralTendencyEnum": {
            "description": "What kind of central value a reported number represents.",
            "enum": [
                "mean",
                "median",
                "geometric_mean",
                "single_value"
            ],
            "title": "CentralTendencyEnum",
            "type": "string"
        },
        "ChangeDirectionEnum": {
            "description": "Direction of a change in the treated group relative to control.",
            "enum": [
                "increased",
                "decreased",
                "no_change"
            ],
            "title": "ChangeDirectionEnum",
            "type": "string"
        },
        "ChangeTypeEnum": {
            "description": "Forms in which a change relative to control can be expressed.",
            "enum": [
                "absolute_difference",
                "percent_change",
                "fold_change",
                "ratio"
            ],
            "title": "ChangeTypeEnum",
            "type": "string"
        },
        "ChemicalEntityReference": {
            "additionalProperties": false,
            "description": "A reference to a chemical entity from CHEBI, an exposure concept from ECTO, or an environmental material from ENVO (e.g. particulate matter, which is an ENVO concept, not a CHEBI chemical).",
            "properties": {
                "id": {
                    "description": "A unique identifier for the entity.",
                    "pattern": "^(CHEBI:\\d+|ECTO:\\d{7}|ENVO:\\d{8})$",
                    "type": "string"
                },
                "name": {
                    "description": "A human-readable name for the entity.",
                    "type": [
                        "string",
                        "null"
                    ]
                }
            },
            "required": [
                "id"
            ],
            "title": "ChemicalEntityReference",
            "type": "object"
        },
        "ChemicalEntityTerm": {
            "description": "A chemical entity from CHEBI or an exposure concept from ECTO. No branch constraint because two ontologies are allowed \u2014 the validator still checks the term exists and the label matches.",
            "title": "ChemicalEntityTerm",
            "type": "string"
        },
        "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"
                    ]
                },
                "evidence": {
                    "description": "Evidence items backing this object's claims. Each one carries an exact quote from a cited publication.",
                    "items": {
                        "$ref": "#/$defs/EvidenceItem"
                    },
                    "type": [
                        "array",
                        "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": {
                    "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). Multivalued: one output record per experimental condition or group, so a control group and each treatment concentration in a dose-response series each get their own record (marked with experimental_group and linked to the exposure via measured_under).",
                    "items": {
                        "$ref": "#/$defs/CiliaryFunctionOutput"
                    },
                    "type": [
                        "array",
                        "null"
                    ]
                },
                "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"
                    ]
                },
                "evidence": {
                    "description": "Evidence items backing this object's claims. Each one carries an exact quote from a cited publication.",
                    "items": {
                        "$ref": "#/$defs/EvidenceItem"
                    },
                    "type": [
                        "array",
                        "null"
                    ]
                },
                "experimental_group": {
                    "$ref": "#/$defs/ExperimentalGroupEnum",
                    "description": "The role of this output record's group in the experimental design: control, vehicle control, baseline, treated, recovery, or sham. Lets extraction distinguish the control/baseline response from the treated response so a change relative to control can be assembled downstream."
                },
                "id": {
                    "description": "A unique identifier for the entity.",
                    "type": "string"
                },
                "measured_under": {
                    "description": "Reference (by id) to the specific ExposureCondition this output record was measured under. Links each set of response values to the concentration/treatment it corresponds to, so a dose-response series keeps each response paired with its exposure level. The referenced condition should be listed in the assay's has_exposure_condition.",
                    "type": [
                        "string",
                        "null"
                    ]
                },
                "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_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"
                    ]
                },
                "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"
                    ]
                },
                "response_comparisons": {
                    "description": "Collection of analysis-layer records comparing treated responses to control/baseline responses. Kept separate from the extracted assay data: each comparison references the control and treated output records and states the kind, direction, and size of the change with its uncertainty.",
                    "items": {
                        "$ref": "#/$defs/ResponseComparison"
                    },
                    "type": [
                        "array",
                        "null"
                    ]
                },
                "source_publication": {
                    "anyOf": [
                        {
                            "$ref": "#/$defs/PublicationReference"
                        },
                        {
                            "type": "null"
                        }
                    ],
                    "description": "The publication this data was extracted from."
                }
            },
            "title": "Container",
            "type": "object"
        },
        "DerivationEnum": {
            "description": "Provenance of an analysis-layer value.",
            "enum": [
                "reported_in_paper",
                "computed"
            ],
            "title": "DerivationEnum",
            "type": "string"
        },
        "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"
                    ]
                },
                "evidence": {
                    "description": "Evidence items backing this object's claims. Each one carries an exact quote from a cited publication.",
                    "items": {
                        "$ref": "#/$defs/EvidenceItem"
                    },
                    "type": [
                        "array",
                        "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": {
                    "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). Multivalued: one output record per experimental condition or group, so a control group and each treatment concentration in a dose-response series each get their own record (marked with experimental_group and linked to the exposure via measured_under).",
                    "items": {
                        "$ref": "#/$defs/EGFRSignalingOutput"
                    },
                    "type": [
                        "array",
                        "null"
                    ]
                },
                "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."
                },
                "evidence": {
                    "description": "Evidence items backing this object's claims. Each one carries an exact quote from a cited publication.",
                    "items": {
                        "$ref": "#/$defs/EvidenceItem"
                    },
                    "type": [
                        "array",
                        "null"
                    ]
                },
                "experimental_group": {
                    "$ref": "#/$defs/ExperimentalGroupEnum",
                    "description": "The role of this output record's group in the experimental design: control, vehicle control, baseline, treated, recovery, or sham. Lets extraction distinguish the control/baseline response from the treated response so a change relative to control can be assembled downstream."
                },
                "id": {
                    "description": "A unique identifier for the entity.",
                    "type": "string"
                },
                "measured_under": {
                    "description": "Reference (by id) to the specific ExposureCondition this output record was measured under. Links each set of response values to the concentration/treatment it corresponds to, so a dose-response series keeps each response paired with its exposure level. The referenced condition should be listed in the assay's has_exposure_condition.",
                    "type": [
                        "string",
                        "null"
                    ]
                },
                "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"
        },
        "EvidenceItem": {
            "additionalProperties": false,
            "description": "One piece of evidence for a claim: which publication it comes from, an exact quote from that publication, whether the quote supports or refutes the claim, and what kind of study produced it.",
            "properties": {
                "evidence_source": {
                    "$ref": "#/$defs/EvidenceSourceEnum",
                    "description": "What kind of study the cited publication reports \u2014 classify the paper, not the person doing the extraction."
                },
                "explanation": {
                    "description": "One or two sentences on how the quoted passage supports the specific claim it is attached to.",
                    "type": [
                        "string",
                        "null"
                    ]
                },
                "reference": {
                    "description": "The cited publication's PubMed ID, e.g. \"PMID:12345678\".",
                    "pattern": "^PMID:\\d+$",
                    "type": [
                        "string",
                        "null"
                    ]
                },
                "reference_title": {
                    "description": "The title of the cited publication, copied from the cached reference record (references_cache/), never typed from memory.",
                    "type": [
                        "string",
                        "null"
                    ]
                },
                "snippet": {
                    "description": "An exact quote from the cited publication that supports or refutes the claim. Checked automatically: the text must appear word-for-word in the cached copy of the publication.",
                    "type": [
                        "string",
                        "null"
                    ]
                },
                "supports": {
                    "$ref": "#/$defs/EvidenceItemSupportEnum",
                    "description": "Which way the quoted evidence points: does it support the claim, contradict it, or turn out not to bear on it at all."
                }
            },
            "title": "EvidenceItem",
            "type": "object"
        },
        "EvidenceItemSupportEnum": {
            "description": "Which way the cited evidence points relative to the claim. Direction only \u2014 it says nothing about how strong the evidence is.",
            "enum": [
                "SUPPORT",
                "REFUTE",
                "NO_EVIDENCE"
            ],
            "title": "EvidenceItemSupportEnum",
            "type": "string"
        },
        "EvidenceSourceEnum": {
            "description": "The kind of study the cited publication reports.",
            "enum": [
                "HUMAN_CLINICAL",
                "MODEL_ORGANISM",
                "IN_VITRO",
                "COMPUTATIONAL",
                "OTHER"
            ],
            "title": "EvidenceSourceEnum",
            "type": "string"
        },
        "EvidenceSupportEnum": {
            "description": "Levels of evidence support for key event relationships.",
            "enum": [
                "strong",
                "moderate",
                "weak",
                "not_specified"
            ],
            "title": "EvidenceSupportEnum",
            "type": "string"
        },
        "ExperimentalGroupEnum": {
            "description": "The role of an experimental group in a study design, used to mark each per-condition output record.",
            "enum": [
                "control",
                "vehicle_control",
                "baseline",
                "treated",
                "recovery",
                "sham"
            ],
            "title": "ExperimentalGroupEnum",
            "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"
                    ]
                },
                "evidence": {
                    "description": "Evidence items backing this object's claims. Each one carries an exact quote from a cited publication.",
                    "items": {
                        "$ref": "#/$defs/EvidenceItem"
                    },
                    "type": [
                        "array",
                        "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": {
                    "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). Multivalued: one output record per experimental condition or group, so a control group and each treatment concentration in a dose-response series each get their own record (marked with experimental_group and linked to the exposure via measured_under).",
                    "items": {
                        "$ref": "#/$defs/FoxJExpressionOutput"
                    },
                    "type": [
                        "array",
                        "null"
                    ]
                },
                "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"
                    ]
                },
                "evidence": {
                    "description": "Evidence items backing this object's claims. Each one carries an exact quote from a cited publication.",
                    "items": {
                        "$ref": "#/$defs/EvidenceItem"
                    },
                    "type": [
                        "array",
                        "null"
                    ]
                },
                "experimental_group": {
                    "$ref": "#/$defs/ExperimentalGroupEnum",
                    "description": "The role of this output record's group in the experimental design: control, vehicle control, baseline, treated, recovery, or sham. Lets extraction distinguish the control/baseline response from the treated response so a change relative to control can be assembled downstream."
                },
                "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"
                },
                "measured_under": {
                    "description": "Reference (by id) to the specific ExposureCondition this output record was measured under. Links each set of response values to the concentration/treatment it corresponds to, so a dose-response series keeps each response paired with its exposure level. The referenced condition should be listed in the assay's has_exposure_condition.",
                    "type": [
                        "string",
                        "null"
                    ]
                },
                "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"
                    ]
                },
                "evidence": {
                    "description": "Evidence items backing this object's claims. Each one carries an exact quote from a cited publication.",
                    "items": {
                        "$ref": "#/$defs/EvidenceItem"
                    },
                    "type": [
                        "array",
                        "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": {
                    "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). Multivalued: one output record per experimental condition or group, so a control group and each treatment concentration in a dose-response series each get their own record (marked with experimental_group and linked to the exposure via measured_under).",
                    "items": {
                        "$ref": "#/$defs/GeneExpressionOutput"
                    },
                    "type": [
                        "array",
                        "null"
                    ]
                },
                "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"
                    ]
                },
                "evidence": {
                    "description": "Evidence items backing this object's claims. Each one carries an exact quote from a cited publication.",
                    "items": {
                        "$ref": "#/$defs/EvidenceItem"
                    },
                    "type": [
                        "array",
                        "null"
                    ]
                },
                "experimental_group": {
                    "$ref": "#/$defs/ExperimentalGroupEnum",
                    "description": "The role of this output record's group in the experimental design: control, vehicle control, baseline, treated, recovery, or sham. Lets extraction distinguish the control/baseline response from the treated response so a change relative to control can be assembled downstream."
                },
                "id": {
                    "description": "A unique identifier for the entity.",
                    "type": "string"
                },
                "measured_under": {
                    "description": "Reference (by id) to the specific ExposureCondition this output record was measured under. Links each set of response values to the concentration/treatment it corresponds to, so a dose-response series keeps each response paired with its exposure level. The referenced condition should be listed in the assay's has_exposure_condition.",
                    "type": [
                        "string",
                        "null"
                    ]
                },
                "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"
                    ]
                },
                "evidence": {
                    "description": "Evidence items backing this object's claims. Each one carries an exact quote from a cited publication.",
                    "items": {
                        "$ref": "#/$defs/EvidenceItem"
                    },
                    "type": [
                        "array",
                        "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": {
                    "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). Multivalued: one output record per experimental condition or group, so a control group and each treatment concentration in a dose-response series each get their own record (marked with experimental_group and linked to the exposure via measured_under).",
                    "items": {
                        "$ref": "#/$defs/GobletCellOutput"
                    },
                    "type": [
                        "array",
                        "null"
                    ]
                },
                "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"
                    ]
                },
                "evidence": {
                    "description": "Evidence items backing this object's claims. Each one carries an exact quote from a cited publication.",
                    "items": {
                        "$ref": "#/$defs/EvidenceItem"
                    },
                    "type": [
                        "array",
                        "null"
                    ]
                },
                "experimental_group": {
                    "$ref": "#/$defs/ExperimentalGroupEnum",
                    "description": "The role of this output record's group in the experimental design: control, vehicle control, baseline, treated, recovery, or sham. Lets extraction distinguish the control/baseline response from the treated response so a change relative to control can be assembled downstream."
                },
                "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"
                },
                "measured_under": {
                    "description": "Reference (by id) to the specific ExposureCondition this output record was measured under. Links each set of response values to the concentration/treatment it corresponds to, so a dose-response series keeps each response paired with its exposure level. The referenced condition should be listed in the assay's has_exposure_condition.",
                    "type": [
                        "string",
                        "null"
                    ]
                },
                "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"
                },
                "member_of_cohort": {
                    "description": "The cohort this subject record belongs to. Use when one study cohort is sampled in multiple ways: give each sampling context its own InVivoSubject with its specimen slots, and point them all to one PopulationSubject holding cohort_size and shared characteristics.",
                    "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"
                    ]
                },
                "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 reflect the measurable and essential biological perturbations that   provide evidence for progression leading to a specific adverse outcome. 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"
                    ]
                },
                "evidence": {
                    "description": "Evidence items backing this object's claims. Each one carries an exact quote from a cited publication.",
                    "items": {
                        "$ref": "#/$defs/EvidenceItem"
                    },
                    "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": {
                    "description": "Evidence items backing this object's claims. Each one carries an exact quote from a cited publication.",
                    "items": {
                        "$ref": "#/$defs/EvidenceItem"
                    },
                    "type": [
                        "array",
                        "null"
                    ]
                },
                "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"
                    ]
                },
                "evidence": {
                    "description": "Evidence items backing this object's claims. Each one carries an exact quote from a cited publication.",
                    "items": {
                        "$ref": "#/$defs/EvidenceItem"
                    },
                    "type": [
                        "array",
                        "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": {
                    "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). Multivalued: one output record per experimental condition or group, so a control group and each treatment concentration in a dose-response series each get their own record (marked with experimental_group and linked to the exposure via measured_under).",
                    "items": {
                        "$ref": "#/$defs/LungFunctionOutput"
                    },
                    "type": [
                        "array",
                        "null"
                    ]
                },
                "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."
                },
                "evidence": {
                    "description": "Evidence items backing this object's claims. Each one carries an exact quote from a cited publication.",
                    "items": {
                        "$ref": "#/$defs/EvidenceItem"
                    },
                    "type": [
                        "array",
                        "null"
                    ]
                },
                "experimental_group": {
                    "$ref": "#/$defs/ExperimentalGroupEnum",
                    "description": "The role of this output record's group in the experimental design: control, vehicle control, baseline, treated, recovery, or sham. Lets extraction distinguish the control/baseline response from the treated response so a change relative to control can be assembled downstream."
                },
                "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."
                },
                "measured_under": {
                    "description": "Reference (by id) to the specific ExposureCondition this output record was measured under. Links each set of response values to the concentration/treatment it corresponds to, so a dose-response series keeps each response paired with its exposure level. The referenced condition should be listed in the assay's has_exposure_condition.",
                    "type": [
                        "string",
                        "null"
                    ]
                },
                "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"
                    ]
                },
                "evidence": {
                    "description": "Evidence items backing this object's claims. Each one carries an exact quote from a cited publication.",
                    "items": {
                        "$ref": "#/$defs/EvidenceItem"
                    },
                    "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"
                    ]
                },
                "evidence": {
                    "description": "Evidence items backing this object's claims. Each one carries an exact quote from a cited publication.",
                    "items": {
                        "$ref": "#/$defs/EvidenceItem"
                    },
                    "type": [
                        "array",
                        "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": {
                    "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). Multivalued: one output record per experimental condition or group, so a control group and each treatment concentration in a dose-response series each get their own record (marked with experimental_group and linked to the exposure via measured_under).",
                    "items": {
                        "$ref": "#/$defs/MucociliaryClearanceOutput"
                    },
                    "type": [
                        "array",
                        "null"
                    ]
                },
                "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"
                    ]
                },
                "evidence": {
                    "description": "Evidence items backing this object's claims. Each one carries an exact quote from a cited publication.",
                    "items": {
                        "$ref": "#/$defs/EvidenceItem"
                    },
                    "type": [
                        "array",
                        "null"
                    ]
                },
                "experimental_group": {
                    "$ref": "#/$defs/ExperimentalGroupEnum",
                    "description": "The role of this output record's group in the experimental design: control, vehicle control, baseline, treated, recovery, or sham. Lets extraction distinguish the control/baseline response from the treated response so a change relative to control can be assembled downstream."
                },
                "id": {
                    "description": "A unique identifier for the entity.",
                    "type": "string"
                },
                "measured_under": {
                    "description": "Reference (by id) to the specific ExposureCondition this output record was measured under. Links each set of response values to the concentration/treatment it corresponds to, so a dose-response series keeps each response paired with its exposure level. The referenced condition should be listed in the assay's has_exposure_condition.",
                    "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"
                    ]
                },
                "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"
                    ]
                },
                "evidence": {
                    "description": "Evidence items backing this object's claims. Each one carries an exact quote from a cited publication.",
                    "items": {
                        "$ref": "#/$defs/EvidenceItem"
                    },
                    "type": [
                        "array",
                        "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": {
                    "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). Multivalued: one output record per experimental condition or group, so a control group and each treatment concentration in a dose-response series each get their own record (marked with experimental_group and linked to the exposure via measured_under).",
                    "items": {
                        "$ref": "#/$defs/OxidativeStressOutput"
                    },
                    "type": [
                        "array",
                        "null"
                    ]
                },
                "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."
                },
                "evidence": {
                    "description": "Evidence items backing this object's claims. Each one carries an exact quote from a cited publication.",
                    "items": {
                        "$ref": "#/$defs/EvidenceItem"
                    },
                    "type": [
                        "array",
                        "null"
                    ]
                },
                "experimental_group": {
                    "$ref": "#/$defs/ExperimentalGroupEnum",
                    "description": "The role of this output record's group in the experimental design: control, vehicle control, baseline, treated, recovery, or sham. Lets extraction distinguish the control/baseline response from the treated response so a change relative to control can be assembled downstream."
                },
                "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."
                },
                "measured_under": {
                    "description": "Reference (by id) to the specific ExposureCondition this output record was measured under. Links each set of response values to the concentration/treatment it corresponds to, so a dose-response series keeps each response paired with its exposure level. The referenced condition should be listed in the assay's has_exposure_condition.",
                    "type": [
                        "string",
                        "null"
                    ]
                },
                "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"
        },
        "PublicationReference": {
            "additionalProperties": false,
            "description": "The publication a data file was extracted from. Every Container names its source paper here, so each kb/ file is traceable to one publication.",
            "properties": {
                "doi": {
                    "description": "The publication's DOI, e.g. \"10.1164/rccm.202001-0086OC\" (without a \"DOI:\" prefix).",
                    "type": [
                        "string",
                        "null"
                    ]
                },
                "reference": {
                    "description": "The cited publication's PubMed ID, e.g. \"PMID:12345678\".",
                    "pattern": "^PMID:\\d+$",
                    "type": [
                        "string",
                        "null"
                    ]
                },
                "reference_title": {
                    "description": "The title of the cited publication, copied from the cached reference record (references_cache/), never typed from memory.",
                    "type": [
                        "string",
                        "null"
                    ]
                }
            },
            "title": "PublicationReference",
            "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. Optionally records what kind of central value this is (mean, median, single measurement), the reported variability around it (SD, SEM, confidence interval, range), and the number of subjects or replicates behind it. Keeping variability separate from the central value lets downstream analyses use each independently.",
            "properties": {
                "central_tendency": {
                    "$ref": "#/$defs/CentralTendencyEnum",
                    "description": "What kind of central value the reported number is: a mean, median, geometric mean, or a single measurement. Important for combining results across studies."
                },
                "sample_size": {
                    "description": "Number of subjects, samples, or replicates behind this value.",
                    "type": [
                        "integer",
                        "null"
                    ]
                },
                "unit": {
                    "anyOf": [
                        {
                            "$ref": "#/$defs/Unit"
                        },
                        {
                            "type": "null"
                        }
                    ],
                    "description": "The unit of measurement."
                },
                "value": {
                    "description": "The numeric value of the quantity.",
                    "type": [
                        "string",
                        "null"
                    ]
                },
                "variability": {
                    "anyOf": [
                        {
                            "$ref": "#/$defs/Variability"
                        },
                        {
                            "type": "null"
                        }
                    ],
                    "description": "The reported variability around the value (SD, SEM, confidence interval, or range), kept separate from the central value itself."
                }
            },
            "title": "QuantityValue",
            "type": "object"
        },
        "ResponseComparison": {
            "additionalProperties": false,
            "description": "An analysis-layer record describing the change in a measured response between a control/baseline group and a treated group. Lives alongside the extracted assay data rather than inside it: papers report changes in many forms (absolute difference, percent change, fold change, ratio), and downstream models need a single change value with an uncertainty measure. References the control and treated output records by id, names the measurement being compared, and states the kind, direction, and size of the change. Use derivation to record whether the change was reported in the paper or computed afterwards.",
            "properties": {
                "change_direction": {
                    "$ref": "#/$defs/ChangeDirectionEnum",
                    "description": "Direction of the change in the treated group relative to control."
                },
                "change_type": {
                    "$ref": "#/$defs/ChangeTypeEnum",
                    "description": "How the change is expressed: an absolute difference, a percent change, a fold change, or a ratio. Papers report changes in different forms; this makes the form explicit so values can be compared or converted downstream."
                },
                "change_value": {
                    "anyOf": [
                        {
                            "$ref": "#/$defs/QuantityValue"
                        },
                        {
                            "type": "null"
                        }
                    ],
                    "description": "The size of the change, with its unit and (when reported) its uncertainty. For a percent change the unit is percent; for an absolute difference it is the measurement's unit; fold changes and ratios are dimensionless."
                },
                "compared_measurement": {
                    "description": "The name of the measurement slot being compared (e.g., \"total_lung_capacity\", \"beat_frequency_hz\"), matching the slot name in the referenced output records.",
                    "type": [
                        "string",
                        "null"
                    ]
                },
                "control_output": {
                    "description": "Reference (by id) to the AssayOutputMeasurement record for the control or baseline group.",
                    "type": [
                        "string",
                        "null"
                    ]
                },
                "derivation": {
                    "$ref": "#/$defs/DerivationEnum",
                    "description": "Whether this change was reported directly in the paper or computed afterwards from the extracted control and treated values."
                },
                "derived_from_assay": {
                    "description": "Reference (by id) to the assay whose output records this comparison is derived from.",
                    "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"
                    ]
                },
                "p_value": {
                    "description": "Reported p-value for the comparison, when available.",
                    "type": [
                        "number",
                        "null"
                    ]
                },
                "statistical_test": {
                    "description": "Statistical test used for the comparison (e.g., t-test, ANOVA), when reported.",
                    "type": [
                        "string",
                        "null"
                    ]
                },
                "treated_output": {
                    "description": "Reference (by id) to the AssayOutputMeasurement record for the treated group.",
                    "type": [
                        "string",
                        "null"
                    ]
                }
            },
            "required": [
                "id"
            ],
            "title": "ResponseComparison",
            "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"
        },
        "SpeciesTerm": {
            "description": "A species from the NCBI Taxonomy. No branch constraint \u2014 the validator checks the term exists and the label matches.",
            "title": "SpeciesTerm",
            "type": "string"
        },
        "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, STATO).",
            "properties": {
                "id": {
                    "description": "A unique identifier for the entity.",
                    "pattern": "^(UO:\\d{7}|UCUM:\\S+|QUDT:\\S+|STATO:\\d{7})$",
                    "type": "string"
                },
                "name": {
                    "description": "A human-readable name for the entity.",
                    "type": [
                        "string",
                        "null"
                    ]
                }
            },
            "required": [
                "id"
            ],
            "title": "Unit",
            "type": "object"
        },
        "UnitTerm": {
            "description": "A unit of measurement from UO (UCUM/QUDT/STATO ids are also allowed by the Unit class but are not label-checked). No branch constraint.",
            "title": "UnitTerm",
            "type": "string"
        },
        "Variability": {
            "additionalProperties": false,
            "description": "The reported spread or uncertainty around a measured value, kept separate from the value itself because papers report it in different forms. Use variability_type to say what was reported (standard deviation, standard error, confidence interval, range) and either a single magnitude (value) or bounds (lower_bound/upper_bound), with a unit when it differs from the measurement's unit.",
            "properties": {
                "lower_bound": {
                    "description": "Lower bound when variability is reported as an interval (confidence interval, range, IQR).",
                    "type": [
                        "string",
                        "null"
                    ]
                },
                "unit": {
                    "anyOf": [
                        {
                            "$ref": "#/$defs/Unit"
                        },
                        {
                            "type": "null"
                        }
                    ],
                    "description": "The unit of measurement."
                },
                "upper_bound": {
                    "description": "Upper bound when variability is reported as an interval (confidence interval, range, IQR).",
                    "type": [
                        "string",
                        "null"
                    ]
                },
                "value": {
                    "description": "The numeric value of the quantity.",
                    "type": [
                        "string",
                        "null"
                    ]
                },
                "variability_type": {
                    "$ref": "#/$defs/VariabilityTypeEnum",
                    "description": "The kind of variability reported (standard deviation, standard error, 95% confidence interval, range, interquartile range)."
                }
            },
            "title": "Variability",
            "type": "object"
        },
        "VariabilityTypeEnum": {
            "description": "Kinds of variability or uncertainty reported around a value.",
            "enum": [
                "standard_deviation",
                "standard_error",
                "confidence_interval_95",
                "confidence_interval_other",
                "range",
                "interquartile_range"
            ],
            "title": "VariabilityTypeEnum",
            "type": "string"
        }
    },
    "$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_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"
            ]
        },
        "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"
            ]
        },
        "response_comparisons": {
            "description": "Collection of analysis-layer records comparing treated responses to control/baseline responses. Kept separate from the extracted assay data: each comparison references the control and treated output records and states the kind, direction, and size of the change with its uncertainty.",
            "items": {
                "$ref": "#/$defs/ResponseComparison"
            },
            "type": [
                "array",
                "null"
            ]
        },
        "source_publication": {
            "anyOf": [
                {
                    "$ref": "#/$defs/PublicationReference"
                },
                {
                    "type": "null"
                }
            ],
            "description": "The publication this data was extracted from."
        }
    },
    "title": "soma",
    "type": "object",
    "version": null
}
