{
  "id": "P38-C06",
  "mode": "workflow",
  "theme": "workflow",
  "brand": "РАЗБОР / P38-C06",
  "title": "Униформа: состав и размер остаются разными условиями",
  "lead": "Собрать позицию ведомости и проверить сумму долей ткани без выдуманного размера.",
  "section": "Исходный материал → результат",
  "offer": "Собрать позицию ведомости и проверить сумму долей ткани без выдуманного размера.",
  "inputTitle": "Редактируемый исходный материал",
  "outputTitle": "Позиция размерной ведомости",
  "source": "Модель: куртка U-48\nРазмер: 48\nКоличество: 24\nХлопок %: 65\nПолиэстер %: 35\nРазмерная сетка: приложение 3, редакция 2\nИсточник состава: ТЗ п.3",
  "extract": [
    {
      "id": "model",
      "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": "cotton",
      "label": "Хлопок %",
      "pattern": "^Хлопок %:[ \\t]*(.+)$",
      "type": "number",
      "required": true,
      "min": 0,
      "max": 100
    },
    {
      "id": "polyester",
      "label": "Полиэстер %",
      "pattern": "^Полиэстер %:[ \\t]*(.+)$",
      "type": "number",
      "required": true,
      "min": 0,
      "max": 100
    },
    {
      "id": "grid",
      "label": "Размерная сетка",
      "pattern": "^Размерная сетка:[ \\t]*(.+)$",
      "type": "text",
      "required": true
    },
    {
      "id": "source",
      "label": "Источник состава",
      "pattern": "^Источник состава:[ \\t]*(.+)$",
      "type": "text",
      "required": true
    }
  ],
  "processor": "extract",
  "rules": [
    {
      "field": "quantity",
      "kind": "minimum",
      "value": 1,
      "message": "Количество должно быть положительным."
    },
    {
      "field": "cotton",
      "kind": "minimum",
      "value": 0,
      "message": "Доля хлопка отрицательна."
    },
    {
      "field": "polyester",
      "kind": "minimum",
      "value": 0,
      "message": "Доля полиэстера отрицательна."
    }
  ],
  "examples": [
    {
      "label": "Исходный пример",
      "text": "Модель: куртка U-48\nРазмер: 48\nКоличество: 24\nХлопок %: 65\nПолиэстер %: 35\nРазмерная сетка: приложение 3, редакция 2\nИсточник состава: ТЗ п.3"
    },
    {
      "label": "Неполные сведения",
      "text": "Требуется уточнение. Исходные параметры пока не переданы."
    }
  ],
  "derive": "uniform",
  "renderTemplate": "{model}; размер {size}; {quantity} шт.\nСостав: хлопок {cotton}%, полиэстер {polyester}%.\nРазмерная сетка: {grid}. Состав: {source}."
}
