ZGraph spec

The manifest
IS the API.

Omega's entire API is one TOML/JSON/YAML file: ZGraph. Branes are nodes. Edges are typed events. The substrate compiles ZGraph into placement, capability, and resolver decisions. There is no imperative API — every interaction with Omega is a manifest diff.

[format]
TOML / JSON / YAML
[schema]
CDDL · published
[validation]
parse-time · CI-friendly
[evolution]
additive only · semver-tracked
At a glance

The properties
that matter.

top-level
[brane.<name>], [graph], [resolver], [tenant], [policy]
placement
substrate = "gaia" | "biome" | "habitat"
capability
capability = "standard" | "frontier" (frontier rejects on habitat)
lifecycle
[brane.x.lifecycle] boot, sleep_idle, deadline
scaling
[brane.x.scale] strategy, target_q, min, max, predictive
network
[brane.x.resolver] + [brane.x.network] (egress allowlist)
storage
[brane.x.storage] backend, retention, encryption
audit
[brane.x.audit] emit, chain
edges
[graph] edges = [{ from, to, on, queue, fanout }]
validation
parse-time CDDL; ω plan adds substrate-aware rules
In the manifest

How you
describe it.

[tenant]
did         = "did:omega:tenant:l1fe.ai"
quota       = { vcpu = 64, mem_gib = 256, hourly_usd = 220 }

[policy]
// every section the spec defines, in one file
By design

What you
can rely on.

You describe the desired state

ω apply makes the substrate match the manifest. No imperative API; no 'how' to debug, just 'what'.
DECLARATIVE

Validated at parse time

Every section has a CDDL schema. Errors are caught at ω plan, not at runtime — your CI can reject bad manifests.
SCHEMA-BOUND

Manifests are review artifacts

A ZGraph diff in a PR tells you exactly what will change in the substrate. Reviewers see capability changes, replica changes, and resolver changes side by side.
DIFFABLE

Works locally and in production

The same manifest runs against your dev daemon, a private deployment, or our public substrate. The placement substrate is a one-line change — Gaia → Habitat — and that's it.
PORTABLE