The client uses a separate group for each pair of contacts. The group descriptor is a BDF list containing the unique IDs of the contacts' identities, sorted in ascending order as byte strings.
0: UPDATE - The content is a BDF list with three elements: transport_id (string), properties (dictionary), and version (int). transport_id and properties are supplied by the transport plugin. version is incremented whenever the properties change.
An update is valid if it is well-formed.
For each transport, the local message with the highest version is stored.
For each transport, the remote message with the highest version is stored.