Replace manual distance check with combined targetQuery and
distance query intersection for cleaner spell targeting logic
Fix query combinators to correctly reference self in closures
Introduce SpellTargetQuery abstraction for flexible target filtering.
Replace fixed target types with query-based system supporting union,
intersection, and exclusion of target conditions. Update spells
accordingly.