I think it would be very useful to be able to change the weapon properties dynamically.
Properties like damage, range, projectile speed, etc, as well as ability properties such as cooldownPhaseSettings and actionBinding. Currently I believe all of these are read-only.
Use Case - Weapon Upgrades
A common use case for this is upgrading a weapon with player progression. For example, allowing a player to upgrade an existing weapon to give it more range or more damage or reducing its cooldown. If the properties were read-write, then it would be a simple matter of setting the properties to new values.
Current Alternative - Create Separate Templates
I think the only way around this currently is to create a separate template for each weapon upgrade. For example, template 1 would be weapon level 1, template 2 would be weapon level 2, etc. But that gets really cumbersome very quickly, not to mention duplicating everything when just a property or two is changed.