Skip to content

Specification

The specification is the contract every runtime, tool, and host implements. The manifest is the center of gravity; everything else derives from it.

  • Manifest — the app manifest: bindings, capabilities, types, slots, events, libraries
  • Manifest Inheritance — extends: add-new, fill, refine, and the collision rules
  • Mod Manifest — what a mod declares: capabilities, entry, and fills keyed by host slot id
  • Fragments: the inert-template protocol (data-bind, data-if, data-each, handlers, and the command buffer)
  • Fragment Formats — the format catalog a slot’s accepts names
  • Capabilities — default-deny grants, prefix subsumption, and the read/write mode lattice
  • Bindings — host functions and namespaces, error vocabulary, naming grammars
  • Hooks — event-typed slots and the dispatch contract
  • Execution Limits: what bounds a running script, what xript can interrupt, and what it cannot
  • Commands — command-typed slots: the fill shape, bound arguments, resolution, and invocation
  • Module-Format Mods — ES module entries, the import deny, and approved libraries
  • Host Harness — synthetic hosts: stub bindings, journals, and replayable step scenarios
  • Debugging — the DAP-shaped debug protocol
  • Security — the sandbox guarantees and threat model
  • Annotations — @xript source annotations scanned into manifests

Every schema is served at its $id URL, with prior version ids resolving as aliases:

Earlier manifest and mod-manifest versions (v0.8, v0.7, v0.6, v0.3) keep serving the exact documents they published, and the toolchain validates a manifest against the version it declares.

Point a manifest’s $schema at the matching URL and editors pick up validation and autocomplete.