# schemas/relationship-route-locator.schema.json

Browser-rendered handoff of repository-authored JSON. Source identity: `schemas/relationship-route-locator.schema.json`. Links and original summaries are shown; external source content is not redistributed.

    {
      "$schema": "https://json-schema.org/draft/2020-12/schema",
      "$id": "https://chris-page-gov.github.io/okf-uk-living/schemas/relationship-route-locator.schema.json",
      "title": "A Life in the UK relationship route locator",
      "type": "object",
      "required": ["schema", "generated_at", "hash_algorithm", "bucket_path_template", "buckets", "counts"],
      "properties": {
        "schema": {"const": "okf-rich-relationship-route-locator.v1"},
        "generated_at": {"type": "string", "minLength": 1},
        "hash_algorithm": {"const": "sha256-utf8-first-byte-hex"},
        "bucket_path_template": {"type": "string", "pattern": "\\{prefix\\}"},
        "buckets": {
          "type": "array",
          "maxItems": 256,
          "items": {
            "type": "object",
            "required": ["bucket", "path", "content_encoding", "bytes", "sha256", "routes", "chunk_references"],
            "properties": {
              "bucket": {"$ref": "#/$defs/prefix"},
              "path": {"$ref": "#/$defs/path"},
              "content_encoding": {"const": "gzip"},
              "bytes": {"type": "integer", "minimum": 1},
              "sha256": {"$ref": "#/$defs/sha256"},
              "routes": {"type": "integer", "minimum": 1},
              "chunk_references": {"type": "integer", "minimum": 1}
            },
            "additionalProperties": true
          }
        },
        "counts": {
          "type": "object",
          "required": ["routes", "buckets", "chunk_references"],
          "properties": {
            "routes": {"type": "integer", "minimum": 1},
            "buckets": {"type": "integer", "minimum": 1, "maximum": 256},
            "chunk_references": {"type": "integer", "minimum": 1}
          },
          "additionalProperties": false
        }
      },
      "additionalProperties": true,
      "$defs": {
        "prefix": {"type": "string", "pattern": "^[0-9a-f]{2}$"},
        "path": {"type": "string", "minLength": 1, "pattern": "^(?!/)(?!.*(?:^|/)\\.\\.(?:/|$))[^\\s]+$"},
        "sha256": {"type": "string", "pattern": "^[0-9a-f]{64}$"}
      }
    }