namespace AcDream.UI.Abstractions; /// /// No-op . Accepts any published command and /// discards it. Used as the default in D.2a until chat / inventory panels /// need real command routing. /// public sealed class NullCommandBus : ICommandBus { /// Shared singleton — the bus is stateless. public static readonly NullCommandBus Instance = new(); private NullCommandBus() { } /// public void Publish(T command) where T : notnull { // Intentionally empty. Panel-emitted commands in D.2a are // read-only diagnostics; nothing routes server-ward yet. } }