I think we need a new boolean attribute schema:reservationRequired for schema:OpeningHoursSpecification so that one can indicate whether walk-ins are okay or not. For shops, this is typically not relevant, but for hairdressers, opticians, and restaurants it will be valuable to know whether you can get direct service during the opening hours or whether the opening hours are just for the front desk / reception and any meaningful visit requires a reservation.
I'm not normally a fan of booleans, but this seems like a good use case. +1
I like your solution Martin, so +1 from me.