Developer preview. Vela, Facet, and Quire are pre-release and in active development — syntax, APIs, and availability may change, and they are not yet generally available.
SStretch Dev Docs
Quire

Output Contracts

Normative JSON shapes for block output, manifest output, and compatibility behavior.

Downstream systems should consume Quire outputs, not Quire source syntax.

Block JSON (stretchpress.blocks.v1)

  • Schema: schemas/stretchpress-blocks.v1.json
  • Alias file remains supported: schemas/stretchpress-blocks.v1.schema.json

Minimal root shape:

{
  "$schema": "https://stretchgroup.dev/schemas/stretchpress.blocks.v1.json",
  "format": "stretchpress.blocks",
  "version": 1,
  "source": { "file": "views/product.quire", "schema": "quire.schema.json" },
  "view": {},
  "bindings": [],
  "blocks": [],
  "sourceMap": []
}

Node kinds are:

  • kind: block for render nodes
  • kind: control with control: "if" and control: "repeat" for control flow

Expressions and descriptors are serialized as IR objects (literal, path, capability, format, plural, i18n, locale, responsive, etc.).

compile -> import -> compile preserves semantic IR:

  • view
  • bindings
  • blocks

Source-map entries map IR paths to source locations for diagnostics and editor/raycast mapping.

Build manifest

  • Schema: schemas/stretchpress-manifest.v1.schema.json
  • Generated by quire build

Manifest shape:

{
  "format": "stretchpress.manifest",
  "version": 1,
  "count": 4,
  "entries": [
    {
      "name": "HomePage",
      "source": "home.quire",
      "output": "home.blocks.json",
      "route": {},
      "title": {}
    }
  ]
}

Determinism and golden snapshots

Outputs are required to be deterministic for:

  • same source file
  • same schema
  • same source path metadata

Snapshot contracts are maintained in repository snapshots and rebuilt intentionally with:

npm run golden:update