A lot of code could be removed/shrunk because there are a lot of duplicate types. Since most fields are marked as optional the types could be merged.