Newest xdg-desktop-portal won't start without the graphical-session.target started.
https://github.com/flatpak/xdg-desktop-portal/issues/1983
Creating a custom target binding to the graphical-session.target seems to be the solution. I imagine it makes sense to at least make those targets part of the repo so that people don't write 50 versions of the same thing. I see that e.g. Arch already had to add their own targets for sway as sway doesn't seem to want to have them in their repo.
Those targets still need to be started by something but I don't know if you would like to carry this, let alone some startup script setting everything up.
I'm still on river-classic but I imagine that river 0.4 also needs it.