Como garante que dois componentes falam a mesmo linguagem? Como garante que tem apenas valores válidos a viajar no software em causa? Usaria strings para representar datas internamente? Então, porque representa os conceitos do domínio como strings ou inteiros? Não faz sentido.