Rather than have the requirement level determine the level of error message it might be a better user experience to have them as flags that check or ignore those level of statements.
When validating at the SHOULD and MAY levels (or RECOMMENDED and OPTIONAL levels in bioschemas) it should be possible to mark some patterns to be ignored since they do not make sense for the dataset at hand, e.g. there will be no previous version if you are generating the description for the first version of the dataset.
Rather than have the requirement level determine the level of error message it might be a better user experience to have them as flags that check or ignore those level of statements.
When validating at the SHOULD and MAY levels (or RECOMMENDED and OPTIONAL levels in bioschemas) it should be possible to mark some patterns to be ignored since they do not make sense for the dataset at hand, e.g. there will be no previous version if you are generating the description for the first version of the dataset.