You won’t be able to do this without patching for sure (afaik).
I have done a good portion of what’s required to make this work but it’s a tad complicated and you need a variety of assertions.
I’ve also started a store implementation but it’s only the most minimal to test some assumptions and start validating my ideas.
I am working on getting it in a state that is more ready to release as an open-source project but I’m not quite there yet. And even then it would be in just a “toy” state.
Just do a
snap download on any snap and then look at the .assert file that comes with it and you can start to get an idea that it’s not quite so straight-forward as at least you described. Also, if you have interfaces that need to be connected those require assertions.