This looks like a case of confusing `Joi.allow()` with `Joi.valid()`.
`Joi.valid(...['A', 'A-']).validate('-')` throws an error but `Joi.allow(...['A', 'A-']).validate('-')` allows it through.
Closes#4033
It’s hard to understand how #3813 is persisting. The schema should reject keys not in the object… it’s very puzzling.
This replaces the code used to get the color with a function call that throws an explicit error when the key is missing. It should at least make it clear what the key value is when this fails in the future.