Three sibling test projects share the same MSTest (1.4.0) + Microsoft.NET.Test.Sdk (16.4.0) stack but serve different scopes: - `ClassicAssist.Tests` targets `net48` with `AllowUnsafeBlocks` and references `ClassicAssist.Shared`, `cuoapi.dll`, and `WindowsBase`; it is organized by feature area (`Agents/`, `Filters/`, `MacroCommands/`) with one `[TestClass]` per subsystem, using `[TestInitialize]` to seed a `PlayerMobile` into `Engine.Player` before exercising command handlers via `IncomingPacketHandlers.Initialize()` / `OutgoingPacketHandlers.Initialize()` and feeding raw byte arrays through `PacketReader`. - `ClassicAssist.UITest` is a WinForms-style `STAThread` entry point that loads `AssistantOptions`, constructs `MainWindow`, and owns the message loop — used for manual visual regression of Avalonia views. - `UITest` is an empty console project kept as a placeholder. Dependency direction is one-way: tests depend on production assemblies (`ClassicAssist.Shared`, `ClassicAssist.Data.*`, `ClassicAssist.UO.*`, `ClassicAssist.UI.Views`); no production code references any test project. A disabled `ReplayPacketLog` class demonstrates the intended pattern for replaying captured packet logs against the live handler pipeline.