Changes
atd0.10.1Changes
Contents of ATD 0.1
- 0.1 (2026-10-23, spec 035): the first version. One language in which a tool type of any kind is described: one LALR(1) grammar in ATD grammar notation, with its flattened form and its parse tables (§4); files, parts and imports (§5); values (§6); a core every kind shares (§7), and a surface per kind, the canvas, the form and the text (§8 to §10); bindings, which are FBL's written as text (§11); the script (§12); capabilities with contracts and fixtures (§2.6, §13); the checks and their findings (§14, §15); one canonical layout (§16); and conformance fixtures, drawings and traces (§2.3 to §2.5). The amendments below change 0.1 in place, since it has no released grammar yet.
- 0.1, amendment of 2026-10-25 (spec 035, batch 3, for the Hierarchical Requirement Designer):
widths <Type> { … }insurface hierarchy, carrying DESL 0.2'swidths(§9.3, C.2);movetakesslot, andafterorbefore, so that it carries DESL §8.2'smove(§12.3, C.2); a binding's, rule's, block's, section's and file rule's name may hold hyphens and dots, as FBL's names do (§3.6, §11.3); a binding rule's type may be a key ofpersistence'stypeMap(§7.13, §14.7); and DESL 0.2's checks of a hierarchy, a counter's mark and a registration's settings areATD6002,ATD6003andATD6004(§14.7, §15.1). ATD 0.1 had no released grammar, so the amendment changes it in place; every example and tool description in this repository that checked before still checks, with the same meaning. With it, a conformance case of a designer: a stepoutside, a file written outside the host (§2.3,$defs/ConformanceStep), and the reference for the readings and findings of a tool type the desktop host did not have at its reference commit (§2.3). - 0.1, amendment of 2026-10-25, FBL 0.9 (spec 035, story 7): the
grammarfamily of FBL 0.9 (§11.9, FBL §4.9):family grammarwithgrammar { … }, read undergrammar/notation.lark, which the root module now imports, orgrammar from "<file>.lark"; the keywordgrammar(Appendix B); the settingsstartandrecoverofbodyand the slotnodewith its settingmatch(C.3); whereATD8001, for a grammar that is not LALR(1), stands (§11.9, §15.1); and the tables of every binding example's grammar undergrammar/tables/(§11.9). Every description that checked before still checks, with the same meaning. - 0.1, amendment of 2026-10-26 (spec 035): a conformance case's
movestep carriesindex, the place among the new parent's children the reference host's gesture put the element in (§2.3,$defs/ConformanceStep); without it a case replayed every move into a parent as a move to its end. The mind map's caseexample-1is recorded again with it. Every description and case that was valid before is valid, with the same meaning. - 0.1, second amendment of 2026-10-26 (spec 035, batch 5b, for nine diagrams): a trace's item and host behaviour may be
open, the address of the etalii.adp issue that adds the construct it needs, with its reason, and its companion may name furtherreports(§2.5); an edge notation may draw a reference attribute as<Type>.<attribute>(§8.5), and a field of a parameters form names a parameter (§8.7); a layout capability's result may carryvalues, read in CEL aslayout.value(e, name)(§8.8); and the catalogue gains the capabilities those descriptions require (§13.6). Every example and tool description that checked before still checks, with the same meaning. - 0.1, amendment of 2026-10-29, FBL 0.10 (spec 066, pull request B, for the Databricks conversion): FBL 0.10's constructs for one binding that several readings share, as settings and with no change under
grammar/: a rule'sorigins(§11.3), an attribute binding'ssecondaryandrefusals(§11.3), an insert'srefusals(§11.5), andresource'sbyOrigininregistration(§11.6); C.3 is FBL 0.10's, with a row for each, and for a fixture'stemplate. A setting is checked against FBL's$defs(§14.6), so a description gains them with the schema. Every description that checked before still checks, with the same meaning. - 0.1, amendment of 2026-10-29, FBL 0.11 (spec 066, pull request A, for the C4 conversions): FBL 0.11's constructs of the
grammarfamily, as settings and with no change undergrammar/but the tables ofstructurizr.lark(§11.9):recover'snestedandunclosed, a slot's and an attribute binding'sescape, an attribute binding'screatewithemit,afterandpadand itsgather, a rule'sopensas a settings map and itsselectedView, and a block rule'sat,view,originsandinsertinblock <name> { … }(§11.3, §11.4, §11.9); C.3 is FBL 0.11's, with a row for each new property. Every description that checked before still checks, with the same meaning. - 0.1, amendment of 2026-10-29, FBL 0.12 (spec 066, pull request C, for the Wardley map conversion): FBL 0.12's constructs of the
grammarfamily, as settings and with no change undergrammar/but the tables ofwardley-map.lark(§11.9): a slot's and an attribute binding'sitemsandseparator, a sidecar id'skindandordinal, andlegacyIdentitiesread as the array the tool writes (§11.6, §11.9); C.3 is FBL 0.12's, with a row for each new property. Every description that checked before still checks, with the same meaning. - 0.1, amendment of 2026-10-30, FBL 0.13 (spec 066, gap 16 of the C4 conversions, by the maintainer's ruling of 2026-10-30): FBL 0.13's
splitof a slot and of an attribute binding of thegrammarfamily, as a setting and with no change undergrammar/(§11.3, §11.9); C.3 is FBL 0.13's, with a row for each. A setting is checked against FBL's$defs(§14.6), so a description gains it with the schema. Every description that checked before still checks, with the same meaning. - 0.1, amendment of 2026-10-30, FBL 0.14 (spec 066, databricks-disl-fbl task 12, written to the recommended answer of the maintainer's pending card): FBL 0.14's member insert of the
yamlandjsonfamilies, which needs no setting of its own, and the sentenceskeyandduplicateof an insert'srefusals, as settings and with no change undergrammar/(§11.5); C.3 is FBL 0.14's, its count unchanged, sincerefusalsgains keys and no property. Every description that checked before still checks, with the same meaning. - 0.1, amendment of 2026-11-01, FBL 0.16 (spec 067, by Peter's ruling of 2026-11-01): FBL 0.16's writes of the
grammarfamily, as settings and with no change undergrammar/: an insert'scontinues, a remove'spartsandwhole(§11.5, §11.9), the operationreplace-separator; C.3 is FBL 0.16's, with a row for each new property. Every description that checked before still checks, with the same meaning. With it §2.3's comparison of a refusal widens (spec 067, FR-011): a description's own reason counts as the case's sentence that a gesture is not offered, and'<id>' cannot be edited on this selection.is one of those sentences. - 0.1, amendment of 2026-10-31, FBL 0.15 (spec 067, T036, for Turtle): FBL 0.15's constructs of the
grammarfamily, as settings and with no change undergrammar/but the tables ofw3c-turtle.lark(§11.9):body'sprefixes,ordinalsandorder, a slot's and an attribute binding'sexpand,ordinalandname, an attribute binding'sor, and..and+in a slot's selector (§11.3, §11.9); C.3 is FBL 0.15's, with a row for each new property. Every description that checked before still checks, with the same meaning. - 0.1, amendment of 2026-11-01, the lexing rule (by Peter's ruling of 2026-11-01, the decision card "Change ATD"): the lexing rule of §3.6 is Lark's contextual lexer's, which reads a keyword by the pattern that spells it and tries the rest by priority before width, in place of the longest match, which no host that reads with Lark or EtAlii.Lark gave; ATD grammar notation admits a string's flag
i, matched in any case of its ASCII letters (§4.1, §4.2), whichgrammar/notation.larkreads with the string as one token,GRAMMAR_STRING, in place ofSTRINGingrammar_atom; a parse table's terminal carriesflags(§4.7,$defs/ParseTables); and the collision §4.7 refuses is one of two pattern terminals of one priority. FBL §2.6, which restated the rule, points to it.structurizr.larkandwardley-map.larkwrite their keywords as strings withiat the priority of the word they stand in place of, in place of case-insensitive patterns at a raised priority, so that a word that starts with a keyword (grouped,title Pipelines,inertial) is read as a word, as the earlier rule read it; every fixture of theirs reads as it did, andspecifications/fbl/fixtures/structurizr-keyword-prefixes/shows the identifiers. ATD's own grammar states no priority, so every description reads, checks and means what it did.