Uh, I thought you might miss something.
This syn-function only could pass commands, not the execution result, so that it could not be used in real-time game, that is Ashley considered. You might emphasize that the syn-function is only used in turn based game, to prevent misunderstanding.
BTW, the concept of my syn-function is trying to ignore the different of host/client in game logic, so there is only one way to evoke the function, calling at one peer, executing on all peers.