In recent EXP update (1.2.1.66) attachment obstruction system was expended for the needs of suppressors. New SCR_WeaponAttachmentObstructionAttributes attribute allows to obstruct attachments by type or have a required attachment type installed on weapon. But from modding perspective this system makes no sense, and looks very proprietary and useless for anything except existing vanilla suppressors. Let me elaborate on existing flaws and propose a solution.
1. Existing flaws.
System in its current state doesn't allow players to block certain weapon slots. We can only block global slot types. This limits use cases to some proprietary attachments. F.e: I want to block a forward picatiny slot on handguard if i have a long scope attached. I go to my scope and set obstructed attachment types to AttachmentRIS1913. But instead of blocking top picatiny only, i block all of them, including bottom one, and side ones.
Same goes for any kind of picatiny adapters. You can set a requirement for custom adapter attachment type name on your scope, but this will affect all weapons. F.e Dovetail to picatiny adapter on AKs.
2. Possible solution.
Instead of defining obstructions in attachment, allow us to define them in slots. Attachment slots already have ID inside prefab, if we could point at one slot from other, that would allow us to define exact slots obstructed by attachment. This solves problem with global attachment type obstruction.
Second part of this solution is allow us to have nested attachments (attachments on attachments). Instead of having required attachments we can simply put attachment on attachment. For better usability slots can be merged in inventory preview (for user interface only, game should still see them with proper hierarchy).
First part does have its own flaws. F.e you cant define exact attachment to block slots, but nothing stops you from having lets say, 2 optic slots, one for small ones, and one for long ones. Slot for long optics is blocked when short optic is installed. And slot for short optic AND is blocked by long optic when installed. This is slightly complicated but best solution for the first example from Flaws part.
It is a system complication, but i dont see any cons in having this system over current one.