environmentMode, solutionDescriptor);
solver.setScoreDirectorFactory(scoreDirectorFactory);
ScoreDefinition scoreDefinition = scoreDirectorFactory.getScoreDefinition();
Termination termination = terminationConfig.buildTermination(scoreDefinition, basicPlumbingTermination);
solver.setTermination(termination);
BestSolutionRecaller bestSolutionRecaller = buildBestSolutionRecaller(environmentMode);
solver.setBestSolutionRecaller(bestSolutionRecaller);
if (CollectionUtils.isEmpty(solverPhaseConfigList)) {
throw new IllegalArgumentException(
"Configure at least 1 phase (for example <localSearch>) in the solver configuration.");
}