ID/mask filter. Set bits in mask must match; 0 = wildcard. Standard
IDs use 11 bits (0..=0x7FF), extended IDs 29 bits (0..=0x1FFF_FFFF).
fifo selects RX FIFO 0 or 1.
OnceCell::set_or_get writes in place, so the &'static Bus it
returns stays valid for use as IRQ ctx โ unlike values held inside a
Vec or returned from a LazyLock closure, which move into their
final storage.