anchor.diff:  It also prevents bugs in multi-threaded use cases.
   
   With `Score.isSolutionInitialized()`, it's now possible to quickly and reliably determine if a solution is fully initialized.
  -The method `FeasibleScore.isFeasible()` now also checks if the solution was fully initialized during score calculation.
  +The method `FeasibilityScore.isFeasible()` now also checks if the solution was fully initialized during score calculation.
   
   
   [.upgrade-recipe-major]
  
positive.code: 
  Drools now uses typed `sum()`, `min()`, `max()` and `avg()` functions in `accumulate()` patterns.
  This means that a sum of ints is now an int (instead of a double) and a sum of BigDecimals is now a BigDecimal (without rounding errors).
  This is faster and it also gets rid of the `intValue()` conversations.
  
  Meanwhile, also take advantage of migrating to the clearer `accumulate` form, if you haven't already.
  
  
negative.code: ===  `@CustomShadowVariable`: `sources` type changed
  
  A shadow variable annotated with `@CustomShadowVariable`
  now expects that the `sources` parameter is of type `@PlanningVariableReference`
  instead of `@CustomShadowVariable.Source`.
  
  This way it's consistent with the `variableListenerRef` parameter.
  