Gun is type of weapon used in the system, it can be pistol / rifle / shotgun / rocket launcher etc.
Settings of gun are defined by struct F_GunWeaponData.

Each gun should have unique name which is used to differentiate them.

It has various params defining magazine size, accuracy, shooting rate, type of projectile, displayed crosshair etc.

In the system Combat Component stores all data related to guns.
For example Owner using EquipmentComponent reads gun data from equipped gun item and passes it to Combat Component.