import 'package:boardgames_core/commons.dart'; // Hexagon | Square | Circle | ... abstract class Geometry { const Geometry(); bool isOnBoard(CellPosition position); } class Rectangular extends Geometry { final int columns; final int rows; const Rectangular(this.columns, this.rows); @override bool isOnBoard(CellPosition position) { return position.column >= 0 && position.row >= 0 && position.column < columns && position.row < rows; } }