# EDT — Godot Editor and Content Authoring

## Цель

Превратить Godot Editor в единую среду расширения мира, gameplay, UI, audio и graphics с безопасным build/deploy/playtest workflow.

## EDT-1. Plugin platform

- `addons/openwc_editor` регистрирует workspace, docks, inspector/import/gizmo/debugger plugins.
- `_enter_tree/_exit_tree` симметричны: все controls/plugins/signals/jobs снимаются без leaks.
- UI вызывает authoring application services; не пишет SQL/files/scene tree напрямую.
- Editor selection отделена от runtime preview nodes.
- Shared services получают context через dependency injection, не global editor singleton.

## EDT-2. Workspace and UX

- World viewport, Content Browser, Outliner, Inspector, Validation, History, Build, Database, Test Center.
- Search/filter/favorites/recent items и stable links между сущностями.
- Multi-selection и bulk edits показывают scope/diff.
- Diagnostics имеют severity/code/location/fix; double-click открывает field/node/world position.
- Layout/workspace preferences сохраняются отдельно от Content Project.

## EDT-3. Commands, undo and recovery

- Любая mutation — command с execute/undo/description/affected IDs.
- Terrain strokes агрегируются в bounded deltas; большие операции используют snapshots/chunks.
- Autosave recovery journal атомарный и имеет schema version.
- External changes обнаруживаются через hashes; merge/overwrite требует решения пользователя.
- Quick Fix всегда previewable и undoable.

## EDT-4. Import and asset browser

- MPQ/archive browser, locale/patch source provenance и extraction jobs.
- Preview BLP, DBC rows, M2 animations/materials, WMO groups/portals, ADT layers и audio.
- Godot import plugins применяются только к authoring source formats, где lifecycle `.import` полезен.
- Raw extracted corpus не должен вызывать неконтролируемый массовый Godot reimport.
- Batch conversion использует staging, cancellation, cache hash и report.

## EDT-5. World editing

- Map/tile/chunk navigation и coordinate overlays.
- Terrain sculpt/smooth/flatten/noise/stamps/holes.
- Texture layers, alpha painting, shading и liquids.
- M2/WMO placement, snapping, transforms, doodad sets и unique ID allocation.
- Creature/gameobject spawns, groups, formations, patrol/escort paths.
- Areas, triggers, graveyards, teleports, taxi/transport points, sound/weather volumes.
- Collision/navmesh/streaming/render-cost visualization.

## EDT-6. Data editors

- Creature/gameobject templates, models, equipment, movement and text.
- Item/loot/vendor/trainer/profession editors.
- Quest form + dependency/progression graph + localization.
- Gossip/conditions/SmartAI graph with raw representation inspector.
- Spawn/pool/game event/phase editor.
- Dungeon package, encounter state graph, doors/triggers/lockouts/loot.
- UI/addon manifest, CVar/keybinding и audio zone configuration.

## EDT-7. Navigation

- `recast-rs` optional offline backend behind navigation build interface.
- Bake profiles: agent size/climb/slope/cell/region/tile parameters.
- Walkability, disconnected islands, path cost, off-mesh links и dynamic door states.
- Quest giver/objective/turn-in reachability; patrol/escort validation.
- OpenWC cache отделён от server mmap until compatibility proven.

## EDT-8. Graphics extension tools

- Material/shader profile editor с Blizzlike/Enhanced comparison.
- Texture replacement/upscale overlays и mip/alpha/color-space validation.
- Water/sky/weather/light preview with fixed time and reference capture.
- Character/equipment/animation/attachment preview.
- Spell visual/particle/ribbon authoring where formats permit.
- Quality preset cost preview и automatic render checkpoint generation.

## EDT-9. Content Project

- Git-friendly files, schema version, symbolic IDs, dependencies и capability requirements.
- Original data referenced, never copied silently.
- Overlay priority/conflict report и semantic merges.
- Deterministic numeric ID allocation per server profile.
- Localization bundles, scripts, client assets, tests и package manifests.
- Schema migrations with backup, fixture and loss policy.

## EDT-10. Build, deploy and playtest

```text
Validate → Compile → Bake → Diff → Package → Dry-run
→ Apply dev DB/module/assets → Start/reload core → Launch client at context
→ Collect logs/results → Roll back disposable environment
```

- Jobs cancellable, progress-aware and identical to headless CI services.
- Production target physically/logically separated and disabled by default.
- Server reload used only for tables known to support it; otherwise restart.
- Playtest bundle records content/core/client revisions and profile.
- One-click convenience never hides SQL/module/client artifact diff.

## EDT-11. Extensibility

- `ContentTypeDescriptor`: schema, icon, inspector, validator, compiler, presenter.
- `EditorTool`: selection contract, command factory, gizmo/overlay.
- `BuildStep`: inputs/outputs/cache key/cancellation/diagnostics.
- Plugin declares API version, dependencies, permissions and migrations.
- User plugins cannot mutate production DB or original assets outside approved services.

## Best-practice gate

Plugin reload clean; undo/save/reload deterministic; long jobs do not block Editor; preview nodes disposable; every deployment reproducible headless; common scenarios require no manual SQL.
