// SPDX-License-Identifier: CC-BY-SA-4.0
= A2ML Conformance (Draft)
:toc:
:toclevels: 2

This document defines conformance requirements and test vectors for A2ML v0.

== Conformance Levels

* **Parser Conformance**: Must accept Module 0 syntax and produce a surface AST.
* **Checked Conformance**: Must reject unresolved references and duplicate IDs.
* **Attested Conformance**: Must compile to typed core and discharge invariants.

== Required Behaviors

* Deterministic parsing for identical input bytes.
* Exact preservation of opaque payloads.
* Reference resolution in checked/attested modes.
* Inline parsing rules for emphasis/strong/links.

== Test Vectors

Test vectors live in `tests/vectors/`.
Each vector includes a `.a2ml` input and a human-readable `.expected` file
that describes the required parse outcome.

Reference prototype: `prototype/rescript/` (parser + basic validator sketch).
Directive mapping: `docs/DIRECTIVE-MAPPING.adoc` (prototype).
v1 plan/report: `docs/CONFORMANCE-PLAN-v1.adoc`, `docs/CONFORMANCE-REPORT-v1.adoc`.

== Vector List (v0)

* `directive-attrs.a2ml` -> `directive-attrs.expected`
* `module0-basic.a2ml` -> `module0-basic.expected`
* `inline-edges.a2ml` -> `inline-edges.expected`
* `inline-formatting.a2ml` -> `inline-formatting.expected`
* `opaque-roundtrip.a2ml` -> `opaque-roundtrip.expected`
* `refs-basic.a2ml` -> `refs-basic.expected`
* `refs-missing.a2ml` -> `refs-missing.expected`
* `table-basic.a2ml` -> `table-basic.expected`
