Appendix A — JSON Schema
Contents of FBL 0.8
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, 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.8". 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, and (FBL 0.7) behavior-tree.fbl, Agent Behavior Modelling's Markdown read by the bullets family; 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.