{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "$id": "https://artifacts.apis.io/crosswire-api-com/json-schema/crosswire-api-com-liveness-response-schema.json",
  "title": "LivenessResponse",
  "description": "[FIX-OPS-04] `GET /v1/live` — the PER-MACHINE liveness probe the Fly\nhealthcheck keys off. It reports one thing: is this machine's refresher\nstill completing cycles? Data freshness is deliberately NOT part of it —\nsee the fly.toml comment and app/health_state.py.",
  "x-generated": "2026-11-04",
  "x-method": "derived",
  "x-generator": "derive-json-schema.py",
  "x-source": "openapi/crosswire-api-com-openapi.json#/components/schemas/LivenessResponse",
  "properties": {
    "live": {
      "type": "boolean",
      "title": "Live"
    },
    "reason": {
      "type": "string",
      "title": "Reason"
    },
    "thread_running": {
      "anyOf": [
        {
          "type": "boolean"
        },
        {
          "type": "null"
        }
      ],
      "title": "Thread Running"
    },
    "progressing": {
      "anyOf": [
        {
          "type": "boolean"
        },
        {
          "type": "null"
        }
      ],
      "title": "Progressing"
    },
    "last_progress_seconds": {
      "anyOf": [
        {
          "type": "integer"
        },
        {
          "type": "null"
        }
      ],
      "title": "Last Progress Seconds"
    },
    "progress_window_seconds": {
      "anyOf": [
        {
          "type": "integer"
        },
        {
          "type": "null"
        }
      ],
      "title": "Progress Window Seconds"
    },
    "cycle_count": {
      "anyOf": [
        {
          "type": "integer"
        },
        {
          "type": "null"
        }
      ],
      "title": "Cycle Count"
    }
  },
  "type": "object",
  "required": [
    "live",
    "reason"
  ]
}