Targets · JSON · Capabilities

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.

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.

FeatureStatus in JSONDecided by
User interfaceRecordedA Ui reference is stored as a name; the target renders it (browser DOM, terminal, native GUI…).
ConsoleRecordedConsole calls are stored as call nodes; the target supplies the driver.
NetworkingRecordedNetwork references are stored; the target decides how (and whether) they run.
AsynchronyRecordedA LOCKED state is a plain node; the target's runtime gives it in-flight semantics.
Storage & filesRecordedStorage references are stored; the target maps them to its own I/O.
Animation / graphicsRecordedStored 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.