pub(super) fn closest_portal_candidate( candidates: impl IntoIterator<Item = BlockPos>, approximate_exit_pos: BlockPos, is_valid: impl Fn(BlockPos) -> bool, ) -> Option<BlockPos>