We should specify its weird syntax properly, but for now I'd suggest changing range to "Text".
see also #372
Changed expected value of openingHours to Text from Duration.
This is because our micro-syntax is not ISO anything, whereas Duration says it is ISO-based.
I've made the change for now. We should still specify the weird format but at least we don't claim it is ISO-anything.
I think that for the Q2 release, when extending the opening hours general model, we should consolidate the two properties openingHours and openingHoursSpecification into one, with the range being Text OR OpeningHoursSpecification. But since there is more work to be done in there, I would suggest to defer any further work on this until sdo-gozer is out. The fix you implemented for now is fine from my perspective.
Yes - we need to look at the whole package of opening hours and event (repetition?) constructions, in particular considering defaults-and-overides, vacation hours etc. - if you have several opening hour constructs, https://schema.org/closes , how do they combine, ... etc. I suspect scattering the word 'typically' around will be needed. But yes, Q2! A period that we are nearly halfway through.