{
  "id": "P38-C02",
  "mode": "workflow",
  "theme": "workflow",
  "brand": "РАЗБОР / P38-C02",
  "title": "Расходные материалы: альтернатива не превращается в два требования",
  "lead": "Проверить материал, два обязательных свойства и нижнюю границу количества.",
  "section": "Исходный материал → результат",
  "offer": "Проверить материал, два обязательных свойства и нижнюю границу количества.",
  "inputTitle": "Редактируемый исходный материал",
  "outputTitle": "Карточка сопоставления предложения",
  "source": "Материал: B\nЦвет: белый\nРазмер: 100 × 150 мм\nКоличество: 100\nИсточник: ТЗ п.2.1–2.3: A или B; белый; 100 × 150 мм; не менее 100 шт.",
  "extract": [
    {
      "id": "material",
      "label": "Материал",
      "pattern": "^Материал:[ \\t]*(.+)$",
      "type": "text",
      "required": true
    },
    {
      "id": "color",
      "label": "Цвет",
      "pattern": "^Цвет:[ \\t]*(.+)$",
      "type": "text",
      "required": true
    },
    {
      "id": "size",
      "label": "Размер",
      "pattern": "^Размер:[ \\t]*(.+)$",
      "type": "text",
      "required": true
    },
    {
      "id": "quantity",
      "label": "Количество",
      "pattern": "^Количество:[ \\t]*(.+)$",
      "type": "number",
      "required": true,
      "min": 1,
      "integer": true
    },
    {
      "id": "source",
      "label": "Источник",
      "pattern": "^Источник:[ \\t]*(.+)$",
      "type": "text",
      "required": true
    }
  ],
  "processor": "extract",
  "rules": [
    {
      "field": "material",
      "kind": "oneof",
      "values": [
        "A",
        "B"
      ],
      "message": "Допустим один материал: A или B."
    },
    {
      "field": "color",
      "kind": "equals",
      "value": "белый",
      "message": "Требуется белый цвет."
    },
    {
      "field": "size",
      "kind": "equals",
      "value": "100 × 150 мм",
      "message": "Размер отличается от условия."
    },
    {
      "field": "quantity",
      "kind": "minimum",
      "value": 100,
      "message": "Требуется не менее 100 шт."
    }
  ],
  "examples": [
    {
      "label": "Исходный пример",
      "text": "Материал: B\nЦвет: белый\nРазмер: 100 × 150 мм\nКоличество: 100\nИсточник: ТЗ п.2.1–2.3: A или B; белый; 100 × 150 мм; не менее 100 шт."
    },
    {
      "label": "Неполные сведения",
      "text": "Требуется уточнение. Исходные параметры пока не переданы."
    }
  ],
  "renderTemplate": "Проверенное предложение\nМатериал {material}; цвет {color}; размер {size}; {quantity} шт.\nУсловия сопоставлены с: {source}."
}
