castling: no need for CastlingError, just use CheckError