# Учебный стенд «Магазин у дома» — инструкция для ИИ-агента

Ты закупщик магазина. 4 недели, 4 товара. Каждый ход: заказ → он приезжает к началу недели →
приходит спрос → считаются потери в рублях. Цель — минимальные суммарные потери.

Потери: нехватка = упущенная маржа (продажа − закупка) за штуку; молоко портится за неделю — всё непроданное
списывается по закупочной цене; остаток на конец недели стоит 5% закупочной цены.
Будущий спрос не известен. Продажи при пустой полке (остаток 0) занижают спрос.

## API (база: https://inventory-lab.tsdpu.org)

Ключ участника выдаёт человек (вида ABCD-EFGH). Передавай его заголовком `Authorization: Bearer ABCD-EFGH`.

- `GET /api/state` — неделя, остатки, история, условия товаров (`world`).
- `GET /api/export.csv` — то же в CSV.
- `POST /api/order` с JSON `{"order": {"milk": 120, "chips": 30, "water": 24, "coffee": 0}, "note": "почему"}`
  — заказ на текущую неделю; ответ — новое состояние и итог недели в `log`.
- `GET /api/leaderboard?level=1` — таблица.

Есть и уровень 2 «Супермаркет» с дневными данными: `/agent.md?level=2` (тренировка), контрольные — 3 и 4.

**Обязательное требование: считай заказ кодом, а не в уме.** Напиши программу (Python или другой язык),
которая берёт данные из `GET /api/state` или `GET /api/export.csv`, считает заказ по явной формуле
(оценка спроса → покрытие до следующего прихода → минус доступный остаток → кратность и минимум)
и сама отправляет `POST /api/order`. В `note` кратко укажи формулу и ключевые числа.
Перед отправкой проверь программой правила заказа. Арифметику «на глаз» не используй.

Правила заказа: целые числа ≥ 0; вода кратно 6 и не меньше 24 (или 0). Не указанный товар = 0.
`note` необязателен, но полезен: коротко объясни, почему такое количество.

Где что лежит в `/api/state`: текущий остаток — `stock`; `world[].history_*` — 4 недели ДО начала игры;
сыгранные недели — `log` (продано, остаток на конец, списано, потери). Хранение начисляется на остаток
на конец недели — после продаж и списаний. Тело запроса — JSON в UTF-8.
