Attributes & Properties Differences
It might look that attributes and properties are very similar but in reality they are conceptually very different.
Attributes can not be mutated outside buffs effects
Attributes can not be changed at all outside the buffs effects system. This means they can not be mutated with arbitrary values in any way from neither Lua or Rust APIs.
Properties can not be mutated by buffs effects
In the other hand, properties are not visible from the buffs effects system beyond read access to a copy of they values on conditionals expression evaluation on runtime. Properties are only mutable through the Lua and Rust APIs.
Attributes only accept f64 and i64 values
Attribute values can only contain Value instances that are created from
values of type f64 or i64 exclusively.
Properties can accept any kind of values
Properties values can contain any Value instance created from any valid
value kind, that is f64, i64, bool, String or nil.
Attributes always appears in condition expressions
Entity's attributes are always accessible to condition expressions through
the virtual object self within the expression.
Properties can be out-out to not appear in condition expressions
Properties can be hidden from condition expressions at will.