public Responseo BeginProcess(Commando command)
        {
            switch (command.Action)
            {
            case CommandAction.MouseMove:
                var(deltaX, deltaY) = command.GetInts();
                MoveMouse(deltaX, deltaY);
                return(Responseo.CreateResponse(command, CommandDispatchResult.Ack));

            case CommandAction.MouseSet:
                var(xPosition, yPosition) = command.GetInts();
                SetMouse(xPosition, yPosition);
                return(Responseo.CreateResponse(command, CommandDispatchResult.Ack));

            case CommandAction.MouseClick:
                var clickButton = command.GetEnum <MouseButton>();
                ClickMouse(clickButton);
                return(Responseo.CreateResponse(command, CommandDispatchResult.Ack));

            case CommandAction.MouseWheel:
                var(wheelDirection, wheelAmount) = command.GetEnumInt <MouseWheelDirection>();
                WheelMouse(wheelDirection, wheelAmount);
                return(Responseo.CreateResponse(command, CommandDispatchResult.Ack));

            default:
                return(Responseo.CreateResponse(command, CommandDispatchResult.Nack));
            }
        }