# 0002. Strict errors over half-converted output - **Status:** Accepted - **Date:** 2026-09-18 (practised since the first release; written down today) - **Deciders:** maintainer ## Context Real MT101 traffic is uneven: missing `:20:` or `:30:`, a Sequence B without `:21:` or `:32B:`, fields the loader does not map (`:23E:`, `:33B:`, `:36:`, `:56a:`). ## Options considered 1. Best effort: convert what parses, skip the rest, warn. Produces a file for every input; produces a wrong file for some. 2. Strict: raise `ValueError` naming the missing or unsupported field; document the unmapped tags as out of scope. ## Decision Option 2. A treasury system would rather stop than send a payment batch with a silently dropped transaction; the unmapped tags need human judgement the loader cannot supply. ## Consequences Every error message names the tag and the sequence. The out-of-scope list is documented in the README and the site's reference page, and surfacing those tags under named keys is a roadmap candidate that starts with the core's vocabulary, not here.