Hi, bit of a gun nut here, and a first suggestion so I apologize if I am missing any due diligence.
Being brand new here I hesitate to suggest a concrete sweeping change, however I can see a bit of a pattern in red_dot_sight as having a variety of red dots while the reflex tag seems to often be the single panel red dots.
I apologize if I go too far into specifics, but could red_dot_sight become a parent tag for different tags of these two (and maybe separate holographic sights as well)?
I'll tentatively suggest a set that distinguishes these but may be too technical in naming:
create implication trijicon_rmr -> open_emitter_red_dot_sight
create implication aimpoint -> closed_emitter_red_dot_sight
create implication eotech_exps3 -> holographic_sight
create implication holographic_sight -> red_dot_sight
create implication open_emitter_red_dot_sight -> red_dot_sight
create implication closed_emitter_red_dot_sight -> red_dot_sight
This creates three subsets that I feel encompass current red dot sight types, populates them with examples to start, and has the subsets imply red dot sight.
While holographic_sight does violate tag what is seen not known, it does so in the same manner as reflex_sight and can be indicated visually by the boxy nature of holographic sights.
This would require reflex_sight and red_dot_sight to be reorganized accordingly though.
As for laser_sight, is lam_unit widely known enough to be a different name? Just a different name for them, laser aiming modules.