Sorry for reviving an old post, I came from Vintage Story on Steam Deck which links here.
I'd love for this to be properly implemented, with the fallback method as you mentioned.
The only thing I don't like is having the version as part of the path, It'd make sense to have it as a parameter:
vintagestorymodinstallv2:modname?v=1.2.3
That way you could omit the v param and let it handle to the latest one, or the latest one for the current game version for example.
Also the possibility to handle things as collections/modpacks (which aren't currently suported afaik but one can wish)
vintagestorymodinstallv2:mod/modname?v=1.2.3
vintagestorymodinstallv2:modpack/packname?v=1.2.3
And just in case anyone is interested, on linux there's an ugly workaround (assuming you run with flatpak, but you can edit the script as needed)
I have this script as /home/$USER/.local/bin/exo-open and /home/$USER/.local/bin/xdg-open (remember to set execute permission)
#!/usr/bin/env bash
if echo "$1" | grep -qE '^vintagestorymodinstall?://'; then
flatpak run at.vintagestory.VintageStory -i "${@}"
exit 0
fi
"/usr/bin/$(basename "$0")" "$@"
It sends the mod install directly to vintage story before the real xdg/exo open handles it. Otherwise it calls the real one.
Hacky, but useful, I used something similar to handle links to some domains on different browers.