it is not well documented, but i've figured the commands are kept in the
command buffer until CleanCommand is called.
to do so , i need to lock the command buffer (so i wont clean a newer
command), how do i do that?
drivers may not clean the command buffer but ignore repeating commands.
in various commands in the c++ position proxy, a (0,0,0) move command is
sent first, so when sending the actual command it looks new and won't be
imho, GetCommand should also clean the command buffer, a driver can keep
the last given command if it needs to.
for the least, there should be a GetAndCleanCommand method, so there
will be no need to lock player internals.