A good community-spec can make this work. As communities can be proxies for relays and perform exactly the functions nostr:npub1dergggklka99wwrs92yz8wdjs952h2ux2ha2ed598ngwu9w7a6fsh9xzpc descrobes (Archive, etc...).
Makes you not run into the backwards-compatibilty trap.
And something like #communikeys gives the admins and the apps build on it the option to handle separate prices/conditions for each content-type.