squares method
Implementation
@override
List<int> squares(BoardSize size) {
List<Direction> dirs = [...directions];
dirs.removeWhere(
(e) => e.h < 0 || e.v < 0 || e.h > size.maxFile || e.v > size.maxRank,
);
return dirs.map((e) => size.square(e.h, e.v)).toList();
}