Kotlin Multiplatform · TypeScript · browser-native
Run an A12 document model without a server round-trip.
A standalone interpreter for A12 document models in browser, Node.js, and JVM applications.
Use a built-in example or load your own workspace and Document.
Run full or partial validation and computations without uploading your files.
Representative: 200 group rows · 23.1 kB · no findings · 10.2 ms median · this browser.
Stress: 10,000 rows · 2.01 MB · 4,900 findings · 177.1 ms median.
… interpreter JS bundle ( minified).
Try the interpreter
Each choice loads a Document and its matching model workspace. The valid permit should produce no findings.
Workspace loading
Finite file map supplies all selected models together. On-demand provider loads only the include and typedef closure discovered from the entry model.
Test provider failures
Choosing a failure uses On-demand provider mode and shows the structured provider diagnostic.
Offline use
Disabled by default. Enabling offline use stores only the built-in showcase files in this browser. It does not store files you select.
Validate checks the current Document as-is. Each computation also contributes an implicit consistency rule, so a filled calculated field that differs from its computed value appears as a finding. Compute previews results; Apply results writes the retained actions into the editable Document; Compute → Apply → Validate runs the form-engine flow.
Document
This editable JSON is the Document passed to Validate or Compute. A model-shaped starter includes every declared field and group, with one row per repeatable group.
Use your own files
The demo needs no files. To use your own data, load a model workspace, a Document, or both.
A workspace can contain included models and imported typedefs. Select the folder—or all related model files—so the interpreter can resolve them locally.
Prepared DocumentModel JSON
This is the expanded A12 DocumentModel used by the operations below, including its rules, computations, and descriptions.
Prepare a workspace to inspect its DocumentModel.
Result
Selected files stay in this browser.{
"ready": true
}
How to use this page
-
Start with a built-in example
Choose a demo Document, then select Validate or Compute. The matching model workspace and Document are already loaded; no download or upload is required.
-
Use your own files
Use Load workspace folder for a directory of related models, or Choose model files to select them individually. Then choose the entry model. Preparing a different model replaces stale demo input with a model-shaped starter; Use model-shaped starter regenerates it explicitly. Load Document replaces the editable JSON input.
-
Choose how the workspace is read
Finite file map prepares all selected model sources together. On-demand provider requests only the models discovered through includes and imported typedefs.
-
Prepare, validate, or compute
Prepare workspace resolves the selected model and shows its dependencies. Check model support reports admitted rules, computations, and custom-typed field declarations that the configured interpreter cannot evaluate without reading the Document; every entry is a model element. Validation and computation report unsupported entries too, and those may additionally name a single Document cell — each entry’s subject says which. Validate checks the current Document as-is; each computation has an implicit consistency rule, so a stale filled target appears as a validation finding. Compute retains a result without changing the Document, Apply results writes those exact actions into the editable Document, and Compute → Apply → Validate runs that form-engine sequence in one step. Runs repeats validation, computation, or the complete form flow against the same prepared interpreter and Document source; one run reports elapsed time and multiple runs report p95.
-
Choose the validation scope
Full validates the complete Document. Partial validates only the model-defined effects of the path and coordinates shown beside the operation buttons. Results and failures appear as structured JSON.
-
Local file handling
Nothing is uploaded. The page reads selected models and Documents locally in the browser and does not store user-selected files in its offline cache.