Sets of each valid destinations for an origin square.
typedef ValidMoves = IMap<SquareId, ISet<SquareId>>;