Opinions: is it better to have `onDamage` called with negative damage, or a separate callback? I'm really split on that.