MessageDerivedValues = [ messageId: MessageId, hubAcceptedTimestamp: Timestamp, mlsGroupId: bstr, senderLeafIndex: uint .size 4, senderClientUrl: MsgUri, senderUserUrl: MsgUri, roomUrl: MsgUri ] MsgUri = tstr MessageId = bstr .size 32 Timestamp = MsecsSinceEpoch / ExtendedTime ; milliseconds since start of UNIX epoch MsecsSinceEpoch = uint .size 8 ; extended time from RFC9581 ExtendedTime = #6.1001({* name => value }) name = int / tstr .size (1..255) value = any .size (0..4095)