ATD, the ADP Tool Language
Contents of ATD 0.1
Specification, version 0.1 (Working Draft)
| Version | 0.1 |
| Status | Working Draft |
| Date | 2026-10-25 |
| Grammar | grammar/: atd.lark and the modules it imports, in ATD grammar notation (section 4) |
| Tree schema | atd.schema.json (JSON Schema, draft 2020-12), $defs/Tree; also $defs/Findings, $defs/Trace, $defs/ConformanceFixture, $defs/Drawing, $defs/Capability, $defs/ParseTables (Appendix A) |
| Serves | every kind of tool: diagrams (with DISL), designers (with DESL), editors (in place of EDSL), and their bindings (with FBL) |
| Expression language | CEL — Common Expression Language (https://cel.dev) |
| File extension | .atd, the ADP Tool Description |
| Version key | atd <major>.<minor>, the first construct of every file |
| Licence | Apache License 2.0 (Apache-2.0) |
This is a working draft, version 0.1, the first of ATD, written for phase 1 of the move of every tool type to one language (spec 035). In phase 1 the tool descriptions of the tool types in scope are written in ATD beside the DISL, DESL and FBL files that every host keeps running, and ATD's toolchain checks, edits, validates and debugs them; no host loads a tool from a tool description (section 1.2). Any construct may change before 1.0 (constitution principle IV); a description is always read with the grammar of the version it declares (section 18).
The key words MUST, MUST NOT, REQUIRED, SHALL, SHALL NOT, SHOULD, SHOULD NOT, RECOMMENDED, MAY and OPTIONAL are to be interpreted as described in RFC 2119 and RFC 8174 when, and only when, they appear in bold capitals. Sections and paragraphs marked (informative) explain intent and give guidance; everything else is normative. The words of docs/terminology.md are used as defined there: tool, tool type, diagram, designer, editor, tool engineer, specification, definition, binding, body, splice, reading, finding, host, runtime, ADP tool language, tool description, script, capability, conformance fixture and trace.