add GameProtocol
rename GameRequest -> GameCommandArg, GameResponse -> GameCommandResult
refactor
refactor
refactor