How does it have anything to do with the game system being used? Just like macros, the underlying question would be game system agnostic. What we're asking is the ability to set the value stored in an attribute through a macro. That's all.
Example: The tracker somewhat does this already. If you type /r 1d20 &{tracker} it will set the value of your token's turn in the turn order. If you type /r 1d20 &{tracker:+} then it will instead add the result of the roll to your current turn value.
What we're asking is simply having the ability a macro to target an ability and then set the value. One possible example of this syntax could be &{selected|Ammo:24} or &{selected|Ammo:@{selected|Ammo} - 1} or even change it so the at sign could have a dual purpose: @{selected|Ammo:@{selected|Ammo} - 1}. In short, order of operations apply here.
- Script encounters a colon in the attribute call.
- Get everything after the colon to the ending brace.
- Script finds @{selected|Ammo} - 1 and attempts to evaluate it.
- Script fails to find a colon in the attribute reference call so the script pulls the attribute value which happens to be 24.
- Performing a replace operation our expression is now 24 - 1. Which evaluates to 23.
- Script has now finished evaluating all mathematical expressions.
- Script now stores the new value in @{selected|Ammo} overwriting the previous.
Once again, it is system agnostic. You say that this adds more human errors? It can have no more harm than a poorly written macro. This really isn't all that different from what already is available. If the developers allowed contributions I would go in there right now and implement it. I'm quite serious about that that by the way,
Riley :).