# Roadmap OpenWC

> Этот документ объясняет стратегию на высоком уровне. Исполняемый порядок, текущий статус, checklist и доказательства завершения ведутся только в [`../targets/README.md`](../targets/README.md). При расхождении `targets/` имеет приоритет.

Полный roadmap с точки зрения разработки, contracts, subsystem dependencies и gates находится в [`../targets/DEVELOPMENT_ROADMAP.md`](../targets/DEVELOPMENT_ROADMAP.md).

## Стратегия

Работа идёт вертикальными срезами. Каждый срез включает data, domain, adapter, presentation, editor support, diagnostics и tests. Горизонтальная реализация всех opcodes или всех editor-панелей без пользовательского результата не считается milestone.

## M0 — Архитектурный фундамент

- Утвердить документы и ADR workflow.
- Ввести module boundaries и dependency checks.
- Выделить input, camera, movement, terrain query и character presentation из тестового контроллера.
- Заменить зависимость streamer от Camera3D на `StreamingFocus`.
- Зафиксировать coordinate mapper и golden points.

Готово, когда render sandbox сохраняет текущее качество, а domain тестируется без scene tree.

## M1 — Content Project и Editor shell

- `addons/openwc_editor` с workspace и docks.
- Content Project schema, stable IDs, save/load/migration.
- Selection, command history, autosave/recovery.
- Validation dock и headless validation.
- Read-only asset/content browser.

Готово, когда небольшой synthetic project можно создать, изменить, undo, перезапустить Editor и получить идентичное состояние.

## M2 — Server inspector и adapters

- TrinityCore/AzerothCore connection profiles.
- Schema detection и capabilities.
- Read-only snapshots creatures, gameobjects, spawns и quests.
- Канонические модели, semantic diff и ID allocation.
- SQL change-set dry-run на disposable DB.

Готово, когда одна сущность round-trip проходит оба поддерживаемых adapter profile без молчаливой потери данных.

## M3 — World Editor MVP

- Map viewport и coordinate overlays.
- Server spawn visualization.
- Selection, transform gizmo, placement и paths.
- NPC inspector, validation и undo/redo.
- Change set и dev apply.

Готово, когда NPC размещается в Editor и появляется на тестовом core в ожидаемой позиции.

## M4 — Quest vertical slice

- Quest form и chain graph.
- Kill/collect/explore objectives, giver/ender, rewards и localization.
- Dependency/reachability/economy validation.
- Dev deploy и integrated playtest launcher.

Готово, когда созданный в Editor квест полностью проходится клиентом.

## M5 — Playable network client

- Auth, realm, character selection и world session.
- Entity/update fields и world spawn.
- Movement prediction/reconciliation.
- Basic HUD, targeting, chat и disconnect recovery.

Готово, когда клиент стабильно входит в мир, перемещается и видит синхронизированные entities.

## M6 — Core gameplay

- Combat/spells/auras/death.
- Inventory/equipment/loot/vendors.
- Quest runtime и world map/minimap.
- Character visuals и animation coverage.
- Lua/FrameXML foundation.

Готово, когда базовый leveling loop проходит без внешнего клиента.

## M7 — Dungeon authoring

- DungeonPackage, encounters, triggers, doors и spawn groups.
- SmartAI/script skeleton generation.
- Encounter graph validation и tuning profiles.
- Group/instance/loot/lockout runtime.

Готово, когда custom dungeon собирается, разворачивается и проходится группой на test core.

## M8 — Compatibility и completeness

- Feature matrix WoW 3.3.5a.
- Addon compatibility tiers.
- Social, PvP, professions, economy services, vehicles и cinematics.
- Core revision matrix, migration и release packaging.
- Performance, accessibility, localization и soak hardening.

## Приоритет backlog

При равной ценности порядок такой:

1. безопасность данных и воспроизводимость;
2. корректность протокола и authoritative state;
3. пользовательский vertical slice;
4. diagnostics и testability;
5. frame pacing;
6. визуальная точность и polish.

## Не делать раньше времени

- прямую запись в production DB;
- универсальный visual scripting для любой C++ механики;
- массовую реализацию Lua API без работающего UI slice;
- большой rewrite существующего renderer;
- multi-expansion abstraction до устойчивого профиля 3.3.5a;
- proprietary asset packaging в репозитории.
