{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "$id": "https://platoskallipolis.com/schemas/resource-freshness-review-queue.v1.json",
  "title": "Plato's Kallipolis Local Resource Freshness Review Queue",
  "type": "object",
  "additionalProperties": false,
  "required": ["schema", "state", "snapshotAt", "lookaheadSeconds", "evaluatedResourceCount", "excludedRetiredResourceCount", "queuedResourceCount", "effectiveFreshnessCounts", "queue", "privacy"],
  "properties": {
    "schema": {"const": "kallipolis.resource-freshness-review-queue.v1"},
    "state": {"const": "local-only"},
    "snapshotAt": {"type": "string", "format": "date-time"},
    "lookaheadSeconds": {"type": "integer", "minimum": 0, "maximum": 2592000},
    "evaluatedResourceCount": {"type": "integer", "minimum": 0},
    "excludedRetiredResourceCount": {"type": "integer", "minimum": 0},
    "queuedResourceCount": {"type": "integer", "minimum": 0},
    "effectiveFreshnessCounts": {
      "type": "object",
      "additionalProperties": false,
      "required": ["current", "stale", "unknown"],
      "properties": {
        "current": {"type": "integer", "minimum": 0},
        "stale": {"type": "integer", "minimum": 0},
        "unknown": {"type": "integer", "minimum": 0}
      }
    },
    "queue": {
      "type": "array",
      "items": {
        "type": "object",
        "additionalProperties": false,
        "required": ["resourceId", "version", "contentHash", "reason", "priority", "effectiveFreshnessState", "nextReviewAt"],
        "properties": {
          "resourceId": {"type": "string"},
          "version": {"type": "string"},
          "contentHash": {"type": "string", "pattern": "^sha256:[a-f0-9]{64}$"},
          "reason": {"enum": ["failed-review", "declared-stale", "unreviewed", "review-evidence-binding-mismatch", "review-evidence-from-future", "review-evidence-outdated", "declared-unknown", "review-due", "review-upcoming"]},
          "priority": {"enum": [10, 15, 20, 25, 30, 40]},
          "effectiveFreshnessState": {"enum": ["current", "stale", "unknown"]},
          "nextReviewAt": {"type": "string", "format": "date-time"}
        }
      }
    },
    "privacy": {
      "type": "object",
      "additionalProperties": false,
      "required": ["ownerIdentityStored", "ownerActivityStored", "reviewerIdentityStored", "contributionTimestampsStored", "reviewEvidenceIncluded"],
      "properties": {
        "ownerIdentityStored": {"const": false},
        "ownerActivityStored": {"const": false},
        "reviewerIdentityStored": {"const": false},
        "contributionTimestampsStored": {"const": false},
        "reviewEvidenceIncluded": {"const": false}
      }
    }
  }
}
