# MAS mode contract v0.1: specification bundle Final as of 2026-10-19. Two independent email sides pass its flows unchanged: `mas_modes.email_mode` (Python) and `impl/js/src/email.mjs` (JavaScript). See `CHANGELOG.md`. How email hands a case to another communication mode, and how email works as one element of a control flow it does not own. It is versioned separately from the MAS address specification (`mas-v0.2-spec/`, §7). ## Contents - `CONTRACT.md`: normative text (roles, transport, status machine, message types, principle 10) - `schema/mas-modes-v0.1.schema.json`: every contract message - `schema/mas-event-v0.1.schema.json`: the normalized gateway event (`mas-gateway` → application, and `case.intake` / `case.message` payloads) - `conformance/transitions.json`: the status machine as data - `conformance/messages.json`: valid and invalid messages - `conformance/flows.json`: scripted flows for `MAS-MODES-EMAIL-MASTER` and `MAS-MODES-EMAIL-SLAVE`, with setups and test keys; runnable from the bundle alone - `conformance/FLOWS.md`: the flow format: steps, captures and expectations - `conformance/scenarios.json`: the callback stub's scenarios - `conformance/auth.json`: signing vectors and verification cases (§7) - `conformance/statute.json`: the statute the flows run under The reference email side, the callback stub and the stub outside master are in `mas_modes/`. `mas test` runs this bundle against them.