{
  "schema_version": "qaz.expert.qazgeo-consumer-v1",
  "generated_at": "2026-08-05T22:58:49.210Z",
  "sync": {
    "status": "fresh",
    "checked_at": "2026-08-05T22:58:49.253Z",
    "errors": []
  },
  "source": {
    "provider": "QazGeo",
    "canonical_origin": "https://qgeo.tech",
    "source_urls": {
      "layers": "https://qgeo.tech/api/v1/layers",
      "visualizationMethods": "https://qgeo.tech/api/v1/visualization-methods",
      "h3PoiDensity": "https://qgeo.tech/api/v1/h3/hexbin?resolution=5",
      "viirsTilejson": "https://qgeo.tech/api/v1/external-layers/nasa-viirs-true-color"
    },
    "allowlist_policy": "Only the four exact public QazGeo endpoints above may refresh this consumer snapshot.",
    "browser_policy": "The browser reads same-origin static artifacts only; no direct qgeo.tech request, iframe or external raster tile is enabled."
  },
  "publication_boundary": {
    "included": [
      "public layer metadata and provenance",
      "public visualization methods",
      "aggregated H3 density with no individual POI records",
      "source version, snapshot hash and consumer status"
    ],
    "excluded": [
      "raw POI records",
      "private or operational observations",
      "degraded zero-feature external layers as active map data",
      "ADM2 geometry without an approved versioned contract",
      "direct third-party raster tiles"
    ]
  },
  "registry": {
    "version": 1,
    "defaults": {
      "visible": [
        "regions"
      ],
      "provenance_required": true
    },
    "layers": [
      {
        "id": "h3_poi_density",
        "title": "Плотность POI по H3",
        "description": "Агрегированная плотность точек интереса в H3-гексагонах; отдельные POI не раскрываются.",
        "kind": "geojson",
        "status": "beta",
        "source_type": "api",
        "source_id": "h3_poi_density",
        "endpoint": "/api/v1/h3/hexbin?resolution=7",
        "legend": {
          "color": "#0f766e",
          "shape": "polygon"
        },
        "provenance": {
          "source_id": "qazgeo.h3.poi_density",
          "label": "Плотность POI QazGeo",
          "attribution": "QazGeo, агрегированные POI",
          "refresh_cadence_s": 3600
        },
        "provenance_required": true,
        "public_allowed": true,
        "pii_risk": "low",
        "governance": {
          "id": "h3_poi_density",
          "owner": "qazgeo",
          "upstream": "qazgeo.h3.poi_density",
          "contract": "qazgeo-layer/v1",
          "classification": "public-safe",
          "license_status": "documented",
          "license_note": "Агрегированная плотность объектов QazGeo; отдельные объекты в этом слое не публикуются.",
          "geometry": "polygon",
          "legend": {
            "color": "#0f766e",
            "shape": "polygon"
          },
          "refresh_slo_seconds": 3600,
          "freshness_window_seconds": 86400,
          "data_updated_at": null,
          "schema_updated_at": "2026-07-27",
          "observed_at": null,
          "observed_at_field": "snapshot_version",
          "public_projection": [
            "h3_index",
            "count",
            "resolution",
            "area_km2",
            "density_per_km2",
            "snapshot_version",
            "geometry"
          ],
          "contract_path": "/api/v1/h3/hexbin?resolution=7",
          "rollback": "Отключить запись реестра или откатить релиз QazGeo; исходные данные сохраняются.",
          "dataset_status": "contract_only",
          "source_url": "https://qgeo.tech/api/v1/h3/hexbin",
          "coverage": {
            "scope": "Казахстан, регионально привязанные POI",
            "status": "partial",
            "geographies": 20,
            "geometry": "H3 polygon"
          },
          "publication_scope": "aggregated_density_only",
          "sensitivity": "aggregate_only",
          "geometry_quality": "derived_grid",
          "lineage": {
            "pipeline": "QazGeo POI aggregation",
            "source_artifact": null
          },
          "limitations": "Ячейки показывают агрегированную плотность, а не полный перечень отдельных объектов.",
          "field_contract": [
            {
              "name": "h3_index",
              "type": "string",
              "required": true
            },
            {
              "name": "count",
              "type": "number",
              "required": true
            },
            {
              "name": "resolution",
              "type": "integer",
              "required": true
            },
            {
              "name": "density_per_km2",
              "type": "number",
              "required": true
            },
            {
              "name": "snapshot_version",
              "type": "string",
              "required": true
            },
            {
              "name": "geometry",
              "type": "Polygon",
              "required": true
            }
          ]
        },
        "freshness_class": "operational",
        "temporal": {
          "data_updated_at": null,
          "schema_updated_at": "2026-07-27",
          "observed_at": null,
          "observed_at_field": "snapshot_version"
        },
        "consumer_status": "ready",
        "consumer_policy": "Локальный reviewed-снимок разрешён для ленивого включения на карте.",
        "upstream_endpoint": "/api/v1/h3/hexbin?resolution=7",
        "source_url": "https://qgeo.tech/api/v1/h3/hexbin?resolution=5",
        "snapshot_file": "/data/qazgeo-h3-poi-density.geojson"
      },
      {
        "id": "hydro_stations",
        "title": "Гидропосты",
        "description": "Гидропосты Казахстана из каталога QazLake для видимого участка карты; исходные поля не публикуются.",
        "kind": "geojson",
        "status": "beta",
        "source_type": "api",
        "source_id": "qazlake_hydro_stations",
        "endpoint": "/api/v1/external-layers/hydro-stations",
        "legend": {
          "color": "#0284c7",
          "shape": "point"
        },
        "provenance": {
          "source_id": "qazgeo.qazlake.hydro_stations",
          "label": "Нормализованный каталог гидропостов QazLake",
          "attribution": "QazLake / гидрологический каталог; выборка по видимой области",
          "refresh_cadence_s": 2592000
        },
        "provenance_required": true,
        "public_allowed": true,
        "pii_risk": "low",
        "governance": {
          "id": "hydro_stations",
          "owner": "qazlake-qazgeo",
          "upstream": "qazgeo.qazlake.hydro_stations",
          "contract": "qazlake-geo/v1",
          "classification": "public-safe",
          "license_status": "documented",
          "license_note": "Нормализованный открытый каталог. Исходные метаданные источника не раскрываются.",
          "geometry": "point",
          "legend": {
            "color": "#0284c7",
            "shape": "point"
          },
          "refresh_slo_seconds": 2592000,
          "freshness_window_seconds": 7776000,
          "data_updated_at": null,
          "schema_updated_at": "2026-07-27",
          "observed_at": null,
          "observed_at_field": "catalogued_at",
          "public_projection": [
            "station_code",
            "station_name",
            "station_type",
            "river_name",
            "basin",
            "region",
            "active",
            "catalogued_at",
            "provenance",
            "geometry"
          ],
          "contract_path": "/api/v1/external-layers/hydro-stations",
          "rollback": "Удалить публичную запись реестра или отключить адаптер QazLake; исходные данные QazLake не изменяются.",
          "dataset_status": "contract_only",
          "source_url": "https://qgeo.tech/api/v1/external-layers/hydro-stations",
          "coverage": {
            "scope": "Нормализованный каталог гидропостов",
            "status": "unknown",
            "geographies": null,
            "geometry": "Point"
          },
          "publication_scope": "normalized_public_catalog_only",
          "sensitivity": "source_reviewed",
          "geometry_quality": "upstream_observation_required",
          "lineage": {
            "pipeline": "QazLake -> QazGeo",
            "source_artifact": null
          },
          "limitations": "Каталог гидропостов не является утверждением о текущем уровне воды без отдельного наблюдения и единицы измерения.",
          "field_contract": [
            {
              "name": "station_code",
              "type": "string",
              "required": true
            },
            {
              "name": "station_name",
              "type": "string",
              "required": true
            },
            {
              "name": "station_type",
              "type": "string",
              "required": false
            },
            {
              "name": "river_name",
              "type": "string",
              "required": false
            },
            {
              "name": "basin",
              "type": "string",
              "required": false
            },
            {
              "name": "region",
              "type": "string",
              "required": false
            },
            {
              "name": "active",
              "type": "boolean",
              "required": true
            },
            {
              "name": "catalogued_at",
              "type": "datetime",
              "required": true
            },
            {
              "name": "provenance",
              "type": "object",
              "required": true
            },
            {
              "name": "geometry",
              "type": "Point",
              "required": true
            }
          ]
        },
        "freshness_class": "reference",
        "temporal": {
          "data_updated_at": null,
          "schema_updated_at": "2026-07-27",
          "observed_at": null,
          "observed_at_field": "catalogued_at"
        },
        "consumer_status": "degraded",
        "consumer_policy": "Слой не публикуется как рабочий: upstream сейчас beta/degraded или без проверенной выборки.",
        "upstream_endpoint": "/api/v1/external-layers/hydro-stations",
        "source_url": "https://qgeo.tech/api/v1/external-layers/hydro-stations",
        "snapshot_file": null
      },
      {
        "id": "infrastructure",
        "title": "Инфраструктура",
        "description": "Дороги, железные дороги, трубопроводы и водные линии в векторных тайлах Martin.",
        "kind": "vector",
        "status": "stable",
        "source_type": "martin",
        "source_id": "infrastructure",
        "source_layer": "infrastructure",
        "tilejson": "/tiles/infrastructure",
        "legend": {
          "color": "#d97706",
          "shape": "line"
        },
        "provenance": {
          "source_id": "qazgeo.infrastructure",
          "label": "Инфраструктура QazGeo",
          "attribution": "QazGeo / инфраструктура на основе OSM",
          "refresh_cadence_s": 86400
        },
        "provenance_required": true,
        "public_allowed": true,
        "pii_risk": "low",
        "governance": {
          "id": "infrastructure",
          "owner": "qazgeo",
          "upstream": "qazgeo.infrastructure",
          "contract": "qazgeo-layer/v1",
          "classification": "public-safe",
          "license_status": "attribution-required",
          "license_note": "Открытый инфраструктурный слой QazGeo на основе данных OpenStreetMap с обязательной атрибуцией.",
          "geometry": "line",
          "legend": {
            "color": "#d97706",
            "shape": "line"
          },
          "refresh_slo_seconds": 86400,
          "freshness_window_seconds": 2592000,
          "data_updated_at": null,
          "schema_updated_at": "2026-07-27",
          "observed_at": null,
          "observed_at_field": null,
          "public_projection": [
            "infra_type",
            "region",
            "geometry"
          ],
          "contract_path": "/tiles/infrastructure",
          "rollback": "Отключить запись реестра или откатить релиз QazGeo; исходные данные сохраняются.",
          "dataset_status": "contract_only",
          "source_url": "https://www.openstreetmap.org/copyright",
          "coverage": {
            "scope": "Казахстан",
            "status": "unknown",
            "geographies": null,
            "geometry": "LineString"
          },
          "publication_scope": "public_geometry_with_attribution",
          "sensitivity": "source_reviewed",
          "geometry_quality": "upstream_observation_required",
          "lineage": {
            "pipeline": "QazPipe -> QazLake -> QazGeo",
            "source_artifact": null
          },
          "limitations": "Публичная актуальность и полное покрытие не подтверждаются только наличием контракта; требуется observed_at от upstream.",
          "field_contract": [
            {
              "name": "infra_type",
              "type": "string",
              "required": true
            },
            {
              "name": "region",
              "type": "string",
              "required": true
            },
            {
              "name": "geometry",
              "type": "LineString",
              "required": true
            }
          ]
        },
        "freshness_class": "daily",
        "temporal": {
          "data_updated_at": null,
          "schema_updated_at": "2026-07-27",
          "observed_at": null,
          "observed_at_field": null
        },
        "consumer_status": "catalog-only",
        "consumer_policy": "Каталог доступен; визуальное подключение требует отдельного same-origin tile gate.",
        "upstream_endpoint": "/tiles/infrastructure",
        "source_url": "https://qgeo.tech/tiles/infrastructure",
        "snapshot_file": null
      },
      {
        "id": "nasa_viirs_true_color",
        "title": "Снимок VIIRS",
        "description": "Дневной снимок Казахстана в естественных цветах из NASA EOSDIS GIBS. Пиксели отдаются напрямую; слой выключен по умолчанию.",
        "kind": "raster",
        "status": "beta",
        "source_type": "tilejson",
        "source_id": "nasa_gibs_viirs",
        "tilejson": "/api/v1/external-layers/nasa-viirs-true-color",
        "legend": {
          "color": "#587a4b",
          "shape": "raster"
        },
        "provenance": {
          "source_id": "qazgeo.nasa_gibs.viirs_true_color",
          "label": "NASA EOSDIS GIBS",
          "attribution": "NASA EOSDIS GIBS",
          "refresh_cadence_s": 86400
        },
        "provenance_required": true,
        "public_allowed": true,
        "pii_risk": "low",
        "governance": {
          "id": "nasa_viirs_true_color",
          "owner": "qazgeo",
          "upstream": "qazgeo.nasa_gibs.viirs_true_color",
          "contract": "tilejson/v3",
          "classification": "public-safe",
          "license_status": "attribution-required",
          "license_note": "Публичные снимки NASA EOSDIS GIBS. Карта сохраняет атрибуцию NASA; QazGeo не проксирует и не хранит растровые тайлы.",
          "geometry": "raster",
          "legend": {
            "color": "#587a4b",
            "shape": "raster"
          },
          "refresh_slo_seconds": 86400,
          "freshness_window_seconds": 259200,
          "data_updated_at": null,
          "schema_updated_at": "2026-07-27",
          "observed_at": null,
          "observed_at_field": "observation_date",
          "public_projection": [
            "tiles",
            "bounds",
            "minzoom",
            "maxzoom",
            "observation_date",
            "attribution"
          ],
          "contract_path": "/api/v1/external-layers/nasa-viirs-true-color",
          "rollback": "Удалить запись реестра; снимки в QazGeo не хранятся.",
          "dataset_status": "contract_only",
          "source_url": "https://gibs.earthdata.nasa.gov/",
          "coverage": {
            "scope": "Казахстан, TileJSON",
            "status": "unknown",
            "geographies": null,
            "geometry": "Raster"
          },
          "publication_scope": "metadata_and_external_tiles",
          "sensitivity": "none",
          "geometry_quality": "metadata_only",
          "lineage": {
            "pipeline": "NASA GIBS -> QazGeo TileJSON",
            "source_artifact": null
          },
          "limitations": "QazGeo не хранит растровые тайлы; доступность и дата снимка зависят от внешнего каталога NASA GIBS.",
          "field_contract": [
            {
              "name": "tiles",
              "type": "array",
              "required": true
            },
            {
              "name": "bounds",
              "type": "array",
              "required": true
            },
            {
              "name": "observation_date",
              "type": "date",
              "required": true
            },
            {
              "name": "attribution",
              "type": "string",
              "required": true
            }
          ]
        },
        "freshness_class": "daily",
        "temporal": {
          "data_updated_at": null,
          "schema_updated_at": "2026-07-27",
          "observed_at": null,
          "observed_at_field": "observation_date"
        },
        "consumer_status": "catalog-only",
        "consumer_policy": "TileJSON проверен, но прямые растровые тайлы не включены до отдельного CSP/proxy gate.",
        "upstream_endpoint": "/api/v1/external-layers/nasa-viirs-true-color",
        "source_url": "https://qgeo.tech/api/v1/external-layers/nasa-viirs-true-color",
        "snapshot_file": null
      },
      {
        "id": "regions",
        "title": "Регионы",
        "description": "Административные регионы Казахстана из основного набора границ QazGeo.",
        "kind": "vector",
        "status": "stable",
        "source_type": "martin",
        "source_id": "regions",
        "source_layer": "regions",
        "tilejson": "/tiles/regions",
        "legend": {
          "color": "#5baaa9",
          "shape": "polygon"
        },
        "provenance": {
          "source_id": "qazgeo.regions",
          "label": "Регионы QazGeo",
          "attribution": "QazGeo",
          "refresh_cadence_s": 86400
        },
        "provenance_required": true,
        "public_allowed": true,
        "pii_risk": "low",
        "governance": {
          "id": "regions",
          "owner": "qazgeo",
          "upstream": "qazgeo.regions",
          "contract": "qazgeo-layer/v1",
          "classification": "public-safe",
          "license_status": "documented",
          "license_note": "Управляемый QazGeo справочный набор административных границ.",
          "geometry": "polygon",
          "legend": {
            "color": "#5baaa9",
            "shape": "polygon"
          },
          "refresh_slo_seconds": 86400,
          "freshness_window_seconds": 2592000,
          "data_updated_at": "2026-07-17",
          "schema_updated_at": "2026-07-27",
          "observed_at": null,
          "observed_at_field": null,
          "public_projection": [
            "code",
            "name_ru",
            "name_kk",
            "geometry"
          ],
          "contract_path": "/tiles/regions",
          "rollback": "Отключить запись реестра или откатить релиз QazGeo; исходные данные сохраняются.",
          "dataset_status": "versioned_snapshot",
          "source_url": "https://qgeo.tech",
          "coverage": {
            "scope": "Казахстан",
            "status": "complete",
            "geographies": 20,
            "geometry": "ADM1"
          },
          "publication_scope": "safe_administrative_geometry",
          "sensitivity": "none",
          "geometry_quality": "validated",
          "lineage": {
            "pipeline": "QazGeo managed reference snapshot",
            "source_artifact": "data/geojson/kaz_adm1_full.geojson"
          },
          "limitations": "Актуальность границ определяется версией снапшота; изменения административной реформы публикуются отдельным lineage.",
          "field_contract": [
            {
              "name": "code",
              "type": "string",
              "required": true
            },
            {
              "name": "name_ru",
              "type": "string",
              "required": true
            },
            {
              "name": "name_kk",
              "type": "string",
              "required": true
            },
            {
              "name": "geometry",
              "type": "Polygon",
              "required": true
            }
          ]
        },
        "freshness_class": "daily",
        "temporal": {
          "data_updated_at": "2026-07-17",
          "schema_updated_at": "2026-07-27",
          "observed_at": null,
          "observed_at_field": null
        },
        "consumer_status": "local-canonical",
        "consumer_policy": "Геометрия берётся из локальной reviewed-проекции QazGeo/QazRegion.",
        "upstream_endpoint": "/tiles/regions",
        "source_url": "https://qgeo.tech/tiles/regions",
        "snapshot_file": null
      },
      {
        "id": "sentinel1_scenes",
        "title": "Сцены Sentinel-1",
        "description": "Центры свежих сцен Sentinel-1 над Казахстаном; точки вне страны и старше 21 дня исключаются. Слой показывает наличие наблюдений, а не снимки.",
        "kind": "geojson",
        "status": "beta",
        "source_type": "api",
        "source_id": "qazlake_sentinel1_scenes",
        "endpoint": "/api/v1/external-layers/sar-scenes",
        "legend": {
          "color": "#2563a6",
          "shape": "point"
        },
        "provenance": {
          "source_id": "qazgeo.qazlake.sentinel1_scenes",
          "label": "Shadow SAR, QazPipe и QazLake",
          "attribution": "Метаданные каталога Sentinel-1 через ASF/NASA; снимки не перепубликуются",
          "refresh_cadence_s": 3600
        },
        "provenance_required": true,
        "public_allowed": true,
        "pii_risk": "low",
        "governance": {
          "id": "sentinel1_scenes",
          "owner": "shadow-qazpipe-qazlake-qazgeo",
          "upstream": "qazgeo.qazlake.sentinel1_scenes",
          "contract": "qazlake-geo/v1",
          "classification": "public-safe",
          "license_status": "attribution-required",
          "license_note": "Метаданные каталога сцен Sentinel-1 через ASF/NASA. QazGeo не перепубликует файлы снимков.",
          "geometry": "point",
          "legend": {
            "color": "#2563a6",
            "shape": "point"
          },
          "refresh_slo_seconds": 7200,
          "freshness_window_seconds": 1814400,
          "data_updated_at": null,
          "schema_updated_at": "2026-07-27",
          "observed_at": null,
          "observed_at_field": "observed_at",
          "public_projection": [
            "layer",
            "observation_type",
            "title",
            "observed_at",
            "collected_at",
            "source_url",
            "confidence",
            "provenance",
            "geometry"
          ],
          "contract_path": "/api/v1/external-layers/sar-scenes",
          "rollback": "Удалить публичную запись реестра или отключить адаптер QazLake; материалы Shadow и QazLake сохраняются.",
          "dataset_status": "contract_only",
          "source_url": "https://dataspace.copernicus.eu/",
          "coverage": {
            "scope": "Сцены над Казахстаном",
            "status": "unknown",
            "geographies": null,
            "geometry": "Point footprint"
          },
          "publication_scope": "scene_metadata_only",
          "sensitivity": "none",
          "geometry_quality": "upstream_observation_required",
          "lineage": {
            "pipeline": "Sentinel-1 catalog -> QazLake -> QazGeo",
            "source_artifact": null
          },
          "limitations": "Публичный слой содержит метаданные сцен, а не исходные файлы снимков или производные растрированные продукты.",
          "field_contract": [
            {
              "name": "layer",
              "type": "string",
              "required": true
            },
            {
              "name": "title",
              "type": "string",
              "required": false
            },
            {
              "name": "observed_at",
              "type": "datetime",
              "required": true
            },
            {
              "name": "collected_at",
              "type": "datetime",
              "required": false
            },
            {
              "name": "confidence",
              "type": "number",
              "required": false
            },
            {
              "name": "provenance",
              "type": "object",
              "required": true
            },
            {
              "name": "geometry",
              "type": "Point",
              "required": true
            }
          ]
        },
        "freshness_class": "operational",
        "temporal": {
          "data_updated_at": null,
          "schema_updated_at": "2026-07-27",
          "observed_at": null,
          "observed_at_field": "observed_at"
        },
        "consumer_status": "degraded",
        "consumer_policy": "Слой не публикуется как рабочий: upstream сейчас beta/degraded или без проверенной выборки.",
        "upstream_endpoint": "/api/v1/external-layers/sar-scenes",
        "source_url": "https://qgeo.tech/api/v1/external-layers/sar-scenes",
        "snapshot_file": null
      },
      {
        "id": "shadow_safe_events",
        "title": "Сигналы по Казахстану",
        "description": "Сигналы NASA FIRMS, землетрясений, погодных предупреждений, качества воздуха, связи и международных событий. Точки вне Казахстана, устаревшие и чувствительные наблюдения исключены.",
        "kind": "geojson",
        "status": "beta",
        "source_type": "api",
        "source_id": "shadow_safe_events",
        "endpoint": "/api/v1/external-layers/shadow-events",
        "legend": {
          "color": "#ea580c",
          "shape": "point"
        },
        "provenance": {
          "source_id": "qazgeo.qazlake.shadow_safe_events",
          "label": "QazPipe, QazLake Shadow и QazGeo",
          "attribution": "Публичные агрегированные события; обновление каждый час",
          "refresh_cadence_s": 3600
        },
        "provenance_required": true,
        "public_allowed": true,
        "pii_risk": "low",
        "governance": {
          "id": "shadow_safe_events",
          "owner": "qazpipe-qazlake-qazgeo",
          "upstream": "qazgeo.qazlake.shadow_safe_events",
          "contract": "qazlake-geo/v1",
          "classification": "public-safe",
          "license_status": "source-specific-attribution",
          "license_note": "Публикуются только разрешённые события QazGeo; исходные наблюдения и чувствительные слои остаются внутренними.",
          "geometry": "point",
          "legend": {
            "color": "#ea580c",
            "shape": "point"
          },
          "refresh_slo_seconds": 7200,
          "freshness_window_seconds": 604800,
          "data_updated_at": null,
          "schema_updated_at": "2026-07-27",
          "observed_at": null,
          "observed_at_field": "observed_at",
          "public_projection": [
            "layer",
            "observation_type",
            "title",
            "observed_at",
            "collected_at",
            "source_url",
            "confidence",
            "provenance",
            "geometry"
          ],
          "contract_path": "/api/v1/external-layers/shadow-events",
          "rollback": "Удалить публичную запись реестра или отключить адаптер QazLake; исходные материалы QazLake не изменяются.",
          "dataset_status": "contract_only",
          "source_url": "https://qgeo.tech/api/v1/external-layers/shadow-events",
          "coverage": {
            "scope": "Разрешённые агрегированные события",
            "status": "unknown",
            "geographies": null,
            "geometry": "Point"
          },
          "publication_scope": "aggregated_public_events",
          "sensitivity": "aggregate_only",
          "geometry_quality": "upstream_observation_required",
          "lineage": {
            "pipeline": "QazPipe -> QazLake Shadow -> QazGeo",
            "source_artifact": null
          },
          "limitations": "Слой не является полным реестром событий; отсутствие объектов не означает отсутствие события.",
          "field_contract": [
            {
              "name": "layer",
              "type": "string",
              "required": true
            },
            {
              "name": "observation_type",
              "type": "string",
              "required": true
            },
            {
              "name": "title",
              "type": "string",
              "required": false
            },
            {
              "name": "observed_at",
              "type": "datetime",
              "required": true
            },
            {
              "name": "confidence",
              "type": "number",
              "required": false
            },
            {
              "name": "provenance",
              "type": "object",
              "required": true
            },
            {
              "name": "geometry",
              "type": "Point",
              "required": true
            }
          ]
        },
        "freshness_class": "operational",
        "temporal": {
          "data_updated_at": null,
          "schema_updated_at": "2026-07-27",
          "observed_at": null,
          "observed_at_field": "observed_at"
        },
        "consumer_status": "degraded",
        "consumer_policy": "Слой не публикуется как рабочий: upstream сейчас beta/degraded или без проверенной выборки.",
        "upstream_endpoint": "/api/v1/external-layers/shadow-events",
        "source_url": "https://qgeo.tech/api/v1/external-layers/shadow-events",
        "snapshot_file": null
      },
      {
        "id": "water_objects_catalog",
        "title": "Водные объекты",
        "description": "Каталог водных объектов Казахстана из QazLake; на карте показываются открытые названия и типы без внутренних OSM-полей.",
        "kind": "geojson",
        "status": "beta",
        "source_type": "api",
        "source_id": "qazlake_water_objects",
        "endpoint": "/api/v1/external-layers/water-objects",
        "legend": {
          "color": "#0f766e",
          "shape": "point"
        },
        "provenance": {
          "source_id": "qazgeo.qazlake.water_objects",
          "label": "Нормализованный каталог водных объектов QazLake",
          "attribution": "QazLake / каталог водных объектов; выборка по видимой области",
          "refresh_cadence_s": 2592000
        },
        "provenance_required": true,
        "public_allowed": true,
        "pii_risk": "low",
        "governance": {
          "id": "water_objects_catalog",
          "owner": "qazlake-qazgeo",
          "upstream": "qazgeo.qazlake.water_objects",
          "contract": "qazlake-geo/v1",
          "classification": "public-safe",
          "license_status": "documented",
          "license_note": "Нормализованный открытый каталог без исходных тегов и идентификаторов OSM.",
          "geometry": "point",
          "legend": {
            "color": "#0f766e",
            "shape": "point"
          },
          "refresh_slo_seconds": 2592000,
          "freshness_window_seconds": 7776000,
          "data_updated_at": null,
          "schema_updated_at": "2026-07-27",
          "observed_at": null,
          "observed_at_field": "catalogued_at",
          "public_projection": [
            "name",
            "name_kk",
            "name_en",
            "water_type",
            "catalogued_at",
            "provenance",
            "geometry"
          ],
          "contract_path": "/api/v1/external-layers/water-objects",
          "rollback": "Удалить публичную запись реестра или отключить адаптер QazLake; исходные данные QazLake не изменяются.",
          "dataset_status": "contract_only",
          "source_url": "https://qgeo.tech/api/v1/external-layers/water-objects",
          "coverage": {
            "scope": "Нормализованный каталог водных объектов",
            "status": "unknown",
            "geographies": null,
            "geometry": "Polygon"
          },
          "publication_scope": "normalized_public_catalog_only",
          "sensitivity": "source_reviewed",
          "geometry_quality": "upstream_observation_required",
          "lineage": {
            "pipeline": "QazLake -> QazGeo",
            "source_artifact": null
          },
          "limitations": "Каталог не заменяет гидрологическое наблюдение и не гарантирует сезонную полноту без подтверждённого upstream snapshot.",
          "field_contract": [
            {
              "name": "name",
              "type": "string",
              "required": false
            },
            {
              "name": "name_kk",
              "type": "string",
              "required": false
            },
            {
              "name": "name_en",
              "type": "string",
              "required": false
            },
            {
              "name": "water_type",
              "type": "string",
              "required": true
            },
            {
              "name": "catalogued_at",
              "type": "datetime",
              "required": true
            },
            {
              "name": "provenance",
              "type": "object",
              "required": true
            },
            {
              "name": "geometry",
              "type": "Point",
              "required": true
            }
          ]
        },
        "freshness_class": "reference",
        "temporal": {
          "data_updated_at": null,
          "schema_updated_at": "2026-07-27",
          "observed_at": null,
          "observed_at_field": "catalogued_at"
        },
        "consumer_status": "degraded",
        "consumer_policy": "Слой не публикуется как рабочий: upstream сейчас beta/degraded или без проверенной выборки.",
        "upstream_endpoint": "/api/v1/external-layers/water-objects",
        "source_url": "https://qgeo.tech/api/v1/external-layers/water-objects",
        "snapshot_file": null
      }
    ]
  },
  "visualization_methods": {
    "version": 1,
    "default_indicator": "official_population",
    "methods": [
      {
        "indicator_id": "official_population",
        "label": "Население",
        "value_type": "absolute",
        "unit": "человек",
        "denominator": null,
        "allowed_views": [
          "fill",
          "columns"
        ],
        "default_view": "fill",
        "palette": "sequential_teal",
        "missing_value_policy": "не окрашивать регион и не строить столбец",
        "source": "БНС",
        "source_url": "https://stat.gov.kz/",
        "method_note": "Официальные значения по регионам; столбцы показывают масштаб.",
        "data_scope": {
          "status": "complete",
          "geographies": 21,
          "first_year": 2000,
          "last_year": 2025,
          "frequency": "annual"
        }
      },
      {
        "indicator_id": "official_grp_per_capita",
        "label": "ВРП на душу населения",
        "value_type": "ratio",
        "unit": "тыс. тенге",
        "denominator": "на душу населения",
        "allowed_views": [
          "fill",
          "columns"
        ],
        "default_view": "fill",
        "palette": "sequential_blue",
        "missing_value_policy": "показывать как нет данных",
        "source": "БНС",
        "source_url": "https://stat.gov.kz/",
        "method_note": "Региональный показатель нормирован по численности населения; заливка – базовый вид.",
        "data_scope": {
          "status": "complete",
          "geographies": 21,
          "first_year": 2000,
          "last_year": 2024,
          "frequency": "annual"
        }
      },
      {
        "indicator_id": "official_consumption_income",
        "label": "Доходы на потребление",
        "value_type": "ratio",
        "unit": "₸/чел. в год",
        "denominator": "на душу населения",
        "allowed_views": [
          "fill",
          "columns"
        ],
        "default_view": "fill",
        "palette": "sequential_green",
        "missing_value_policy": "показывать как нет данных",
        "source": "БНС",
        "source_url": "https://stat.gov.kz/",
        "method_note": "Доходы на потребление на душу населения; сопоставлять только в пределах периода источника.",
        "data_scope": {
          "status": "complete",
          "geographies": 21,
          "first_year": 2001,
          "last_year": 2022,
          "frequency": "annual"
        }
      },
      {
        "indicator_id": "official_unemployment",
        "label": "Безработица",
        "value_type": "ratio",
        "unit": "%",
        "denominator": "экономически активное население",
        "allowed_views": [
          "fill",
          "columns"
        ],
        "default_view": "fill",
        "palette": "sequential_amber",
        "missing_value_policy": "показывать как нет данных",
        "source": "БНС",
        "source_url": "https://stat.gov.kz/",
        "method_note": "Доля в процентах; показатель не является рейтингом.",
        "data_scope": {
          "status": "complete",
          "geographies": 21,
          "first_year": 2023,
          "last_year": 2025,
          "frequency": "quarterly"
        }
      },
      {
        "indicator_id": "modernization_project_count",
        "label": "Проекты модернизации",
        "value_type": "absolute",
        "unit": "объектов",
        "denominator": null,
        "allowed_views": [
          "columns",
          "fill"
        ],
        "default_view": "columns",
        "palette": "sequential_teal",
        "missing_value_policy": "0 проектов показывается как низкое значение",
        "source": "МЭКС",
        "source_url": "/api/v1/kz-data/regions",
        "method_note": "Абсолютный счётчик объектов инфраструктурной модернизации; столбцы показывают концентрацию.",
        "data_scope": {
          "status": "unknown"
        }
      },
      {
        "indicator_id": "registered_crimes_per_100k",
        "label": "Правонарушения на 100 тыс.",
        "value_type": "rate",
        "unit": "на 100 тыс. жителей",
        "denominator": "население региона",
        "allowed_views": [
          "fill",
          "columns"
        ],
        "default_view": "fill",
        "palette": "sequential_amber",
        "missing_value_policy": "не сравнивать без полного регионального набора данных",
        "source": "КПСиСУ",
        "source_url": "/api/v1/kz-data/national",
        "method_note": "Обезличенная региональная ставка; аналитический сигнал, не оценка работы региона.",
        "data_scope": {
          "status": "unknown"
        }
      },
      {
        "indicator_id": "road_crashes_per_100k",
        "label": "ДТП на 100 тыс.",
        "value_type": "rate",
        "unit": "на 100 тыс. жителей",
        "denominator": "население региона",
        "allowed_views": [
          "fill",
          "columns"
        ],
        "default_view": "fill",
        "palette": "sequential_amber",
        "missing_value_policy": "не сравнивать без полного регионального набора данных",
        "source": "КПСиСУ",
        "source_url": "/api/v1/kz-data/national",
        "method_note": "Ставка ДТП нормирована на население и подходит для сопоставления регионов.",
        "data_scope": {
          "status": "unknown"
        }
      },
      {
        "indicator_id": "density",
        "label": "Плотность населения",
        "value_type": "density",
        "unit": "чел/км2",
        "denominator": "площадь региона",
        "allowed_views": [
          "fill",
          "columns"
        ],
        "default_view": "fill",
        "palette": "sequential_teal",
        "missing_value_policy": "не рассчитывать при отсутствии площади или населения",
        "source": "расчёт QazGeo",
        "source_url": "/api/v1/mapregion/public/regions",
        "method_note": "Расчётный показатель на основе опубликованных границ и населения.",
        "data_scope": {
          "status": "unknown"
        }
      },
      {
        "indicator_id": "urban_share",
        "label": "Урбанизация",
        "value_type": "ratio",
        "unit": "%",
        "denominator": "население региона",
        "allowed_views": [
          "fill",
          "columns"
        ],
        "default_view": "fill",
        "palette": "sequential_blue",
        "missing_value_policy": "показывать как отсутствие данных",
        "source": "QazGeo / справочные данные",
        "source_url": "/api/v1/mapregion/public/regions",
        "method_note": "Справочная доля городского населения; использовать вместе с демографическими рядами.",
        "data_scope": {
          "status": "unknown"
        }
      },
      {
        "indicator_id": "typology",
        "label": "Типология регионов A / B / C",
        "value_type": "categorical",
        "unit": "группа",
        "denominator": null,
        "allowed_views": [
          "fill"
        ],
        "default_view": "fill",
        "palette": "categorical_qazgeo",
        "missing_value_policy": "не присваивать группу автоматически",
        "source": "QazGeo",
        "source_url": "/api/v1/mapregion/strata/matrix",
        "method_note": "Типология QazGeo сравнивает регионы и не является рейтингом.",
        "data_scope": {
          "status": "unknown"
        }
      },
      {
        "indicator_id": "official_natural_increase",
        "label": "Естественный прирост",
        "value_type": "absolute",
        "unit": "человек за год",
        "denominator": null,
        "allowed_views": [
          "columns"
        ],
        "default_view": "columns",
        "palette": "sequential_teal",
        "missing_value_policy": "не строить столбец при отсутствии годового значения",
        "source": "БНС",
        "source_url": "https://stat.gov.kz/",
        "method_note": "Абсолютное изменение населения за год: родившиеся минус умершие; столбцы показывают объём, а не нормированную ставку.",
        "data_scope": {
          "status": "complete",
          "geographies": 21,
          "first_year": 2000,
          "last_year": 2024,
          "frequency": "annual"
        }
      },
      {
        "indicator_id": "official_births",
        "label": "Родившиеся",
        "value_type": "absolute",
        "unit": "человек за год",
        "denominator": null,
        "allowed_views": [
          "columns"
        ],
        "default_view": "columns",
        "palette": "sequential_teal",
        "missing_value_policy": "не строить столбец при отсутствии годового значения",
        "source": "БНС",
        "source_url": "https://stat.gov.kz/",
        "method_note": "Число родившихся за календарный год; столбцы показывают абсолютный объём, а не коэффициент рождаемости.",
        "data_scope": {
          "status": "complete",
          "geographies": 21,
          "first_year": 2000,
          "last_year": 2024,
          "frequency": "annual"
        }
      },
      {
        "indicator_id": "official_deaths",
        "label": "Умершие",
        "value_type": "absolute",
        "unit": "человек за год",
        "denominator": null,
        "allowed_views": [
          "columns"
        ],
        "default_view": "columns",
        "palette": "sequential_amber",
        "missing_value_policy": "не строить столбец при отсутствии годового значения",
        "source": "БНС",
        "source_url": "https://stat.gov.kz/",
        "method_note": "Число умерших за календарный год; столбцы показывают абсолютный объём, а не коэффициент смертности.",
        "data_scope": {
          "status": "complete",
          "geographies": 21,
          "first_year": 2000,
          "last_year": 2024,
          "frequency": "annual"
        }
      },
      {
        "indicator_id": "official_industrial_production_index",
        "label": "Индекс промышленного производства",
        "value_type": "index",
        "unit": "% к предыдущему году",
        "denominator": "предыдущий календарный год = 100",
        "allowed_views": [
          "fill"
        ],
        "default_view": "fill",
        "palette": "diverging_terracotta_teal",
        "missing_value_policy": "показывать как нет данных",
        "source": "БНС",
        "source_url": "https://stat.gov.kz/",
        "method_note": "Индекс физического объёма промышленного производства; 100 означает отсутствие изменения к предыдущему году, это не рейтинг регионов.",
        "data_scope": {
          "status": "complete",
          "geographies": 21,
          "first_year": 2009,
          "last_year": 2023,
          "frequency": "annual"
        }
      }
    ]
  },
  "viirs_tilejson": {
    "tilejson": "3.0.0",
    "name": "NASA VIIRS – естественные цвета",
    "description": "Дневной снимок Suomi NPP VIIRS в естественных цветах",
    "scheme": "xyz",
    "minzoom": 0,
    "maxzoom": 9,
    "bounds": [
      46,
      40,
      88,
      56
    ],
    "attribution": "NASA EOSDIS GIBS",
    "observation_date": "2026-07-28",
    "public_policy": "external_public_imagery_with_attribution",
    "tile_count": 1
  },
  "snapshots": {
    "h3_poi_density": {
      "file": "/data/qazgeo-h3-poi-density.geojson",
      "source_url": "https://qgeo.tech/api/v1/h3/hexbin?resolution=5",
      "snapshot_version": "2.17.89",
      "resolution": 5,
      "feature_count": 1607,
      "total_points": 18128,
      "total_hexagons": 1607,
      "sha256": "92354b18fbf432885a6e4f0c5cbe5370c7d9ccaae9d4f28f1c9bc948e73070cc"
    }
  }
}
