{
  "schema_version": "qaz.expert.ecosystem-contract.v1",
  "project": {
    "id": "qaz-expert",
    "name": "QAZ.EXPERT",
    "canonical_url": "https://qaz.expert",
    "lifecycle": "production",
    "delivery_model": "статическая публичная публикация"
  },
  "principles": [
    "Сайт публикует только датированные, проверяемые и разрешённые агрегаты.",
    "Каждый факт имеет период, происхождение, границу применения и внутренний маршрут к контексту.",
    "Геометрия и идентичность территорий переиспользуются из QazGeo и QazRegion, а не копируются в новую ГИС-платформу.",
    "Сырые наблюдения, личные данные, автоматически извлечённые неподтверждённые сущности и операторские данные не попадают в браузер или статический пакет.",
    "Вычислительные и редакционные гипотезы становятся публичными только через отдельный версионированный выпуск после проверки."
  ],
  "infrastructure_readiness": {
    "status": "production-integrated",
    "checked_at": "2026-08-20T00:00:00Z",
    "active_runtime": [
      "AV DS 4 semantic UI contract",
      "QazStack 1.50.0 vendored browser primitives",
      "QazLake public allowlist snapshot",
      "QazGeo/QazRegion public geography contract",
      "MapRegion/PSSR static regional context"
    ],
    "shadow_runtime": [
      "QazCompute temporal profiles for TimeMachine refresh"
    ],
    "review_gated_runtime": [
      "Total.kz identity links",
      "QazPolit identity links"
    ],
    "candidate_runtime": [
      "QazPipe reviewed public entities",
      "EdPol reviewed legal facts",
      "QazGeo ADM2 public geometry"
    ],
    "public_gates": [
      "npm run check:qazstack",
      "npm run check:ecosystem",
      "npm run check:platform-exchange",
      "npm run check:reviewed-projections",
      "npm run check:live"
    ],
    "release_rule": "Новый источник становится публичным только через versioned reviewed projection, provenance, public boundary и зелёный release gate."
  },
  "components": [
    {
      "id": "av-ds-4",
      "state": "active",
      "role": "Каноническая визуальная система публичного интерфейса.",
      "integration": "Семантическое использование статических компонентов без копирования React-среды.",
      "contracts": ["/avds-consumer.json", "/data/platform-exchange-contract.json"],
      "refresh": "При изменении интерфейсного контракта AV DS и после визуальной проверки на 390, 768 и 1440 px.",
      "public_boundary": "Только токены, иерархия, состояния и проверенные паттерны интерфейса."
    },
    {
      "id": "qazstack",
      "state": "active",
      "role": "Общие поведенческие, географические, временные контракты и правила происхождения данных.",
      "integration": "Локально закреплённая проверенная ревизия браузерных примитивов и версионированных контрактов данных.",
      "contracts": ["/qazstack-consumer.json", "/data/entity-graph.json", "/data/entity-federation.json", "/data/platform-exchange-contract.json", "/api/timemachine/temporal-contracts", "/api/timemachine/snapshot-diff", "/data/release-manifest.json"],
      "refresh": "Закреплённая версия обновляется только после сравнения хешей, проверки контрактов и проверки живого сайта.",
      "public_boundary": "Не поднимает на сайт хранилище сущностей, авторизацию, сборщики, администрирование или внутренние очереди."
    },
    {
      "id": "qazlake",
      "state": "active",
      "role": "Страновые агрегаты, актуальность, происхождение данных и временные срезы.",
      "integration": "Разрешённый датированный срез и внутренний API TimeMachine только для чтения с резервом на опубликованный выпуск.",
      "contracts": ["/data/qazlake-public.json", "/data/entities.json", "/data/entity-federation.json", "/api/timemachine/snapshot", "/api/timemachine/series", "/api/timemachine/event-batch"],
      "refresh": "Публичный срез обновляется только после проверки схемы, периода, источника и покрытия 20 регионов.",
      "public_boundary": "Сырые записи, медийный корпус, автоматически извлечённые неподтверждённые сущности и операционные коллекции не публикуются."
    },
    {
      "id": "qazgeo-qazregion",
      "state": "active",
      "role": "Региональная идентичность, границы и справочник населённых пунктов.",
      "integration": "Версионированные публичные срезы, внутренний прокси и локальный резерв для карт.",
      "contracts": ["/data/qazgeo_regions.json", "/data/qazgeo-public-contract.json", "/data/entity-federation.json", "/data/geo/regions/", "/data/public-regions/index.json", "/data/region-analytics/index.json"],
      "refresh": "При изменении публичного геоконтракта; ADM2-полигоны добавляются только после их официальной публикации.",
      "public_boundary": "QAZ.EXPERT не выдаёт себя за источник юридически значимых границ и не строит параллельную ГИС-инфраструктуру."
    },
    {
      "id": "mapregion-pssr",
      "state": "active",
      "role": "Административный контекст, районные агрегаты и структура продукта.",
      "integration": "Проверяемые статические срезы без доступа к внутренней рабочей среде.",
      "contracts": ["/data/mapregion_regions.json", "/data/site-blueprint.json"],
      "refresh": "Через воспроизводимую синхронизацию платформенного среза перед релизом.",
      "public_boundary": "Операторские поля, задачи и внутренние редакционные поля исключены из экспортов."
    },
    {
      "id": "qazcompute",
      "state": "active-shadow",
      "role": "Ограниченный анализ временных рядов и событий.",
      "integration": "Только серверное подтверждение через обновление TimeMachine; автоматическая публикация отключена.",
      "contracts": ["/api/timemachine/temporal-contracts"],
      "refresh": "Ежедневный таймер проверяет контракт и сохраняет результат, не меняя публичный срез автоматически.",
      "public_boundary": "Ключ API, приватный URL, сырой NLP-вывод и автоматические прогнозы не выдаются браузеру."
    },
    {
      "id": "qazpipe",
      "state": "candidate-only",
      "role": "Сбор, нормализация и дедупликация первичных входящих данных.",
      "integration": "Прямой публичной зависимости нет; будущий приём данных возможен только через проверенный публичный выпуск v1.",
      "contracts": [],
      "refresh": "Сначала ограниченный пробный прогон, затем проверка, явное разрешение на запись и отдельный разрешённый экспорт.",
      "public_boundary": "Сборщики, сырые наблюдения, приватные URL и внутренние статусы не публикуются."
    },
    {
      "id": "edpol",
      "state": "candidate-only",
      "role": "Редакционно проверяемые политико-правовые данные и потенциальный источник норм и хронологии.",
      "integration": "Прямой связи во время работы пока нет; допускается только версионированный проверенный выпуск через QazPipe/QazLake или официальный загрузчик источника.",
      "contracts": [],
      "refresh": "После утверждения схемы факта, первоисточника, даты редакции и ответственности за проверку.",
      "public_boundary": "Черновики, аналитические гипотезы, внутренние заметки и непроверенные связи не публикуются."
    },
    {
      "id": "total",
      "state": "review-gated",
      "role": "Медийные сущности, упоминания и кандидатные межпроектные соответствия.",
      "integration": "Только проверенные связи тождественности через публичный реестр; локальные числовые ID не считаются общими.",
      "contracts": ["/data/entity-federation.json", "/data/reviewed-entity-links.json"],
      "refresh": "После ручной сверки внешнего идентификатора, источника и даты решения.",
      "public_boundary": "Сырой граф автоматически извлечённых сущностей, автоматические совпадения имён и редакционные очереди не импортируются."
    },
    {
      "id": "koz",
      "state": "coverage-only",
      "role": "Медийное покрытие персон и организаций.",
      "integration": "Поисковый маршрут хранится отдельно от идентичности сущности.",
      "contracts": ["/data/entity-federation.json"],
      "refresh": "Маршрут строится из публичного имени; он не создаёт same_as-связь.",
      "public_boundary": "Поисковая выдача и совпадение имени не доказывают тождественность."
    },
    {
      "id": "qazpolit",
      "state": "review-gated",
      "role": "Структурированные политические досье и устойчивые идентификаторы.",
      "integration": "Только проверенная связка с опубликованным идентификатором QazPolit.",
      "contracts": ["/data/entity-federation.json", "/data/reviewed-entity-links.json"],
      "refresh": "После сверки досье, алиасов, источника и редакционного решения.",
      "public_boundary": "Совпадение имени или должности не создаёт автоматическую связь между персонами."
    },
    {
      "id": "qpolity",
      "state": "documented-handoff",
      "role": "Публичная платформа об институтах и политической истории Казахстана, включая модуль Мажилиса VIII созыва.",
      "integration": "Ссылочная связь из государственного и исторического контуров без runtime-зависимости и импорта досье в QAZ.EXPERT.",
      "contracts": ["https://qpolity.pro/health", "https://qpolity.pro/"],
      "refresh": "Ссылка и описание сверяются с каноническим публичным выпуском QPolity; факт допускается в QAZ.EXPERT только через отдельную reviewed-проекцию.",
      "public_boundary": "QAZ.EXPERT не публикует черновики, непроверенные политические связи, внутренние редакционные поля или персональные данные."
    },
    {
      "id": "qaz-vision",
      "state": "documented-handoff",
      "role": "Публичный реестр документов, выступлений и тезисов руководителей Казахстана с отдельным статусом и источниками.",
      "integration": "Ссылочная связь из медиа-, институционального и временного контуров; импорт корпуса отключён до отдельного reviewed-выпуска.",
      "contracts": ["https://qaz.vision/status.json", "https://qaz.vision/.well-known/qazstack-consumer.json"],
      "refresh": "Публичный статус и границы сверяются перед изменением карточки; цитата или тезис публикуется только с первичным документом и датой.",
      "public_boundary": "QAZ.EXPERT не переносит автоматически извлечённые тезисы, черновики, непроверенные атрибуции или внутренние аналитические оценки."
    },
    {
      "id": "qazaqstan-space",
      "state": "documented-handoff",
      "role": "Публичный атлас космической отрасли Казахстана: Байконур, Байтерек, KazSat, ДЗЗ, инфраструктура и программы.",
      "integration": "Ссылочная связь из отраслевого и инфраструктурного контуров; QAZ.EXPERT не зеркалирует объектный реестр.",
      "contracts": ["https://qazaqstan.space/health.json", "https://qazaqstan.space/.well-known/qazstack-consumer.json", "https://qazaqstan.space/.well-known/qazaqstan-space-infrastructure.json"],
      "refresh": "Публичные статусы и описания сверяются с consumer-контрактом; показатели допускаются только отдельным датированным reviewed snapshot.",
      "public_boundary": "QAZ.EXPERT не публикует закрытые координаты, операционные статусы, внутренние документы или непроверенные прогнозы космических программ."
    },
    {
      "id": "qaz-industries",
      "state": "documented-handoff",
      "role": "Публичная витрина индустрий Казахстана: отрасли, объекты, география, сравнения, бенчмарки и источники.",
      "integration": "Ссылочная связь из экономического и регионального контуров; отраслевые карточки не копируются в страновой срез без версии и происхождения.",
      "contracts": ["https://qaz.industries/"],
      "refresh": "Ссылка и роль сверяются с публичной витриной; отраслевой показатель добавляется только после отдельного reviewed-выпуска с единицей, периодом и источником.",
      "public_boundary": "QAZ.EXPERT не публикует коммерческую тайну, внутренние оценки предприятий, непроверенные объекты или выводы об инвестиционной привлекательности без источника."
    },
    {
      "id": "qaz-tax",
      "state": "documented-handoff",
      "role": "Публичный навигатор по проверенным налоговым маршрутам, срокам, формам и официальным сервисам.",
      "integration": "Ссылочная связь без runtime-зависимости, импорта данных или передачи пользовательских сведений.",
      "contracts": ["https://qaz.tax/health.json", "https://qaz.tax/data/infrastructure-readiness.json"],
      "refresh": "Карточка и ссылка сверяются с публичным выпуском QAZ.TAX; числовые фискальные данные не копируются без отдельного проверенного среза.",
      "public_boundary": "QAZ.EXPERT не определяет индивидуальную налоговую обязанность, не принимает ИИН, БИН, ЭЦП, отчётность или платежи и не заменяет официальный сервис либо специалиста."
    },
    {
      "id": "qaz-events",
      "state": "documented-handoff",
      "role": "Публичный календарь проверенных дат и событий Казахстана с источником, статусом и географическим контекстом.",
      "integration": "Ссылочная связь из TimeMachine без runtime-зависимости и импорта событий в статический выпуск.",
      "contracts": ["https://qaz.events/.well-known/qazstack-consumer.json", "https://qaz.events/api/health"],
      "refresh": "Ссылка и описание сверяются с публичным выпуском Qaz.Events; тематический срез допускается только как отдельная датированная версия с источником, hash и ограничениями.",
      "public_boundary": "QAZ.EXPERT не получает черновики, внутренние уровни внимания, пользовательские данные, сервисные ключи, непроверенные медиасигналы или операционные очереди Qaz.Events."
    },
    {
      "id": "qaz-farm",
      "state": "documented-handoff",
      "role": "Публичный отраслевой контекст сельского хозяйства: агросезон, вода, агроклимат, животноводство, агроторговля, научные источники и официальные маршруты.",
      "integration": "Двусторонняя ссылочная связь из регионального слоя без runtime-зависимости, зеркалирования показателей или импорта сельскохозяйственных записей в статический выпуск.",
      "contracts": ["https://qaz.farm/health.json", "https://qaz.farm/thematic-release.json", "https://qaz.farm/data/qazstack-consumer.json"],
      "refresh": "Ссылка и описание сверяются с публичным выпуском QAZ.FARM; аграрный показатель допускается на QAZ.EXPERT только как отдельный датированный reviewed snapshot с единицей, источником и границей применимости.",
      "public_boundary": "QAZ.EXPERT не получает координаты хозяйств и полей, персональные или коммерческие данные, учётные записи, автоматические решения, необработанные QazLake/QazPipe записи или непроверенные аграрные сигналы."
    },
    {
      "id": "qaz-bio",
      "state": "documented-handoff",
      "role": "Проверяемые публичные профили людей и организаций Казахстана: устойчивые идентификаторы, роли по датам, источники и канал исправлений.",
      "integration": "Двусторонняя ссылочная связь из институционального слоя без runtime-зависимости, импорта профилей или передачи пользовательских данных.",
      "contracts": ["https://qaz.bio/data/project-consumers.json", "https://qaz.bio/data/public-index.json", "https://qaz.bio/corrections.html"],
      "refresh": "Ссылка и границы сверяются с публичным выпуском QAZ.BIO; профиль или роль показываются в QAZ.EXPERT только с отдельным источником и редакционным основанием.",
      "public_boundary": "QAZ.EXPERT не получает личные контакты, закрытые очереди, кандидатные записи, непроверенные утверждения или автоматические совпадения идентичностей из QAZ.BIO."
    },
    {
      "id": "qaz-fish",
      "state": "documented-handoff",
      "role": "Публичный отраслевой контекст воды, рыбного хозяйства и аквакультуры Казахстана: каталог водных объектов, безопасный контекст бассейнов, датированные национальные ряды и научные источники.",
      "integration": "Двусторонняя ссылочная связь из слоя данных Казахстана без runtime-зависимости, зеркалирования отраслевых наборов или передачи пользовательских данных.",
      "contracts": ["https://qaz.fish/data/fishery-industry.json", "https://qaz.fish/data/source-registry.json", "https://qaz.fish/data/ecosystem-integration.json"],
      "refresh": "Ссылка и границы сверяются с публичным выпуском QAZ.FISH; отраслевой факт допускается на QAZ.EXPERT только отдельным датированным reviewed snapshot с единицей, источником и ограничением применимости.",
      "public_boundary": "QAZ.EXPERT не получает точные места ловли, координаты пользователей, личные журналы, прогнозы клёва, закрытые исходные данные, водоёмные правовые выводы или текущие гидрологические наблюдения из QAZ.FISH."
    },
    {
      "id": "tazy",
      "state": "documented-handoff",
      "role": "Публичный культурный и справочный контекст казахской тазы: проверяемый архив, открытые материалы о породе, региональная карта опубликованного покрытия и ссылки на первоисточники.",
      "integration": "Двусторонняя ссылочная связь из странового слоя культуры и данных без runtime-зависимости, копирования реестровых записей или передачи пользовательских сведений.",
      "contracts": ["https://tazy.dog/thematic-release.json", "https://tazy.dog/.well-known/qazstack-consumer.json", "https://tazy.pro/thematic-release.json"],
      "refresh": "Ссылки и формулировки сверяются с публичным тематическим выпуском TAZY; факт о породе допускается на QAZ.EXPERT только с отдельным источником, датой, статусом проверки и границей применимости.",
      "public_boundary": "QAZ.EXPERT не получает карточки животных, данные владельцев и заводчиков, личные контакты, полные идентификаторы микрочипов, ветеринарные или экспортные документы, записи проверяющих, точные частные локации и непроверенные материалы TAZY."
    }
  ],
  "handoffs": [
    {
      "id": "qazpipe-to-qazlake",
      "state": "platform-owned",
      "purpose": "Нормализованные входящие данные после коллекции, дедупликации и внутренней валидации.",
      "public_rule": "Не является прямым источником QAZ.EXPERT."
    },
    {
      "id": "qazlake-to-qaz-expert",
      "state": "active",
      "purpose": "Разрешённые датированные агрегаты и срезы выпусков для публичного сайта.",
      "public_rule": "Разрешительный список, происхождение данных, актуальность и резерв обязательны."
    },
    {
      "id": "qazgeo-to-qaz-expert",
      "state": "active",
      "purpose": "Идентичность территории, геометрия и справочник населённых пунктов.",
      "public_rule": "Переиспользовать контракт, не создавать вторую ГИС-базу."
    },
    {
      "id": "qazcompute-to-qaz-expert",
      "state": "active-shadow",
      "purpose": "Проверка временных рядов и обогащения событий.",
      "public_rule": "Только теневые метаданные до отдельного публичного запуска."
    },
    {
      "id": "edpol-to-public-facts",
      "state": "proposed",
      "purpose": "Будущий проверенный выпуск политико-правовых фактов и временных линий.",
      "public_rule": "Только после проверки первоисточника, схемы и датированной версии записи."
    },
    {
      "id": "total-to-qaz-expert-entities",
      "state": "review-gated",
      "purpose": "Проверенные соответствия между публичным каталогом QAZ.EXPERT и медийными сущностями Total.kz.",
      "public_rule": "Только проверенная связь тождественности; сырые автоматически извлечённые сущности и совпадения строк не публикуются."
    },
    {
      "id": "koz-to-qaz-expert-coverage",
      "state": "coverage-only",
      "purpose": "Переход от публичной сущности к медийному поиску KOZ.",
      "public_rule": "Связь через поиск никогда не считается тождественностью."
    },
    {
      "id": "qazpolit-to-qaz-expert-entities",
      "state": "review-gated",
      "purpose": "Проверенные соответствия между публичным каталогом и досье QazPolit.",
      "public_rule": "Только устойчивый внешний идентификатор, подтверждение и дата проверки."
    },
    {
      "id": "qpolity-to-qaz-expert",
      "state": "documented-handoff",
      "purpose": "Переход из государственного устройства к проверяемой политической истории и институтам QPolity.",
      "public_rule": "Только ссылка на канонический выпуск; факты и персональные связи не импортируются автоматически."
    },
    {
      "id": "qaz-vision-to-qaz-expert",
      "state": "documented-handoff",
      "purpose": "Переход из странового и временного среза к документам, речам и тезисам Qaz.Vision.",
      "public_rule": "Только ссылка на источник; тезис требует первичного документа, даты и редакционной проверки."
    },
    {
      "id": "qazaqstan-space-to-qaz-expert",
      "state": "documented-handoff",
      "purpose": "Переход из региональной и отраслевой витрины к атласу космической отрасли Казахстана.",
      "public_rule": "Только ссылка на публичный consumer-контракт; закрытые статусы и внутренние координаты не передаются."
    },
    {
      "id": "qaz-industries-to-qaz-expert",
      "state": "documented-handoff",
      "purpose": "Переход из экономического и регионального среза к отраслевым профилям QAZ.INDUSTRIES.",
      "public_rule": "Только ссылка на публичную витрину; отраслевые числа импортируются лишь через отдельный reviewed snapshot."
    },
    {
      "id": "qaz-expert-to-qaz-tax",
      "state": "documented-handoff",
      "purpose": "Переход из публичной витрины страны и регионов к проверенным налоговым сценариям QAZ.TAX.",
      "public_rule": "Только ссылка на публичный выпуск: без передачи пользовательских данных, без зеркалирования ставок, сроков, форм или индивидуальных выводов."
    },
    {
      "id": "qaz-expert-to-qaz-events",
      "state": "documented-handoff",
      "purpose": "Переход из временных срезов страны к публичному календарю общественно значимых дат и событий Qaz.Events.",
      "public_rule": "Только ссылка на публичный выпуск: без импорта событий в runtime, без передачи пользовательских данных и без публикации черновиков, внутренних рисков или непроверенных сигналов."
    },
    {
      "id": "qaz-expert-to-qaz-farm",
      "state": "documented-handoff",
      "purpose": "Переход из регионального профиля страны к публичному аграрному контексту, сезонным данным и официальным маршрутам QAZ.FARM.",
      "public_rule": "Только ссылка на публичный выпуск: без передачи пользовательских данных, без импорта аграрных показателей в runtime и без публикации точных координат хозяйств, коммерческих данных или непроверенных записей."
    },
    {
      "id": "qaz-expert-to-qaz-bio",
      "state": "documented-handoff",
      "purpose": "Переход из институционального контура QAZ.EXPERT к проверяемым публичным профилям людей и организаций QAZ.BIO.",
      "public_rule": "Только ссылка на публичный выпуск: без runtime-импорта профилей, передачи пользовательских или персональных данных, публикации кандидатов и автоматического сопоставления личностей."
    },
    {
      "id": "qaz-expert-to-qaz-fish",
      "state": "documented-handoff",
      "purpose": "Переход из странового слоя данных QAZ.EXPERT к публичному отраслевому контексту воды, рыбного хозяйства и аквакультуры QAZ.FISH.",
      "public_rule": "Только ссылка на публичный выпуск: без runtime-импорта, передачи пользовательских данных, зеркалирования отраслевых рядов, публикации точных мест ловли, личных журналов, прогнозов клёва или закрытых исходных данных."
    },
    {
      "id": "qaz-expert-to-tazy",
      "state": "documented-handoff",
      "purpose": "Переход из страновой витрины Казахстана к публичному культурному и справочному слою казахской тазы на TAZY.DOG и профессиональному контуру TAZY.PRO.",
      "public_rule": "Только ссылка на публичный выпуск: без runtime-импорта, передачи пользовательских данных, копирования реестровых карточек, публикации владельцев, частных локаций, полных идентификаторов, ветеринарных документов, решений проверяющих или непроверенных материалов."
    }
  ],
  "public_exports": [
    "/data/country-pulse.json",
    "/data/qazgeo-public-contract.json",
    "/data/qazlake-public.json",
    "/data/public-regions/index.json",
    "/data/region-analytics/index.json",
    "/data/entities.json",
    "/data/entity-federation.json",
    "/data/reviewed-entity-links.json",
    "/data/entity-graph.json",
    "/data/datasets/index.json",
    "/data/datasets/provenance.json",
    "/data/reviewed-projection-registry.json",
    "/data/release-manifest.json",
    "/data/public-probe-registry.json",
    "/data/platform-exchange-contract.json",
    "/data/ecosystem-contract.json",
    "/data/route-ledger.json",
    "/api/timemachine/temporal-contracts",
    "/api/timemachine/event-batch",
    "/api/timemachine/snapshot-diff",
    "/openapi.json"
  ],
  "release_pipeline": [
    "Обновить только разрешённые внешние срезы или проверенные публичные выпуски.",
    "Собрать производные страницы, индексы, граф и API-контракт локально.",
    "Прогнать проверки публичных границ, QazStack, интеграции, контента, визуального состояния и ссылок.",
    "Выложить статический пакет и изолированную среду обновления TimeMachine.",
    "Подтвердить публичные экспорты, ключевые маршруты и контракт TimeMachine на живом сайте."
  ],
  "next_adoptions": [
    {
      "id": "reviewed-entity-projection-v1",
      "priority": "P1",
      "owner": "QazPipe + QazLake + QAZ.EXPERT",
      "definition_of_done": "Версионированный публичный выпуск персон, организаций и локаций с источником, датой, статусом проверки и явной разрешительной политикой."
    },
    {
      "id": "edpol-legal-projection-v1",
      "priority": "P1",
      "owner": "EdPol + QazPipe + редакционная проверка",
      "definition_of_done": "Небольшой датированный набор норм или хронологии с первоисточником, редакцией и стабильными ссылками для /constitution/ и /organs/."
    },
    {
      "id": "qazgeo-adm2-contract",
      "priority": "P2",
      "owner": "QazGeo/QazRegion",
      "definition_of_done": "Публично опубликованные и версионированные ADM2-границы; до этого QAZ.EXPERT показывает только список районов и честное ограничение."
    }
  ]
}
