Full type support for protos, including enums (!)

nit: Indent