Jabbertoon JSON Schemas

These JSON Schemas describe Jabbertoon's files at their public URLs, so an editor, a program or an AI assistant can check a file before it is used. They use JSON Schema draft 2020-12. Each schema's $id is its own address.

A schema checks the shape of a file: the fields it must have and the kinds of values they hold. Some rules need the engine itself, for example whether a formula only uses names it knows, or whether a part channel names a real body part, so the language's validator (part of the engine, and the validate tool for AI assistants) is the final word. Every pack Jabbertoon ships passes both.

Validating a file

With Node and the free Ajv library:

npm install ajv
node -e "const Ajv = require('ajv/dist/2020').default; const ajv = new Ajv({ allErrors: true, strict: false }); fetch('https://jabbertoon.com/schemas/program.schema.json').then(r => r.json()).then(s => { const ok = ajv.validate(s, { v: 1, kind: 'behaviour', scripts: [{ body: [{ op: 'bob', amp: 8 }] }] }); console.log(ok || ajv.errors); })"

The program in that example is a complete move: one script with one bob block.