Percebi que se o email for modificado durante a execução ele não é verificado e passa mesmo estando incompleto
data class Player(var nome:String, private var emailInicial:String) {
var email:String = emailInicial
set(value) {
field = value
validarEmail()
}
Essa foi minha solução, tem alguma melhor ou tem algo a melhorar (dúvida no private no construtor primário)