{
  "proof": {
    "id": 2,
    "buyerLabel": "Разработка для бизнеса: отделочным компаниям и подрядчикам",
    "deliverableTitle": "Смета с отдельными работами и подготовкой",
    "deliverableDescription": "Окраска и подготовка отдельными строками с зафиксированным новым обмером.",
    "pilotInputs": [
      "Прайс одной группы работ",
      "Обезличенный обмер",
      "Правила подготовки основания"
    ],
    "pilotAcceptance": "60 м² × 900 ₽ + 6 000 ₽ = 60 000 ₽; позиция без цены требует уточнения.",
    "scenario": {
      "title": "Обмер вырос, подготовка осталась прежней",
      "before": "СМ-014: 48 м² × 900 ₽ + 6 000 ₽ = 49 200 ₽.",
      "conflict": "Новый обмер — 60 м²; подготовку нельзя умножать повторно.",
      "decision": "Изменить объём окраски, сохранив подготовку отдельной строкой.",
      "after": "СМ-014: окраска 54 000 ₽, подготовка 6 000 ₽; всего 60 000 ₽ без материалов."
    }
  },
  "version": "0.4",
  "status": "Проект для согласования",
  "solutionId": 2,
  "slug": "renovation-estimate",
  "title": "Сайт со сметой ремонта",
  "goal": "Считайте ремонт по единым расценкам вашей компании",
  "buyer": "Отделочная компания",
  "system": "Реестр объектов / учёт подрядчика",
  "reviewer": "Прораб и ответственный за проверку",
  "entities": "Объект, объёмы, работы",
  "phases": [
    {
      "title": "Разобрать ваш процесс",
      "description": "Первичные сметы собирают вручную; подготовка основания и исключения теряются.",
      "work": "Сверяем исходные примеры, роли и исключения. Фиксируем один сценарий пилота.",
      "result": "Схема процесса и согласованный состав первой версии."
    },
    {
      "title": "Собрать рабочий прототип",
      "description": "Предварительная смета",
      "work": "Показываем интерфейс и правила на согласованной выборке. Проверяем неоднозначные случаи с вашей командой.",
      "result": "Ведомость объёмов и допущений"
    },
    {
      "title": "Подключить данные",
      "description": "Прайс с единицами измерения",
      "work": "Сначала проверяем доступные выгрузки и интерфейсы. Если обмен возможен, согласуем поля, направления и права записи.",
      "result": "Подтверждённый способ обмена либо согласованный импорт. Если интерфейса нет — зафиксированное ограничение и решение о следующем шаге."
    },
    {
      "title": "Проверить в работе",
      "description": "Контрольный расчёт совпадает с ручным",
      "work": "Проводим контрольные сценарии, обучаем ответственных, передаём документацию и порядок восстановления.",
      "result": "История версий"
    }
  ],
  "mapping": [
    {
      "field": "Площадь по обмеру",
      "type": "number",
      "unit": "м²",
      "example": "48",
      "rule": "Правило и обязательность подтверждаются на ваших исходниках."
    },
    {
      "field": "Работы по условному прайсу",
      "type": "number",
      "unit": "₽/м²",
      "example": "900",
      "rule": "Правило и обязательность подтверждаются на ваших исходниках."
    },
    {
      "field": "Дополнительная подготовка",
      "type": "number",
      "unit": "₽",
      "example": "6000",
      "rule": "Правило и обязательность подтверждаются на ваших исходниках."
    },
    {
      "field": "Стоимость подготовки определена",
      "type": "select",
      "unit": "",
      "example": "Да",
      "rule": "Правило и обязательность подтверждаются на ваших исходниках."
    }
  ],
  "flow": [
    {
      "label": "Ваши исходники",
      "text": "Прайс с единицами измерения"
    },
    {
      "label": "Правила и интерфейс",
      "text": "Единые расценки и пакеты"
    },
    {
      "label": "Проверка сотрудником",
      "text": "Прораб и ответственный за проверку"
    },
    {
      "label": "Результат в работе",
      "text": "История версий"
    }
  ],
  "scope": [
    "Предварительная смета",
    "Ведомость объёмов и допущений",
    "История версий"
  ],
  "inputs": [
    "Прайс с единицами измерения",
    "Обмеры контрольного объекта",
    "Правила коэффициентов"
  ],
  "acceptance": [
    "Контрольный расчёт совпадает с ручным",
    "Изменение объёмов пересчитывает зависимые позиции",
    "Отсутствующая расценка явно отмечена"
  ],
  "boundary": "Расчёт не заменяет обследование и проверку сметчиком. Пилот охватывает согласованный перечень работ.",
  "budgets": [
    [
      35,
      70
    ],
    [
      100,
      220
    ],
    [
      220,
      450
    ]
  ],
  "group": "web",
  "openQuestions": [
    "Есть ли единый прайс с единицами измерения?",
    "Какие работы чаще всего пересчитываются после первого предложения?",
    "Какие системы, версии и способы выгрузки используются сейчас?",
    "Кто подтверждает результат и кому разрешено менять правила?"
  ],
  "failureCases": [
    "Неполные или некорректные вводные: показать конкретные поля, не выдавать успешный результат.",
    "Неоднозначное соответствие или редакция: передать ответственному на проверку.",
    "Повторная отправка: исключить повторное создание по согласованному идентификатору.",
    "Недоступный внешний источник: сохранить состояние, показать ошибку и согласованный повтор.",
    "Изменение подтверждённых вводных: новая редакция и повторное подтверждение."
  ],
  "rights": [
    "Просмотр — только разрешённые записи и результаты.",
    "Исполнение — ввод и исправление в пределах назначенных задач.",
    "Согласование — подтверждение результата и возврат с причиной.",
    "Администрирование — пользователи, справочники и версии правил."
  ],
  "custom": "Возможна разработка отдельного решения под уникальный процесс, собственные правила, интерфейсы и инфраструктуру компании."
}