I think a maximum of fields should be inside the encrypted portion, and that portion should be as uniform as possible. having two separate encrypted portions would leak metadata, in that the length of the type field could imply what sort value it was. Same goes for not having branch/root outside the content.
We can't validate what format the encrypted portion of a message is, because we might not be able to decrypt it, so really, none of these restrictions are actually enforced with private messages.
To avoid YAGNI it helps a lot to describe a plausible application that is enabled by a feature, not just propose a feature in abstract. If you describe some feature in abstract, I'm probably just gonna ask you to describe the application, so I'll appreciate when someone does this because it will save me time. This goes for everyone, and any kind of software.