Parse, Don't Validate, in Rust

Validation throws away what it learned. Parsing returns it. In Rust, that moves invariants into the type system, where both developers and coding agents have to respect them.