Formalize generic type parameters for generated types
Formalize the generator's support for generic types and generic type parameters using structured fields instead of raw strings. This will facilitate updating type generators for other languages to support generics.