An idea occurred to me for a compromise: include the extra metadata in the signature but not the encoding. Then, when requesting messages, indicate wether extra metadata can be dropped. If supported by the implementations, the extra fields can be dropped from the transmission, but wether they are dropped from the storage is up to the implementation. todo: calculate how much difference this would make with current data.