Output and exit codes: Two shapes, one decision
Human-readable text by default; --json for a versioned envelope.
Human-readable text by default; --json for a versioned envelope. Both are rendered from one
already-decided outcome, so they can never describe different things.
{
"schema": 2,
"command": "list coverage",
"ok": true,
"data": { },
"errors": []
}
| Field | |
|---|---|
schema |
Envelope version. Currently 2. Bumped for any breaking change |
command |
The verb, as it names itself — "list coverage" |
ok |
Whether the command succeeded. Mirrors exit 0, not "did anything happen" |
data |
The verb's own payload, or null on a refusal |
errors[] |
{ code, name, path } |
errors[].code is an operation error-code name. Branch on the code. Never parse the prose — the
prose is rendered per face and is not a contract; the code is.
{
"schema": 2,
"command": "list coverage",
"ok": false,
"data": null,
"errors": [ { "code": "DistributionListNotFound", "name": "All Prod", "path": null } ]
}