Capabilities
JSON is the interchange form, not a runtime — so it has no capabilities of its own. What a program can do is decided by the target the JSON is rendered onward to.
Contents
JSON is the canonical command form every module is stored in — the interchange the other targets render from, not a language you run. These pages describe that form.
- Introduction — what the JSON form is, and how to read the rest of this section.
- Capabilities — which high-level features are possible — deferred to whichever target this JSON renders to.
- Example — a full program using every keyword, in the canonical JSON form.
- Naming considerations — how Program's dotted names are stored, verbatim and un-munged.
- Object format — every node in the self-describing object form, keyword by keyword.
- Array format — every node in the compact tagged-array form, keyword by keyword.
- Project setup — there is no build; how a module file is stored, read and rendered onward.
- Reserved words — why the canonical form has none, and never escapes a name.
Capabilities belong to the render target
Every capability — interface, console, networking, asynchrony, storage, animation — is a property of the language a module is finally rendered to, not of the JSON. The JSON simply records, faithfully and losslessly, which capabilities a program asks for; whether each is built in, reached through a library, or impossible is answered on that target's own capabilities page.
| Feature | Status in JSON | Decided by |
|---|---|---|
| User interface | Recorded | A Ui reference is stored as a name; the target renders it (browser DOM, terminal, native GUI…). |
| Console | Recorded | Console calls are stored as call nodes; the target supplies the driver. |
| Networking | Recorded | Network references are stored; the target decides how (and whether) they run. |
| Asynchrony | Recorded | A LOCKED state is a plain node; the target's runtime gives it in-flight semantics. |
| Storage & files | Recorded | Storage references are stored; the target maps them to its own I/O. |
| Animation / graphics | Recorded | Stored as ordinary calls; possible only where the render target has a surface for them. |
To read the real answer for a given deployment, open the capabilities page of the target you intend to render to — for example JavaScript, Swift or Rust.