# Шаблон: Драфт спецификации компонента (v5)

Важно: не включать код (классы/DDL); описывать интерфейсы и модели полями и правилами.

## 1. Назначение

Что это:
- [Название компонента] — [одно предложение, что делает]

Какую проблему решает:
- [Конкретная бизнес/тех проблема]

---
## 2. Интерфейсы

HTTP API (если есть)
- [МЕТОД] /path — краткая семантика

Программный интерфейс (описание)
- [OperationName](input) → output — краткая семантика

Message Queue Interface (если есть)
- Queue: [queue/topic]
- Message: [MessageName] (JSON)

Детализация интерфейсов (основная операция)
- Вход:
  - поле: тип высокого уровня, правило/ограничение
- Выход:
  - поле: тип высокого уровня, правило/ограничение
- Правила:
  - ключевые ограничения (размер, идемпотентность и т.п.)

---
## 3. Внешние зависимости
- [Сервис/Хранилище/Очередь] — тип, операции, формат взаимодействия (кратко)

---
## 4. Модели данных (описательно)
- [Сущность] — ключевые поля (без кода и DDL)

---
## 5. Требования

Авторизация (если применимо)
- правила авторизации/claims/валидации

Мультитенантность (если применимо)
- как извлекается идентификатор аренды и где применяется

Идемпотентность
- ключ(и) идемпотентности, TTL/политика

Бизнес-правила
- порядок обработки, ретеншн и т.п.

---
## 6. Последовательности (runtime)
- Ingress: откуда компонент получает вход (источник/интерфейс)
- Шаги:
  - [Шаг 1]
  - [Шаг 2]
  - [Шаг 3]
- Egress: куда компонент публикует выход (назначение/интерфейс)



