Right now there are two good ways to transfer ammo from one part to another; proxies, and negative ammodrain. Proxies are great for adjacent parts, especially parts that are designed to be modular (see Kroom's fusion cannon for instance). However, they're quite limited in that you need a proxy for every relative location you want to transfer ammo to/from, and the ammostorage name needs to match (meaning if it's called something else, your proxy won't work).
The usual solution is negative ammodrain; even though it's a little laggier, it allows you to easily set a radius of parts that you want to be able to transfer power to, it doesn't require any ammostorage name matching, and it can even be set to transfer ammo to non-source ships. This is great for things like wireless reactors (see Yare's reactor mod), or wireless 'receivers' like in drones++ or my ancient ftl jammer mod.
Negative ammodrain comes with a big downside though; there's currently no way to stop it. If you want a part to have an ammostorage that's immune to proxies, you just change the name of your ammostorage to something unique, blocking more generalized proxies like "BatteryStorage". With negative ammodrain though, it will fill anything that holds that specific ammo type, period. Normally you can work around this by just using a proprietary ammo type to prevent other negative ammodrains from working, but there are cases where you want/need to use a vanilla ammotype for a secondary purpose (for instance if you still want your part to be EMPable).
My proposal is to add an optional IgnoreNegativeAmmoDrain component to ammostorages, with a default of false. As the name implies, it would block an ammostorage component from gaining ammunition from ammodrains, but would still allow the loss of ammunition from ammodrains. An example usage would be to have a weapon that can only be powered by a specific ammo type (or other part), but can still be drained with EBs, EMPs, or any other modded weapon that drains power (which is why you couldn't just add a new ammodrain to EBs/EMPs to solve the issue). Right now attempting to do so can still be powered by various modded parts that use negative ammodrain, possibly preventing said weapon from being properly balanced. For consistency, a similarly-working IgnorePositiveAmmoDrain could be useful as well (though I can't think of any unique applications this would have at the moment).
After writing 90% of this, I realized I forgot to include multiammostorage in my proof, but it's similar enough to proxies in this scenario that it doesn't really make a difference.