# SRV — TrinityCore and AzerothCore Integration ## Цель Поддержать server emulators как versioned backends: protocol-compatible runtime, безопасное редактирование данных и расширение mechanics через modules/scripts. ## SRV-1. Environment model - `ServerEnvironment`: family, core commit, DB revision, modules, config profile, endpoints и data artifact versions. - Отдельные disposable, local-dev, shared-test, staging и production classes. - Credentials/secrets вне Content Project. - Capability discovery проверяет schema fingerprint и optional modules/tables/hooks. - Unknown environment всегда read-only. ## SRV-2. Database snapshots - Read-only import world schema subsets с provenance/checksum. - Auth/characters DB открываются только для нужных test/admin сценариев и никогда не становятся content source. - Snapshot filters reproducible; personal/account data excluded. - Canonical entities preserve supported fields and explicitly record unsupported/raw extras. - Incremental snapshot возможен, но full consistency snapshot остаётся verification path. ## SRV-3. Canonical mappings - Creature/gameobject templates, models, spawns, addons, formations, movement, texts. - Quests, relations, objectives, POI, conditions, gossip. - Loot/reference loot, vendors, trainers, items, reputation. - SmartAI, script names, waypoint/script tables. - Instances, encounters, LFG, graveyards, teleports, game events, weather, transports. - Каждая mapping имеет per-core capability table и round-trip tests. ## SRV-4. Change sets and SQL - Immutable change set: target fingerprint, preconditions, ordered operations, checksum. - SQL generation соответствует conventions целевого core/profile. - Custom SQL хранится в version control и compatible custom/module directory, не только применяется напрямую. - Dry-run на disposable DB, targeted post-apply queries, core startup smoke. - Idempotent migration или безопасное precondition failure. - Rollback где возможен; destructive/irreversible operations требуют backup и явного подтверждения. ## SRV-5. Scripts and modules - DB/SmartAI для выразимых data-driven mechanics. - C++ module/script skeleton для mechanics, требующих server hooks. - AzerothCore modules namespaced config/SQL/hooks; core patch — только если hook принципиально отсутствует. - TrinityCore adapter следует его текущим script/customization conventions отдельно. - Build artifact включает source, config.dist, SQL, tests и compatibility manifest. - Client extension capability договаривается явно; hidden custom opcode запрещён. ## SRV-6. Server data artifacts - DBC/maps/vmaps/mmaps versions связываются с ContentBundleManifest. - Custom map требует согласованного client terrain, server maps/collision/pathfinding и DB Map/Area data. - OpenWC navmesh не объявляется mmap до binary/query/live behavior compatibility. - Asset/map IDs распределяются стабильно и проверяются на collision. - Client/server package mismatch блокирует playtest с actionable diagnostic. ## SRV-7. Protocol compatibility - Baseline 3.3.5a build 12340 остаётся общим. - Core-specific quirks описываются named capabilities и fixtures. - Custom extensions используют versioned handshake/profile и fallback/rejection. - Server authority одинаково соблюдается для обеих families. - Compatibility matrix закрепляет tested commits, а не расплывчатое «поддерживает AzerothCore». ## SRV-8. Test environments - Docker/managed local environment для repeatable DB/core setup, где поддерживается. - Seed accounts/characters synthetic и не содержат реальные credentials. - Reset DB через assembler/base + project migrations. - Logs world/auth/database/client собираются с correlation metadata. - DB-only change test, module build test, startup smoke, scripted client scenario и cleanup. ## SRV-9. Existing tools - Keira3 — reference для field semantics, SQL generation и AzerothCore DB UX. - AzerothCore wiki/schema/module template — primary backend documentation. - TrinityCore source/schema/tools — primary для Trinity profile. - Noggit/WoW modding tools — client-world authoring reference, но не server schema oracle. - OpenWC Editor объединяет workflow, но сохраняет raw SQL preview и ссылки на upstream docs. ## Gate Одна canonical сущность проходит import → edit → diff → dry-run → apply → reimport на каждом supported profile без silent loss; module/content packages воспроизводимы; production write disabled by default; test environment очищается.