{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "$id": "https://scischema.org/schemas/imaging/mea-recordings/1.0.0/master-schema.json",
  "version": "1.0.0",
  "title": "MEA Recordings Process Schema",
  "description": "Comprehensive schema for multi-electrode array (MEA) experiments, capturing biological sample characteristics, electrode and device configuration, acquisition settings, environmental conditions, stimulation protocols, data processing workflows, and output metrics across diverse electrophysiological applications.",
  "type": "object",
  "$defs": {
    "QuantityValue": {
      "type": "object",
      "description": "A reported quantity with value and unit.",
      "properties": {
        "value": {
          "type": "number",
          "description": "Numerical value of the quantity."
        },
        "unit": {
          "type": "string",
          "description": "Measurement unit associated with the value."
        }
      },
      "required": [
        "value",
        "unit"
      ],
      "unevaluatedProperties": false
    }
  },
  "properties": {
    "sampleType": {
      "type": "object",
      "description": "Biological preparation characteristics, culture conditions, and maturation status",
      "properties": {
        "species": {
          "type": "string",
          "description": "Species from which the biological preparation was derived (e.g., human, rat, mouse). Critical for physiological relevance and cross-species comparisons.",
          "enum": [
            "human",
            "rat",
            "mouse",
            "rabbit",
            "other"
          ]
        },
        "cellOrigin": {
          "type": "string",
          "description": "Source of cells used in the preparation. Affects electrophysiological properties and experimental interpretation.",
          "enum": [
            "primary",
            "immortalized",
            "hiPSC-derived",
            "other"
          ]
        },
        "cellCultureType": {
          "type": "string",
          "description": "Specific type of culture being used. Important for interpreting electrophysiological properties and drug responses.",
          "enum": [
            "cardiac",
            "neuronal",
            "skeletal_muscle",
            "smooth_muscle",
            "retinal",
            "organoid",
            "co-culture",
            "other"
          ]
        },
        "sex": {
          "type": "string",
          "description": "Sex of the biological source for the cells. Important for identifying potential sex-specific electrophysiological differences",
          "enum": [
            "male",
            "female",
            "mixed"
          ],
          "default": "mixed"
        },
        "cultureDimensionality": {
          "type": "string",
          "description": "Culture dimensionality (2D monolayer or 3D structure). Affects network connectivity and signal propagation.",
          "enum": [
            "2D",
            "3D"
          ],
          "default": "2D"
        },
        "surfaceCoating": {
          "type": "string",
          "description": "Surface functionalization for cell adhesion (e.g., poly-D-lysine, laminin isoforms, fibronectin). Enhances cell attachment and recording stability.",
          "examples": [
            "poly-D-lysine",
            "laminin (LN-521)",
            "laminin (LN-221)",
            "laminin (LN-211)",
            "ornithine",
            "poly-L-lysine",
            "fibronectin (40 μg/ml)",
            "Geltrex",
            "gelatin (0.02%)"
          ]
        },
        "seedingMethod": {
          "type": "string",
          "description": "Method used for seeding cells on the MEA. Droplet seeding over the central recording matrix significantly improves field potential detection capacity and amplitude compared to whole MEA seeding by keeping the internal reference electrode free of cell monolayer.",
          "enum": [
            "droplet",
            "wholeMEA"
          ],
          "default": "droplet"
        },
        "seedingDensity": {
          "$ref": "#/$defs/QuantityValue",
          "description": "Cell seeding density in cells per square centimeter (cells/cm²). Critical for network formation and activity patterns.",
          "properties": {
            "value": {
              "minimum": 100,
              "maximum": 2000000
            },
            "unit": {
              "const": "cells/cm²"
            }
          }
        },
        "cellArrangement": {
          "type": "string",
          "description": "Spatial arrangement of cells on the MEA. Affects signal quality and interpretation of network activity. Clustered arrangements may enhance local network connectivity while uniform arrangements provide broader coverage.",
          "enum": [
            "uniform",
            "clustered",
            "patterned",
            "random"
          ],
          "default": "uniform"
        },
        "cellCultureMedia": {
          "type": "string",
          "description": "Specific formulation of culture media used for cell maintenance. Different cell types require specialized media formulations that affect electrophysiological properties and drug responses.",
          "examples": [
            "DMEM/Glutamax with specific supplements for NRVMs",
            "Claycomb media with supplements for HL-1 cells",
            "RPMI with B27 minus vitamin A for hiPSC-CMs",
            "RPMI 1640 with B27 supplement",
            "BPEL medium",
            "Neurobasal with B27",
            "AMES Medium",
            "Artificial Cerebrospinal Fluid (aCSF)",
            "Phosphate-buffered saline (PBS)"
          ]
        },
        "recordingMedium": {
          "type": "string",
          "description": "Medium used during recording sessions. Affects cell viability and electrophysiological properties.",
          "examples": [
            "RPMI 1640 with B27 supplement",
            "BPEL medium",
            "Neurobasal with B27",
            "AMES Medium",
            "Artificial Cerebrospinal Fluid (aCSF)",
            "Phosphate-buffered saline (PBS)"
          ]
        },
        "daysInVitro": {
          "$ref": "#/$defs/QuantityValue",
          "description": "Culture age in days since plating or differentiation initiation. Critical for assessing cell maturation state and electrophysiological properties.",
          "properties": {
            "value": {
              "minimum": 0,
              "maximum": 100
            },
            "unit": {
              "const": "days"
            }
          }
        }
      },
      "required": [
        "species",
        "cellOrigin",
        "cellCultureType",
        "cultureDimensionality",
        "daysInVitro"
      ]
    },
    "electrode": {
      "type": "object",
      "description": "Electrode physical, electrical, and configuration characteristics including specialized poration methods",
      "properties": {
        "material": {
          "type": "string",
          "description": "Electrode material affecting impedance, biocompatibility, and signal-to-noise ratio.",
          "examples": [
            "platinum",
            "gold",
            "titanium nitride",
            "graphene (G-CVD)",
            "PEDOT:PSS"
          ]
        },
        "coatingMaterial": {
          "type": "string",
          "description": "Conductive polymer coating applied to electrode material to enhance signal amplitudes.",
          "examples": [
            "PEDOT:PSS",
            "other conductive polymer"
          ]
        },
        "geometry": {
          "type": "object",
          "description": "Spatial configuration of electrodes",
          "properties": {
            "shape": {
              "type": "string",
              "description": "Geometric shape of individual electrodes. Affects electric field distribution and recording characteristics.",
              "enum": [
                "circular",
                "square",
                "rectangular",
                "hexagonal",
                "other"
              ],
              "default": "circular"
            },
            "size": {
              "$ref": "#/$defs/QuantityValue",
              "description": "Electrode contact diameter or side length in micrometers (µm). Affects signal amplitude and single-unit resolution.",
              "properties": {
                "value": {
                  "minimum": 5,
                  "maximum": 500
                },
                "unit": {
                  "const": "µm"
                }
              }
            },
            "spacing": {
              "$ref": "#/$defs/QuantityValue",
              "description": "Center-to-center distance between adjacent electrodes in micrometers (µm). Determines spatial resolution and crosstalk.",
              "properties": {
                "value": {
                  "minimum": 100,
                  "maximum": 2000
                },
                "unit": {
                  "const": "µm"
                }
              }
            },
            "totalNumber": {
              "type": "integer",
              "description": "Total electrodes in the array. Defines coverage area and network analysis capability.",
              "minimum": 4,
              "maximum": 20000
            }
          },
          "required": [
            "shape",
            "size",
            "spacing",
            "totalNumber"
          ]
        },
        "arrayGeometry": {
          "type": "object",
          "description": "Spatial arrangement and configuration of the electrode array. Combines layout pattern and specific grid configuration into a single property for accurate representation of electrode geometry.",
          "properties": {
            "layout": {
              "type": "string",
              "description": "Pattern of electrode arrangement across the array.",
              "enum": [
                "rectangular grid",
                "hexagonal grid",
                "custom pattern",
                "random distribution"
              ],
              "default": "rectangular grid"
            },
            "configuration": {
              "type": "string",
              "description": "Specific configuration of the array (e.g., 8x8 grid, 64-electrode).",
              "examples": [
                "8x8",
                "6x6",
                "4x4",
                "64-electrode"
              ]
            }
          },
          "required": [
            "layout",
            "configuration"
          ]
        },
        "impedance": {
          "$ref": "#/$defs/QuantityValue",
          "description": "Electrode impedance at 1 kHz in ohms (Ω). Critical for signal amplitude and noise characteristics. Measured post-fabrication. Standardized to Ω for consistency across measurements.",
          "properties": {
            "value": {
              "minimum": 1000,
              "maximum": 1000000
            },
            "unit": {
              "const": "ohms (Ω)"
            }
          }
        },
        "passivationMaterial": {
          "type": "string",
          "description": "Material used for electrical passivation of electrode traces. Prevents electrical leakage and improves signal quality.",
          "examples": [
            "silicon nitride",
            "parylene",
            "SU-8"
          ]
        },
        "traceMaterial": {
          "type": "string",
          "description": "Material used for electrode traces and contacts. Affects transparency and electrical properties.",
          "examples": [
            "Indium tin oxide (ITO)",
            "gold",
            "copper"
          ]
        },
        "referenceGroundConfiguration": {
          "type": "object",
          "description": "Complete reference and ground electrode configuration",
          "properties": {
            "referenceElectrode": {
              "type": "object",
              "description": "Reference electrode configuration",
              "properties": {
                "type": {
                  "type": "string",
                  "description": "Type of reference electrode used in the recording setup.",
                  "enum": [
                    "Ag/AgCl",
                    "internal reference (iR)",
                    "chlorided silver wire",
                    "none"
                  ],
                  "default": "Ag/AgCl"
                },
                "position": {
                  "type": "string",
                  "description": "Physical location of the reference electrode in the recording chamber. Keeping the internal reference electrode free of cell monolayer significantly improves field potential detection.",
                  "examples": [
                    "corner of array",
                    "center of array",
                    "separate chamber",
                    "internal reference electrode"
                  ]
                },
                "impedance": {
                  "$ref": "#/$defs/QuantityValue",
                  "description": "Impedance of reference electrode at 1 kHz in ohms (Ω).",
                  "properties": {
                    "value": {
                      "minimum": 100,
                      "maximum": 100000
                    },
                    "unit": {
                      "const": "ohms (Ω)"
                    }
                  }
                }
              },
              "required": [
                "type"
              ]
            },
            "groundElectrode": {
              "type": "object",
              "description": "Ground electrode configuration",
              "properties": {
                "type": {
                  "type": "string",
                  "description": "Type of ground electrode used in the recording setup.",
                  "enum": [
                    "Ag/AgCl",
                    "internal ground",
                    "chlorided silver wire",
                    "none"
                  ],
                  "default": "Ag/AgCl"
                },
                "position": {
                  "type": "string",
                  "description": "Physical location of the ground electrode in the recording chamber.",
                  "examples": [
                    "corner of array",
                    "center of array",
                    "separate chamber"
                  ]
                },
                "configuration": {
                  "type": "string",
                  "description": "Relationship between reference and ground electrodes.",
                  "enum": [
                    "shared",
                    "separate",
                    "integrated"
                  ],
                  "default": "separate"
                }
              },
              "required": [
                "type"
              ]
            }
          },
          "required": [
            "referenceElectrode",
            "groundElectrode"
          ]
        }
      },
      "required": [
        "material",
        "geometry",
        "arrayGeometry",
        "referenceGroundConfiguration"
      ]
    },
    "acquisition": {
      "type": "object",
      "description": "Data acquisition system configuration with explicit distinction between hardware and software processing stages",
      "properties": {
        "acquisitionPlatform": {
          "type": "object",
          "description": "Combined hardware and software system used for data acquisition. Includes system capabilities for electrode count, sampling rates, signal processing, and real-time analysis.",
          "properties": {
            "hardware": {
              "type": "string",
              "description": "Hardware system used for data acquisition.",
              "examples": [
                "Multi Channel Systems",
                "Axion Biosystems",
                "MEA2100",
                "MED64",
                "MEA Workbench"
              ]
            },
            "software": {
              "type": "string",
              "description": "Software used for data acquisition and analysis.",
              "examples": [
                "MC Rack",
                "Patchmaster",
                "Axograph",
                "MEA Workbench",
                "Cardio2D"
              ]
            }
          },
          "required": [
            "hardware",
            "software"
          ]
        },
        "samplingRate": {
          "$ref": "#/$defs/QuantityValue",
          "description": "Hardware sampling frequency per channel in Hertz (Hz). Must exceed Nyquist rate for target signals (e.g., >20 kHz for neural spikes, >10 kHz for cardiac field potentials).",
          "properties": {
            "value": {
              "minimum": 1000,
              "maximum": 1000000
            },
            "unit": {
              "const": "Hz"
            }
          }
        },
        "duration": {
          "$ref": "#/$defs/QuantityValue",
          "description": "Total recording duration in seconds. For continuous recordings, specify expected maximum duration.",
          "properties": {
            "value": {
              "minimum": 1
            },
            "unit": {
              "const": "seconds"
            }
          }
        },
        "activeChannels": {
          "type": "integer",
          "description": "Number of electrodes actively recording. May be less than totalNumber in the array.",
          "minimum": 1
        },
        "amplification": {
          "type": "object",
          "description": "Signal conditioning parameters",
          "properties": {
            "gain": {
              "type": "number",
              "description": "Amplification factor (dimensionless). Typical range 100-10,000 for extracellular signals.",
              "minimum": 10,
              "maximum": 50000
            },
            "filtering": {
              "type": "object",
              "description": "Unified filtering configuration combining hardware and software filtering applied during signal acquisition and post-processing.",
              "properties": {
                "filterType": {
                  "type": "string",
                  "description": "Type of filter applied (bandpass, high-pass, low-pass, notch, none).",
                  "enum": [
                    "bandpass",
                    "high-pass",
                    "low-pass",
                    "notch",
                    "none"
                  ],
                  "default": "bandpass"
                },
                "highPass": {
                  "$ref": "#/$defs/QuantityValue",
                  "description": "High-pass cutoff frequency in Hertz (Hz).",
                  "properties": {
                    "value": {
                      "minimum": 0.1,
                      "default": 200
                    },
                    "unit": {
                      "const": "Hz"
                    }
                  }
                },
                "lowPass": {
                  "$ref": "#/$defs/QuantityValue",
                  "description": "Low-pass cutoff frequency in Hertz (Hz).",
                  "properties": {
                    "value": {
                      "minimum": 10,
                      "default": 5000
                    },
                    "unit": {
                      "const": "Hz"
                    }
                  }
                },
                "notchFrequency": {
                  "$ref": "#/$defs/QuantityValue",
                  "description": "Notch filter frequency in Hertz (Hz), if applicable.",
                  "properties": {
                    "value": {
                      "minimum": 40,
                      "maximum": 100
                    },
                    "unit": {
                      "const": "Hz"
                    }
                  }
                }
              },
              "required": [
                "filterType",
                "highPass",
                "lowPass"
              ]
            }
          },
          "required": [
            "gain",
            "filtering"
          ]
        }
      },
      "required": [
        "acquisitionPlatform",
        "samplingRate",
        "amplification"
      ]
    },
    "environment": {
      "type": "object",
      "description": "Environmental control parameters for physiological maintenance",
      "properties": {
        "temperature": {
          "$ref": "#/$defs/QuantityValue",
          "description": "Culture temperature in degrees Celsius (°C). Critical for cellular viability and electrophysiological properties.",
          "properties": {
            "value": {
              "minimum": 20,
              "maximum": 42,
              "default": 37
            },
            "unit": {
              "const": "°C"
            }
          }
        },
        "co2": {
          "type": "number",
          "description": "Carbon dioxide concentration in percentage (%) for pH buffering in bicarbonate-based media.",
          "default": 5,
          "minimum": 0,
          "maximum": 10
        },
        "humidity": {
          "type": "number",
          "description": "Relative humidity percentage (%) to prevent media evaporation during long-term recordings.",
          "default": 95,
          "minimum": 50,
          "maximum": 100
        },
        "perfusion": {
          "type": "object",
          "description": "Perfusion system parameters for continuous medium exchange during recordings. Important for maintaining physiological conditions during long-term experiments and drug application studies.",
          "properties": {
            "enabled": {
              "type": "boolean",
              "description": "Whether active perfusion is used during recording",
              "default": false
            },
            "flowRate": {
              "$ref": "#/$defs/QuantityValue",
              "description": "Flow rate of perfusion medium in milliliters per minute (mL/min)",
              "properties": {
                "value": {
                  "minimum": 0.01,
                  "maximum": 10
                },
                "unit": {
                  "const": "mL/min"
                }
              }
            },
            "temperature": {
              "$ref": "#/$defs/QuantityValue",
              "description": "Temperature of perfusion medium in degrees Celsius (°C)",
              "properties": {
                "value": {
                  "minimum": 20,
                  "maximum": 42
                },
                "unit": {
                  "const": "°C"
                }
              }
            },
            "mediumComposition": {
              "type": "string",
              "description": "Composition of perfusion medium, which may differ from standard culture medium",
              "examples": [
                "Tyrode's solution",
                "Modified Krebs-Henseleit buffer",
                "Standard recording medium"
              ]
            },
            "o2Concentration": {
              "type": "number",
              "description": "Oxygen concentration percentage in the perfusion medium",
              "minimum": 0,
              "maximum": 100
            },
            "co2Concentration": {
              "type": "number",
              "description": "Carbon dioxide concentration percentage for pH buffering in the perfusion medium",
              "minimum": 0,
              "maximum": 10
            }
          },
          "dependentSchemas": {
            "enabled": {
              "oneOf": [
                {
                  "properties": {
                    "enabled": {
                      "const": false
                    }
                  }
                },
                {
                  "properties": {
                    "enabled": {
                      "const": true
                    }
                  },
                  "required": [
                    "flowRate",
                    "temperature"
                  ]
                }
              ]
            }
          }
        },
        "oxygenation": {
          "type": "object",
          "description": "Oxygen supply parameters for tissue viability",
          "properties": {
            "enabled": {
              "type": "boolean",
              "description": "Whether active oxygenation is used during recording",
              "default": false
            },
            "o2Concentration": {
              "type": "number",
              "description": "Oxygen concentration percentage in the perfusion medium",
              "minimum": 0,
              "maximum": 100
            },
            "co2Concentration": {
              "type": "number",
              "description": "Carbon dioxide concentration percentage for pH buffering in the perfusion medium",
              "minimum": 0,
              "maximum": 10
            }
          },
          "dependentSchemas": {
            "enabled": {
              "oneOf": [
                {
                  "properties": {
                    "enabled": {
                      "const": false
                    }
                  }
                },
                {
                  "properties": {
                    "enabled": {
                      "const": true
                    },
                    "o2Concentration": {
                      "type": "number"
                    },
                    "co2Concentration": {
                      "type": "number"
                    }
                  },
                  "required": [
                    "o2Concentration",
                    "co2Concentration"
                  ]
                }
              ]
            }
          }
        }
      },
      "required": [
        "temperature",
        "co2"
      ]
    },
    "stimulation": {
      "type": "object",
      "description": "Electrical, optical, or pharmacological stimulation parameters (optional for passive recordings)",
      "properties": {
        "enabled": {
          "type": "boolean",
          "description": "Whether stimulation is active during recording",
          "default": false
        },
        "type": {
          "type": "string",
          "description": "Stimulation modality. Required if enabled=true.",
          "enum": [
            "electrical",
            "optical",
            "pharmacological",
            "none"
          ],
          "default": "none"
        },
        "electricalParameters": {
          "type": "object",
          "description": "Parameters specific to electrical stimulation",
          "properties": {
            "currentAmplitude": {
              "$ref": "#/$defs/QuantityValue",
              "description": "Electrical stimulation intensity in microamperes (µA) for current-controlled stimulation.",
              "properties": {
                "value": {
                  "minimum": 0
                },
                "unit": {
                  "const": "µA"
                }
              }
            },
            "voltageAmplitude": {
              "$ref": "#/$defs/QuantityValue",
              "description": "Electrical stimulation intensity in millivolts (mV) for voltage-controlled stimulation.",
              "properties": {
                "value": {
                  "minimum": 0
                },
                "unit": {
                  "const": "mV"
                }
              }
            },
            "amplitudeType": {
              "type": "string",
              "description": "Type of electrical amplitude measurement.",
              "enum": [
                "current",
                "voltage"
              ],
              "default": "current"
            },
            "frequency": {
              "$ref": "#/$defs/QuantityValue",
              "description": "Stimulation pulse frequency in Hertz (Hz)",
              "properties": {
                "value": {
                  "minimum": 0.1,
                  "maximum": 1000
                },
                "unit": {
                  "const": "Hz"
                }
              }
            },
            "pulseWidth": {
              "$ref": "#/$defs/QuantityValue",
              "description": "Duration of individual stimulation pulses in milliseconds (ms)",
              "properties": {
                "value": {
                  "minimum": 0.01,
                  "maximum": 10
                },
                "unit": {
                  "const": "ms"
                }
              }
            },
            "duration": {
              "$ref": "#/$defs/QuantityValue",
              "description": "Total stimulation period in seconds",
              "properties": {
                "value": {
                  "minimum": 0.1
                },
                "unit": {
                  "const": "seconds"
                }
              }
            },
            "pulseShape": {
              "type": "string",
              "description": "Shape of electrical stimulation pulses.",
              "enum": [
                "monophasic",
                "biphasic",
                "sinusoidal",
                "ramp"
              ],
              "default": "monophasic"
            }
          },
          "required": [
            "frequency",
            "pulseWidth",
            "duration"
          ]
        },
        "opticalParameters": {
          "type": "object",
          "description": "Parameters specific to optical stimulation",
          "properties": {
            "irradiance": {
              "$ref": "#/$defs/QuantityValue",
              "description": "Optical power density in milliwatts per square millimeter (mW/mm²) for light stimulation.",
              "properties": {
                "value": {
                  "minimum": 0.1,
                  "maximum": 200
                },
                "unit": {
                  "const": "mW/mm²"
                }
              }
            },
            "wavelength": {
              "$ref": "#/$defs/QuantityValue",
              "description": "Light wavelength in nanometers (nm) for optical stimulation.",
              "properties": {
                "value": {
                  "minimum": 300,
                  "maximum": 1100
                },
                "unit": {
                  "const": "nm"
                }
              }
            },
            "frequency": {
              "$ref": "#/$defs/QuantityValue",
              "description": "Stimulation pulse frequency in Hertz (Hz)",
              "properties": {
                "value": {
                  "minimum": 0.1,
                  "maximum": 1000
                },
                "unit": {
                  "const": "Hz"
                }
              }
            },
            "pulseWidth": {
              "$ref": "#/$defs/QuantityValue",
              "description": "Duration of individual stimulation pulses in milliseconds (ms)",
              "properties": {
                "value": {
                  "minimum": 0.01,
                  "maximum": 10
                },
                "unit": {
                  "const": "ms"
                }
              }
            },
            "duration": {
              "$ref": "#/$defs/QuantityValue",
              "description": "Total stimulation period in seconds",
              "properties": {
                "value": {
                  "minimum": 0.1
                },
                "unit": {
                  "const": "seconds"
                }
              }
            }
          },
          "required": [
            "irradiance",
            "wavelength",
            "frequency",
            "pulseWidth",
            "duration"
          ]
        },
        "pharmacologicalParameters": {
          "type": "object",
          "description": "Parameters specific to pharmacological stimulation",
          "properties": {
            "drugName": {
              "type": "string",
              "description": "Name of the pharmacological compound (for pharmacological stimulation)",
              "examples": [
                "isoproterenol",
                "sotalol",
                "E-4031",
                "LUF7346",
                "astemizole",
                "TTX",
                "bicuculline",
                "CNQX",
                "APV",
                "glutamate",
                "GABA",
                "kainate"
              ]
            },
            "concentration": {
              "type": "number",
              "description": "Concentration of the pharmacological compound",
              "minimum": 0
            },
            "unit": {
              "type": "string",
              "description": "Unit of drug concentration",
              "examples": [
                "mM",
                "uM",
                "nM",
                "mg/mL"
              ]
            },
            "treatmentType": {
              "type": "string",
              "description": "Type of pharmacological treatment protocol. Critical for distinguishing between acute dose-response experiments and chronic treatment studies.",
              "enum": [
                "acute",
                "chronic",
                "washout",
                "baseline",
                "none"
              ],
              "default": "none"
            },
            "applicationMethod": {
              "type": "string",
              "description": "Method of drug application to the recording chamber.",
              "enum": [
                "bolus",
                "continuous perfusion",
                "gradient",
                "localized"
              ],
              "default": "bolus"
            },
            "exposureDuration": {
              "$ref": "#/$defs/QuantityValue",
              "description": "Duration of drug exposure in minutes",
              "properties": {
                "value": {
                  "minimum": 1
                },
                "unit": {
                  "const": "minutes"
                }
              }
            }
          },
          "required": [
            "drugName",
            "concentration",
            "unit"
          ]
        },
        "stimulationProtocol": {
          "type": "string",
          "description": "Pattern of stimulation delivery (e.g., single pulse, train, ramp). For pharmacological treatments, describes the detailed drug application schedule (e.g., 'aliquots added every 10 min' for acute dose-response or '24-h continuous exposure' for chronic treatment).",
          "examples": [
            "single pulse",
            "pulse train",
            "ramp",
            "50 ms on, 500 ms off",
            "baseline, drug exposure, washout",
            "aliquots added every 10 min",
            "24-h continuous exposure"
          ]
        }
      },
      "dependentSchemas": {
        "enabled": {
          "oneOf": [
            {
              "properties": {
                "enabled": {
                  "const": false
                }
              }
            },
            {
              "properties": {
                "enabled": {
                  "const": true
                },
                "type": {
                  "enum": [
                    "electrical",
                    "optical",
                    "pharmacological"
                  ]
                },
                "electricalParameters": {
                  "type": "object"
                },
                "opticalParameters": {
                  "type": "object"
                },
                "pharmacologicalParameters": {
                  "type": "object"
                }
              },
              "required": [
                "type"
              ],
              "if": {
                "properties": {
                  "type": {
                    "const": "electrical"
                  }
                }
              },
              "then": {
                "required": [
                  "electricalParameters"
                ]
              },
              "else": {
                "if": {
                  "properties": {
                    "type": {
                      "const": "optical"
                    }
                  }
                },
                "then": {
                  "required": [
                    "opticalParameters"
                  ]
                },
                "else": {
                  "required": [
                    "pharmacologicalParameters"
                  ]
                }
              }
            }
          ]
        }
      }
    },
    "dataProcessing": {
      "type": "object",
      "description": "Data processing parameters, software, and computational methods used for analysis.",
      "properties": {
        "analysisSoftware": {
          "type": "string",
          "description": "Software used for data analysis and visualization.",
          "examples": [
            "OriginPro",
            "GraphPad Prism",
            "MATLAB",
            "Python (custom scripts)",
            "Cardio2D+",
            "MEA Workbench",
            "AxIS Navigator"
          ]
        },
        "preprocessing": {
          "type": "string",
          "description": "Signal preprocessing steps applied before event detection and analysis.",
          "examples": [
            "baseline correction",
            "band-pass filtering",
            "notch filtering",
            "artifact removal",
            "signal normalization",
            "detrending"
          ]
        },
        "eventDetection": {
          "type": "string",
          "description": "Method used to identify biological events from recorded signals.",
          "examples": [
            "threshold-based detection",
            "peak detection",
            "template matching",
            "wavelet-based detection",
            "machine learning classification"
          ]
        },
        "analysisMethod": {
          "type": "string",
          "description": "Primary computational analysis approach applied to the recordings.",
          "examples": [
            "activation mapping",
            "connectivity analysis",
            "conduction analysis",
            "frequency-domain analysis",
            "variability analysis",
            "synchronization analysis",
            "network analysis"
          ]
        }
      }
    },
    "outputMetrics": {
      "type": "array",
      "description": "Target metrics to be extracted from recordings. Specifies analysis focus during acquisition setup.",
      "items": {
        "type": "object",
        "properties": {
          "metric": {
            "type": "string",
            "description": "Name of the metric being extracted",
            "examples": [
              "voltage_traces",
              "field_potential",
              "drug_response",
              "voltage_traces",
              "firing_rate",
              "activation_timing",
              "propagation_velocity",
              "synchronization_metrics",
              "field_potential_duration",
              "corrected_field_potential_duration",
              "ediast",
              "stv",
              "bvr",
              "rate_dependency",
              "spontaneous_beating_rate",
              "spike_detection",
              "burst_detection",
              "inter_spike_interval",
              "burst_duration",
              "network_burst_frequency",
              "network_synchrony"
            ]
          },
          "unit": {
            "type": "string",
            "description": "Unit of measurement for the metric",
            "examples": [
              "ms",
              "cm/s",
              "mV",
              "%",
              "beats/min"
            ]
          }
        }
      }
    }
  },
  "required": [
    "sampleType",
    "electrode",
    "acquisition",
    "environment"
  ],
  "unevaluatedProperties": false
}
