In D14599 the types were modified so that they are consistent, but we couldn't simplify it further. This diff addresses that, but with a tradeoff: now the DM type can contain newMemberIDs that isn't supported and is checked in the runtime. This isn't ideal, but overall doesn't break the protocol contract - it is expected that some protocols won't support all the possible features. We can consider making this more formal, by e.g. introducing a flag, but I'm not sure if we need to.
Depends on D14609