Parse device set information from DBus, and link devices to each other according to it. Add signal for notifying about device set changes.
Emit BAP device set nodes, which the session manager can use to combine the sinks/sources of a device set to a single sink/source.
Emit the actual sinks/sources with media.class=.../Internal to hide them from pipewire-pulse.
Maybe there could be a more "official" way to do this, but this works for now.
Add separate device set routes to the set leader device. Other routes of the set members will be marked as unavailable when the set is active.
Accordingly, return failure for attempts to set these unavailable routes, so that volumes etc. of the "internal" nodes are only controlled via the device set route.
Wireplumber part: wireplumber!500 (merged)
With these changes, the device set appears correctly as a single device in Gnome Settings, and volume control works via the device route. This then makes possible also hardware volume to work, once BlueZ gets support for that.