{
  "$id": "https://codonic.dev/oarbank/schemas/runner-failure-1.schema.json",
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "additionalProperties": true,
  "description": "<workdir>/failure.json, written (atomically) by a runner that exits non-zero. Exit codes 2, 3 and 75 are\nattributed only when this file exists.",
  "properties": {
    "detail": {
      "default": "",
      "description": "[stable] Human-readable detail (truncated to 4 KiB by the agent).",
      "title": "Detail",
      "type": "string"
    },
    "fault": {
      "anyOf": [
        {
          "enum": [
            "job",
            "host",
            "transient"
          ],
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "description": "[stable] Who is at fault; overrides the exit code (job: never succeeds; host: the node lacks something; transient: retry).",
      "title": "Fault"
    },
    "reason": {
      "description": "[stable] Reason code: a core code from the registry or '<module-short>/<code>'.",
      "title": "Reason",
      "type": "string"
    },
    "retryable": {
      "anyOf": [
        {
          "type": "boolean"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "description": "[beta] Overrides the exit-code attribution when set (true = transient).",
      "title": "Retryable"
    }
  },
  "required": [
    "reason"
  ],
  "title": "Failure",
  "type": "object"
}
