Sounds like the description of Radicle. :-) https://radicle.dev/guides/protocol#collaborative-objects