{
  "schema_version": "gg-extraction-codebook.v1",
  "generated_at": "2026-09-27T01:15:04.700Z",
  "evidence_types": [
    {
      "id": "direct_quote",
      "title": "Прямая речь",
      "speaker_position": true,
      "public_rule": "Сохранять связь с документом, датой и первичным источником."
    },
    {
      "id": "attributed_speech",
      "title": "Атрибутированное высказывание",
      "speaker_position": true,
      "public_rule": "Сохранять связь с документом, датой и первичным источником."
    },
    {
      "id": "paraphrased_position",
      "title": "Пересказ позиции",
      "speaker_position": true,
      "public_rule": "Сохранять связь с документом, датой и первичным источником."
    },
    {
      "id": "editorial_fact",
      "title": "Редакционный факт",
      "speaker_position": false,
      "public_rule": "Не выдавать за позицию или прямую речь спикера."
    }
  ],
  "source_evidence": {
    "selector_types": [
      "TextQuoteSelector",
      "TextPositionSelector"
    ],
    "required_fields": [
      "primary_source_url",
      "document_id",
      "published_at"
    ],
    "rule": "Фрагмент считается проверяемым только вместе с устойчивой ссылкой на первичный документ."
  },
  "links": {
    "records": "/api/v1/quotes.json",
    "documents": "/api/v1/documents.json",
    "changes": "/api/v1/changes.ndjson"
  },
  "snapshot": {
    "data_digest": "99ee7fe61a52fd42bca3816c5bd4b9b1ecc2e143bc3c56ab75699b321cce4e7e",
    "generated_at": "2026-09-27T01:15:04.700Z",
    "imported_at": "2026-09-27T01:16:25.003Z",
    "records": 987,
    "documents": 2091,
    "cited_documents": 204
  }
}
