I see. Yeah, that might be the best way to do it. So far I see…four different ways to approach this idea.
First, the workaround, use of a list to narrow down what ammo a gun can use. This can be done from the gun perspective OR the ammo perspective. Either way this requires the addition of a new property that controls gun-ammo interactions. Both of these would require some way to inform the player of what is or isn’t usable.
If from the ammo perspective, this could be an explicit list of what guns it is or isn’t compatible with. This might be messy. More importantly, any mods adding new weapons might require overwriting the ammo to include their guns on the list of whitlisted or blacklisted guns.
The gun perspective might be easier. It would allow a much shorter list in the weapon’s stat block, description, wherever that tells the player what ammo it can or can’t use. This ALSO has possible complications, if a mod adds new variants of a vanilla ammo type. This could again potentially require overwrites, this time to the guns using that ammo.
Now, the other two methods involve actually codding the ability to handle multiple ammo types. And again, it’s either handled from the gun’s perspective, or the ammo’s. In both cases, it would essentially allow the ammo type entry to accept multiple entries, in the same way multiple materials can be used.
From the gun perspective, this would require adding that option, then you’d need to split off all the various types of ammo to divide them according to what guns can or can’t use them. Mods adding new variants of ammo may or may not require added gun overrides, depending on whether their new ammo can fit into an existing ammo type.
The ammo perspective for this would essentially make it so an ammo belongs to multiple types, while the guns themselves have only one ammo type that determines what they can use. This is potentially the most convoluted and difficult way to add it.