public async Task <NewGameResponse> CreateGameAsync(string playerName, string gameSessionName)
        {
            _logger.LogInformation("Attempting to create a game {GameSessionName} requested by player {playerName}", gameSessionName, playerName);

            var player = new Player
            {
                Name = playerName
            };

            var gameSession = await _gameSessionRepository.AddAsync(new GameSession()
            {
                Name    = gameSessionName,
                Players = new List <Player>()
                {
                    player
                },
                JoinCode = Guid.NewGuid().ToString() // TODO: Generate codes not using Guids
            });

            return(new NewGameResponse()
            {
                PlayerJWT = _playerService.GeneratePlayerJWT(player),
                GameJoinCode = gameSession.JoinCode
            });
        }