# Карта функций клиента WoW 3.3.5a

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

Это coverage map, а не обещание реализовать всё одновременно. Для каждой строки в будущем ведутся статусы `Not started`, `Research`, `Prototype`, `Playable`, `Compatible`, `Verified` и ссылки на issue/spec/tests.

## Platform и данные

- MPQ archive chain, locale и patch precedence.
- BLP, DBC, DB2 при расширении профиля, WDT/WDL/ADT, M2/SKIN, WMO, animation, particles, ribbons, cameras.
- Cache/versioning, import diagnostics, missing/corrupt asset policy.
- Typed DBC access: maps, areas, races, classes, characters, items, creatures, spells, talents, factions, sounds, liquids, lights, maps and taxi.
- Settings, keybindings, locale, screenshots, logs, crash recovery и accessibility options.

## World presentation

- Terrain layers, alpha maps, holes, normals, LOD и distant terrain.
- WMO groups, doodads, portals/rooms, indoor/outdoor state и collision.
- M2 static/animated models, attachments, billboards, particles, ribbons и material combiners.
- MH2O/MCLQ water, ocean, lava, slime и shore/depth behavior.
- Sky, day/night, fog, zone lighting, weather и selective shadows.
- World streaming, preload/retention, occlusion, render budgets и deterministic checkpoints.

## Character presentation

- Race/gender/body customization и character creation preview.
- Skin/hair/face/facial hair/geosets.
- Equipment textures, component models, enchant visuals, sheathe/unsheathe и attachments.
- Animation selection, blending, emotes, combat, cast, death, swim, fly, mount и vehicle.
- Creature display/model data, NPC equipment, pets, guardians и shapeshift.

## Connection и world synchronization

- SRP authentication, realm list, world auth, reconnect и disconnect reasons.
- Encrypted framing, compressed packets, opcode dispatch и packet tracing.
- Character enum/create/delete/rename/login/logout.
- Packed GUIDs, update fields, create/update/out-of-range/destroy.
- Movement flags, heartbeat, jump/fall/swim/fly, transports, knockback и spline movement.
- Server time, tutorial flags, account data и feature capability detection.
- Warden handshake/module compatibility для явно поддерживаемых test/private server profiles с sandbox и без ориентации на official servers.

## Player и camera

- Remappable actions вместо hardcoded keys.
- Walk/run/backpedal/strafe/jump/fall/swim/fly и autorun.
- Click-to-move как отдельная опциональная policy.
- Camera orbit, zoom, collision, first-person limit и follow policies.
- Client prediction, server correction, transport-relative movement и latency telemetry.
- Selection, interaction range, facing и line-of-sight feedback.

## Combat, spells и progression

- Auto attack, attack stop, combat state, damage/heal/miss/immune feedback.
- Spellbook, ranks, cast/channel, interruption, cooldown, global cooldown, range и resources.
- Auras, stacks, durations, dispels, proc presentation и diminishing returns display.
- Death, ghost, corpse, resurrection, durability и repair.
- XP, level, rested XP, reputation, honor, arena и achievements.
- Talents, glyphs, skills, professions, recipes и training.

## Items и economy

- Bags, bank, keyring, equipment, ammo, currencies и item cooldowns.
- Loot, roll, master loot, disenchant и bind confirmations.
- Vendors, buyback, repair, trainer и gossip services.
- Trade, mail, auction house, guild bank и item links/tooltips.
- Enchanting, sockets/gems, random properties и item sets.

## Quests и world activities

- Availability, accept, abandon, track, progress, complete и reward choice.
- Kill, collect, interact, explore, escort, timed, reputation и spell objectives.
- Chains, prerequisites, exclusivity, repeatable/daily/weekly и phased conditions.
- Gossip/dialogue, scripted events, gameobjects, transports и taxi.
- World map, minimap, exploration, POI, quest indicators и instance maps.

## Groups, social и PvP

- Party, raid, roles, ready check, raid targets и loot rules.
- Friends, ignore, who, guild, channels, whispers и chat moderation feedback.
- Duels, PvP flags, battlegrounds, arenas, scores, queues и resurrection flow.
- LFG/Dungeon Finder, proposal, teleport, vote kick и rewards.

## Instances и cinematics

- Dungeon/raid entry, difficulty, lockouts, encounter states и reset.
- Doors, triggers, boss frames, instance messages и saved state presentation.
- Vehicles, multi-passenger seats и possession UI.
- Cinematics, camera sequences, movies, loading screens и transitions.

## UI, Lua и addons

- Login, legal/realm/character creation/selection/loading screens.
- HUD: unit frames, target/focus, action bars, buffs, cast bars, bags, quest tracking, chat и combat text.
- FrameXML: templates, inheritance, anchors, strata, layers, scripts и events.
- Lua 5.1-compatible API surface, secure boundaries, SavedVariables и addon lifecycle.
- Заменяемый Lua 5.1.1 backend; `rilua` и PUC-Rio проходят единый WoW-specific compatibility corpus до выбора production VM.
- Widgets: Frame, Button, CheckButton, EditBox, Slider, StatusBar, ScrollFrame, Tooltip, Cooldown, Model, Texture, FontString, Minimap.
- Macro conditionals, keybindings, slash commands, localization и UI scaling.

## Audio

- Zone/day/night music и crossfade.
- Ambience, weather и indoor/outdoor transitions.
- Positional world sounds, spell/combat/footstep/foley/voice и UI sounds.
- Cache/streaming, device selection, category volumes и mute-on-focus policy.

## Authoring coverage

- Terrain sculpt/paint/holes/liquids и tile lifecycle.
- M2/WMO placement, transforms, unique IDs и doodad sets.
- Creature/gameobject templates, spawns, groups, paths и equipment.
- Quests, gossip, conditions, loot, vendors, trainers и localization.
- Zones, areas, graveyards, teleports, taxi, triggers и phase rules.
- Dungeon packages, encounters, doors, bosses, scripts и validation.
- Navigation authoring: walkability overlay, reachability, patrol/escort validation, off-mesh links и dynamic doors; optional `recast-rs` backend.
- Import, diff, package, SQL/change-set generation, dev deployment и playtest.

## Требование к расширяемости

Каждая функция должна быть модифицируема заменой data/config, policy или adapter до изменения core-кода. Если это невозможно, extension point и причина ограничения документируются. Пользовательские override-пакеты имеют явный приоритет, зависимости и совместимость; молчаливое изменение оригинальных данных запрещено.
