{
  "version": "1.1.0",
  "chapters": [
    {
      "id": "01",
      "title": "Что такое золотой ватт",
      "goal": "Энергия, технология и интеллект в одном работающем продукте.",
      "agent_task": "Создать паспорт единиц. Отказаться от расчёта, если цена дана в руб./кВт, а предъявлен объём в кВт·ч без периода и правила преобразования.",
      "model": null,
      "extra_models": [],
      "page": "chapter-01.html"
    },
    {
      "id": "02",
      "title": "Как энергия уже связана с конечным товаром",
      "goal": "Алюминий даёт самый понятный вход в тему.",
      "agent_task": "Для каждого мирового примера возвращать статус historical / operating / announced / unknown, дату договора и дословное имя ценового ряда.",
      "model": "aluminium",
      "extra_models": [],
      "page": "chapter-02.html"
    },
    {
      "id": "03",
      "title": "Ценовая формула и её границы",
      "goal": "Индекс, коэффициенты, усреднение, валюта и правила на случай сбоя.",
      "agent_task": "Хранить формулу как версионированную функцию с типизированными параметрами. Проверять нижнюю границу, верхнюю, их равенство, валюту и отсутствие индекса.",
      "model": null,
      "extra_models": [],
      "page": "chapter-03.html"
    },
    {
      "id": "04",
      "title": "Из чего собирается композит",
      "goal": "Каждый компонент должен иметь предмет, измерение и плательщика.",
      "agent_task": "Собрать таблицу component_id → obligation → unit → meter → payer → beneficiary → rule_version. Для каждой пары компонентов записать условия совместимости.",
      "model": null,
      "extra_models": [],
      "page": "chapter-04.html"
    },
    {
      "id": "05",
      "title": "Pull · Mix · Push",
      "goal": "Найти ресурс, собрать продукт, выбрать применение.",
      "agent_task": "Проверить альтернативную цену поставщика и покупателя, доступный профиль мощности, полный маршрут затрат и два независимых режима продажи: по средней цене и со скидкой.",
      "model": "trade",
      "extra_models": [
        "profile"
      ],
      "page": "chapter-05.html"
    },
    {
      "id": "06",
      "title": "Экономия, которую можно предъявить к оплате",
      "goal": "Сопоставимая база и точное разложение цены и объёма.",
      "agent_task": "Сохранить исходную модель, коэффициенты, даты, входы, интервал неопределённости и причину каждой корректировки. Расход и цена должны сходиться отдельными тождествами.",
      "model": "savings",
      "extra_models": [
        "uncertainty"
      ],
      "page": "chapter-06.html"
    },
    {
      "id": "07",
      "title": "Выручка, маржа и полезный результат",
      "goal": "За что именно получает долю энергетический партнёр.",
      "agent_task": "Выдать отдельные строки revenue, variable_cost, contribution_margin, attributed_delta и contract_payment. Название строки должно совпадать с её экономическим смыслом.",
      "model": null,
      "extra_models": [],
      "page": "chapter-07.html"
    },
    {
      "id": "08",
      "title": "Золотой ватт в магазине",
      "goal": "Холод, сохранность товара, обслуживание и управляемая нагрузка.",
      "agent_task": "Согласовать перечень полезных результатов, температуру и качество по товарным группам, границу счётчика и способ оценки каждой предотвращённой потери.",
      "model": null,
      "extra_models": [],
      "page": "chapter-08.html"
    },
    {
      "id": "09",
      "title": "Тепловой каскад",
      "goal": "Как один электрический расход поддерживает несколько полезных процессов.",
      "agent_task": "Построить почасовой баланс холода, горячего тепла, спроса, вспомогательного электричества и платежей. Запретить продажу отсутствующего спроса.",
      "model": "heat",
      "extra_models": [],
      "page": "chapter-09.html"
    },
    {
      "id": "10",
      "title": "Гибкость, батарея и tolling",
      "goal": "У времени поставки есть цена, у установки есть предел.",
      "agent_task": "Решать задачу распределения мощности и энергии по совместимым услугам. В отчёте показать упущенную выгоду резервирования и сценарий невыполнения команды.",
      "model": "battery",
      "extra_models": [],
      "page": "chapter-10.html"
    },
    {
      "id": "11",
      "title": "Как оплатить интеллект и патент",
      "goal": "Доказать дополнительный вклад и согласовать право на его использование.",
      "agent_task": "Предложить измеримый дизайн сравнения, карту лицензий и формулу оплаты. Отдельно показать стоимость вычислений, неопределённость и совместный эффект.",
      "model": "attribution",
      "extra_models": [],
      "page": "chapter-11.html"
    },
    {
      "id": "12",
      "title": "Договор, право и цифровая запись",
      "goal": "Каким обязательством становится собранный продукт.",
      "agent_task": "Подготовить карту обязательств и список конкретных правовых вопросов. Значения unknown должны блокировать соответствующее действие до получения основания.",
      "model": null,
      "extra_models": [],
      "page": "chapter-12.html"
    },
    {
      "id": "13",
      "title": "Длинные деньги и фиксированный купон",
      "goal": "Будущий эффект должен выдержать время, обслуживание и плохие периоды.",
      "agent_task": "Построить месячный график денег, обязательств и резервов. Вернуть минимальный DSCR, максимальный дефицит и долю стоимости после 20-го года.",
      "model": "finance",
      "extra_models": [],
      "page": "chapter-13.html"
    },
    {
      "id": "14",
      "title": "Риск, хедж и цена устойчивости",
      "goal": "Какие несовпадения остаются после красивой ценовой формулы.",
      "agent_task": "Выпустить матрицу носителей риска и три согласованных сценария. Не подставлять нормальное распределение и независимость без объяснения оснований.",
      "model": null,
      "extra_models": [],
      "page": "chapter-14.html"
    },
    {
      "id": "15",
      "title": "Как делятся деньги",
      "goal": "Полный месяц композита с проверкой каждого рубля.",
      "agent_task": "Сформировать журнал received, receivable, operating_cost, reserve_movement, senior_paid, senior_shortfall, residual. Проверить денежное тождество и источник каждого платежа.",
      "model": "composite",
      "extra_models": [
        "liquidity"
      ],
      "page": "chapter-15.html"
    },
    {
      "id": "16",
      "title": "Оракул, журнал и расчётное событие",
      "goal": "Как связать показание, право и платёж без потери происхождения.",
      "agent_task": "Реализовать проверку происхождения, версии и уникальности. Отдельно протестировать дубликат, пропуск, устаревший индекс, пересечение интервалов и частичный спор.",
      "model": "oracle",
      "extra_models": [],
      "page": "chapter-16.html"
    },
    {
      "id": "17",
      "title": "Рабочий протокол агента",
      "goal": "От задачи клиента к воспроизводимому решению.",
      "agent_task": "Вернуть объект decision с допущениями, доказательствами, балансами, рисками, пределами исполнения и воспроизводимым расчётом. Пройти контрольные примеры из fixtures.json.",
      "model": null,
      "extra_models": [],
      "page": "chapter-17.html"
    },
    {
      "id": "18",
      "title": "Собрать свою сделку",
      "goal": "Практикум, который объединяет весь учебник.",
      "agent_task": "Сдать проект из восьми шагов главы 17, пройти экзамен и объяснить причины дефицита в каждом из пяти стрессов. Все расчёты должны воспроизводиться из машинного паспорта.",
      "model": null,
      "extra_models": [],
      "page": "chapter-18.html"
    }
  ]
}