{
  "proof": {
    "id": 19,
    "buyerLabel": "Разработка для бизнеса: прокатным компаниям",
    "deliverableTitle": "Календарь выдачи с проверкой пересечений",
    "deliverableDescription": "Пересечение запросов на одну единицу инструмента с предлагаемой альтернативой.",
    "pilotInputs": [
      "Реестр группы инструмента",
      "Брони с временем возврата",
      "Правила подготовки и ремонта"
    ],
    "pilotAcceptance": "Пересечение запрещено; ремонт и подготовка учитываются как занятость.",
    "scenario": {
      "title": "Две заявки пересекаются на час",
      "before": "ИН-014: бронь 09:00–13:00; новый запрос 12:00–15:00.",
      "conflict": "Один инструмент занят двумя запросами на 1 час пересечения.",
      "decision": "Сохранить исходную бронь; предложить другое время или инструмент.",
      "after": "ИН-014: новый запрос не подтверждён; в этом примере без подготовки доступно время после 13:00."
    }
  },
  "version": "0.4",
  "status": "Проект для согласования",
  "solutionId": 19,
  "slug": "equipment-rental",
  "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": "Начало действующей брони — часы от начала суток, 10.5 = 10:30",
      "type": "number",
      "unit": "час",
      "example": "9",
      "rule": "Правило и обязательность подтверждаются на ваших исходниках."
    },
    {
      "field": "Окончание брони — часы от начала суток, 10.5 = 10:30",
      "type": "number",
      "unit": "час",
      "example": "13",
      "rule": "Правило и обязательность подтверждаются на ваших исходниках."
    },
    {
      "field": "Начало нового запроса — часы от начала суток, 10.5 = 10:30",
      "type": "number",
      "unit": "час",
      "example": "12",
      "rule": "Правило и обязательность подтверждаются на ваших исходниках."
    },
    {
      "field": "Окончание нового запроса — часы от начала суток, 10.5 = 10:30",
      "type": "number",
      "unit": "час",
      "example": "15",
      "rule": "Правило и обязательность подтверждаются на ваших исходниках."
    }
  ],
  "flow": [
    {
      "label": "Ваши исходники",
      "text": "Реестр инвентарных единиц"
    },
    {
      "label": "Правила и интерфейс",
      "text": "Выдача и возврат"
    },
    {
      "label": "Проверка сотрудником",
      "text": "Прораб и ответственный за проверку"
    },
    {
      "label": "Результат в работе",
      "text": "Очередь ремонта и подготовки"
    }
  ],
  "scope": [
    "Календарь единиц",
    "Карточка выдачи",
    "Очередь ремонта и подготовки"
  ],
  "inputs": [
    "Реестр инвентарных единиц",
    "Правила аренды и комплекты",
    "Образцы выдачи и возврата"
  ],
  "acceptance": [
    "Конфликт брони виден",
    "Ремонт блокирует обычную выдачу",
    "Возврат хранит недостачу и фото"
  ],
  "boundary": "Пилот для части парка; финансовые и договорные интеграции согласуются отдельно.",
  "budgets": [
    [
      50,
      100
    ],
    [
      160,
      350
    ],
    [
      350,
      700
    ]
  ],
  "group": "process",
  "openQuestions": [
    "Есть ли уникальные номера техники и составы комплектов?",
    "Как учитывается время подготовки между арендами?",
    "Какие системы, версии и способы выгрузки используются сейчас?",
    "Кто подтверждает результат и кому разрешено менять правила?"
  ],
  "failureCases": [
    "Неполные или некорректные вводные: показать конкретные поля, не выдавать успешный результат.",
    "Неоднозначное соответствие или редакция: передать ответственному на проверку.",
    "Повторная отправка: исключить повторное создание по согласованному идентификатору.",
    "Недоступный внешний источник: сохранить состояние, показать ошибку и согласованный повтор.",
    "Изменение подтверждённых вводных: новая редакция и повторное подтверждение."
  ],
  "rights": [
    "Просмотр — только разрешённые записи и результаты.",
    "Исполнение — ввод и исправление в пределах назначенных задач.",
    "Согласование — подтверждение результата и возврат с причиной.",
    "Администрирование — пользователи, справочники и версии правил."
  ],
  "custom": "Возможна разработка отдельного решения под уникальный процесс, собственные правила, интерфейсы и инфраструктуру компании."
}