Called when a square is tapped. Note that if a piece is above this square, it will absorb the tap, so both onTap functions need to be handled.
final Function(int)? onTap;