Oi Ailton, tudo bem?
A razão pela qual criamos a classe InfoGamerJson, convertemos o JSON para uma lista de objetos dessa classe e depois convertemos os elementos da lista para objetos do tipo Gamer é para realizar a tradução dos dados que estão no arquivo JSON para o formato que queremos receber na nossa aplicação.
Essa conversão é necessária porque a classe ConsumoApi retorna InfoGamerJson, mas o que queremos receber é o Gamer. Portanto, precisamos fazer essa transformação.
Utilizando o .map, conseguimos realizar essa conversão de forma simples e eficiente. No código que você mencionou, a lista listaGamer é mapeada e cada objeto infoGamerJson é transformado em um objeto Gamer, utilizando os atributos correspondentes.
val listaGamerConvertida = listaGamer.map { infoGamerJson -> Gamer(infoGamerJson.nome, infoGamerJson.email, infoGamerJson.dataNascimento, infoGamerJson.usuario) }
return listaGamerConvertida
Essa é uma operação comum na programação, onde precisamos transformar listas de um determinado tipo de elemento em outro tipo. O .map é uma propriedade de List<> que nos permite realizar essas manipulações e conversões necessárias.
Um abraço e bons estudos.