anchor.diff:  https://docs.optaplanner.org/latest/optaplanner-docs/html_single/index.html#integrationWithPersistentStorage[serialize
   via JSON or other formats].
   
  -== OptaPlanner Core
  -
   [.upgrade-recipe-major.upgrade-recipe-public-api]
   === `SolverFactory.getScoreDirectorFactory()` replaced by `ScoreManager`
   
  
positive.code: 
  If you programmatically adjust the benchmark configuration, you can use ``BenchmarkAggregatorFrame.createAndDisplay(PlannerBenchmarkConfig)` instead.
  
  
negative.code: }
  ----
  
  [.upgrade-recipe-major]
  === Score calculators become public API
  
  The interfaces `EasyScoreCalculator`, `IncrementalScoreCalculator` and `ConstraintMatchAwareIncrementalScoreCalculator`
  have moved to a new package in the public API.
  Their deprecated counterparts have been removed.
  The deprecated class `org.optaplanner.core.impl.score.director.incremental.AbstractIncrementalScoreCalculator`
  has also been removed.
  Replace the use of the removed interfaces and classes with their counterparts in the public API.
  
  Before in `*EasyScoreCalculator.java*`:
  
  [source,xml]
  ----
    ...
    import org.optaplanner.core.impl.score.director.easy.EasyScoreCalculator;
    ...
  
    public class CloudBalancingEasyScoreCalculator implements EasyScoreCalculator<CloudBalance> {
      ...
    }
  ----
  
  After in `*EasyScoreCalculator.java*`:
  
  [source,xml]
  ----
    ...
    import org.optaplanner.core.api.score.calculator.EasyScoreCalculator;
    ...
  
    public class CloudBalancingEasyScoreCalculator implements EasyScoreCalculator<CloudBalance, HardSoftScore> {
      ...
    }
  ----
  
  Before in `*IncrementalScoreCalculator.java*`:
  
  [source,xml]
  ----
    ...
    import org.optaplanner.core.impl.score.director.incremental.AbstractIncrementalScoreCalculator;
    ...
  
    public class CloudBalancingIncrementalScoreCalculator extends AbstractIncrementalScoreCalculator<CloudBalance> {
      ...
    }
  ----
  
  After in `*IncrementalScoreCalculator.java*`:
  
  [source,xml]
  ----
    ...
    import org.optaplanner.core.api.score.calculator.IncrementalScoreCalculator;
    ...
  
    public class CloudBalancingIncrementalScoreCalculator implements IncrementalScoreCalculator<CloudBalance, HardSoftScore> {
      ...
    }
  ----
  
  Before in `*ConstraintMatchAwareIncrementalScoreCalculator.java*`:
  
  [source,xml]
  ----
    ...
    import org.optaplanner.core.impl.score.director.incremental.AbstractIncrementalScoreCalculator;
    import org.optaplanner.core.impl.score.director.incremental.ConstraintMatchAwareIncrementalScoreCalculator;
    ...
  
    public class CheapTimeConstraintMatchAwareIncrementalScoreCalculator
          extends AbstractIncrementalScoreCalculator<CheapTimeSolution>
          implements ConstraintMatchAwareIncrementalScoreCalculator<CheapTimeSolution> {
      ...
    }
  ----
  
  After in `*ConstraintMatchAwareIncrementalScoreCalculator.java*`:
  
  [source,xml]
  ----
    ...
    import org.optaplanner.core.api.score.calculator.ConstraintMatchAwareIncrementalScoreCalculator;
    ...
  
    public class CheapTimeConstraintMatchAwareIncrementalScoreCalculator
          implements ConstraintMatchAwareIncrementalScoreCalculator<CheapTimeSolution, HardMediumSoftLongScore> {
      ...
    }
  ----
  
  [.upgrade-recipe-major.upgrade-recipe-public-api]
  === `PlannerBenchmarkFactory`: `createFromSolverFactory()` removed
  