Olá, espero que esteja tudo bem!
Gostaria de deixar uma sugestão, somente a critério de curiosidade ;)) Gostei bastante do conteúdo
Vi que na aula foi feito o tratamento de erro apenas na operação de fazer a criação da instância do jogo, seria interessante passar a ideia de fazer o tratamento de operações que estão fora do domínio da aplicação, como acesso a api, no caso de falta de internet, seria interessante a exception levantada ser tratada, por exemplo:
fun main() {
    val getGameRunCatching = runCatching{
        println("Enter a game id")
        val scanner = Scanner(System.`in`);
        val gameId = scanner.nextLine();
        val data = CheapSharkDataSource().getGame(gameId)
        val game = Game(data.info.title, data.info.thumb)
        return@runCatching game
    }
    getGameRunCatching.onSuccess {
        game -> print(game)
    }
    getGameRunCatching.onFailure {
        print("It was not possible to retrieve the game with the entered id.")
    }
}
 
            