This is a bit of a "watch out" that I've come across for Matter device driver development that might be useful to you.
In implementing a Matter driver, your driver will (in almost all case), need to subscribe to device attribute changes. You should be aware that the number of subscriptions supported by a device may be very low (3 per fabric is typical). This is explained in Section 11.1.4.4 ("CapabiltiyMinimaStructType") of the Matter 1.2 Core Specification. This CapabiltiyMinimaStructType structure isn't (yet) decoded on Hubitat, so I don't think drivers can make use of it yet, but I also use HomeAssistant which does decode this and I was unable to find any device where the manufacturer supported more than 3 subscriptions (RGB bulbs, Eve devices, and a few others were checked). My guess is most device manufacturers just don't think about increasing this!
So, if you need more subscriptions than 3, what can you do ...
Fortunately, Matter does provide for a "wildcard" subscription allowing you to subscribe to things like "all endpoints, all clusters, all attribute" in a single subscription. See example below
The wildcard for endpoints is "0xFFFF", for clusters is "0xFFFF_FFFF, and for attributes is also "0xFFFF_FFFF".
if (txtEnable) log.info "Sending command to Subscribe to all device attribute reports with a 1 second minimum report delay, refresh at least every 30 minutes."
String cmd = 'he subscribe 0x0001 0x0700 [{"ep":"0xFFFF","cluster":"0xFFFFFFFF","attr":"0xFFFFFFFF"}]'
sendHubCommand(new hubitat.device.HubAction(cmd, hubitat.device.Protocol.MATTER))
You an also intermix wildcards and non-wildcards to "save" on subscriptions. So, for example, if you want to subscribe to attribute 0x0000 on multiple endpoints, you could use:
String cmd = 'he subscribe 0x0001 0x0700 [{"ep":"0xFFFF","cluster":"0xFFFFFFFF","attr":"0x00000000"}]'
sendHubCommand(new hubitat.device.HubAction(cmd, hubitat.device.Protocol.MATTER))
Wildcards can, of course, cause an increase in the amount of data that gets reported, but many attributes are read-only so they only get reported on a refresh or when the subscription is first reported, and many change slowly. For faster changing attributes, like the on/off state, you likely want very short reporting periods (longer minimum reporting periods can delay triggering Hubitat rules or cause triggers to be missed)