Appendix A — JSON Schema
Contents of FBL 0.15
The normative schema is fbl.schema.json beside this document (JSON Schema draft 2020-12, $id https://etalii.net/adp/fbl/schema/0.1/fbl.schema.json). Its $defs are: Document, Binding, Claims, Marker, Body, Family, FileRule, PluginReader, TextDefaults, Header, BlockRule, (FBL 0.7) SectionRule, ElementRule, RelationRule, IdBinding, Slot, (FBL 0.9) GrammarSource and Recover, AttributeBinding, Insert, Remove, RegistrationSettings, Template, Registration, Splice, Fixture, Edit, the model changes ModelChange and ChangePosition (FBL 0.2, section 11.2), and the helpers Name, BindingRef, Regex, Selector. While FBL is a draft, the schema keeps its 0.1 $id and accepts every version from "fbl": "0.1" to "0.12". It references DISL's Doc, LocalizedText, Expression and TypeRef.
The examples beside this document are timeline.fbl, databricks-job.fbl, databricks-pipeline.fbl, mindmap.fbl, causal-loop-diagram.fbl, structurizr.fbl, w3c-turtle.fbl, helm-chart.fbl, ansible-structure.fbl, dotnet-dependency-graph.fbl, a .NET solution read by a plugin that opens the files it leads to itself, (FBL 0.5) dependency-graph.fbl, the dependency graph's hand-written YAML read with every scalar as written, (FBL 0.5) sankey.fbl, the Sankey diagram's YAML read the same way, with a computed attribute that holds the written text of every member of an entry, (FBL 0.5) supply-chain.fbl, the supply chain diagram's YAML read the same way, whose one node rule reads the seven stages and their six older spellings through map and whose group key is a reference to a group's stored id rather than a nesting, (FBL 0.7) behavior-tree.fbl, Agent Behavior Modelling's Markdown read by the bullets family, and (FBL 0.9) w3c-turtle-grammar.fbl, Turtle read by the grammar family with the grammar w3c-turtle.lark beside it, which .github/scripts/atd-grammar.py --check builds in strict mode as it builds every grammar an example names, (FBL 0.10) databricks.fbl, one Databricks bundle file read as the bundle, a job and a pipeline through one binding whose rules name the readings they serve, (FBL 0.11) structurizr.fbl with the grammar structurizr.lark beside it, the Structurizr DSL read by the grammar family for the six C4 types, and (FBL 0.12) wardley-map.fbl with the grammar wardley-map.lark beside it, the Wardley map's .owm read by the grammar family, its ids kept by kind and natural key in the legacy identities file the tool writes; registrations are in registrations/ and round-trip fixtures in fixtures/, and (FBL 0.8) documents a host MUST refuse when it loads them, each valid against the schema, are in refused/. python .github/scripts/validate-examples.py validates them all, and checks that each document in refused/ is refused.