If it is not unreasonably hard to add these unitTags, I think it would be the way to. The event handler already has way too many arguments IMO, adding new ones would just make it more unreadable.
Lua Code:
function(eventCode, result, isError, abilityName, abilityGraphic, abilityActionSlotType, sourceName, sourceType, targetName, targetType, hitValue, powerType, damageType, log)
In my ideal little world I would like to see something like this:
Lua Code:
function(eventCode, isError, actionResult, abilityId, sourceTag, targetTag, hitValue, powerType, damageType, log)
local abilityName, abilityGraphic, abilityActionSlotType = GetAbilityInfoById(abilityId) -- or make return values the same as GetAbilityInfoByIndex if that is relevant
local sourceName = GetRawUnitName(sourceTag)
local sourceType = GetUnitType(sourceTag)
local targetName = GetRawUnitName(targetTag)
local targetType = GetUnitType(targetTag)
It would also be a nice bonus if you could replace source and target tag with other tags like "player" or "reticleover" when applicable, because that would allow us to filter combat events for specific unitTags.