Validates every document against its collection schema, assigns routes, and applies draft/future selection.
All schema errors are reported together (one broken file must not hide
the next), each naming the source file and the field. Selection lives
here because it depends on validated metadata; today comes from the
build options, never from a clock read (ADR 0005).