Also, it's not like a DDS is hard to use either :\
JASS:
struct Test extends array
private static method onDamage takes nothing returns nothing
endmethod
implement DDS
endstruct
Yours is really a template as it is, and not a very good one at that (as people were saying before).
a DDS should be able to do a few things
#1: detect the damage type (physical, spell, code)
#2: detect the source of the damage (attacker)
#3: detect the target of the damage (defender)
#4: provide a way for people to run their code when a damage event occurs without having to modify your code (no templates)
#5: provide a way for people to decide what order their code will run in (priorities)
#6: detect damage amount accurately (every piece of damage, not bulk, 100% of the time, 0% chance of failure)
#7: provide a way to modify that damage (including saving the unit if the damage would have killed the unit and the damage was set to 0)
#8: apply code to specific units efficiently with priorities (damage events specific to a unit) and work this in with any global events
If your thing does not meet all of the criteria, chances are that it's not very good ;p