Move
data class Move(val from: Square, val to: Square, val promotionPieceType: PieceType? = null, val isCapture: Boolean = false, val isCastlingKingside: Boolean = false, val isCastlingQueenside: Boolean = false, val isEnPassantCapture: Boolean = false)
Represents a chess move, including source and destination squares, optional promotion, and special move flags.