# BIDS Schema Enumeratorator ## ~~Option 1: Dense dereferenced objects (via Taylor)~~ <details><summary>columns.yaml + values.yaml</summary> ```yaml type__eeg_channels: name: type display_name: Channel type description: | Type of channel; MUST use the channel types listed below. Note that the type MUST be in upper-case. type: string enum: - $ref: objects.values.AUDIO - $ref: objects.values.EEG - ... ``` ```yaml AUDIO: name: AUDIO display_name: AUDIO description: | Audio signal. ``` </details> <details><summary>Derefs to:</summary> ```yaml type__eeg_channels: name: type display_name: Channel type description: | Type of channel; MUST use the channel types listed below. Note that the type MUST be in upper-case. type: string enum: - name: AUDIO display_name: AUDIO description: | Audio signal. - name: EEG display_name: EEG description: | Electroencephalogram channel. - ... ``` </details> ## ~~Option 2: Dereferenced values~~ <details><summary>columns.yaml + values.yaml</summary> ```yaml type__eeg_channels: name: type display_name: Channel type description: | Type of channel; MUST use the channel types listed below. Note that the type MUST be in upper-case. type: string enum: - $ref: objects.values.AUDIO.value - $ref: objects.values.EEG.value - ... ``` ```yaml AUDIO: value: AUDIO display_name: AUDIO description: | Audio signal. ``` </details> <details><summary>Derefs to:</summary> ```yaml type__eeg_channels: name: type display_name: Channel type description: | Type of channel; MUST use the channel types listed below. Note that the type MUST be in upper-case. type: string enum: - AUDIO - EEG - ... ``` </details> ## Option 3: Backreferences + dereferenced values <details open><summary>columns.yaml + values.yaml</summary> ```yaml type__eeg_channels: name: type display_name: Channel type description: | Type of channel; MUST use the channel types listed below. Note that the type MUST be in upper-case. type: string enum: - $ref: objects.values.AUDIO.value - $ref: objects.values.EEG.value - ... ``` ```yaml AUDIO: value: AUDIO display_name: AUDIO tag: [common] description: | Audio signal. PPG: value: PPG display_name: PPG tag: [eeg] description: | Photoplethysmography. ECG: tag: [eeg, ieeg] ``` </details> <details open><summary>Derefs to:</summary> ```yaml type__eeg_channels: name: type display_name: Channel type description: | Type of channel; MUST use the channel types listed below. Note that the type MUST be in upper-case. type: string enum: - AUDIO - EEG - ... ``` </details> Strategy: Use current MEG to generate `meg` tags, EEG to generate `eeg`, etc. Some can be made common short-term, but the rest can be shifted from multi-tag to "common" later.