public static float TryGetCost(this CastSpellDescriptor spell) => !spell ? 0 : spell.EnergyCost;
 public static SpellCategory TryGetCategory(this CastSpellDescriptor spell) => !spell ? SpellCategory.None : spell.Category;
 public static SpellTarget TryGetTarget(this CastSpellDescriptor spell) => !spell ? SpellTarget.None : spell.Target;
 public static string TryGetName(this CastSpellDescriptor spell) => !spell ? "" : spell.GetIdent();