public abstract bool IsValid(MovementProposed m);
public override bool IsValid(MovementProposed m) => m.Delta.IsCardinal();
public override bool IsValid(MovementProposed m) => m.Type == MovementType.Attack || map.IsWalkable(m.To);
public override bool IsValid(MovementProposed m) => m.Type == MovementType.Attack || !map.IsBlocked(m.To);