The important part is that the way messages types are defined is very heavy, and you can get them to be lighter without sacrificing type safety.