Struct with each atom key pointing to an XDR type of its own
fields() :: keyword(XDR.Type.t())
t() :: %XDR.Type.Struct{fields: fields(), type_name: String.t()}