Use Marker interfaces like `IMoveUnlimitedVertical` and `IMoveUnlimitedHorizontal` and `IMoveUnlimitedDiagonal` Extend square with a targeted by method