recently
- Overall, it is a a good strategy to introduce "Deprecation Warnings" which inform users about upcoming changes "straight into their faces"
So, overall, I feel that we need some mechanism for tagged and potentially variable "levels".
I wonder if we could add syntax of having a list of levels defined with some tags associated, e.g. (fictional)
SomeMetadata:
- level: optional
- level: recommended
tags: [best-practices, cobidas]
- level: required
tags: bids:2.0
which by default (no tags) keeps it optional, but then for tags "best-practices" or "cobidas" would make it RECOMMENDED. Moreover, we could keep `bids:` as reserved prefix to signal that change would be triggered in that version of BIDS, thus could alert user informatively that "SomeMetadata would become REQUIRED in BIDS 2.0". Also add level `deprecated` so that with `bids:` tag would inform when to be entirely removed.
Then
- `dataset_description.json` could gain some field like `BIDSSchemaTags` to list which ones to "enable"
- bids-validator could support taking a list of tags to enable (or disable) if there is a desire
WDYT?