mail-address-semantics/mas-v0.2-spec/CONFORMANCE.md
tegwick a12e1c4370 MAS-WP-0005-T07: v0.2 draft bundle; mas_core accepts v0.1 and v0.2 statutes
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>

Assistant: claude-code
Assistant-Model: opus
Assistant-Process: 252470@bnt-lap001
Assistant-Session: ad628c8f-4be2-4979-94c9-76c7ed6f8241
2026-10-18 22:19:34 +02:00

2.3 KiB

MAS v0.1 Conformance

1. Test surfaces

An implementation can claim any of the following independently:

  • MAS-P1-PARSER
  • MAS-P2-PARSER
  • MAS-V0.1-GENERATOR
  • MAS-V0.1-STATUTE

2. Parser requirements

A parser claiming MAS-P1-PARSER MUST produce the expected result for every fixture whose profile is p1.

A parser claiming MAS-P2-PARSER MUST produce the expected result for every fixture whose profile is p2, and MUST also satisfy MAS-P1-PARSER.

The parsed object in the fixture file is normative for the test corpus.

A parser MUST NOT infer person, actor, or function from ., -, _.

3. Generator requirements

A generator:

  • MUST emit only grammar-valid canonical ASCII local-parts;
  • MUST NOT emit empty target, resource type, resource id, facet, or interaction;
  • MUST emit + before !;
  • MUST NOT emit more than one + or one !;
  • MUST NOT emit $ or ^;
  • MUST NOT emit both + and ! in v0.1;
  • MUST keep the encoded SMTP local-part at or below 64 octets.

Fixtures with generator_allowed: false may still be accepted by a P2 parser, but a conforming generator MUST NOT create them.

4. Statute requirements

A statute implementation MUST validate discovery documents using schema/mas-statute-v0.1.schema.json.

It MUST NOT apply:

  • case folding,
  • dot folding,
  • address classification,
  • resource-type semantics,
  • interaction-mode semantics,

unless the exact-host statute successfully validates and declares them.

5. Discovery failure

Failure to retrieve or validate a statute:

  • does not invalidate the email address;
  • does invalidate any claim that MAS namespace semantics were discovered;
  • falls back to ordinary email handling plus exact local configuration.

6. Inheritance

Implementations are not required to implement inherits.

Implementations that do implement it MUST:

  • fetch the explicit URI only;
  • detect cycles;
  • treat inherited data as defaults;
  • never inherit explicit addresses registry entries;
  • let the child override inherited resource types and interaction modes.

7. Test command

The bundled reference parser can be run with:

python reference/mas_parser.py --self-test

The reference parser is non-normative; the grammar, specification, schema, and fixtures are normative for this draft.