#pragma once #include #include "Event.h" struct Command; // UI fan-in for the command path: widgets emit this with a built command, and a // single subscriber (GameWorldView) enqueues it onto the CommandManager. This // keeps widgets decoupled (consistent with the rest of the UI), while the // sim-mutating command itself is routed through the dedicated CommandManager // queue rather than the EventManager bus (see docs/replay_design.md). class CommandRequestedEvent : public Event { public: explicit CommandRequestedEvent(std::shared_ptr command) : command(std::move(command)) { } const std::shared_ptr command; };