public abstract Task Apply(Element element, Piece launcher, SkillArea area);
public abstract float Heuristic(Element element, Piece launcher, SkillArea area);
public virtual void Start(Piece launcher) { area = new SkillArea(); this.launcher = launcher; }