Full type support for protos, including enums (!)

The indent is right here? I restructured it a bit.