The Marmot v2 baseline required_capabilities (0x0003) GroupContext
extension, set at group creation so every current and future member MUST
advertise the protocol-mandatory code points. MLS then refuses to add a
member whose LeafNode does not cover them (capability-negotiation.md ยง5.2
"enforce on add").
The baseline is fixed, not member-derived: the app_data_dictionary
extension (0x0006) and account-identity-proof extension (0xF2F1) plus the
app_data_update (0x0008) and self_remove (0x000a) proposals. The
self_remove requirement matches a darkmatter MIP-03 client (which registers
the self-remove feature as Required, advertising proposal type 10 in both leaf
and required capabilities). Lists are sorted ascending to mirror the Rust
BTreeSet ordering; credentialTypes is empty.
The Marmot v2 baseline
required_capabilities(0x0003) GroupContext extension, set at group creation so every current and future member MUST advertise the protocol-mandatory code points. MLS then refuses to add a member whose LeafNode does not cover them (capability-negotiation.md ยง5.2 "enforce on add").The baseline is fixed, not member-derived: the
app_data_dictionaryextension (0x0006) and account-identity-proof extension (0xF2F1) plus theapp_data_update(0x0008) andself_remove(0x000a) proposals. Theself_removerequirement matches a darkmatter MIP-03 client (which registers the self-remove feature as Required, advertising proposal type 10 in both leaf and required capabilities). Lists are sorted ascending to mirror the RustBTreeSetordering;credentialTypesis empty.