Crate-wide error type.
Every fallible public function returns Result<T>, which is an alias for
core::result::Result<T, Error>. The Error enum carries enough context
(lengths, key roles, field names) to diagnose failures without re-parsing
strings. Match on the variant, not on the Display output.