What I got wrong about validation
I put the schema where I could see it instead of where the writes happen, and then trusted it for two months.
The mistake was assuming that a rule written next to a field is a rule enforced on that field. It was enforced in the editor, which is where I was looking, and nowhere else.
The fix was not more validation. It was noticing that the seam where documents actually enter the build had no assertions on it at all.
Two months of green builds had told me nothing, because every document in them had come through the editor.