Three findings from G HUB pcap analysis (~/ghub/g522/*.pcapng):
1. Mic-mute on G522 actually works — we had the wrong fnids. The
firmware uses fn 0x10 (function 1) for state-change events / reads
and fn 0x20 (function 2) for SetState; the standard fn 0x10 SetState
path returns 0x0A NOT_SUPPORTED. Replace the previous "suppress
entirely on G522" quirk with a per-PID rw_options override that
uses the right fnids. Other headsets keep the standard pattern.
2. setRGBClusterEffect (0x0621 fn 0x30) takes effect_id 0x0000 paired
with RGB bytes to mean "Static color" — *not* "Off / Disabled" as
our cluster-info parse had guessed. Add a structured decoder for
getRGBClusterInfo (fn 0x10) that emits a human-readable summary
alongside the raw hex, with effect_id 0x0000 labelled "Static".
Records turn out to be 4 bytes each (effect_id LE u16, slot_idx
LE u16) — most other HID++ fields are BE but this one is LE per
the captured factory-default bytes.
3. Sub-feature 0x0623 is present on G522 but unmapped (it appeared
as `unknown:0623` in the feature-table dump). Add a placeholder
SupportedFeature entry and probe the first 8 functions read-side
so the next bring-up captures whatever responds.