@Override
	public final boolean equals(@Nullable final Object obj) {
		if (obj instanceof ChessMovement) {
			final ChessMovement other = (ChessMovement) obj;
			
			return from.equals(other.from) && to.equals(other.to) && sourcePiece.equals(other.sourcePiece) && Objects.equal(attackedPiece, other.attackedPiece) && special.equals(other.special);
		}
		
		return false;
	}