Simple format, embed all type definitions. Won't work for more complicated cases, e.g. where subclass refers back again to the base class