{
  "schema_version": "qazstack-thematic-product-v1",
  "product_id": "qaz-fish",
  "product_name": "qaz.fish",
  "lifecycle": "beta",
  "subject": "Практическая подготовка к рыбалке и ответственное отношение к водоёмам Казахстана.",
  "qazstack_consumer_contract": "public/data/qazstack-consumer.json",
  "ecosystem_integration_contract": "public/data/ecosystem-integration.json",
  "public_modes": [
    "explore",
    "understand",
    "act",
    "trust"
  ],
  "source_policy": {
    "registry_path": "docs/CONTENT_SOURCES_2026-07-23.md",
    "allowed_classes": [
      "official",
      "public-sector",
      "research",
      "editorial",
      "community"
    ],
    "candidates_require_review": true
  },
  "scientific_foundation": {
    "project_id": "qaz-fish",
    "status": "draft",
    "bundle_path": "public/data/scientific-foundation.bundle.json",
    "metadata_path": "public/data/scientific-foundation.bundle.source.json",
    "qazknowledge_revision": "9baa28141029216772fe3bb88b74e4df26539b2b",
    "bundle_sha256": "8066b64ea60d553c63d88c47d0478fd19d688527538a41c8f75697111f94169f",
    "display_mode": "status-only"
  },
  "publication": {
    "mode": "reviewed-snapshot",
    "public_records_require_review": true,
    "explicit_degraded_state": true
  },
  "data_contracts": [
    {
      "id": "data-catalog",
      "path": "public/data/catalog.json",
      "schema_version": "qazfish-data-catalog-v1",
      "role": "Single public entry point for primary, reviewed, derived, decision-support and infrastructure datasets."
    },
    {
      "id": "ecosystem-integration",
      "path": "public/data/ecosystem-integration.json",
      "schema_version": "qazfish-ecosystem-integration-v1",
      "role": "Infrastructure integration inventory and activation boundary."
    },
    {
      "id": "qazgeo-snapshot",
      "path": "public/data/qazgeo-manifest.json",
      "schema_version": "qazfish.qazgeo-snapshot.v2",
      "role": "Public geography, water catalogue and hydro-station snapshot."
    },
    {
      "id": "avds-consumer",
      "path": "public/data/avds-consumer.json",
      "schema_version": "avds-consumer-v1",
      "role": "Pinned design-system adoption record."
    },
    {
      "id": "scientific-foundation",
      "path": "public/data/scientific-foundation.bundle.source.json",
      "contract": "qazknowledge-scientific-foundation-consumer-v1",
      "role": "Source ledger for scientific and educational references."
    }
  ],
  "upstreams": [
    {
      "id": "qazgeo",
      "status": "active"
    },
    {
      "id": "qazstack",
      "status": "active"
    },
    {
      "id": "avds4",
      "status": "active"
    },
    {
      "id": "qazlake",
      "status": "source-provenance"
    },
    {
      "id": "qazpipe",
      "status": "prepared"
    },
    {
      "id": "qazcompute",
      "status": "prepared"
    }
  ],
  "downstreams": [
    {
      "id": "ai-search",
      "contracts": [
        "/.well-known/ai-readiness.json",
        "/llms.txt",
        "/data/citation-guidance.json"
      ]
    },
    {
      "id": "public-operator-ui",
      "routes": [
        "/",
        "/map",
        "/waters",
        "/trip",
        "/rules",
        "/data"
      ]
    }
  ],
  "geo_policy": {
    "public_precision": "generalized",
    "private_browser_access_forbidden": true,
    "exact_user_locations_public": false
  },
  "sensitivity": {
    "classes": [
      "precise-location",
      "animal-welfare"
    ],
    "public_prohibitions": [
      "Не публиковать точные пользовательские координаты и секретные рыболовные точки.",
      "Не превращать общественный сигнал в факт о доступе, наличии рыбы, правилах или клёве без проверки."
    ]
  },
  "modules": [
    {
      "id": "water-explorer",
      "mode": "explore",
      "kind": "map",
      "data_contract": "public/data/qazgeo-water-objects.geojson",
      "empty_state": "degraded-state"
    },
    {
      "id": "fishing-academy",
      "mode": "understand",
      "kind": "guide",
      "empty_state": "curated-snapshot"
    },
    {
      "id": "trip-planner",
      "mode": "act",
      "kind": "tool",
      "empty_state": "hide"
    },
    {
      "id": "source-status",
      "mode": "trust",
      "kind": "registry",
      "data_contract": "public/data/qazgeo-manifest.json",
      "empty_state": "degraded-state"
    }
  ],
  "release": {
    "public_release_path": "public/data/thematic-release.json",
    "test_commands": [
      "npm run check"
    ],
    "runtime_urls": []
  },
  "notes": "Бета-продукт: новые публичные слои проходят редакционную проверку до выпуска; журнал и сохранённые маршруты остаются на устройстве пользователя."
}
