I am currently writing my persistent data using the same method and found great use of computed module level classes as in their example.
I think that at this point the only true purpose for constructors that I can find are mutating persistent classes (hopefully that’s the right terminology). If there is some use case for them outside of this I haven’t gotten to that skill/knowledge level to use it yet.
I do use them in part with module level computed classes to consolidate my predefined default class values, then pass them into constructor args, but its just organizational it doesn’t actually add any functionality.
I am not sure what the benefit of “pure” classes are but I could see wanting to reconstruct my abilities with new constant values for upgrades and whatnot. It’s just a bit hard to justify when I can just check for upgrade values at the start of my OnUse function, and write to optional function level values.
I doubt unwrapping 1 optional tuple to decide logic once per ability use is going to make a difference. Optionals making everything too easy XD