# description
Structural schema for a Workfile document, spec version 0.6, format version workfile/1. Checks structure only: top-level keys, the one-key-per-step rule, construct shapes, permitted modifiers per body kind, and name and literal patterns. It cannot check anything requiring a catalog or a scope — path resolution, argument schemas, enum exhaustiveness, template variables. Acceptance by this schema does not imply validity: see Static validation.

# allOf[].description
Exactly one of steps or states; initial accompanies states only.

# $defs.vendorKeys.description
Spec 17: a key beginning with x- is permitted in any map and is ignored.

# $defs.duration.description
A duration literal. Descending unit order and unit uniqueness are not expressible here; they are checked by expr.invalid_duration_literal.

# $defs.interpolation.description
A scalar consisting of exactly one interpolation: see Interpolation and typing.

# $defs.typeExpr.description
A type expression. Serialization requires that it is always quoted.

# $defs.projection.description
Spec 7.1. Names to value-shaped structures.

# $defs.triggerEntry.description
Spec 5. Exactly one connector.event key, plus the declaration keys.

# $defs.triggerEntry.not.description
Spec 5.3: batch and queue_by are mutually exclusive.

# $defs.step.description
Spec 6: a map with exactly one key, which is the step id.

# $defs.exclusiveFlags.description
Spec 6.2: optional and must_succeed are mutually exclusive.

# $defs.reconcile.description
Spec 10.5: steps, a boolean outcome, and the result the step binds.

# $defs.bodyKind.description
Exactly one construct key or one action call, with only the modifiers that the modifier table permits for it.

# $defs.fieldMapOrShorthand.description
A map of field declarations; a bare type expression is accepted as the type-only form.

# $defs.bodyAction.description
Exactly one connector.action key, plus any modifier that the modifier table permits on an action call.

# $defs.bodyAction.not.description
An action call must not also carry a construct key.

# $defs.transitionTarget.description
Spec 12: a transition is a goto, or a route with cases and a required else.