wai-web's pack and packMulti parsed the manifest with serde_json, which keeps
the last of two equal names outside a struct's own fields, and then wrote the
text as given, so they could emit an envelope every reader refuses (SPEC §2).
Both now read the manifest through check_unique_members first. A native test
covers a repeat at the top, in target, in model_requirement, nested with an
escape, and in a WAI2 entry; verify_pack.mjs checks the built wasm writers
refuse it; the CI native test count is 9.
Co-Authored-By: Claude Opus 5.5 <[email protected]>