{ "$schema":                "https://json-schema.org/draft/2020-12/schema",
  "$id":                    "https://schemas.mpai.community/TFA/V1.5/data/NeurophysiologicalSignalQualifier.json",
  "title":                  "Neurophysiological Signal Qualifier V1.5",
  "description":            "Sub-Types, Format, and Attributes of neurophysiological signals.",
  "type":                   "object",
  "additionalProperties":   false,
  "required":               ["SubTypes", "Formats", "GroupMap"],
  "properties": {

    "SubTypes":             { "type": "object", "required": ["EEG", "MEG", "fNIRS", "EOG", "Eye tracking"],
                              "additionalProperties": false, "properties": {
      "EEG":                { "type": "array", "items": { "type": "string" }, "minItems": 1,
                              "uniqueItems": true, "default": [ "EEG Ã¢â‚¬â€œ 10Ã¢â‚¬â€œ20 system", "EEG Ã¢â‚¬â€œ 10Ã¢â‚¬â€œ10 system",
                              "High density EEG", "Wearable / mobile EEG", "Evoked Potential (EP)", "Visual Evoked Potential (VEP)",
                              "Auditory Evoked Potential (AEP)", "Somatosensory Evoked Potential (SSEP)",
                              "Event-Related Potential (ERP)", "P300", "N400", "Mismatch Negativity (MMN)" ] },
      "MEG":                { "type": "array", "items": { "type": "string" }, "minItems": 1,
                              "uniqueItems": true, "default": [ "MEG Ã¢â‚¬â€œ magnetometers", "MEG Ã¢â‚¬â€œ gradiometers",
                              "MEG Ã¢â‚¬â€œ combined systems (e.g., VectorView type)" ] },
      "fNIRS":              { "type": "array", "items": { "type": "string" }, "minItems": 1,
                              "uniqueItems": true, "default": [ "Continuous wave fNIRS (CW fNIRS)",
                              "Frequency domain fNIRS (FD fNIRS)", "Time domain fNIRS (TD fNIRS)" ] },
      "EOG":                { "type": "array", "items": { "type": "string" }, "minItems": 1,
                              "uniqueItems": true, "default": [ "Horizontal/vertical EOG", "Blink detection EOG" ] },
      "Eye tracking":       { "type": "array", "items": { "type": "string" }, "minItems": 1,
                              "uniqueItems": true, "default": [ "2D gaze tracking", "3D gaze tracking",
                              "Pupilometry (pupil size waveform)" ] } } },

    "Formats":              { "type": "object", "required": [ "EEG1020formats", "EEG1010formats", "HighdensityEEGform",
                              "WearableEEGformats", "MEGmagnetometersfm", "MEGgradiometersfor", "MEGcombsysformats",
                                "CWfNIRSformats", "FDfNIRSformats", "TDfNIRSformats", "EOGH/Vformats", "EOGBlinkformats",
                                "2Dgazeformats", "3Dgazeformats", "Pupilometryformats" ], "additionalProperties": false, "properties": {
      "EEG1020formats":     { "type": "array", "items": { "type": "string" }, "minItems": 1, "uniqueItems": true,
                              "default": [ "BDF", "EDF", "EDF+", "FIF", "HDF5", "MFF", "SET", "TRC", "WFDB" ] },
      "EEG1010formats":     { "type": "array", "items": { "type": "string" }, "minItems": 1, "uniqueItems": true,
                              "default": [ "BDF", "EDF", "EDF+", "FIF", "HDF5", "MFF", "SET", "TRC", "WFDB" ] },
      "HighdensityEEGform": { "type": "array", "items": { "type": "string" }, "minItems": 1, "uniqueItems": true,
                              "default": [ "BDF", "EDF", "EDF+", "FIF", "HDF5", "MFF", "SET", "TRC", "WFDB" ] },
      "WearableEEGformats": { "type": "array", "items": { "type": "string" }, "minItems": 1, "uniqueItems": true,
                              "default": [ "BDF", "EDF", "EDF+", "FIF", "HDF5", "MFF", "OpenSignals", "SET", "WFDB" ] },
      "MEGmagnetometersfm": { "type": "array", "items": { "type": "string" }, "minItems": 1, "uniqueItems": true,
                              "default": [ "CON", "DS", "FIF", "HDF5", "RAW", "WFDB" ] },
      "MEGgradiometersfor": { "type": "array", "items": { "type": "string" }, "minItems": 1, "uniqueItems": true,
                              "default": [ "CON", "DS", "FIF", "HDF5", "RAW", "WFDB" ] },
      "MEGcombsysformats":  { "type": "array", "items": { "type": "string" }, "minItems": 1, "uniqueItems": true,
                              "default": [ "CON", "DS", "FIF", "HDF5", "RAW", "WFDB" ] },
      "CWfNIRSformats":     { "type": "array", "items": { "type": "string" }, "minItems": 1, "uniqueItems": true,
                              "default": [ "HDF5", "NIRS", "OXY3", "OXY4", "SNIRF", "TSV", "WL1", "WL2" ] },
      "FDfNIRSformats":     { "type": "array", "items": { "type": "string" }, "minItems": 1, "uniqueItems": true,
                              "default": [ "HDF5", "NIRS", "OXY3", "OXY4", "SNIRF", "TSV", "WL1", "WL2" ] },
      "TDfNIRSformats":     { "type": "array", "items": { "type": "string" }, "minItems": 1, "uniqueItems": true,
                              "default": [ "HDF5", "NIRS", "OXY3", "OXY4", "SNIRF", "TSV", "WL1", "WL2" ] },
      "EOGH/Vformats":      { "type": "array", "items": { "type": "string" }, "minItems": 1, "uniqueItems": true,
                              "default": [ "BDF", "EDF", "EDF+", "HDF5", "MFF", "SET", "TRC", "WFDB" ] },
      "EOGBlinkformats":    { "type": "array", "items": { "type": "string" }, "minItems": 1, "uniqueItems": true,
                              "default": [ "BDF", "EDF", "EDF+", "HDF5", "MFF", "SET", "TRC", "WFDB" ] },
      "2Dgazeformats":      { "type": "array", "items": { "type": "string" }, "minItems": 1, "uniqueItems": true,
                              "default": [ "ASC", "EDF", "HDF5", "IDF", "PLDATA", "TSV" ] },
      "3Dgazeformats":      { "type": "array", "items": { "type": "string" }, "minItems": 1, "uniqueItems": true,
                              "default": [ "ASC", "EDF", "HDF5", "IDF", "PLDATA", "TSV" ] },
      "Pupilometryformats": { "type": "array", "items": { "type": "string" }, "minItems": 1, "uniqueItems": true,
                              "default": [ "ASC", "EDF", "HDF5", "IDF", "PLDATA", "TSV" ] } } },

    "GroupMap":             { "type": "array", "items": { "type": "object", "additionalProperties": false, "properties": {
                              "subTypeGroup": { "type": "string" }, "formatGroup": { "type": "string" } },
                              "required": ["subTypeGroup", "formatGroup"] }, "minItems": 1, "default": [
                            {"subTypeGroup":"EEG1020system","formatGroup":"EEG1020formats"},
                            {"subTypeGroup":"EEG1010system","formatGroup":"EEG1010formats"},
                            {"subTypeGroup":"HighdensityEEG","formatGroup":"HighdensityEEGform"},
                            {"subTypeGroup":"Wearable/mobileEEG","formatGroup":"WearableEEGformats"},

                            {"subTypeGroup":"EvokedPotential(EP)","formatGroup":"EEG1020formats"},
                            {"subTypeGroup":"VisualEvokedPotential(VEP)","formatGroup":"EEG1020formats"},
                            {"subTypeGroup":"AuditoryEvokedPotential(AEP)","formatGroup":"EEG1020formats"},
                            {"subTypeGroup":"SomatosensoryEvokedPotential(SSEP)","formatGroup":"EEG1020formats"},
                            {"subTypeGroup":"Event-RelatedPotential(ERP)","formatGroup":"EEG1020formats"},
                            {"subTypeGroup":"P300","formatGroup":"EEG1020formats"},
                            {"subTypeGroup":"N400","formatGroup":"EEG1020formats"},
                            {"subTypeGroup":"MismatchNegativity(MMN)","formatGroup":"EEG1020formats"},

                            {"subTypeGroup":"MEGmagnetometers","formatGroup":"MEGmagnetometersfm"},
                            {"subTypeGroup":"MEGgradiometers","formatGroup":"MEGgradiometersfor"},
                            {"subTypeGroup":"MEGcombinedsystems(e.g.,VectorViewtype)","formatGroup":"MEGcombsysformats"},
                            {"subTypeGroup":"ContinuouswavefNIRS(CWfNIRS)","formatGroup":"CWfNIRSformats"},
                            {"subTypeGroup":"FrequencydomainfNIRS(FDfNIRS)","formatGroup":"FDfNIRSformats"},
                            {"subTypeGroup":"TimedomainfNIRS(TDfNIRS)","formatGroup":"TDfNIRSformats"},
                            {"subTypeGroup":"Horizontal/verticalEOG","formatGroup":"EOGH/Vformats"},
                            {"subTypeGroup":"BlinkdetectionEOG","formatGroup":"EOGBlinkformats"},
                            {"subTypeGroup":"2Dgazetracking","formatGroup":"2Dgazeformats"},
                            {"subTypeGroup":"3Dgazetracking","formatGroup":"3Dgazeformats"},
                            {"subTypeGroup":"Pupilometry(pupilsizewaveform)","formatGroup":"Pupilometryformats"}]},

    "Attributes":           { "type": "object", "additionalProperties": false, "properties": {
        "ChannelNames":     { "type": "array", "items": { "type": "string" }, "minItems": 1 },
        "Units":            { "type": "array", "items": { "type": "string" }, "minItems": 1 },
        "SamplingRateHz":   { "type": "number", "minimum": 0 },
        "SensorLayout":     { "type": "string" },
        "Device":           { "type": "string" },
        "RecordingContext": { "type": "string" },
        "ReferenceScheme":  { "type": "string" },
        "Montage":          { "type": "string" }

        , "StimulusType":   { "type": "string" },
        "StimulusTiming":   { "type": "string" },
        "AveragingMethod":  { "type": "string" },
        "Latency":          { "type": "string" },
        "Amplitude":        { "type": "string" } } },

    "DataXMData":           { "$ref": "https://schemas.mpai.community/PTF/V1.0/data/DataExchangeMetadata.json" },
    "DescrMetadata":        { "type": "string", "maxLength": 2048 } } }
