Maps a set of raw fn values onto fan speeds by value, via FanSpeedReceiveMap.
Unlike the positional reading of a top-level SupportedCaps.fanSpeeds list, this is order-independent, which is what
a per-mode list requires: a mode that omits a speed (e.g. fan-only offering [3, 5, 7] — low/medium/high, with no
auto) would have every speed shifted by one if it were zipped against CanonicalFanSpeedOrder.
Maps a set of raw
fnvalues onto fan speeds by value, via FanSpeedReceiveMap.Unlike the positional reading of a top-level
SupportedCaps.fanSpeedslist, this is order-independent, which is what a per-mode list requires: a mode that omits a speed (e.g. fan-only offering[3, 5, 7]— low/medium/high, with noauto) would have every speed shifted by one if it were zipped against CanonicalFanSpeedOrder.