{
  "id": "roads-transformers-demo",
  "version": "1",
  "vocabulary_version": "1",
  "title": "Демонстрация платформы трансформеров: фильтр + сопоставление полей",
  "description": "Портативная версия pipelines/roads-transform-demo.json (docs/TRANSFORMERS.md, §3-4): убирает текстовый слой-предупреждение Disclaimer и подставляет умолчание там, где атрибута нет ни у одного объекта. Оба параметра шагов (имя набора «Disclaimer», имя поля «purpose») специфичны для ЭТОГО набора — поэтому applies_to закрывает схему отпечатком известного набора, а не классами: правило само по себе не переносимо на чужой чертёж, и applies_to честно об этом заявляет.",
  "applies_to": {
    "fingerprint": {"dataset_id": "langley-roads-cad", "min_share": 1.0}
  },
  "shaping": {"classify": false},
  "transforms": [
    {
      "transformer": "filter",
      "params": {"field": "dataset", "operator": "equals",
                 "value": "Disclaimer", "action": "drop"},
      "note": "Убираем слой-предупреждение — 11 объектов из 7152 (docs/TRANSFORMERS.md, §4)."
    },
    {
      "transformer": "field_mapping",
      "params": {"fields": [
        {"from": "purpose", "to": "road_purpose", "type": "string",
         "default": "не размечено"}
      ]},
      "note": "Атрибута «purpose» в файле нет ни у одного объекта — умолчание ставится всем прошедшим фильтр (docs/TRANSFORMERS.md, §3)."
    }
  ],
  "write": [
    {"format": "GPKG", "compare": true}
  ],
  "expect": {
    "reference": {
      "sha256": "0d50db71fe0ceaf7eea1e82f65daf5adb02899f60657a7073bd5301b03d31271",
      "hint": "corpus/MANIFEST.md, файл 3 — Roads_CAD.dwg, Township of Langley"
    },
    "note": "Числа сняты 2026-09-25 прямым прогоном pipelines/roads-transform-demo.json (с путями, вручную) на /data/raw/Roads_CAD.dwg, независимо от smartetl.library.",
    "objects_in": 7152,
    "objects_out": 7141,
    "write": [
      {"format": "GeoPackage", "written": 7141, "structure": 0, "values": 0}
    ]
  }
}
