Skip navigation links
  • Overview
  • Package
  • Class
  • Use
  • Tree
  • Deprecated
  • Index
  • Help

Deprecated API

Contents

  • Terminally Deprecated
  • Packages
  • Interfaces
  • Classes
  • Enum Classes
  • Record Classes
  • Annotation Interfaces
  • Fields
  • Methods
  • Constructors
  • Enum Constants
  • Annotation Interface Elements
  • Terminally Deprecated Elements
    Element
    Description
    ai.timefold.solver.core.api.domain.constraintweight.ConstraintConfiguration
    Use ConstraintWeightOverrides instead.
    ai.timefold.solver.core.api.domain.constraintweight.ConstraintConfigurationProvider
    Use ConstraintWeightOverrides instead.
    ai.timefold.solver.core.api.domain.constraintweight.ConstraintWeight
    Use ConstraintWeightOverrides instead.
    ai.timefold.solver.core.api.domain.lookup.LookUpStrategyType
    When multi-threaded solving, ensure your domain classes use @PlanningId instead.
    ai.timefold.solver.core.api.domain.solution.PlanningScore.NullScoreDefinition
    ai.timefold.solver.core.api.domain.solution.PlanningScore.scoreDefinitionClass()
    Support for custom scores is deprecated and will be removed in Timefold Solver 2.0.
    ai.timefold.solver.core.api.domain.solution.PlanningSolution.lookUpStrategyType()
    When multi-threaded solving, ensure your domain classes use @PlanningId instead.
    ai.timefold.solver.core.api.domain.valuerange.ValueRangeFactory.createDoubleValueRange(double, double)
    Prefer ValueRangeFactory.createBigDecimalValueRange(BigDecimal, BigDecimal).
    ai.timefold.solver.core.api.domain.variable.CustomShadowVariable
    Deprecated in favor of ShadowVariable (normal shadow variable with CustomShadowVariable.variableListenerClass()) and PiggybackShadowVariable (if CustomShadowVariable.variableListenerRef() is used).
    ai.timefold.solver.core.api.domain.variable.PlanningVariable.nullable()
    Use PlanningVariable.allowsUnassigned() instead.
    ai.timefold.solver.core.api.score.AbstractBendableScore
    Implement IBendableScore instead.
    ai.timefold.solver.core.api.score.AbstractScore
    Implement Score instead.
    ai.timefold.solver.core.api.score.analysis.ConstraintAnalysis.constraintPackage()
    Do not rely on constraint package in user code.
    ai.timefold.solver.core.api.score.analysis.ScoreAnalysis.getConstraintAnalysis(String, String)
    Use ScoreAnalysis.getConstraintAnalysis(String) instead.
    ai.timefold.solver.core.api.score.buildin.bendable.BendableScore.getHardOrSoftScore(int)
    Use BendableScore.hardOrSoftScore(int) instead.
    ai.timefold.solver.core.api.score.buildin.bendable.BendableScore.getHardScore(int)
    Use BendableScore.hardScore(int) instead.
    ai.timefold.solver.core.api.score.buildin.bendable.BendableScore.getHardScores()
    Use BendableScore.hardScores() instead.
    ai.timefold.solver.core.api.score.buildin.bendable.BendableScore.getSoftScore(int)
    Use BendableScore.softScore(int) instead.
    ai.timefold.solver.core.api.score.buildin.bendable.BendableScore.getSoftScores()
    Use BendableScore.softScores() instead.
    ai.timefold.solver.core.api.score.buildin.bendable.BendableScore.ofUninitialized(int, int[], int[])
    Use BendableScore.of(int[], int[]) instead.
    ai.timefold.solver.core.api.score.buildin.bendablebigdecimal.BendableBigDecimalScore.getHardOrSoftScore(int)
    Use BendableBigDecimalScore.hardOrSoftScore(int) instead.
    ai.timefold.solver.core.api.score.buildin.bendablebigdecimal.BendableBigDecimalScore.getHardScore(int)
    Use BendableBigDecimalScore.hardScore(int) instead.
    ai.timefold.solver.core.api.score.buildin.bendablebigdecimal.BendableBigDecimalScore.getHardScores()
    Use BendableBigDecimalScore.hardScores() instead.
    ai.timefold.solver.core.api.score.buildin.bendablebigdecimal.BendableBigDecimalScore.getSoftScore(int)
    Use BendableBigDecimalScore.softScore(int) instead.
    ai.timefold.solver.core.api.score.buildin.bendablebigdecimal.BendableBigDecimalScore.getSoftScores()
    Use BendableBigDecimalScore.softScores() instead.
    ai.timefold.solver.core.api.score.buildin.bendablebigdecimal.BendableBigDecimalScore.ofUninitialized(int, BigDecimal[], BigDecimal[])
    Use BendableBigDecimalScore.of(BigDecimal[], BigDecimal[]) instead.
    ai.timefold.solver.core.api.score.buildin.bendablelong.BendableLongScore.getHardOrSoftScore(int)
    Use BendableLongScore.hardOrSoftScore(int) instead.
    ai.timefold.solver.core.api.score.buildin.bendablelong.BendableLongScore.getHardScore(int)
    Use BendableLongScore.hardScore(int) instead.
    ai.timefold.solver.core.api.score.buildin.bendablelong.BendableLongScore.getHardScores()
    Use BendableLongScore.hardScores() instead.
    ai.timefold.solver.core.api.score.buildin.bendablelong.BendableLongScore.getSoftScore(int)
    Use BendableLongScore.softScore(int) instead.
    ai.timefold.solver.core.api.score.buildin.bendablelong.BendableLongScore.getSoftScores()
    Use BendableLongScore.softScores() instead.
    ai.timefold.solver.core.api.score.buildin.bendablelong.BendableLongScore.ofUninitialized(int, long[], long[])
    Use BendableLongScore.of(long[], long[]) instead.
    ai.timefold.solver.core.api.score.buildin.hardmediumsoft.HardMediumSoftScore.getHardScore()
    Use HardMediumSoftScore.hardScore() instead.
    ai.timefold.solver.core.api.score.buildin.hardmediumsoft.HardMediumSoftScore.getMediumScore()
    Use HardMediumSoftScore.mediumScore() instead.
    ai.timefold.solver.core.api.score.buildin.hardmediumsoft.HardMediumSoftScore.getSoftScore()
    Use HardMediumSoftScore.softScore() instead.
    ai.timefold.solver.core.api.score.buildin.hardmediumsoft.HardMediumSoftScore.ofUninitialized(int, int, int, int)
    Use HardMediumSoftScore.of(int, int, int) instead.
    ai.timefold.solver.core.api.score.buildin.hardmediumsoftbigdecimal.HardMediumSoftBigDecimalScore.getHardScore()
    Use HardMediumSoftBigDecimalScore.hardScore() instead.
    ai.timefold.solver.core.api.score.buildin.hardmediumsoftbigdecimal.HardMediumSoftBigDecimalScore.getMediumScore()
    Use HardMediumSoftBigDecimalScore.mediumScore() instead.
    ai.timefold.solver.core.api.score.buildin.hardmediumsoftbigdecimal.HardMediumSoftBigDecimalScore.getSoftScore()
    Use HardMediumSoftBigDecimalScore.softScore() instead.
    ai.timefold.solver.core.api.score.buildin.hardmediumsoftbigdecimal.HardMediumSoftBigDecimalScore.ofUninitialized(int, BigDecimal, BigDecimal, BigDecimal)
    Use HardMediumSoftBigDecimalScore.of(BigDecimal, BigDecimal, BigDecimal) instead.
    ai.timefold.solver.core.api.score.buildin.hardmediumsoftlong.HardMediumSoftLongScore.getHardScore()
    Use HardMediumSoftLongScore.hardScore() instead.
    ai.timefold.solver.core.api.score.buildin.hardmediumsoftlong.HardMediumSoftLongScore.getMediumScore()
    Use HardMediumSoftLongScore.mediumScore() instead.
    ai.timefold.solver.core.api.score.buildin.hardmediumsoftlong.HardMediumSoftLongScore.getSoftScore()
    Use HardMediumSoftLongScore.softScore() instead.
    ai.timefold.solver.core.api.score.buildin.hardmediumsoftlong.HardMediumSoftLongScore.ofUninitialized(int, long, long, long)
    Use HardMediumSoftLongScore.of(long, long, long) instead.
    ai.timefold.solver.core.api.score.buildin.hardsoft.HardSoftScore.getHardScore()
    Use HardSoftScore.hardScore() instead.
    ai.timefold.solver.core.api.score.buildin.hardsoft.HardSoftScore.getSoftScore()
    Use HardSoftScore.softScore() instead.
    ai.timefold.solver.core.api.score.buildin.hardsoft.HardSoftScore.ofUninitialized(int, int, int)
    Use HardSoftScore.of(int, int) instead.
    ai.timefold.solver.core.api.score.buildin.hardsoftbigdecimal.HardSoftBigDecimalScore.getHardScore()
    Use HardSoftBigDecimalScore.hardScore() instead.
    ai.timefold.solver.core.api.score.buildin.hardsoftbigdecimal.HardSoftBigDecimalScore.getSoftScore()
    Use HardSoftBigDecimalScore.softScore() instead.
    ai.timefold.solver.core.api.score.buildin.hardsoftbigdecimal.HardSoftBigDecimalScore.ofUninitialized(int, BigDecimal, BigDecimal)
    Use HardSoftBigDecimalScore.of(BigDecimal, BigDecimal) instead.
    ai.timefold.solver.core.api.score.buildin.hardsoftlong.HardSoftLongScore.getHardScore()
    Use HardSoftLongScore.hardScore() instead.
    ai.timefold.solver.core.api.score.buildin.hardsoftlong.HardSoftLongScore.getSoftScore()
    Use HardSoftLongScore.softScore() instead.
    ai.timefold.solver.core.api.score.buildin.hardsoftlong.HardSoftLongScore.ofUninitialized(int, long, long)
    Use HardSoftLongScore.of(long, long) instead.
    ai.timefold.solver.core.api.score.buildin.simple.SimpleScore.getScore()
    Use SimpleScore.score() instead.
    ai.timefold.solver.core.api.score.buildin.simple.SimpleScore.ofUninitialized(int, int)
    Use SimpleScore.of(int) instead.
    ai.timefold.solver.core.api.score.buildin.simplebigdecimal.SimpleBigDecimalScore.getScore()
    Use SimpleBigDecimalScore.score() instead.
    ai.timefold.solver.core.api.score.buildin.simplebigdecimal.SimpleBigDecimalScore.ofUninitialized(int, BigDecimal)
    Use SimpleBigDecimalScore.of(BigDecimal) instead.
    ai.timefold.solver.core.api.score.buildin.simplelong.SimpleLongScore.getScore()
    Use SimpleLongScore.score() instead.
    ai.timefold.solver.core.api.score.buildin.simplelong.SimpleLongScore.ofUninitialized(int, long)
    Use SimpleLongScore.of(long) instead.
    ai.timefold.solver.core.api.score.constraint.ConstraintMatch(Constraint, ConstraintJustification, Collection<Object>, Score_)
    Prefer ConstraintMatch(ConstraintRef, ConstraintJustification, Collection, Score).
    ai.timefold.solver.core.api.score.constraint.ConstraintMatch(String, String, ConstraintJustification, Collection<Object>, Score_)
    Prefer ConstraintMatch(ConstraintRef, ConstraintJustification, Collection, Score).
    ai.timefold.solver.core.api.score.constraint.ConstraintMatch(String, String, String, ConstraintJustification, Collection<Object>, Score_)
    Prefer ConstraintMatch(ConstraintRef, ConstraintJustification, Collection, Score).
    ai.timefold.solver.core.api.score.constraint.ConstraintMatch(String, String, List<Object>, Score_)
    Prefer ConstraintMatch(ConstraintRef, ConstraintJustification, Collection, Score).
    ai.timefold.solver.core.api.score.constraint.ConstraintMatch.getConstraintId()
    Prefer ConstraintMatch.getConstraintRef() instead.
    ai.timefold.solver.core.api.score.constraint.ConstraintMatch.getConstraintName()
    Prefer ConstraintMatch.getConstraintRef() instead.
    ai.timefold.solver.core.api.score.constraint.ConstraintMatch.getConstraintPackage()
    Prefer ConstraintMatch.getConstraintRef() instead.
    ai.timefold.solver.core.api.score.constraint.ConstraintMatch.getJustificationList()
    Prefer ConstraintMatch.getJustification() or ConstraintMatch.getIndictedObjectList().
    ai.timefold.solver.core.api.score.constraint.ConstraintMatchTotal.composeConstraintId(String, String)
    Prefer ConstraintRef.of(String, String).
    ai.timefold.solver.core.api.score.constraint.ConstraintMatchTotal.getConstraintId()
    Prefer ConstraintMatchTotal.getConstraintRef().
    ai.timefold.solver.core.api.score.constraint.ConstraintMatchTotal.getConstraintName()
    Prefer ConstraintMatchTotal.getConstraintRef().
    ai.timefold.solver.core.api.score.constraint.ConstraintMatchTotal.getConstraintPackage()
    Prefer ConstraintMatchTotal.getConstraintRef().
    ai.timefold.solver.core.api.score.constraint.Indictment.getJustification()
    Prefer Indictment.getIndictedObject().
    ai.timefold.solver.core.api.score.director.ScoreDirector.afterEntityAdded(Object)
    Calling this method by user code is not recommended and will lead to unforeseen consequences. Use ProblemChange instead.
    ai.timefold.solver.core.api.score.director.ScoreDirector.afterEntityRemoved(Object)
    Calling this method by user code is not recommended and will lead to unforeseen consequences. Use ProblemChange instead.
    ai.timefold.solver.core.api.score.director.ScoreDirector.afterProblemFactAdded(Object)
    Calling this method by user code is not recommended and will lead to unforeseen consequences. Use ProblemChange instead.
    ai.timefold.solver.core.api.score.director.ScoreDirector.afterProblemFactRemoved(Object)
    Calling this method by user code is not recommended and will lead to unforeseen consequences. Use ProblemChange instead.
    ai.timefold.solver.core.api.score.director.ScoreDirector.afterProblemPropertyChanged(Object)
    Calling this method by user code is not recommended and will lead to unforeseen consequences. Use ProblemChange instead.
    ai.timefold.solver.core.api.score.director.ScoreDirector.beforeEntityAdded(Object)
    Calling this method by user code is not recommended and will lead to unforeseen consequences. Use ProblemChange instead.
    ai.timefold.solver.core.api.score.director.ScoreDirector.beforeEntityRemoved(Object)
    Calling this method by user code is not recommended and will lead to unforeseen consequences. Use ProblemChange instead.
    ai.timefold.solver.core.api.score.director.ScoreDirector.beforeProblemFactAdded(Object)
    Calling this method by user code is not recommended and will lead to unforeseen consequences. Use ProblemChange instead.
    ai.timefold.solver.core.api.score.director.ScoreDirector.beforeProblemFactRemoved(Object)
    Calling this method by user code is not recommended and will lead to unforeseen consequences. Use ProblemChange instead.
    ai.timefold.solver.core.api.score.director.ScoreDirector.beforeProblemPropertyChanged(Object)
    Calling this method by user code is not recommended and will lead to unforeseen consequences. Use ProblemChange instead.
    ai.timefold.solver.core.api.score.IBendableScore.getHardLevelsSize()
    Use IBendableScore.hardLevelsSize() instead.
    ai.timefold.solver.core.api.score.IBendableScore.getLevelsSize()
    Use IBendableScore.levelsSize() instead.
    ai.timefold.solver.core.api.score.IBendableScore.getSoftLevelsSize()
    Use IBendableScore.softLevelsSize() instead.
    ai.timefold.solver.core.api.score.Score.getInitScore()
    No point in using this method anymore.
    ai.timefold.solver.core.api.score.Score.initScore()
    No point in using this method anymore.
    ai.timefold.solver.core.api.score.Score.isSolutionInitialized()
    No point in using this method anymore.
    ai.timefold.solver.core.api.score.Score.withInitScore(int)
    No point in using this method anymore.
    ai.timefold.solver.core.api.score.ScoreManager
    Use SolutionManager instead.
    ai.timefold.solver.core.api.score.stream.bi.BiConstraintStream.ifExistsIncludingNullVars(Class<C>, TriJoiner<A, B, C>)
    Prefer BiConstraintStream.ifExistsIncludingUnassigned(Class, TriJoiner).
    ai.timefold.solver.core.api.score.stream.bi.BiConstraintStream.ifExistsIncludingNullVars(Class<C>, TriJoiner<A, B, C>...)
    Prefer BiConstraintStream.ifExistsIncludingUnassigned(Class, TriJoiner...).
    ai.timefold.solver.core.api.score.stream.bi.BiConstraintStream.ifExistsIncludingNullVars(Class<C>, TriJoiner<A, B, C>, TriJoiner<A, B, C>)
    Prefer BiConstraintStream.ifExistsIncludingUnassigned(Class, TriJoiner, TriJoiner).
    ai.timefold.solver.core.api.score.stream.bi.BiConstraintStream.ifExistsIncludingNullVars(Class<C>, TriJoiner<A, B, C>, TriJoiner<A, B, C>, TriJoiner<A, B, C>)
    Prefer BiConstraintStream.ifExistsIncludingUnassigned(Class, TriJoiner, TriJoiner, TriJoiner).
    ai.timefold.solver.core.api.score.stream.bi.BiConstraintStream.ifExistsIncludingNullVars(Class<C>, TriJoiner<A, B, C>, TriJoiner<A, B, C>, TriJoiner<A, B, C>, TriJoiner<A, B, C>)
    Prefer BiConstraintStream.ifExistsIncludingUnassigned(Class, TriJoiner, TriJoiner, TriJoiner, TriJoiner).
    ai.timefold.solver.core.api.score.stream.bi.BiConstraintStream.ifNotExistsIncludingNullVars(Class<C>, TriJoiner<A, B, C>)
    Prefer BiConstraintStream.ifNotExistsIncludingUnassigned(Class, TriJoiner).
    ai.timefold.solver.core.api.score.stream.bi.BiConstraintStream.ifNotExistsIncludingNullVars(Class<C>, TriJoiner<A, B, C>...)
    Prefer BiConstraintStream.ifNotExistsIncludingUnassigned(Class, TriJoiner...).
    ai.timefold.solver.core.api.score.stream.bi.BiConstraintStream.ifNotExistsIncludingNullVars(Class<C>, TriJoiner<A, B, C>, TriJoiner<A, B, C>)
    Prefer BiConstraintStream.ifNotExistsIncludingUnassigned(Class, TriJoiner, TriJoiner).
    ai.timefold.solver.core.api.score.stream.bi.BiConstraintStream.ifNotExistsIncludingNullVars(Class<C>, TriJoiner<A, B, C>, TriJoiner<A, B, C>, TriJoiner<A, B, C>)
    Prefer BiConstraintStream.ifNotExistsIncludingUnassigned(Class, TriJoiner, TriJoiner, TriJoiner).
    ai.timefold.solver.core.api.score.stream.bi.BiConstraintStream.ifNotExistsIncludingNullVars(Class<C>, TriJoiner<A, B, C>, TriJoiner<A, B, C>, TriJoiner<A, B, C>, TriJoiner<A, B, C>)
    Prefer BiConstraintStream.ifNotExistsIncludingUnassigned(Class, TriJoiner, TriJoiner, TriJoiner, TriJoiner).
    ai.timefold.solver.core.api.score.stream.bi.BiConstraintStream.impact(String, Score<?>, ToIntBiFunction<A, B>)
    Prefer BiConstraintStream.impact(Score, ToIntBiFunction).
    ai.timefold.solver.core.api.score.stream.bi.BiConstraintStream.impact(String, String, Score<?>, ToIntBiFunction<A, B>)
    Prefer BiConstraintStream.impact(Score, ToIntBiFunction).
    ai.timefold.solver.core.api.score.stream.bi.BiConstraintStream.impactBigDecimal(String, Score<?>, BiFunction<A, B, BigDecimal>)
    Prefer BiConstraintStream.impactBigDecimal(Score, BiFunction).
    ai.timefold.solver.core.api.score.stream.bi.BiConstraintStream.impactBigDecimal(String, String, Score<?>, BiFunction<A, B, BigDecimal>)
    Prefer BiConstraintStream.impactBigDecimal(Score, BiFunction).
    ai.timefold.solver.core.api.score.stream.bi.BiConstraintStream.impactConfigurable()
    Prefer BiConstraintStream.impact(Score) and ConstraintWeightOverrides.
    ai.timefold.solver.core.api.score.stream.bi.BiConstraintStream.impactConfigurable(String, String, ToIntBiFunction<A, B>)
    Prefer BiConstraintStream.impact(Score, ToIntBiFunction) and ConstraintWeightOverrides.
    ai.timefold.solver.core.api.score.stream.bi.BiConstraintStream.impactConfigurable(String, ToIntBiFunction<A, B>)
    Prefer BiConstraintStream.impact(Score, ToIntBiFunction) and ConstraintWeightOverrides.
    ai.timefold.solver.core.api.score.stream.bi.BiConstraintStream.impactConfigurable(ToIntBiFunction<A, B>)
    Prefer BiConstraintStream.impact(Score, ToIntBiFunction) and ConstraintWeightOverrides.
    ai.timefold.solver.core.api.score.stream.bi.BiConstraintStream.impactConfigurableBigDecimal(String, String, BiFunction<A, B, BigDecimal>)
    Prefer BiConstraintStream.impactBigDecimal(Score, BiFunction) and ConstraintWeightOverrides.
    ai.timefold.solver.core.api.score.stream.bi.BiConstraintStream.impactConfigurableBigDecimal(String, BiFunction<A, B, BigDecimal>)
    Prefer BiConstraintStream.impactBigDecimal(Score, BiFunction) and ConstraintWeightOverrides.
    ai.timefold.solver.core.api.score.stream.bi.BiConstraintStream.impactConfigurableBigDecimal(BiFunction<A, B, BigDecimal>)
    Prefer BiConstraintStream.impactBigDecimal(Score, BiFunction) and ConstraintWeightOverrides.
    ai.timefold.solver.core.api.score.stream.bi.BiConstraintStream.impactConfigurableLong(String, String, ToLongBiFunction<A, B>)
    Prefer BiConstraintStream.impactLong(Score, ToLongBiFunction) and ConstraintWeightOverrides.
    ai.timefold.solver.core.api.score.stream.bi.BiConstraintStream.impactConfigurableLong(String, ToLongBiFunction<A, B>)
    Prefer BiConstraintStream.impactLong(Score, ToLongBiFunction) and ConstraintWeightOverrides.
    ai.timefold.solver.core.api.score.stream.bi.BiConstraintStream.impactConfigurableLong(ToLongBiFunction<A, B>)
    Prefer BiConstraintStream.impactLong(Score, ToLongBiFunction) and ConstraintWeightOverrides.
    ai.timefold.solver.core.api.score.stream.bi.BiConstraintStream.impactLong(String, Score<?>, ToLongBiFunction<A, B>)
    Prefer BiConstraintStream.impactLong(Score, ToLongBiFunction).
    ai.timefold.solver.core.api.score.stream.bi.BiConstraintStream.impactLong(String, String, Score<?>, ToLongBiFunction<A, B>)
    Prefer BiConstraintStream.impactLong(Score, ToLongBiFunction).
    ai.timefold.solver.core.api.score.stream.bi.BiConstraintStream.penalize(String, Score<?>, ToIntBiFunction<A, B>)
    Prefer BiConstraintStream.penalize(Score, ToIntBiFunction).
    ai.timefold.solver.core.api.score.stream.bi.BiConstraintStream.penalize(String, String, Score<?>, ToIntBiFunction<A, B>)
    Prefer BiConstraintStream.penalize(Score, ToIntBiFunction).
    ai.timefold.solver.core.api.score.stream.bi.BiConstraintStream.penalizeBigDecimal(String, Score<?>, BiFunction<A, B, BigDecimal>)
    Prefer BiConstraintStream.penalizeBigDecimal(Score, BiFunction).
    ai.timefold.solver.core.api.score.stream.bi.BiConstraintStream.penalizeBigDecimal(String, String, Score<?>, BiFunction<A, B, BigDecimal>)
    Prefer BiConstraintStream.penalizeBigDecimal(Score, BiFunction).
    ai.timefold.solver.core.api.score.stream.bi.BiConstraintStream.penalizeConfigurable()
    Prefer BiConstraintStream.penalize(Score) and ConstraintWeightOverrides.
    ai.timefold.solver.core.api.score.stream.bi.BiConstraintStream.penalizeConfigurable(String, String, ToIntBiFunction<A, B>)
    Prefer BiConstraintStream.penalize(Score, ToIntBiFunction) and ConstraintWeightOverrides.
    ai.timefold.solver.core.api.score.stream.bi.BiConstraintStream.penalizeConfigurable(String, ToIntBiFunction<A, B>)
    Prefer BiConstraintStream.penalize(Score, ToIntBiFunction) and ConstraintWeightOverrides.
    ai.timefold.solver.core.api.score.stream.bi.BiConstraintStream.penalizeConfigurable(ToIntBiFunction<A, B>)
    Prefer BiConstraintStream.penalize(Score, ToIntBiFunction) and ConstraintWeightOverrides.
    ai.timefold.solver.core.api.score.stream.bi.BiConstraintStream.penalizeConfigurableBigDecimal(String, String, BiFunction<A, B, BigDecimal>)
    Prefer BiConstraintStream.penalizeBigDecimal(Score, BiFunction) and ConstraintWeightOverrides.
    ai.timefold.solver.core.api.score.stream.bi.BiConstraintStream.penalizeConfigurableBigDecimal(String, BiFunction<A, B, BigDecimal>)
    Prefer BiConstraintStream.penalizeBigDecimal(Score, BiFunction) and ConstraintWeightOverrides.
    ai.timefold.solver.core.api.score.stream.bi.BiConstraintStream.penalizeConfigurableBigDecimal(BiFunction<A, B, BigDecimal>)
    Prefer BiConstraintStream.penalizeBigDecimal(Score, BiFunction) and ConstraintWeightOverrides.
    ai.timefold.solver.core.api.score.stream.bi.BiConstraintStream.penalizeConfigurableLong(String, String, ToLongBiFunction<A, B>)
    Prefer BiConstraintStream.penalizeLong(Score, ToLongBiFunction) and ConstraintWeightOverrides.
    ai.timefold.solver.core.api.score.stream.bi.BiConstraintStream.penalizeConfigurableLong(String, ToLongBiFunction<A, B>)
    Prefer BiConstraintStream.penalizeLong(Score, ToLongBiFunction) and ConstraintWeightOverrides.
    ai.timefold.solver.core.api.score.stream.bi.BiConstraintStream.penalizeConfigurableLong(ToLongBiFunction<A, B>)
    Prefer BiConstraintStream.penalizeLong(Score, ToLongBiFunction) and ConstraintWeightOverrides.
    ai.timefold.solver.core.api.score.stream.bi.BiConstraintStream.penalizeLong(String, Score<?>, ToLongBiFunction<A, B>)
    Prefer BiConstraintStream.penalizeLong(Score, ToLongBiFunction).
    ai.timefold.solver.core.api.score.stream.bi.BiConstraintStream.penalizeLong(String, String, Score<?>, ToLongBiFunction<A, B>)
    Prefer BiConstraintStream.penalizeLong(Score, ToLongBiFunction).
    ai.timefold.solver.core.api.score.stream.bi.BiConstraintStream.reward(String, Score<?>, ToIntBiFunction<A, B>)
    Prefer BiConstraintStream.reward(Score, ToIntBiFunction).
    ai.timefold.solver.core.api.score.stream.bi.BiConstraintStream.reward(String, String, Score<?>, ToIntBiFunction<A, B>)
    Prefer BiConstraintStream.reward(Score, ToIntBiFunction).
    ai.timefold.solver.core.api.score.stream.bi.BiConstraintStream.rewardBigDecimal(String, Score<?>, BiFunction<A, B, BigDecimal>)
    Prefer BiConstraintStream.rewardBigDecimal(Score, BiFunction).
    ai.timefold.solver.core.api.score.stream.bi.BiConstraintStream.rewardBigDecimal(String, String, Score<?>, BiFunction<A, B, BigDecimal>)
    Prefer BiConstraintStream.rewardBigDecimal(Score, BiFunction).
    ai.timefold.solver.core.api.score.stream.bi.BiConstraintStream.rewardConfigurable()
    Prefer BiConstraintStream.reward(Score, ToIntBiFunction) and ConstraintWeightOverrides.
    ai.timefold.solver.core.api.score.stream.bi.BiConstraintStream.rewardConfigurable(String, ToIntBiFunction<A, B>)
    Prefer BiConstraintStream.reward(Score, ToIntBiFunction) and ConstraintWeightOverrides.
    ai.timefold.solver.core.api.score.stream.bi.BiConstraintStream.rewardConfigurable(ToIntBiFunction<A, B>)
    Prefer BiConstraintStream.reward(Score, ToIntBiFunction) and ConstraintWeightOverrides.
    ai.timefold.solver.core.api.score.stream.bi.BiConstraintStream.rewardConfigurableBigDecimal(String, String, BiFunction<A, B, BigDecimal>)
    Prefer BiConstraintStream.rewardBigDecimal(Score, BiFunction) and ConstraintWeightOverrides.
    ai.timefold.solver.core.api.score.stream.bi.BiConstraintStream.rewardConfigurableBigDecimal(String, BiFunction<A, B, BigDecimal>)
    Prefer BiConstraintStream.rewardBigDecimal(Score, BiFunction) and ConstraintWeightOverrides.
    ai.timefold.solver.core.api.score.stream.bi.BiConstraintStream.rewardConfigurableBigDecimal(BiFunction<A, B, BigDecimal>)
    Prefer BiConstraintStream.rewardBigDecimal(Score, BiFunction) and ConstraintWeightOverrides.
    ai.timefold.solver.core.api.score.stream.bi.BiConstraintStream.rewardConfigurableLong(String, String, ToLongBiFunction<A, B>)
    Prefer BiConstraintStream.rewardLong(Score, ToLongBiFunction) and ConstraintWeightOverrides.
    ai.timefold.solver.core.api.score.stream.bi.BiConstraintStream.rewardConfigurableLong(String, ToLongBiFunction<A, B>)
    Prefer BiConstraintStream.rewardLong(Score, ToLongBiFunction) and ConstraintWeightOverrides.
    ai.timefold.solver.core.api.score.stream.bi.BiConstraintStream.rewardConfigurableLong(ToLongBiFunction<A, B>)
    Prefer BiConstraintStream.rewardLong(Score, ToLongBiFunction) and ConstraintWeightOverrides.
    ai.timefold.solver.core.api.score.stream.bi.BiConstraintStream.rewardLong(String, Score<?>, ToLongBiFunction<A, B>)
    Prefer BiConstraintStream.rewardLong(Score, ToLongBiFunction).
    ai.timefold.solver.core.api.score.stream.bi.BiConstraintStream.rewardLong(String, String, Score<?>, ToLongBiFunction<A, B>)
    Prefer BiConstraintStream.rewardLong(Score, ToLongBiFunction).
    ai.timefold.solver.core.api.score.stream.Constraint.getConstraintFactory()
    for removal as it is not necessary on the public API.
    ai.timefold.solver.core.api.score.stream.Constraint.getConstraintId()
    Prefer Constraint.getConstraintRef().
    ai.timefold.solver.core.api.score.stream.Constraint.getConstraintName()
    Prefer Constraint.getConstraintRef().
    ai.timefold.solver.core.api.score.stream.Constraint.getConstraintPackage()
    Prefer Constraint.getConstraintRef().
    ai.timefold.solver.core.api.score.stream.ConstraintBuilder.asConstraint(String, String)
    Constraint package should no longer be used, use ConstraintBuilder.asConstraint(String) instead.
    ai.timefold.solver.core.api.score.stream.ConstraintCollectors.max(QuadFunction<A, B, C, D, Mapped>, Comparator<? super Mapped>)
    Deprecated in favor of ConstraintCollectors.max(QuadFunction, Function), as this method can lead to unavoidable score corruptions.
    ai.timefold.solver.core.api.score.stream.ConstraintCollectors.max(TriFunction<A, B, C, Mapped>, Comparator<? super Mapped>)
    Deprecated in favor of ConstraintCollectors.max(TriFunction, Function), as this method can lead to unavoidable score corruptions.
    ai.timefold.solver.core.api.score.stream.ConstraintCollectors.max(Comparator<? super A>)
    Deprecated in favor of ConstraintCollectors.max(Function, Function), as this method can lead to unavoidable score corruptions.
    ai.timefold.solver.core.api.score.stream.ConstraintCollectors.max(BiFunction<A, B, Mapped>, Comparator<? super Mapped>)
    Deprecated in favor of ConstraintCollectors.max(BiFunction, Function), as this method can lead to unavoidable score corruptions.
    ai.timefold.solver.core.api.score.stream.ConstraintCollectors.max(Function<A, Mapped>, Comparator<? super Mapped>)
    Deprecated in favor of ConstraintCollectors.max(Function, Function), as this method can lead to unavoidable score corruptions.
    ai.timefold.solver.core.api.score.stream.ConstraintCollectors.min(QuadFunction<A, B, C, D, Mapped>, Comparator<? super Mapped>)
    Deprecated in favor of ConstraintCollectors.min(QuadFunction, Function), as this method can lead to unavoidable score corruptions.
    ai.timefold.solver.core.api.score.stream.ConstraintCollectors.min(TriFunction<A, B, C, Mapped>, Comparator<? super Mapped>)
    Deprecated in favor of ConstraintCollectors.min(TriFunction, Function), as this method can lead to unavoidable score corruptions.
    ai.timefold.solver.core.api.score.stream.ConstraintCollectors.min(Comparator<? super A>)
    Deprecated in favor of ConstraintCollectors.min(Function, Function), as this method can lead to unavoidable score corruptions.
    ai.timefold.solver.core.api.score.stream.ConstraintCollectors.min(BiFunction<A, B, Mapped>, Comparator<? super Mapped>)
    Deprecated in favor of ConstraintCollectors.min(BiFunction, Function), as this method can lead to unavoidable score corruptions.
    ai.timefold.solver.core.api.score.stream.ConstraintCollectors.min(Function<A, Mapped>, Comparator<? super Mapped>)
    Deprecated in favor of ConstraintCollectors.min(Function, Function), as this method can lead to unavoidable score corruptions.
    ai.timefold.solver.core.api.score.stream.ConstraintFactory.forEachIncludingNullVars(Class<A>)
    Use ConstraintFactory.forEachIncludingUnassigned(Class) instead.
    ai.timefold.solver.core.api.score.stream.ConstraintFactory.from(Class<A>)
    This method is deprecated in favor of ConstraintFactory.forEach(Class), which exhibits the same behavior for planning variables which both allow and don't allow unassigned values.
    ai.timefold.solver.core.api.score.stream.ConstraintFactory.fromUnfiltered(Class<A>)
    Prefer ConstraintFactory.forEachIncludingUnassigned(Class).
    ai.timefold.solver.core.api.score.stream.ConstraintFactory.fromUniquePair(Class<A>)
    Prefer ConstraintFactory.forEachUniquePair(Class), which exhibits the same behavior for planning variables which both allow and don't allow unassigned values.
    ai.timefold.solver.core.api.score.stream.ConstraintFactory.fromUniquePair(Class<A>, BiJoiner<A, A>)
    Prefer ConstraintFactory.forEachUniquePair(Class, BiJoiner), which exhibits the same behavior for planning variables which both allow and don't allow unassigned values.
    ai.timefold.solver.core.api.score.stream.ConstraintFactory.fromUniquePair(Class<A>, BiJoiner<A, A>...)
    Prefer ConstraintFactory.forEachUniquePair(Class, BiJoiner...), which exhibits the same behavior for planning variables which both allow and don't allow unassigned values.
    ai.timefold.solver.core.api.score.stream.ConstraintFactory.fromUniquePair(Class<A>, BiJoiner<A, A>, BiJoiner<A, A>)
    Prefer ConstraintFactory.forEachUniquePair(Class, BiJoiner, BiJoiner), which exhibits the same behavior for planning variables which both allow and don't allow unassigned values.
    ai.timefold.solver.core.api.score.stream.ConstraintFactory.fromUniquePair(Class<A>, BiJoiner<A, A>, BiJoiner<A, A>, BiJoiner<A, A>)
    Prefer ConstraintFactory.forEachUniquePair(Class, BiJoiner, BiJoiner, BiJoiner), which exhibits the same behavior for planning variables which both allow and don't allow unassigned values.
    ai.timefold.solver.core.api.score.stream.ConstraintFactory.fromUniquePair(Class<A>, BiJoiner<A, A>, BiJoiner<A, A>, BiJoiner<A, A>, BiJoiner<A, A>)
    Prefer ConstraintFactory.forEachUniquePair(Class, BiJoiner, BiJoiner, BiJoiner, BiJoiner), which exhibits the same behavior for planning variables which both allow and don't allow unassigned values.
    ai.timefold.solver.core.api.score.stream.ConstraintFactory.getDefaultConstraintPackage()
    Do not rely on any constraint package in user code.
    ai.timefold.solver.core.api.score.stream.ConstraintStream.impact(String, Score<?>)
    Prefer UniConstraintStream.impact(Score) and equivalent bi/tri/... overloads.
    ai.timefold.solver.core.api.score.stream.ConstraintStream.impact(String, String, Score<?>)
    Prefer UniConstraintStream.impact(Score) and equivalent bi/tri/... overloads.
    ai.timefold.solver.core.api.score.stream.ConstraintStream.penalize(String, Score<?>)
    Prefer UniConstraintStream.penalize(Score) and equivalent bi/tri/... overloads.
    ai.timefold.solver.core.api.score.stream.ConstraintStream.penalize(String, String, Score<?>)
    Prefer UniConstraintStream.penalize(Score) and equivalent bi/tri/... overloads.
    ai.timefold.solver.core.api.score.stream.ConstraintStream.penalizeConfigurable(String)
    Prefer penalize() and ConstraintWeightOverrides.
    ai.timefold.solver.core.api.score.stream.ConstraintStream.penalizeConfigurable(String, String)
    Prefer penalize() and ConstraintWeightOverrides.
    ai.timefold.solver.core.api.score.stream.ConstraintStream.reward(String, Score<?>)
    Prefer UniConstraintStream.reward(Score) and equivalent bi/tri/... overloads.
    ai.timefold.solver.core.api.score.stream.ConstraintStream.reward(String, String, Score<?>)
    Prefer UniConstraintStream.reward(Score) and equivalent bi/tri/... overloads.
    ai.timefold.solver.core.api.score.stream.ConstraintStream.rewardConfigurable(String)
    Prefer reward() and ConstraintWeightOverrides.
    ai.timefold.solver.core.api.score.stream.ConstraintStream.rewardConfigurable(String, String)
    Prefer reward() and ConstraintWeightOverrides.
    ai.timefold.solver.core.api.score.stream.ConstraintStreamImplType
    There is only one implementation.
    ai.timefold.solver.core.api.score.stream.ConstraintStreamImplType.DROOLS
    in favor of ConstraintStreamImplType.BAVET.
    ai.timefold.solver.core.api.score.stream.quad.QuadConstraintStream.ifExistsIncludingNullVars(Class<E>, PentaJoiner<A, B, C, D, E>)
    Prefer QuadConstraintStream.ifExistsIncludingUnassigned(Class, PentaJoiner).
    ai.timefold.solver.core.api.score.stream.quad.QuadConstraintStream.ifExistsIncludingNullVars(Class<E>, PentaJoiner<A, B, C, D, E>...)
    Prefer QuadConstraintStream.ifExistsIncludingUnassigned(Class, PentaJoiner...).
    ai.timefold.solver.core.api.score.stream.quad.QuadConstraintStream.ifExistsIncludingNullVars(Class<E>, PentaJoiner<A, B, C, D, E>, PentaJoiner<A, B, C, D, E>)
    Prefer QuadConstraintStream.ifExistsIncludingUnassigned(Class, PentaJoiner, PentaJoiner).
    ai.timefold.solver.core.api.score.stream.quad.QuadConstraintStream.ifExistsIncludingNullVars(Class<E>, PentaJoiner<A, B, C, D, E>, PentaJoiner<A, B, C, D, E>, PentaJoiner<A, B, C, D, E>)
    Prefer QuadConstraintStream.ifExistsIncludingUnassigned(Class, PentaJoiner, PentaJoiner, PentaJoiner).
    ai.timefold.solver.core.api.score.stream.quad.QuadConstraintStream.ifExistsIncludingNullVars(Class<E>, PentaJoiner<A, B, C, D, E>, PentaJoiner<A, B, C, D, E>, PentaJoiner<A, B, C, D, E>, PentaJoiner<A, B, C, D, E>)
    Prefer QuadConstraintStream.ifExistsIncludingUnassigned(Class, PentaJoiner, PentaJoiner, PentaJoiner, PentaJoiner).
    ai.timefold.solver.core.api.score.stream.quad.QuadConstraintStream.ifNotExistsIncludingNullVars(Class<E>, PentaJoiner<A, B, C, D, E>)
    Prefer QuadConstraintStream.ifNotExistsIncludingUnassigned(Class, PentaJoiner).
    ai.timefold.solver.core.api.score.stream.quad.QuadConstraintStream.ifNotExistsIncludingNullVars(Class<E>, PentaJoiner<A, B, C, D, E>...)
    Prefer QuadConstraintStream.ifNotExistsIncludingUnassigned(Class, PentaJoiner...).
    ai.timefold.solver.core.api.score.stream.quad.QuadConstraintStream.ifNotExistsIncludingNullVars(Class<E>, PentaJoiner<A, B, C, D, E>, PentaJoiner<A, B, C, D, E>)
    Prefer QuadConstraintStream.ifNotExistsIncludingUnassigned(Class, PentaJoiner, PentaJoiner).
    ai.timefold.solver.core.api.score.stream.quad.QuadConstraintStream.ifNotExistsIncludingNullVars(Class<E>, PentaJoiner<A, B, C, D, E>, PentaJoiner<A, B, C, D, E>, PentaJoiner<A, B, C, D, E>)
    Prefer QuadConstraintStream.ifNotExistsIncludingUnassigned(Class, PentaJoiner, PentaJoiner, PentaJoiner).
    ai.timefold.solver.core.api.score.stream.quad.QuadConstraintStream.ifNotExistsIncludingNullVars(Class<E>, PentaJoiner<A, B, C, D, E>, PentaJoiner<A, B, C, D, E>, PentaJoiner<A, B, C, D, E>, PentaJoiner<A, B, C, D, E>)
    Prefer QuadConstraintStream.ifNotExistsIncludingUnassigned(Class, PentaJoiner, PentaJoiner, PentaJoiner, PentaJoiner).
    ai.timefold.solver.core.api.score.stream.quad.QuadConstraintStream.impact(String, Score<?>, ToIntQuadFunction<A, B, C, D>)
    Prefer QuadConstraintStream.impact(Score, ToIntQuadFunction).
    ai.timefold.solver.core.api.score.stream.quad.QuadConstraintStream.impact(String, String, Score<?>, ToIntQuadFunction<A, B, C, D>)
    Prefer QuadConstraintStream.impact(Score, ToIntQuadFunction).
    ai.timefold.solver.core.api.score.stream.quad.QuadConstraintStream.impactBigDecimal(String, Score<?>, QuadFunction<A, B, C, D, BigDecimal>)
    Prefer QuadConstraintStream.impactBigDecimal(Score, QuadFunction).
    ai.timefold.solver.core.api.score.stream.quad.QuadConstraintStream.impactBigDecimal(String, String, Score<?>, QuadFunction<A, B, C, D, BigDecimal>)
    Prefer QuadConstraintStream.impactBigDecimal(Score, QuadFunction).
    ai.timefold.solver.core.api.score.stream.quad.QuadConstraintStream.impactConfigurable()
    Prefer QuadConstraintStream.impact(Score) and ConstraintWeightOverrides.
    ai.timefold.solver.core.api.score.stream.quad.QuadConstraintStream.impactConfigurable(ToIntQuadFunction<A, B, C, D>)
    Prefer QuadConstraintStream.impact(Score, ToIntQuadFunction) and ConstraintWeightOverrides.
    ai.timefold.solver.core.api.score.stream.quad.QuadConstraintStream.impactConfigurable(String, ToIntQuadFunction<A, B, C, D>)
    Prefer QuadConstraintStream.impact(Score, ToIntQuadFunction) and ConstraintWeightOverrides.
    ai.timefold.solver.core.api.score.stream.quad.QuadConstraintStream.impactConfigurable(String, String, ToIntQuadFunction<A, B, C, D>)
    Prefer QuadConstraintStream.impact(Score, ToIntQuadFunction) and ConstraintWeightOverrides.
    ai.timefold.solver.core.api.score.stream.quad.QuadConstraintStream.impactConfigurableBigDecimal(QuadFunction<A, B, C, D, BigDecimal>)
    Prefer QuadConstraintStream.impactBigDecimal(Score, QuadFunction) and ConstraintWeightOverrides.
    ai.timefold.solver.core.api.score.stream.quad.QuadConstraintStream.impactConfigurableBigDecimal(String, QuadFunction<A, B, C, D, BigDecimal>)
    Prefer QuadConstraintStream.impactBigDecimal(Score, QuadFunction) and ConstraintWeightOverrides.
    ai.timefold.solver.core.api.score.stream.quad.QuadConstraintStream.impactConfigurableBigDecimal(String, String, QuadFunction<A, B, C, D, BigDecimal>)
    Prefer QuadConstraintStream.impactBigDecimal(Score, QuadFunction) and ConstraintWeightOverrides.
    ai.timefold.solver.core.api.score.stream.quad.QuadConstraintStream.impactConfigurableLong(ToLongQuadFunction<A, B, C, D>)
    Prefer QuadConstraintStream.impactLong(Score, ToLongQuadFunction) and ConstraintWeightOverrides.
    ai.timefold.solver.core.api.score.stream.quad.QuadConstraintStream.impactConfigurableLong(String, ToLongQuadFunction<A, B, C, D>)
    Prefer QuadConstraintStream.impactLong(Score, ToLongQuadFunction) and ConstraintWeightOverrides.
    ai.timefold.solver.core.api.score.stream.quad.QuadConstraintStream.impactConfigurableLong(String, String, ToLongQuadFunction<A, B, C, D>)
    Prefer QuadConstraintStream.impactLong(Score, ToLongQuadFunction) and ConstraintWeightOverrides.
    ai.timefold.solver.core.api.score.stream.quad.QuadConstraintStream.impactLong(String, Score<?>, ToLongQuadFunction<A, B, C, D>)
    Prefer QuadConstraintStream.impactLong(Score, ToLongQuadFunction).
    ai.timefold.solver.core.api.score.stream.quad.QuadConstraintStream.impactLong(String, String, Score<?>, ToLongQuadFunction<A, B, C, D>)
    Prefer QuadConstraintStream.impactLong(Score, ToLongQuadFunction).
    ai.timefold.solver.core.api.score.stream.quad.QuadConstraintStream.penalize(String, Score<?>, ToIntQuadFunction<A, B, C, D>)
    Prefer QuadConstraintStream.penalize(Score, ToIntQuadFunction).
    ai.timefold.solver.core.api.score.stream.quad.QuadConstraintStream.penalize(String, String, Score<?>, ToIntQuadFunction<A, B, C, D>)
    Prefer QuadConstraintStream.penalize(Score, ToIntQuadFunction).
    ai.timefold.solver.core.api.score.stream.quad.QuadConstraintStream.penalizeBigDecimal(String, Score<?>, QuadFunction<A, B, C, D, BigDecimal>)
    Prefer QuadConstraintStream.penalizeBigDecimal(Score, QuadFunction).
    ai.timefold.solver.core.api.score.stream.quad.QuadConstraintStream.penalizeBigDecimal(String, String, Score<?>, QuadFunction<A, B, C, D, BigDecimal>)
    Prefer QuadConstraintStream.penalizeBigDecimal(Score, QuadFunction).
    ai.timefold.solver.core.api.score.stream.quad.QuadConstraintStream.penalizeConfigurable()
    Prefer QuadConstraintStream.penalize(Score) and ConstraintWeightOverrides.
    ai.timefold.solver.core.api.score.stream.quad.QuadConstraintStream.penalizeConfigurable(ToIntQuadFunction<A, B, C, D>)
    Prefer QuadConstraintStream.penalize(Score, ToIntQuadFunction) and ConstraintWeightOverrides.
    ai.timefold.solver.core.api.score.stream.quad.QuadConstraintStream.penalizeConfigurable(String, ToIntQuadFunction<A, B, C, D>)
    Prefer QuadConstraintStream.penalize(Score, ToIntQuadFunction) and ConstraintWeightOverrides.
    ai.timefold.solver.core.api.score.stream.quad.QuadConstraintStream.penalizeConfigurable(String, String, ToIntQuadFunction<A, B, C, D>)
    Prefer QuadConstraintStream.penalize(Score, ToIntQuadFunction) and ConstraintWeightOverrides.
    ai.timefold.solver.core.api.score.stream.quad.QuadConstraintStream.penalizeConfigurableBigDecimal(QuadFunction<A, B, C, D, BigDecimal>)
    Prefer QuadConstraintStream.penalizeBigDecimal(Score, QuadFunction) and ConstraintWeightOverrides.
    ai.timefold.solver.core.api.score.stream.quad.QuadConstraintStream.penalizeConfigurableBigDecimal(String, QuadFunction<A, B, C, D, BigDecimal>)
    Prefer QuadConstraintStream.penalizeBigDecimal(Score, QuadFunction) and ConstraintWeightOverrides.
    ai.timefold.solver.core.api.score.stream.quad.QuadConstraintStream.penalizeConfigurableBigDecimal(String, String, QuadFunction<A, B, C, D, BigDecimal>)
    Prefer QuadConstraintStream.penalizeBigDecimal(Score, QuadFunction) and ConstraintWeightOverrides.
    ai.timefold.solver.core.api.score.stream.quad.QuadConstraintStream.penalizeConfigurableLong(ToLongQuadFunction<A, B, C, D>)
    Prefer QuadConstraintStream.penalizeLong(Score, ToLongQuadFunction) and ConstraintWeightOverrides.
    ai.timefold.solver.core.api.score.stream.quad.QuadConstraintStream.penalizeConfigurableLong(String, ToLongQuadFunction<A, B, C, D>)
    Prefer QuadConstraintStream.penalizeLong(Score, ToLongQuadFunction) and ConstraintWeightOverrides.
    ai.timefold.solver.core.api.score.stream.quad.QuadConstraintStream.penalizeConfigurableLong(String, String, ToLongQuadFunction<A, B, C, D>)
    Prefer QuadConstraintStream.penalizeLong(Score, ToLongQuadFunction) and ConstraintWeightOverrides.
    ai.timefold.solver.core.api.score.stream.quad.QuadConstraintStream.penalizeLong(String, Score<?>, ToLongQuadFunction<A, B, C, D>)
    Prefer QuadConstraintStream.penalizeLong(Score, ToLongQuadFunction).
    ai.timefold.solver.core.api.score.stream.quad.QuadConstraintStream.penalizeLong(String, String, Score<?>, ToLongQuadFunction<A, B, C, D>)
    Prefer QuadConstraintStream.penalizeLong(Score, ToLongQuadFunction).
    ai.timefold.solver.core.api.score.stream.quad.QuadConstraintStream.reward(String, Score<?>, ToIntQuadFunction<A, B, C, D>)
    Prefer QuadConstraintStream.reward(Score, ToIntQuadFunction).
    ai.timefold.solver.core.api.score.stream.quad.QuadConstraintStream.reward(String, String, Score<?>, ToIntQuadFunction<A, B, C, D>)
    Prefer QuadConstraintStream.reward(Score, ToIntQuadFunction).
    ai.timefold.solver.core.api.score.stream.quad.QuadConstraintStream.rewardBigDecimal(String, Score<?>, QuadFunction<A, B, C, D, BigDecimal>)
    Prefer QuadConstraintStream.rewardBigDecimal(Score, QuadFunction).
    ai.timefold.solver.core.api.score.stream.quad.QuadConstraintStream.rewardBigDecimal(String, String, Score<?>, QuadFunction<A, B, C, D, BigDecimal>)
    Prefer QuadConstraintStream.rewardBigDecimal(Score, QuadFunction).
    ai.timefold.solver.core.api.score.stream.quad.QuadConstraintStream.rewardConfigurable()
    Prefer QuadConstraintStream.reward(Score) and ConstraintWeightOverrides.
    ai.timefold.solver.core.api.score.stream.quad.QuadConstraintStream.rewardConfigurable(ToIntQuadFunction<A, B, C, D>)
    Prefer QuadConstraintStream.reward(Score, ToIntQuadFunction) and ConstraintWeightOverrides.
    ai.timefold.solver.core.api.score.stream.quad.QuadConstraintStream.rewardConfigurable(String, ToIntQuadFunction<A, B, C, D>)
    Prefer QuadConstraintStream.reward(Score, ToIntQuadFunction) and ConstraintWeightOverrides.
    ai.timefold.solver.core.api.score.stream.quad.QuadConstraintStream.rewardConfigurable(String, String, ToIntQuadFunction<A, B, C, D>)
    Prefer QuadConstraintStream.reward(Score, ToIntQuadFunction) and ConstraintWeightOverrides.
    ai.timefold.solver.core.api.score.stream.quad.QuadConstraintStream.rewardConfigurableBigDecimal(QuadFunction<A, B, C, D, BigDecimal>)
    Prefer QuadConstraintStream.rewardBigDecimal(Score, QuadFunction) and ConstraintWeightOverrides.
    ai.timefold.solver.core.api.score.stream.quad.QuadConstraintStream.rewardConfigurableBigDecimal(String, QuadFunction<A, B, C, D, BigDecimal>)
    Prefer QuadConstraintStream.rewardBigDecimal(Score, QuadFunction) and ConstraintWeightOverrides.
    ai.timefold.solver.core.api.score.stream.quad.QuadConstraintStream.rewardConfigurableBigDecimal(String, String, QuadFunction<A, B, C, D, BigDecimal>)
    Prefer QuadConstraintStream.rewardBigDecimal(Score, QuadFunction) and ConstraintWeightOverrides.
    ai.timefold.solver.core.api.score.stream.quad.QuadConstraintStream.rewardConfigurableLong(ToLongQuadFunction<A, B, C, D>)
    Prefer QuadConstraintStream.rewardLong(Score, ToLongQuadFunction) and ConstraintWeightOverrides.
    ai.timefold.solver.core.api.score.stream.quad.QuadConstraintStream.rewardConfigurableLong(String, ToLongQuadFunction<A, B, C, D>)
    Prefer QuadConstraintStream.rewardLong(Score, ToLongQuadFunction) and ConstraintWeightOverrides.
    ai.timefold.solver.core.api.score.stream.quad.QuadConstraintStream.rewardConfigurableLong(String, String, ToLongQuadFunction<A, B, C, D>)
    Prefer QuadConstraintStream.rewardLong(Score, ToLongQuadFunction) and ConstraintWeightOverrides.
    ai.timefold.solver.core.api.score.stream.quad.QuadConstraintStream.rewardLong(String, Score<?>, ToLongQuadFunction<A, B, C, D>)
    Prefer QuadConstraintStream.rewardLong(Score, ToLongQuadFunction).
    ai.timefold.solver.core.api.score.stream.quad.QuadConstraintStream.rewardLong(String, String, Score<?>, ToLongQuadFunction<A, B, C, D>)
    Prefer QuadConstraintStream.rewardLong(Score, ToLongQuadFunction).
    ai.timefold.solver.core.api.score.stream.tri.TriConstraintStream.ifExistsIncludingNullVars(Class<D>, QuadJoiner<A, B, C, D>)
    Prefer TriConstraintStream.ifExistsIncludingUnassigned(Class, QuadJoiner).
    ai.timefold.solver.core.api.score.stream.tri.TriConstraintStream.ifExistsIncludingNullVars(Class<D>, QuadJoiner<A, B, C, D>...)
    Prefer TriConstraintStream.ifExistsIncludingUnassigned(Class, QuadJoiner...).
    ai.timefold.solver.core.api.score.stream.tri.TriConstraintStream.ifExistsIncludingNullVars(Class<D>, QuadJoiner<A, B, C, D>, QuadJoiner<A, B, C, D>)
    Prefer TriConstraintStream.ifExistsIncludingUnassigned(Class, QuadJoiner, QuadJoiner).
    ai.timefold.solver.core.api.score.stream.tri.TriConstraintStream.ifExistsIncludingNullVars(Class<D>, QuadJoiner<A, B, C, D>, QuadJoiner<A, B, C, D>, QuadJoiner<A, B, C, D>)
    Prefer TriConstraintStream.ifExistsIncludingUnassigned(Class, QuadJoiner, QuadJoiner, QuadJoiner).
    ai.timefold.solver.core.api.score.stream.tri.TriConstraintStream.ifExistsIncludingNullVars(Class<D>, QuadJoiner<A, B, C, D>, QuadJoiner<A, B, C, D>, QuadJoiner<A, B, C, D>, QuadJoiner<A, B, C, D>)
    Prefer TriConstraintStream.ifExistsIncludingUnassigned(Class, QuadJoiner, QuadJoiner, QuadJoiner, QuadJoiner).
    ai.timefold.solver.core.api.score.stream.tri.TriConstraintStream.ifNotExistsIncludingNullVars(Class<D>, QuadJoiner<A, B, C, D>)
    Prefer TriConstraintStream.ifNotExistsIncludingUnassigned(Class, QuadJoiner).
    ai.timefold.solver.core.api.score.stream.tri.TriConstraintStream.ifNotExistsIncludingNullVars(Class<D>, QuadJoiner<A, B, C, D>...)
    Prefer TriConstraintStream.ifNotExistsIncludingUnassigned(Class, QuadJoiner...).
    ai.timefold.solver.core.api.score.stream.tri.TriConstraintStream.ifNotExistsIncludingNullVars(Class<D>, QuadJoiner<A, B, C, D>, QuadJoiner<A, B, C, D>)
    Prefer TriConstraintStream.ifNotExistsIncludingUnassigned(Class, QuadJoiner, QuadJoiner).
    ai.timefold.solver.core.api.score.stream.tri.TriConstraintStream.ifNotExistsIncludingNullVars(Class<D>, QuadJoiner<A, B, C, D>, QuadJoiner<A, B, C, D>, QuadJoiner<A, B, C, D>)
    Prefer TriConstraintStream.ifNotExistsIncludingUnassigned(Class, QuadJoiner, QuadJoiner, QuadJoiner).
    ai.timefold.solver.core.api.score.stream.tri.TriConstraintStream.ifNotExistsIncludingNullVars(Class<D>, QuadJoiner<A, B, C, D>, QuadJoiner<A, B, C, D>, QuadJoiner<A, B, C, D>, QuadJoiner<A, B, C, D>)
    Prefer TriConstraintStream.ifNotExistsIncludingUnassigned(Class, QuadJoiner, QuadJoiner, QuadJoiner, QuadJoiner).
    ai.timefold.solver.core.api.score.stream.tri.TriConstraintStream.impact(String, Score<?>, ToIntTriFunction<A, B, C>)
    Prefer TriConstraintStream.impact(Score, ToIntTriFunction).
    ai.timefold.solver.core.api.score.stream.tri.TriConstraintStream.impact(String, String, Score<?>, ToIntTriFunction<A, B, C>)
    Prefer TriConstraintStream.impact(Score, ToIntTriFunction).
    ai.timefold.solver.core.api.score.stream.tri.TriConstraintStream.impactBigDecimal(String, Score<?>, TriFunction<A, B, C, BigDecimal>)
    Prefer TriConstraintStream.impactBigDecimal(Score, TriFunction).
    ai.timefold.solver.core.api.score.stream.tri.TriConstraintStream.impactBigDecimal(String, String, Score<?>, TriFunction<A, B, C, BigDecimal>)
    Prefer TriConstraintStream.impactBigDecimal(Score, TriFunction).
    ai.timefold.solver.core.api.score.stream.tri.TriConstraintStream.impactConfigurable()
    Prefer TriConstraintStream.impact(Score) and ConstraintWeightOverrides.
    ai.timefold.solver.core.api.score.stream.tri.TriConstraintStream.impactConfigurable(ToIntTriFunction<A, B, C>)
    Prefer TriConstraintStream.impact(Score, ToIntTriFunction) and ConstraintWeightOverrides.
    ai.timefold.solver.core.api.score.stream.tri.TriConstraintStream.impactConfigurable(String, ToIntTriFunction<A, B, C>)
    Prefer TriConstraintStream.impact(Score, ToIntTriFunction) and ConstraintWeightOverrides.
    ai.timefold.solver.core.api.score.stream.tri.TriConstraintStream.impactConfigurable(String, String, ToIntTriFunction<A, B, C>)
    Prefer TriConstraintStream.impact(Score, ToIntTriFunction) and ConstraintWeightOverrides.
    ai.timefold.solver.core.api.score.stream.tri.TriConstraintStream.impactConfigurableBigDecimal(TriFunction<A, B, C, BigDecimal>)
    Prefer TriConstraintStream.impactBigDecimal(Score, TriFunction) and ConstraintWeightOverrides.
    ai.timefold.solver.core.api.score.stream.tri.TriConstraintStream.impactConfigurableBigDecimal(String, TriFunction<A, B, C, BigDecimal>)
    Prefer TriConstraintStream.impactBigDecimal(Score, TriFunction) and ConstraintWeightOverrides.
    ai.timefold.solver.core.api.score.stream.tri.TriConstraintStream.impactConfigurableBigDecimal(String, String, TriFunction<A, B, C, BigDecimal>)
    Prefer TriConstraintStream.impactBigDecimal(Score, TriFunction) and ConstraintWeightOverrides.
    ai.timefold.solver.core.api.score.stream.tri.TriConstraintStream.impactConfigurableLong(ToLongTriFunction<A, B, C>)
    Prefer TriConstraintStream.impactLong(Score, ToLongTriFunction) and ConstraintWeightOverrides.
    ai.timefold.solver.core.api.score.stream.tri.TriConstraintStream.impactConfigurableLong(String, ToLongTriFunction<A, B, C>)
    Prefer TriConstraintStream.impactLong(Score, ToLongTriFunction) and ConstraintWeightOverrides.
    ai.timefold.solver.core.api.score.stream.tri.TriConstraintStream.impactConfigurableLong(String, String, ToLongTriFunction<A, B, C>)
    Prefer TriConstraintStream.impactLong(Score, ToLongTriFunction) and ConstraintWeightOverrides.
    ai.timefold.solver.core.api.score.stream.tri.TriConstraintStream.impactLong(String, Score<?>, ToLongTriFunction<A, B, C>)
    Prefer TriConstraintStream.impactLong(Score, ToLongTriFunction).
    ai.timefold.solver.core.api.score.stream.tri.TriConstraintStream.impactLong(String, String, Score<?>, ToLongTriFunction<A, B, C>)
    Prefer TriConstraintStream.impactLong(Score, ToLongTriFunction).
    ai.timefold.solver.core.api.score.stream.tri.TriConstraintStream.penalize(String, Score<?>, ToIntTriFunction<A, B, C>)
    Prefer TriConstraintStream.penalize(Score, ToIntTriFunction).
    ai.timefold.solver.core.api.score.stream.tri.TriConstraintStream.penalize(String, String, Score<?>, ToIntTriFunction<A, B, C>)
    Prefer TriConstraintStream.penalize(Score, ToIntTriFunction).
    ai.timefold.solver.core.api.score.stream.tri.TriConstraintStream.penalizeBigDecimal(String, Score<?>, TriFunction<A, B, C, BigDecimal>)
    Prefer TriConstraintStream.penalizeBigDecimal(Score, TriFunction).
    ai.timefold.solver.core.api.score.stream.tri.TriConstraintStream.penalizeBigDecimal(String, String, Score<?>, TriFunction<A, B, C, BigDecimal>)
    Prefer TriConstraintStream.penalizeBigDecimal(Score, TriFunction).
    ai.timefold.solver.core.api.score.stream.tri.TriConstraintStream.penalizeConfigurable()
    Prefer TriConstraintStream.penalize(Score) and ConstraintWeightOverrides.
    ai.timefold.solver.core.api.score.stream.tri.TriConstraintStream.penalizeConfigurable(ToIntTriFunction<A, B, C>)
    Prefer TriConstraintStream.penalize(Score, ToIntTriFunction) and ConstraintWeightOverrides.
    ai.timefold.solver.core.api.score.stream.tri.TriConstraintStream.penalizeConfigurable(String, ToIntTriFunction<A, B, C>)
    Prefer TriConstraintStream.penalize(Score, ToIntTriFunction) and ConstraintWeightOverrides.
    ai.timefold.solver.core.api.score.stream.tri.TriConstraintStream.penalizeConfigurable(String, String, ToIntTriFunction<A, B, C>)
    Prefer TriConstraintStream.penalize(Score, ToIntTriFunction) and ConstraintWeightOverrides.
    ai.timefold.solver.core.api.score.stream.tri.TriConstraintStream.penalizeConfigurableBigDecimal(TriFunction<A, B, C, BigDecimal>)
    Prefer TriConstraintStream.penalizeBigDecimal(Score, TriFunction) and ConstraintWeightOverrides.
    ai.timefold.solver.core.api.score.stream.tri.TriConstraintStream.penalizeConfigurableBigDecimal(String, TriFunction<A, B, C, BigDecimal>)
    Prefer TriConstraintStream.penalizeBigDecimal(Score, TriFunction) and ConstraintWeightOverrides.
    ai.timefold.solver.core.api.score.stream.tri.TriConstraintStream.penalizeConfigurableBigDecimal(String, String, TriFunction<A, B, C, BigDecimal>)
    Prefer TriConstraintStream.penalizeBigDecimal(Score, TriFunction) and ConstraintWeightOverrides.
    ai.timefold.solver.core.api.score.stream.tri.TriConstraintStream.penalizeConfigurableLong(ToLongTriFunction<A, B, C>)
    Prefer TriConstraintStream.penalizeLong(Score, ToLongTriFunction) and ConstraintWeightOverrides.
    ai.timefold.solver.core.api.score.stream.tri.TriConstraintStream.penalizeConfigurableLong(String, ToLongTriFunction<A, B, C>)
    Prefer TriConstraintStream.penalizeConfigurableLong(ToLongTriFunction).
    ai.timefold.solver.core.api.score.stream.tri.TriConstraintStream.penalizeConfigurableLong(String, String, ToLongTriFunction<A, B, C>)
    Prefer TriConstraintStream.penalizeConfigurableLong(ToLongTriFunction).
    ai.timefold.solver.core.api.score.stream.tri.TriConstraintStream.penalizeLong(String, Score<?>, ToLongTriFunction<A, B, C>)
    Prefer TriConstraintStream.penalizeLong(Score, ToLongTriFunction).
    ai.timefold.solver.core.api.score.stream.tri.TriConstraintStream.penalizeLong(String, String, Score<?>, ToLongTriFunction<A, B, C>)
    Prefer TriConstraintStream.penalizeLong(Score, ToLongTriFunction).
    ai.timefold.solver.core.api.score.stream.tri.TriConstraintStream.reward(String, Score<?>, ToIntTriFunction<A, B, C>)
    Prefer TriConstraintStream.reward(Score, ToIntTriFunction).
    ai.timefold.solver.core.api.score.stream.tri.TriConstraintStream.reward(String, String, Score<?>, ToIntTriFunction<A, B, C>)
    Prefer TriConstraintStream.reward(Score, ToIntTriFunction).
    ai.timefold.solver.core.api.score.stream.tri.TriConstraintStream.rewardBigDecimal(String, Score<?>, TriFunction<A, B, C, BigDecimal>)
    Prefer TriConstraintStream.rewardBigDecimal(Score, TriFunction).
    ai.timefold.solver.core.api.score.stream.tri.TriConstraintStream.rewardBigDecimal(String, String, Score<?>, TriFunction<A, B, C, BigDecimal>)
    Prefer TriConstraintStream.rewardBigDecimal(Score, TriFunction).
    ai.timefold.solver.core.api.score.stream.tri.TriConstraintStream.rewardConfigurable()
    Prefer TriConstraintStream.reward(Score) and ConstraintWeightOverrides.
    ai.timefold.solver.core.api.score.stream.tri.TriConstraintStream.rewardConfigurable(ToIntTriFunction<A, B, C>)
    Prefer TriConstraintStream.reward(Score, ToIntTriFunction) and ConstraintWeightOverrides.
    ai.timefold.solver.core.api.score.stream.tri.TriConstraintStream.rewardConfigurable(String, ToIntTriFunction<A, B, C>)
    Prefer TriConstraintStream.reward(Score, ToIntTriFunction) and ConstraintWeightOverrides.
    ai.timefold.solver.core.api.score.stream.tri.TriConstraintStream.rewardConfigurable(String, String, ToIntTriFunction<A, B, C>)
    Prefer TriConstraintStream.reward(Score, ToIntTriFunction) and ConstraintWeightOverrides.
    ai.timefold.solver.core.api.score.stream.tri.TriConstraintStream.rewardConfigurableBigDecimal(TriFunction<A, B, C, BigDecimal>)
    Prefer TriConstraintStream.rewardBigDecimal(Score, TriFunction) and ConstraintWeightOverrides.
    ai.timefold.solver.core.api.score.stream.tri.TriConstraintStream.rewardConfigurableBigDecimal(String, TriFunction<A, B, C, BigDecimal>)
    Prefer TriConstraintStream.rewardBigDecimal(Score, TriFunction) and ConstraintWeightOverrides.
    ai.timefold.solver.core.api.score.stream.tri.TriConstraintStream.rewardConfigurableBigDecimal(String, String, TriFunction<A, B, C, BigDecimal>)
    Prefer TriConstraintStream.rewardBigDecimal(Score, TriFunction) and ConstraintWeightOverrides.
    ai.timefold.solver.core.api.score.stream.tri.TriConstraintStream.rewardConfigurableLong(ToLongTriFunction<A, B, C>)
    Prefer TriConstraintStream.rewardLong(Score, ToLongTriFunction) and ConstraintWeightOverrides.
    ai.timefold.solver.core.api.score.stream.tri.TriConstraintStream.rewardConfigurableLong(String, ToLongTriFunction<A, B, C>)
    Prefer TriConstraintStream.rewardLong(Score, ToLongTriFunction) and ConstraintWeightOverrides.
    ai.timefold.solver.core.api.score.stream.tri.TriConstraintStream.rewardConfigurableLong(String, String, ToLongTriFunction<A, B, C>)
    Prefer TriConstraintStream.rewardLong(Score, ToLongTriFunction) and ConstraintWeightOverrides.
    ai.timefold.solver.core.api.score.stream.tri.TriConstraintStream.rewardLong(String, Score<?>, ToLongTriFunction<A, B, C>)
    Prefer TriConstraintStream.rewardLong(Score, ToLongTriFunction).
    ai.timefold.solver.core.api.score.stream.tri.TriConstraintStream.rewardLong(String, String, Score<?>, ToLongTriFunction<A, B, C>)
    Prefer TriConstraintStream.rewardLong(Score, ToLongTriFunction).
    ai.timefold.solver.core.api.score.stream.uni.UniConstraintStream.ifExistsIncludingNullVars(Class<B>, BiJoiner<A, B>)
    Prefer UniConstraintStream.ifExistsIncludingUnassigned(Class, BiJoiner).
    ai.timefold.solver.core.api.score.stream.uni.UniConstraintStream.ifExistsIncludingNullVars(Class<B>, BiJoiner<A, B>...)
    Prefer UniConstraintStream.ifExistsIncludingUnassigned(Class, BiJoiner...).
    ai.timefold.solver.core.api.score.stream.uni.UniConstraintStream.ifExistsIncludingNullVars(Class<B>, BiJoiner<A, B>, BiJoiner<A, B>)
    Prefer UniConstraintStream.ifExistsIncludingUnassigned(Class, BiJoiner, BiJoiner).
    ai.timefold.solver.core.api.score.stream.uni.UniConstraintStream.ifExistsIncludingNullVars(Class<B>, BiJoiner<A, B>, BiJoiner<A, B>, BiJoiner<A, B>)
    Prefer UniConstraintStream.ifExistsIncludingUnassigned(Class, BiJoiner, BiJoiner, BiJoiner).
    ai.timefold.solver.core.api.score.stream.uni.UniConstraintStream.ifExistsIncludingNullVars(Class<B>, BiJoiner<A, B>, BiJoiner<A, B>, BiJoiner<A, B>, BiJoiner<A, B>)
    Prefer UniConstraintStream.ifExistsIncludingUnassigned(Class, BiJoiner, BiJoiner, BiJoiner, BiJoiner).
    ai.timefold.solver.core.api.score.stream.uni.UniConstraintStream.ifExistsOtherIncludingNullVars(Class<A>)
    Prefer UniConstraintStream.ifExistsOtherIncludingUnassigned(Class).
    ai.timefold.solver.core.api.score.stream.uni.UniConstraintStream.ifExistsOtherIncludingNullVars(Class<A>, BiJoiner<A, A>)
    Prefer UniConstraintStream.ifExistsOtherIncludingUnassigned(Class, BiJoiner).
    ai.timefold.solver.core.api.score.stream.uni.UniConstraintStream.ifExistsOtherIncludingNullVars(Class<A>, BiJoiner<A, A>...)
    Prefer UniConstraintStream.ifExistsOtherIncludingUnassigned(Class, BiJoiner...).
    ai.timefold.solver.core.api.score.stream.uni.UniConstraintStream.ifExistsOtherIncludingNullVars(Class<A>, BiJoiner<A, A>, BiJoiner<A, A>)
    Prefer UniConstraintStream.ifExistsOtherIncludingUnassigned(Class, BiJoiner, BiJoiner).
    ai.timefold.solver.core.api.score.stream.uni.UniConstraintStream.ifExistsOtherIncludingNullVars(Class<A>, BiJoiner<A, A>, BiJoiner<A, A>, BiJoiner<A, A>)
    Prefer UniConstraintStream.ifExistsOtherIncludingUnassigned(Class, BiJoiner, BiJoiner, BiJoiner).
    ai.timefold.solver.core.api.score.stream.uni.UniConstraintStream.ifExistsOtherIncludingNullVars(Class<A>, BiJoiner<A, A>, BiJoiner<A, A>, BiJoiner<A, A>, BiJoiner<A, A>)
    Prefer UniConstraintStream.ifExistsOtherIncludingUnassigned(Class, BiJoiner, BiJoiner, BiJoiner, BiJoiner).
    ai.timefold.solver.core.api.score.stream.uni.UniConstraintStream.ifNotExistsIncludingNullVars(Class<B>, BiJoiner<A, B>)
    Prefer UniConstraintStream.ifNotExistsIncludingUnassigned(Class, BiJoiner)
    ai.timefold.solver.core.api.score.stream.uni.UniConstraintStream.ifNotExistsIncludingNullVars(Class<B>, BiJoiner<A, B>...)
    Prefer UniConstraintStream.ifNotExistsIncludingUnassigned(Class, BiJoiner...)
    ai.timefold.solver.core.api.score.stream.uni.UniConstraintStream.ifNotExistsIncludingNullVars(Class<B>, BiJoiner<A, B>, BiJoiner<A, B>)
    Prefer UniConstraintStream.ifNotExistsIncludingUnassigned(Class, BiJoiner, BiJoiner)
    ai.timefold.solver.core.api.score.stream.uni.UniConstraintStream.ifNotExistsIncludingNullVars(Class<B>, BiJoiner<A, B>, BiJoiner<A, B>, BiJoiner<A, B>)
    Prefer UniConstraintStream.ifNotExistsIncludingUnassigned(Class, BiJoiner, BiJoiner, BiJoiner)
    ai.timefold.solver.core.api.score.stream.uni.UniConstraintStream.ifNotExistsIncludingNullVars(Class<B>, BiJoiner<A, B>, BiJoiner<A, B>, BiJoiner<A, B>, BiJoiner<A, B>)
    Prefer UniConstraintStream.ifNotExistsIncludingUnassigned(Class, BiJoiner, BiJoiner, BiJoiner, BiJoiner)
    ai.timefold.solver.core.api.score.stream.uni.UniConstraintStream.ifNotExistsOtherIncludingNullVars(Class<A>)
    Prefer UniConstraintStream.ifNotExistsOtherIncludingUnassigned(Class).
    ai.timefold.solver.core.api.score.stream.uni.UniConstraintStream.ifNotExistsOtherIncludingNullVars(Class<A>, BiJoiner<A, A>)
    Prefer UniConstraintStream.ifNotExistsOtherIncludingUnassigned(Class, BiJoiner).
    ai.timefold.solver.core.api.score.stream.uni.UniConstraintStream.ifNotExistsOtherIncludingNullVars(Class<A>, BiJoiner<A, A>...)
    Prefer UniConstraintStream.ifNotExistsOtherIncludingUnassigned(Class, BiJoiner...).
    ai.timefold.solver.core.api.score.stream.uni.UniConstraintStream.ifNotExistsOtherIncludingNullVars(Class<A>, BiJoiner<A, A>, BiJoiner<A, A>)
    Prefer UniConstraintStream.ifNotExistsOtherIncludingUnassigned(Class, BiJoiner, BiJoiner).
    ai.timefold.solver.core.api.score.stream.uni.UniConstraintStream.ifNotExistsOtherIncludingNullVars(Class<A>, BiJoiner<A, A>, BiJoiner<A, A>, BiJoiner<A, A>)
    Prefer UniConstraintStream.ifNotExistsOtherIncludingUnassigned(Class, BiJoiner, BiJoiner, BiJoiner).
    ai.timefold.solver.core.api.score.stream.uni.UniConstraintStream.ifNotExistsOtherIncludingNullVars(Class<A>, BiJoiner<A, A>, BiJoiner<A, A>, BiJoiner<A, A>, BiJoiner<A, A>)
    Prefer UniConstraintStream.ifNotExistsOtherIncludingUnassigned(Class, BiJoiner, BiJoiner, BiJoiner, BiJoiner).
    ai.timefold.solver.core.api.score.stream.uni.UniConstraintStream.impact(String, Score<?>, ToIntFunction<A>)
    Prefer UniConstraintStream.impact(Score, ToIntFunction).
    ai.timefold.solver.core.api.score.stream.uni.UniConstraintStream.impact(String, String, Score<?>, ToIntFunction<A>)
    Prefer UniConstraintStream.impact(Score, ToIntFunction).
    ai.timefold.solver.core.api.score.stream.uni.UniConstraintStream.impactBigDecimal(String, Score<?>, Function<A, BigDecimal>)
    Prefer UniConstraintStream.impactBigDecimal(Score, Function).
    ai.timefold.solver.core.api.score.stream.uni.UniConstraintStream.impactBigDecimal(String, String, Score<?>, Function<A, BigDecimal>)
    Prefer UniConstraintStream.impactBigDecimal(Score, Function).
    ai.timefold.solver.core.api.score.stream.uni.UniConstraintStream.impactConfigurable()
    Prefer UniConstraintStream.impact(Score) and ConstraintWeightOverrides.
    ai.timefold.solver.core.api.score.stream.uni.UniConstraintStream.impactConfigurable(String, String, ToIntFunction<A>)
    Prefer UniConstraintStream.impact(Score, ToIntFunction) and ConstraintWeightOverrides.
    ai.timefold.solver.core.api.score.stream.uni.UniConstraintStream.impactConfigurable(String, ToIntFunction<A>)
    Prefer UniConstraintStream.impact(Score, ToIntFunction) and ConstraintWeightOverrides.
    ai.timefold.solver.core.api.score.stream.uni.UniConstraintStream.impactConfigurable(ToIntFunction<A>)
    Prefer UniConstraintStream.impact(Score, ToIntFunction) and ConstraintWeightOverrides.
    ai.timefold.solver.core.api.score.stream.uni.UniConstraintStream.impactConfigurableBigDecimal(String, String, Function<A, BigDecimal>)
    Prefer UniConstraintStream.impactBigDecimal(Score, Function) and ConstraintWeightOverrides.
    ai.timefold.solver.core.api.score.stream.uni.UniConstraintStream.impactConfigurableBigDecimal(String, Function<A, BigDecimal>)
    Prefer UniConstraintStream.impactBigDecimal(Score, Function) and ConstraintWeightOverrides.
    ai.timefold.solver.core.api.score.stream.uni.UniConstraintStream.impactConfigurableBigDecimal(Function<A, BigDecimal>)
    Prefer UniConstraintStream.impactBigDecimal(Score, Function) and ConstraintWeightOverrides.
    ai.timefold.solver.core.api.score.stream.uni.UniConstraintStream.impactConfigurableLong(String, String, ToLongFunction<A>)
    Prefer UniConstraintStream.impactLong(Score, ToLongFunction) and ConstraintWeightOverrides.
    ai.timefold.solver.core.api.score.stream.uni.UniConstraintStream.impactConfigurableLong(String, ToLongFunction<A>)
    Prefer UniConstraintStream.impactLong(Score, ToLongFunction) and ConstraintWeightOverrides.
    ai.timefold.solver.core.api.score.stream.uni.UniConstraintStream.impactConfigurableLong(ToLongFunction<A>)
    Prefer UniConstraintStream.impactLong(Score, ToLongFunction) and ConstraintWeightOverrides.
    ai.timefold.solver.core.api.score.stream.uni.UniConstraintStream.impactLong(String, Score<?>, ToLongFunction<A>)
    Prefer UniConstraintStream.impactLong(Score, ToLongFunction).
    ai.timefold.solver.core.api.score.stream.uni.UniConstraintStream.impactLong(String, String, Score<?>, ToLongFunction<A>)
    Prefer UniConstraintStream.impactLong(Score, ToLongFunction).
    ai.timefold.solver.core.api.score.stream.uni.UniConstraintStream.penalize(String, Score<?>, ToIntFunction<A>)
    Prefer UniConstraintStream.penalize(Score, ToIntFunction).
    ai.timefold.solver.core.api.score.stream.uni.UniConstraintStream.penalize(String, String, Score<?>, ToIntFunction<A>)
    Prefer UniConstraintStream.penalize(Score, ToIntFunction).
    ai.timefold.solver.core.api.score.stream.uni.UniConstraintStream.penalizeBigDecimal(String, Score<?>, Function<A, BigDecimal>)
    Prefer UniConstraintStream.penalizeBigDecimal(Score, Function).
    ai.timefold.solver.core.api.score.stream.uni.UniConstraintStream.penalizeBigDecimal(String, String, Score<?>, Function<A, BigDecimal>)
    Prefer UniConstraintStream.penalizeBigDecimal(Score, Function).
    ai.timefold.solver.core.api.score.stream.uni.UniConstraintStream.penalizeConfigurable()
    Prefer UniConstraintStream.penalize(Score) and ConstraintWeightOverrides.
    ai.timefold.solver.core.api.score.stream.uni.UniConstraintStream.penalizeConfigurable(String, String, ToIntFunction<A>)
    Prefer UniConstraintStream.penalize(Score) and ConstraintWeightOverrides.
    ai.timefold.solver.core.api.score.stream.uni.UniConstraintStream.penalizeConfigurable(String, ToIntFunction<A>)
    Prefer UniConstraintStream.penalize(Score) and ConstraintWeightOverrides.
    ai.timefold.solver.core.api.score.stream.uni.UniConstraintStream.penalizeConfigurable(ToIntFunction<A>)
    Prefer UniConstraintStream.penalize(Score, ToIntFunction) and ConstraintWeightOverrides.
    ai.timefold.solver.core.api.score.stream.uni.UniConstraintStream.penalizeConfigurableBigDecimal(String, String, Function<A, BigDecimal>)
    Prefer UniConstraintStream.penalizeBigDecimal(Score, Function) and ConstraintWeightOverrides.
    ai.timefold.solver.core.api.score.stream.uni.UniConstraintStream.penalizeConfigurableBigDecimal(String, Function<A, BigDecimal>)
    Prefer UniConstraintStream.penalizeBigDecimal(Score, Function) and ConstraintWeightOverrides.
    ai.timefold.solver.core.api.score.stream.uni.UniConstraintStream.penalizeConfigurableBigDecimal(Function<A, BigDecimal>)
    Prefer UniConstraintStream.penalizeBigDecimal(Score, Function) and ConstraintWeightOverrides.
    ai.timefold.solver.core.api.score.stream.uni.UniConstraintStream.penalizeConfigurableLong(String, String, ToLongFunction<A>)
    Prefer UniConstraintStream.penalizeLong(Score, ToLongFunction) and ConstraintWeightOverrides.
    ai.timefold.solver.core.api.score.stream.uni.UniConstraintStream.penalizeConfigurableLong(String, ToLongFunction<A>)
    Prefer UniConstraintStream.penalizeLong(Score, ToLongFunction) and ConstraintWeightOverrides.
    ai.timefold.solver.core.api.score.stream.uni.UniConstraintStream.penalizeConfigurableLong(ToLongFunction<A>)
    Prefer UniConstraintStream.penalizeLong(Score, ToLongFunction) and ConstraintWeightOverrides.
    ai.timefold.solver.core.api.score.stream.uni.UniConstraintStream.penalizeLong(String, Score<?>, ToLongFunction<A>)
    Prefer UniConstraintStream.penalizeLong(Score, ToLongFunction).
    ai.timefold.solver.core.api.score.stream.uni.UniConstraintStream.penalizeLong(String, String, Score<?>, ToLongFunction<A>)
    Prefer UniConstraintStream.penalizeLong(Score, ToLongFunction).
    ai.timefold.solver.core.api.score.stream.uni.UniConstraintStream.reward(String, Score<?>, ToIntFunction<A>)
    Prefer UniConstraintStream.reward(Score, ToIntFunction).
    ai.timefold.solver.core.api.score.stream.uni.UniConstraintStream.reward(String, String, Score<?>, ToIntFunction<A>)
    Prefer UniConstraintStream.reward(Score, ToIntFunction).
    ai.timefold.solver.core.api.score.stream.uni.UniConstraintStream.rewardBigDecimal(String, Score<?>, Function<A, BigDecimal>)
    Prefer UniConstraintStream.rewardBigDecimal(Score, Function).
    ai.timefold.solver.core.api.score.stream.uni.UniConstraintStream.rewardBigDecimal(String, String, Score<?>, Function<A, BigDecimal>)
    Prefer UniConstraintStream.rewardBigDecimal(Score, Function).
    ai.timefold.solver.core.api.score.stream.uni.UniConstraintStream.rewardConfigurable()
    Prefer UniConstraintStream.reward(Score) and ConstraintWeightOverrides.
    ai.timefold.solver.core.api.score.stream.uni.UniConstraintStream.rewardConfigurable(String, String, ToIntFunction<A>)
    Prefer UniConstraintStream.reward(Score, ToIntFunction) and ConstraintWeightOverrides.
    ai.timefold.solver.core.api.score.stream.uni.UniConstraintStream.rewardConfigurable(String, ToIntFunction<A>)
    Prefer UniConstraintStream.reward(Score, ToIntFunction) and ConstraintWeightOverrides.
    ai.timefold.solver.core.api.score.stream.uni.UniConstraintStream.rewardConfigurable(ToIntFunction<A>)
    Prefer UniConstraintStream.reward(Score, ToIntFunction) and ConstraintWeightOverrides.
    ai.timefold.solver.core.api.score.stream.uni.UniConstraintStream.rewardConfigurableBigDecimal(String, String, Function<A, BigDecimal>)
    Prefer UniConstraintStream.rewardBigDecimal(Score, Function) and ConstraintWeightOverrides.
    ai.timefold.solver.core.api.score.stream.uni.UniConstraintStream.rewardConfigurableBigDecimal(String, Function<A, BigDecimal>)
    Prefer UniConstraintStream.rewardBigDecimal(Score, Function) and ConstraintWeightOverrides.
    ai.timefold.solver.core.api.score.stream.uni.UniConstraintStream.rewardConfigurableBigDecimal(Function<A, BigDecimal>)
    Prefer UniConstraintStream.rewardBigDecimal(Score, Function) and ConstraintWeightOverrides.
    ai.timefold.solver.core.api.score.stream.uni.UniConstraintStream.rewardConfigurableLong(String, String, ToLongFunction<A>)
    Prefer UniConstraintStream.rewardLong(Score, ToLongFunction) and ConstraintWeightOverrides.
    ai.timefold.solver.core.api.score.stream.uni.UniConstraintStream.rewardConfigurableLong(String, ToLongFunction<A>)
    Prefer UniConstraintStream.rewardLong(Score, ToLongFunction) and ConstraintWeightOverrides.
    ai.timefold.solver.core.api.score.stream.uni.UniConstraintStream.rewardConfigurableLong(ToLongFunction<A>)
    Prefer UniConstraintStream.rewardLong(Score, ToLongFunction) and ConstraintWeightOverrides.
    ai.timefold.solver.core.api.score.stream.uni.UniConstraintStream.rewardLong(String, Score<?>, ToLongFunction<A>)
    Prefer UniConstraintStream.rewardLong(Score, ToLongFunction).
    ai.timefold.solver.core.api.score.stream.uni.UniConstraintStream.rewardLong(String, String, Score<?>, ToLongFunction<A>)
    Prefer UniConstraintStream.rewardLong(Score, ToLongFunction).
    ai.timefold.solver.core.api.solver.event.BestSolutionChangedEvent(Solver<Solution_>, long, Solution_, Score)
    Use BestSolutionChangedEvent(Solver, long, Object, Score, boolean) instead.
    ai.timefold.solver.core.api.solver.event.BestSolutionChangedEvent.isEveryProblemFactChangeProcessed()
    Prefer BestSolutionChangedEvent.isEveryProblemChangeProcessed().
    ai.timefold.solver.core.api.solver.ProblemFactChange
    Prefer ProblemChange.
    ai.timefold.solver.core.api.solver.RecommendedFit
    Prefer RecommendedAssignment instead.
    ai.timefold.solver.core.api.solver.SolutionManager.recommendFit(Solution_, EntityOrElement_, Function<EntityOrElement_, Proposition_>)
    Prefer SolutionManager.recommendAssignment(Object, Object, Function, ScoreAnalysisFetchPolicy).
    ai.timefold.solver.core.api.solver.SolutionManager.recommendFit(Solution_, EntityOrElement_, Function<EntityOrElement_, Proposition_>, ScoreAnalysisFetchPolicy)
    Prefer SolutionManager.recommendAssignment(Object, Object, Function, ScoreAnalysisFetchPolicy).
    ai.timefold.solver.core.api.solver.Solver.addProblemFactChange(ProblemFactChange<Solution_>)
    Prefer Solver.addProblemChange(ProblemChange).
    ai.timefold.solver.core.api.solver.Solver.addProblemFactChanges(List<ProblemFactChange<Solution_>>)
    Prefer Solver.addProblemChanges(List).
    ai.timefold.solver.core.api.solver.Solver.isEveryProblemFactChangeProcessed()
    Prefer Solver.isEveryProblemChangeProcessed().
    ai.timefold.solver.core.api.solver.SolverJobBuilder.withFirstInitializedSolutionConsumer(Consumer<? super Solution_>)
    Use SolverJobBuilder.withFirstInitializedSolutionConsumer(FirstInitializedSolutionConsumer) instead.
    ai.timefold.solver.core.api.solver.SolverManager.solve(ProblemId_, Function<? super ProblemId_, ? extends Solution_>, Consumer<? super Solution_>)
    It is recommended to use SolverManager.solveBuilder()
    ai.timefold.solver.core.api.solver.SolverManager.solve(ProblemId_, Function<? super ProblemId_, ? extends Solution_>, Consumer<? super Solution_>, BiConsumer<? super ProblemId_, ? super Throwable>)
    It is recommended to use SolverManager.solveBuilder()
    ai.timefold.solver.core.api.solver.SolverManager.solve(ProblemId_, Solution_, Consumer<? super Solution_>, BiConsumer<? super ProblemId_, ? super Throwable>)
    It is recommended to use SolverManager.solveBuilder()
    ai.timefold.solver.core.api.solver.SolverManager.solveAndListen(ProblemId_, Function<? super ProblemId_, ? extends Solution_>, Consumer<? super Solution_>)
    It is recommended to use SolverManager.solveBuilder() while also providing a consumer for the best solution
    ai.timefold.solver.core.api.solver.SolverManager.solveAndListen(ProblemId_, Function<? super ProblemId_, ? extends Solution_>, Consumer<? super Solution_>, BiConsumer<? super ProblemId_, ? super Throwable>)
    It is recommended to use SolverManager.solveBuilder() while also providing a consumer for the best solution
    ai.timefold.solver.core.api.solver.SolverManager.solveAndListen(ProblemId_, Function<? super ProblemId_, ? extends Solution_>, Consumer<? super Solution_>, Consumer<? super Solution_>, BiConsumer<? super ProblemId_, ? super Throwable>)
    It is recommended to use SolverManager.solveBuilder() while also providing a consumer for the best solution
    ai.timefold.solver.core.config.heuristic.selector.move.generic.list.SubListChangeMoveSelectorConfig.getMaximumSubListSize()
    The maximumSubListSize on the SubListChangeMoveSelectorConfig is deprecated and will be removed in a future major version of Timefold. Use SubListSelectorConfig.getMaximumSubListSize() instead.
    ai.timefold.solver.core.config.heuristic.selector.move.generic.list.SubListChangeMoveSelectorConfig.getMinimumSubListSize()
    The minimumSubListSize on the SubListChangeMoveSelectorConfig is deprecated and will be removed in a future major version of Timefold. Use SubListSelectorConfig.getMinimumSubListSize() instead.
    ai.timefold.solver.core.config.heuristic.selector.move.generic.list.SubListChangeMoveSelectorConfig.maximumSubListSize
    The maximumSubListSize on the SubListChangeMoveSelectorConfig is deprecated and will be removed in a future major version of Timefold. Use SubListSelectorConfig.getMaximumSubListSize() instead.
    ai.timefold.solver.core.config.heuristic.selector.move.generic.list.SubListChangeMoveSelectorConfig.minimumSubListSize
    The minimumSubListSize on the SubListChangeMoveSelectorConfig is deprecated and will be removed in a future major version of Timefold. Use SubListSelectorConfig.getMinimumSubListSize() instead.
    ai.timefold.solver.core.config.heuristic.selector.move.generic.list.SubListChangeMoveSelectorConfig.setMaximumSubListSize(Integer)
    The maximumSubListSize on the SubListChangeMoveSelectorConfig is deprecated and will be removed in a future major version of Timefold. Use SubListSelectorConfig.setMaximumSubListSize(Integer) instead.
    ai.timefold.solver.core.config.heuristic.selector.move.generic.list.SubListChangeMoveSelectorConfig.setMinimumSubListSize(Integer)
    The minimumSubListSize on the SubListChangeMoveSelectorConfig is deprecated and will be removed in a future major version of Timefold. Use SubListSelectorConfig.setMinimumSubListSize(Integer) instead.
    ai.timefold.solver.core.config.heuristic.selector.move.generic.list.SubListSwapMoveSelectorConfig.getMaximumSubListSize()
    The maximumSubListSize on the SubListSwapMoveSelectorConfig is deprecated and will be removed in a future major version of Timefold. Use SubListSelectorConfig.getMaximumSubListSize() instead.
    ai.timefold.solver.core.config.heuristic.selector.move.generic.list.SubListSwapMoveSelectorConfig.getMinimumSubListSize()
    The minimumSubListSize on the SubListSwapMoveSelectorConfig is deprecated and will be removed in a future major version of Timefold. Use SubListSelectorConfig.getMinimumSubListSize() instead.
    ai.timefold.solver.core.config.heuristic.selector.move.generic.list.SubListSwapMoveSelectorConfig.maximumSubListSize
    The maximumSubListSize on the SubListSwapMoveSelectorConfig is deprecated and will be removed in a future major version of Timefold. Use SubListSelectorConfig.getMaximumSubListSize() instead.
    ai.timefold.solver.core.config.heuristic.selector.move.generic.list.SubListSwapMoveSelectorConfig.minimumSubListSize
    The minimumSubListSize on the SubListSwapMoveSelectorConfig is deprecated and will be removed in a future major version of Timefold. Use SubListSelectorConfig.getMinimumSubListSize() instead.
    ai.timefold.solver.core.config.heuristic.selector.move.generic.list.SubListSwapMoveSelectorConfig.setMaximumSubListSize(Integer)
    The maximumSubListSize on the SubListSwapMoveSelectorConfig is deprecated and will be removed in a future major version of Timefold. Use SubListSelectorConfig.setMaximumSubListSize(Integer) instead.
    ai.timefold.solver.core.config.heuristic.selector.move.generic.list.SubListSwapMoveSelectorConfig.setMinimumSubListSize(Integer)
    The minimumSubListSize on the SubListSwapMoveSelectorConfig is deprecated and will be removed in a future major version of Timefold. Use SubListSelectorConfig.setMinimumSubListSize(Integer) instead.
    ai.timefold.solver.core.config.localsearch.decider.acceptor.LocalSearchAcceptorConfig.fadingUndoMoveTabuSize
    Deprecated, no longer has any effect.
    ai.timefold.solver.core.config.localsearch.decider.acceptor.LocalSearchAcceptorConfig.getFadingUndoMoveTabuSize()
    Deprecated, no longer has any effect.
    ai.timefold.solver.core.config.localsearch.decider.acceptor.LocalSearchAcceptorConfig.getFadingValueTabuRatio()
    Deprecated on account of never having worked in the first place.
    ai.timefold.solver.core.config.localsearch.decider.acceptor.LocalSearchAcceptorConfig.getUndoMoveTabuSize()
    Deprecated, no longer has any effect.
    ai.timefold.solver.core.config.localsearch.decider.acceptor.LocalSearchAcceptorConfig.getValueTabuRatio()
    Deprecated on account of never having worked in the first place.
    ai.timefold.solver.core.config.localsearch.decider.acceptor.LocalSearchAcceptorConfig.setFadingUndoMoveTabuSize(Integer)
    Deprecated, no longer has any effect.
    ai.timefold.solver.core.config.localsearch.decider.acceptor.LocalSearchAcceptorConfig.setFadingValueTabuRatio(Double)
    Deprecated on account of never having worked in the first place.
    ai.timefold.solver.core.config.localsearch.decider.acceptor.LocalSearchAcceptorConfig.setUndoMoveTabuSize(Integer)
    Deprecated, no longer has any effect.
    ai.timefold.solver.core.config.localsearch.decider.acceptor.LocalSearchAcceptorConfig.setValueTabuRatio(Double)
    Deprecated on account of never having worked in the first place.
    ai.timefold.solver.core.config.localsearch.decider.acceptor.LocalSearchAcceptorConfig.undoMoveTabuSize
    Deprecated, no longer has any effect.
    ai.timefold.solver.core.config.localsearch.decider.acceptor.LocalSearchAcceptorConfig.withFadingUndoMoveTabuSize(Integer)
    Deprecated, no longer has any effect.
    ai.timefold.solver.core.config.localsearch.decider.acceptor.LocalSearchAcceptorConfig.withUndoMoveTabuSize(Integer)
    Deprecated, no longer has any effect.
    ai.timefold.solver.core.config.phase.NoChangePhaseConfig
    Deprecated on account of deprecating NoChangePhase.
    ai.timefold.solver.core.config.score.definition.ScoreDefinitionType.HARD_SOFT_DOUBLE
    ai.timefold.solver.core.config.score.definition.ScoreDefinitionType.SIMPLE_DOUBLE
    ai.timefold.solver.core.config.score.director.ScoreDirectorFactoryConfig.getConstraintStreamImplType()
    There is only one implementation, so this method is deprecated. This method no longer has any effect.
    ai.timefold.solver.core.config.score.director.ScoreDirectorFactoryConfig.getScoreDrlList()
    All support for Score DRL was removed when Timefold was forked from OptaPlanner. See DRL to Constraint Streams migration recipe.
    ai.timefold.solver.core.config.score.director.ScoreDirectorFactoryConfig.scoreDrlList
    ai.timefold.solver.core.config.score.director.ScoreDirectorFactoryConfig.setConstraintStreamImplType(ConstraintStreamImplType)
    There is only one implementation, so this method is deprecated. This method no longer has any effect.
    ai.timefold.solver.core.config.score.director.ScoreDirectorFactoryConfig.setScoreDrlList(List<String>)
    All support for Score DRL was removed when Timefold was forked from OptaPlanner. See DRL to Constraint Streams migration recipe.
    ai.timefold.solver.core.config.score.director.ScoreDirectorFactoryConfig.withConstraintStreamImplType(ConstraintStreamImplType)
    There is only one implementation, so this method is deprecated. This method no longer has any effect.
    ai.timefold.solver.core.config.score.director.ScoreDirectorFactoryConfig.withScoreDrlList(List<String>)
    All support for Score DRL was removed when Timefold was forked from OptaPlanner. See DRL to Constraint Streams migration recipe.
    ai.timefold.solver.core.config.score.director.ScoreDirectorFactoryConfig.withScoreDrls(String...)
    All support for Score DRL was removed when Timefold was forked from OptaPlanner. See DRL to Constraint Streams migration recipe.
    ai.timefold.solver.core.config.solver.EnvironmentMode.FAST_ASSERT
    Prefer EnvironmentMode.STEP_ASSERT.
    ai.timefold.solver.core.config.solver.EnvironmentMode.isIntrusiveFastAsserted()
    Use EnvironmentMode.isIntrusivelyAsserted() instead.
    ai.timefold.solver.core.config.solver.EnvironmentMode.isNonIntrusiveFullAsserted()
    Use EnvironmentMode.isFullyAsserted() instead.
    ai.timefold.solver.core.config.solver.EnvironmentMode.REPRODUCIBLE
    Prefer EnvironmentMode.NO_ASSERT.
    ai.timefold.solver.core.config.solver.termination.TerminationConfig.getTerminationClass()
    A custom terminationClass is deprecated and will be removed in a future major version of Timefold.
    ai.timefold.solver.core.config.solver.termination.TerminationConfig.setTerminationClass(Class<? extends Termination>)
    A custom terminationClass is deprecated and will be removed in a future major version of Timefold.
    ai.timefold.solver.core.config.solver.termination.TerminationConfig.withTerminationClass(Class<? extends Termination>)
    A custom terminationClass is deprecated and will be removed in a future major version of Timefold.
    ai.timefold.solver.core.impl.domain.entity.descriptor.EntityDescriptor.getIsInitializedPredicate()
    Prefer EntityDescriptor.getHasNoNullVariablesPredicateListVar().
    ai.timefold.solver.core.impl.domain.lookup
    When multi-threaded solving, ensure your domain classes use @PlanningId instead.
    ai.timefold.solver.core.impl.domain.solution.ConstraintConfigurationBasedConstraintWeightSupplier
    Use ConstraintWeightOverrides instead.
    ai.timefold.solver.core.impl.domain.solution.descriptor.SolutionDescriptor.getConstraintConfigurationMemberAccessor()
    ConstraintConfiguration was replaced by ConstraintWeightOverrides.
    ai.timefold.solver.core.impl.domain.valuerange.AbstractUncountableValueRange
    Uncountable value ranges were never fully supported in many places throughout the solver and therefore never gained traction. Use CountableValueRange instead, and configure a step.
    ai.timefold.solver.core.impl.domain.valuerange.buildin.primdouble.DoubleValueRange
    Prefer BigDecimalValueRange.
    ai.timefold.solver.core.impl.heuristic.move.AbstractMove.createUndoMove(ScoreDirector<Solution_>)
    The solver automatically generates undo moves, this method is no longer used.
    ai.timefold.solver.core.impl.heuristic.move.AbstractSimplifiedMove
    In favor of AbstractMove, which no longer requires undo moves to be implemented either.
    ai.timefold.solver.core.impl.heuristic.move.AbstractUndoMove
    Undo moves are automatically generated by the solver. Implementations of this class no longer have any effect any may be removed.
    ai.timefold.solver.core.impl.heuristic.move.Move.doMove(ScoreDirector<Solution_>)
    Prefer Move.doMoveOnly(ScoreDirector) instead, undo moves no longer have any effect.
    ai.timefold.solver.core.impl.phase.custom.CustomPhaseCommand
    Use PhaseCommand instead.
    ai.timefold.solver.core.impl.phase.NoChangePhase
    Deprecated on account of having no use.
    ai.timefold.solver.core.impl.phase.NoChangePhaseFactory
    Deprecated on account of deprecating NoChangePhase.
    ai.timefold.solver.core.impl.score.constraint.DefaultConstraintMatchTotal(ConstraintRef)
    Prefer DefaultConstraintMatchTotal(ConstraintRef, Score_).
    ai.timefold.solver.core.impl.score.constraint.DefaultConstraintMatchTotal(Constraint, Score_)
    Prefer DefaultConstraintMatchTotal(ConstraintRef, Score_).
    ai.timefold.solver.core.impl.score.constraint.DefaultConstraintMatchTotal(String, String)
    Prefer DefaultConstraintMatchTotal(ConstraintRef, Score_).
    ai.timefold.solver.core.impl.score.constraint.DefaultConstraintMatchTotal(String, String, Score_)
    Prefer DefaultConstraintMatchTotal(ConstraintRef, Score_).
    ai.timefold.solver.core.impl.score.DefaultScoreManager
    Use DefaultSolutionManager instead.
    ai.timefold.solver.core.impl.score.director.AbstractScoreDirector.clone()
    Unused, but kept for backward compatibility.
    ai.timefold.solver.core.impl.score.stream.common.RetrievalSemantics.LEGACY
    this semantics is deprecated and kept around for backward compatibility reasons. It will be removed in 2.0, together with the from() family of methods, along with this entire enum.
    ai.timefold.solver.core.impl.solver.DefaultRecommendedFit
    Prefer DefaultRecommendedAssignment instead.
  • Deprecated Packages
    Package
    Description
    ai.timefold.solver.core.impl.domain.lookup
    When multi-threaded solving, ensure your domain classes use @PlanningId instead.
  • Deprecated Interfaces
    Interface
    Description
    ai.timefold.solver.core.api.domain.solution.PlanningScore.NullScoreDefinition
    ai.timefold.solver.core.api.score.ScoreManager
    Use SolutionManager instead.
    ai.timefold.solver.core.api.solver.ProblemFactChange
    Prefer ProblemChange.
    ai.timefold.solver.core.api.solver.RecommendedFit
    Prefer RecommendedAssignment instead.
    ai.timefold.solver.core.impl.phase.custom.CustomPhaseCommand
    Use PhaseCommand instead.
  • Deprecated Classes
    Class
    Description
    ai.timefold.solver.core.api.score.AbstractBendableScore
    Implement IBendableScore instead.
    ai.timefold.solver.core.api.score.AbstractScore
    Implement Score instead.
    ai.timefold.solver.core.config.phase.NoChangePhaseConfig
    Deprecated on account of deprecating NoChangePhase.
    ai.timefold.solver.core.impl.domain.solution.ConstraintConfigurationBasedConstraintWeightSupplier
    Use ConstraintWeightOverrides instead.
    ai.timefold.solver.core.impl.domain.valuerange.AbstractUncountableValueRange
    Uncountable value ranges were never fully supported in many places throughout the solver and therefore never gained traction. Use CountableValueRange instead, and configure a step.
    ai.timefold.solver.core.impl.domain.valuerange.buildin.primdouble.DoubleValueRange
    Prefer BigDecimalValueRange.
    ai.timefold.solver.core.impl.heuristic.move.AbstractSimplifiedMove
    In favor of AbstractMove, which no longer requires undo moves to be implemented either.
    ai.timefold.solver.core.impl.heuristic.move.AbstractUndoMove
    Undo moves are automatically generated by the solver. Implementations of this class no longer have any effect any may be removed.
    ai.timefold.solver.core.impl.phase.NoChangePhase
    Deprecated on account of having no use.
    ai.timefold.solver.core.impl.phase.NoChangePhaseFactory
    Deprecated on account of deprecating NoChangePhase.
    ai.timefold.solver.core.impl.score.DefaultScoreManager
    Use DefaultSolutionManager instead.
  • Deprecated Enum Classes
    Enum Class
    Description
    ai.timefold.solver.core.api.domain.lookup.LookUpStrategyType
    When multi-threaded solving, ensure your domain classes use @PlanningId instead.
    ai.timefold.solver.core.api.score.stream.ConstraintStreamImplType
    There is only one implementation.
  • Deprecated Record Classes
    Record Class
    Description
    ai.timefold.solver.core.impl.solver.DefaultRecommendedFit
    Prefer DefaultRecommendedAssignment instead.
  • Deprecated Annotation Interfaces
    Annotation Interface
    Description
    ai.timefold.solver.core.api.domain.constraintweight.ConstraintConfiguration
    Use ConstraintWeightOverrides instead.
    ai.timefold.solver.core.api.domain.constraintweight.ConstraintConfigurationProvider
    Use ConstraintWeightOverrides instead.
    ai.timefold.solver.core.api.domain.constraintweight.ConstraintWeight
    Use ConstraintWeightOverrides instead.
    ai.timefold.solver.core.api.domain.variable.CustomShadowVariable
    Deprecated in favor of ShadowVariable (normal shadow variable with CustomShadowVariable.variableListenerClass()) and PiggybackShadowVariable (if CustomShadowVariable.variableListenerRef() is used).
  • Deprecated Fields
    Field
    Description
    ai.timefold.solver.core.config.heuristic.selector.move.generic.list.SubListChangeMoveSelectorConfig.maximumSubListSize
    The maximumSubListSize on the SubListChangeMoveSelectorConfig is deprecated and will be removed in a future major version of Timefold. Use SubListSelectorConfig.getMaximumSubListSize() instead.
    ai.timefold.solver.core.config.heuristic.selector.move.generic.list.SubListChangeMoveSelectorConfig.minimumSubListSize
    The minimumSubListSize on the SubListChangeMoveSelectorConfig is deprecated and will be removed in a future major version of Timefold. Use SubListSelectorConfig.getMinimumSubListSize() instead.
    ai.timefold.solver.core.config.heuristic.selector.move.generic.list.SubListSwapMoveSelectorConfig.maximumSubListSize
    The maximumSubListSize on the SubListSwapMoveSelectorConfig is deprecated and will be removed in a future major version of Timefold. Use SubListSelectorConfig.getMaximumSubListSize() instead.
    ai.timefold.solver.core.config.heuristic.selector.move.generic.list.SubListSwapMoveSelectorConfig.minimumSubListSize
    The minimumSubListSize on the SubListSwapMoveSelectorConfig is deprecated and will be removed in a future major version of Timefold. Use SubListSelectorConfig.getMinimumSubListSize() instead.
    ai.timefold.solver.core.config.localsearch.decider.acceptor.LocalSearchAcceptorConfig.fadingUndoMoveTabuSize
    Deprecated, no longer has any effect.
    ai.timefold.solver.core.config.localsearch.decider.acceptor.LocalSearchAcceptorConfig.undoMoveTabuSize
    Deprecated, no longer has any effect.
    ai.timefold.solver.core.config.score.director.ScoreDirectorFactoryConfig.scoreDrlList
  • Deprecated Methods
    Method
    Description
    ai.timefold.solver.core.api.domain.solution.PlanningScore.scoreDefinitionClass()
    Support for custom scores is deprecated and will be removed in Timefold Solver 2.0.
    ai.timefold.solver.core.api.domain.solution.PlanningSolution.lookUpStrategyType()
    When multi-threaded solving, ensure your domain classes use @PlanningId instead.
    ai.timefold.solver.core.api.domain.valuerange.ValueRangeFactory.createDoubleValueRange(double, double)
    Prefer ValueRangeFactory.createBigDecimalValueRange(BigDecimal, BigDecimal).
    ai.timefold.solver.core.api.domain.variable.PlanningVariable.nullable()
    Use PlanningVariable.allowsUnassigned() instead.
    ai.timefold.solver.core.api.score.analysis.ConstraintAnalysis.constraintPackage()
    Do not rely on constraint package in user code.
    ai.timefold.solver.core.api.score.analysis.ScoreAnalysis.getConstraintAnalysis(String, String)
    Use ScoreAnalysis.getConstraintAnalysis(String) instead.
    ai.timefold.solver.core.api.score.buildin.bendable.BendableScore.getHardOrSoftScore(int)
    Use BendableScore.hardOrSoftScore(int) instead.
    ai.timefold.solver.core.api.score.buildin.bendable.BendableScore.getHardScore(int)
    Use BendableScore.hardScore(int) instead.
    ai.timefold.solver.core.api.score.buildin.bendable.BendableScore.getHardScores()
    Use BendableScore.hardScores() instead.
    ai.timefold.solver.core.api.score.buildin.bendable.BendableScore.getSoftScore(int)
    Use BendableScore.softScore(int) instead.
    ai.timefold.solver.core.api.score.buildin.bendable.BendableScore.getSoftScores()
    Use BendableScore.softScores() instead.
    ai.timefold.solver.core.api.score.buildin.bendable.BendableScore.ofUninitialized(int, int[], int[])
    Use BendableScore.of(int[], int[]) instead.
    ai.timefold.solver.core.api.score.buildin.bendablebigdecimal.BendableBigDecimalScore.getHardOrSoftScore(int)
    Use BendableBigDecimalScore.hardOrSoftScore(int) instead.
    ai.timefold.solver.core.api.score.buildin.bendablebigdecimal.BendableBigDecimalScore.getHardScore(int)
    Use BendableBigDecimalScore.hardScore(int) instead.
    ai.timefold.solver.core.api.score.buildin.bendablebigdecimal.BendableBigDecimalScore.getHardScores()
    Use BendableBigDecimalScore.hardScores() instead.
    ai.timefold.solver.core.api.score.buildin.bendablebigdecimal.BendableBigDecimalScore.getSoftScore(int)
    Use BendableBigDecimalScore.softScore(int) instead.
    ai.timefold.solver.core.api.score.buildin.bendablebigdecimal.BendableBigDecimalScore.getSoftScores()
    Use BendableBigDecimalScore.softScores() instead.
    ai.timefold.solver.core.api.score.buildin.bendablebigdecimal.BendableBigDecimalScore.ofUninitialized(int, BigDecimal[], BigDecimal[])
    Use BendableBigDecimalScore.of(BigDecimal[], BigDecimal[]) instead.
    ai.timefold.solver.core.api.score.buildin.bendablelong.BendableLongScore.getHardOrSoftScore(int)
    Use BendableLongScore.hardOrSoftScore(int) instead.
    ai.timefold.solver.core.api.score.buildin.bendablelong.BendableLongScore.getHardScore(int)
    Use BendableLongScore.hardScore(int) instead.
    ai.timefold.solver.core.api.score.buildin.bendablelong.BendableLongScore.getHardScores()
    Use BendableLongScore.hardScores() instead.
    ai.timefold.solver.core.api.score.buildin.bendablelong.BendableLongScore.getSoftScore(int)
    Use BendableLongScore.softScore(int) instead.
    ai.timefold.solver.core.api.score.buildin.bendablelong.BendableLongScore.getSoftScores()
    Use BendableLongScore.softScores() instead.
    ai.timefold.solver.core.api.score.buildin.bendablelong.BendableLongScore.ofUninitialized(int, long[], long[])
    Use BendableLongScore.of(long[], long[]) instead.
    ai.timefold.solver.core.api.score.buildin.hardmediumsoft.HardMediumSoftScore.getHardScore()
    Use HardMediumSoftScore.hardScore() instead.
    ai.timefold.solver.core.api.score.buildin.hardmediumsoft.HardMediumSoftScore.getMediumScore()
    Use HardMediumSoftScore.mediumScore() instead.
    ai.timefold.solver.core.api.score.buildin.hardmediumsoft.HardMediumSoftScore.getSoftScore()
    Use HardMediumSoftScore.softScore() instead.
    ai.timefold.solver.core.api.score.buildin.hardmediumsoft.HardMediumSoftScore.ofUninitialized(int, int, int, int)
    Use HardMediumSoftScore.of(int, int, int) instead.
    ai.timefold.solver.core.api.score.buildin.hardmediumsoftbigdecimal.HardMediumSoftBigDecimalScore.getHardScore()
    Use HardMediumSoftBigDecimalScore.hardScore() instead.
    ai.timefold.solver.core.api.score.buildin.hardmediumsoftbigdecimal.HardMediumSoftBigDecimalScore.getMediumScore()
    Use HardMediumSoftBigDecimalScore.mediumScore() instead.
    ai.timefold.solver.core.api.score.buildin.hardmediumsoftbigdecimal.HardMediumSoftBigDecimalScore.getSoftScore()
    Use HardMediumSoftBigDecimalScore.softScore() instead.
    ai.timefold.solver.core.api.score.buildin.hardmediumsoftbigdecimal.HardMediumSoftBigDecimalScore.ofUninitialized(int, BigDecimal, BigDecimal, BigDecimal)
    Use HardMediumSoftBigDecimalScore.of(BigDecimal, BigDecimal, BigDecimal) instead.
    ai.timefold.solver.core.api.score.buildin.hardmediumsoftlong.HardMediumSoftLongScore.getHardScore()
    Use HardMediumSoftLongScore.hardScore() instead.
    ai.timefold.solver.core.api.score.buildin.hardmediumsoftlong.HardMediumSoftLongScore.getMediumScore()
    Use HardMediumSoftLongScore.mediumScore() instead.
    ai.timefold.solver.core.api.score.buildin.hardmediumsoftlong.HardMediumSoftLongScore.getSoftScore()
    Use HardMediumSoftLongScore.softScore() instead.
    ai.timefold.solver.core.api.score.buildin.hardmediumsoftlong.HardMediumSoftLongScore.ofUninitialized(int, long, long, long)
    Use HardMediumSoftLongScore.of(long, long, long) instead.
    ai.timefold.solver.core.api.score.buildin.hardsoft.HardSoftScore.getHardScore()
    Use HardSoftScore.hardScore() instead.
    ai.timefold.solver.core.api.score.buildin.hardsoft.HardSoftScore.getSoftScore()
    Use HardSoftScore.softScore() instead.
    ai.timefold.solver.core.api.score.buildin.hardsoft.HardSoftScore.ofUninitialized(int, int, int)
    Use HardSoftScore.of(int, int) instead.
    ai.timefold.solver.core.api.score.buildin.hardsoftbigdecimal.HardSoftBigDecimalScore.getHardScore()
    Use HardSoftBigDecimalScore.hardScore() instead.
    ai.timefold.solver.core.api.score.buildin.hardsoftbigdecimal.HardSoftBigDecimalScore.getSoftScore()
    Use HardSoftBigDecimalScore.softScore() instead.
    ai.timefold.solver.core.api.score.buildin.hardsoftbigdecimal.HardSoftBigDecimalScore.ofUninitialized(int, BigDecimal, BigDecimal)
    Use HardSoftBigDecimalScore.of(BigDecimal, BigDecimal) instead.
    ai.timefold.solver.core.api.score.buildin.hardsoftlong.HardSoftLongScore.getHardScore()
    Use HardSoftLongScore.hardScore() instead.
    ai.timefold.solver.core.api.score.buildin.hardsoftlong.HardSoftLongScore.getSoftScore()
    Use HardSoftLongScore.softScore() instead.
    ai.timefold.solver.core.api.score.buildin.hardsoftlong.HardSoftLongScore.ofUninitialized(int, long, long)
    Use HardSoftLongScore.of(long, long) instead.
    ai.timefold.solver.core.api.score.buildin.simple.SimpleScore.getScore()
    Use SimpleScore.score() instead.
    ai.timefold.solver.core.api.score.buildin.simple.SimpleScore.ofUninitialized(int, int)
    Use SimpleScore.of(int) instead.
    ai.timefold.solver.core.api.score.buildin.simplebigdecimal.SimpleBigDecimalScore.getScore()
    Use SimpleBigDecimalScore.score() instead.
    ai.timefold.solver.core.api.score.buildin.simplebigdecimal.SimpleBigDecimalScore.ofUninitialized(int, BigDecimal)
    Use SimpleBigDecimalScore.of(BigDecimal) instead.
    ai.timefold.solver.core.api.score.buildin.simplelong.SimpleLongScore.getScore()
    Use SimpleLongScore.score() instead.
    ai.timefold.solver.core.api.score.buildin.simplelong.SimpleLongScore.ofUninitialized(int, long)
    Use SimpleLongScore.of(long) instead.
    ai.timefold.solver.core.api.score.constraint.ConstraintMatch.getConstraintId()
    Prefer ConstraintMatch.getConstraintRef() instead.
    ai.timefold.solver.core.api.score.constraint.ConstraintMatch.getConstraintName()
    Prefer ConstraintMatch.getConstraintRef() instead.
    ai.timefold.solver.core.api.score.constraint.ConstraintMatch.getConstraintPackage()
    Prefer ConstraintMatch.getConstraintRef() instead.
    ai.timefold.solver.core.api.score.constraint.ConstraintMatch.getJustificationList()
    Prefer ConstraintMatch.getJustification() or ConstraintMatch.getIndictedObjectList().
    ai.timefold.solver.core.api.score.constraint.ConstraintMatchTotal.composeConstraintId(String, String)
    Prefer ConstraintRef.of(String, String).
    ai.timefold.solver.core.api.score.constraint.ConstraintMatchTotal.getConstraintId()
    Prefer ConstraintMatchTotal.getConstraintRef().
    ai.timefold.solver.core.api.score.constraint.ConstraintMatchTotal.getConstraintName()
    Prefer ConstraintMatchTotal.getConstraintRef().
    ai.timefold.solver.core.api.score.constraint.ConstraintMatchTotal.getConstraintPackage()
    Prefer ConstraintMatchTotal.getConstraintRef().
    ai.timefold.solver.core.api.score.constraint.Indictment.getJustification()
    Prefer Indictment.getIndictedObject().
    ai.timefold.solver.core.api.score.director.ScoreDirector.afterEntityAdded(Object)
    Calling this method by user code is not recommended and will lead to unforeseen consequences. Use ProblemChange instead.
    ai.timefold.solver.core.api.score.director.ScoreDirector.afterEntityRemoved(Object)
    Calling this method by user code is not recommended and will lead to unforeseen consequences. Use ProblemChange instead.
    ai.timefold.solver.core.api.score.director.ScoreDirector.afterProblemFactAdded(Object)
    Calling this method by user code is not recommended and will lead to unforeseen consequences. Use ProblemChange instead.
    ai.timefold.solver.core.api.score.director.ScoreDirector.afterProblemFactRemoved(Object)
    Calling this method by user code is not recommended and will lead to unforeseen consequences. Use ProblemChange instead.
    ai.timefold.solver.core.api.score.director.ScoreDirector.afterProblemPropertyChanged(Object)
    Calling this method by user code is not recommended and will lead to unforeseen consequences. Use ProblemChange instead.
    ai.timefold.solver.core.api.score.director.ScoreDirector.beforeEntityAdded(Object)
    Calling this method by user code is not recommended and will lead to unforeseen consequences. Use ProblemChange instead.
    ai.timefold.solver.core.api.score.director.ScoreDirector.beforeEntityRemoved(Object)
    Calling this method by user code is not recommended and will lead to unforeseen consequences. Use ProblemChange instead.
    ai.timefold.solver.core.api.score.director.ScoreDirector.beforeProblemFactAdded(Object)
    Calling this method by user code is not recommended and will lead to unforeseen consequences. Use ProblemChange instead.
    ai.timefold.solver.core.api.score.director.ScoreDirector.beforeProblemFactRemoved(Object)
    Calling this method by user code is not recommended and will lead to unforeseen consequences. Use ProblemChange instead.
    ai.timefold.solver.core.api.score.director.ScoreDirector.beforeProblemPropertyChanged(Object)
    Calling this method by user code is not recommended and will lead to unforeseen consequences. Use ProblemChange instead.
    ai.timefold.solver.core.api.score.IBendableScore.getHardLevelsSize()
    Use IBendableScore.hardLevelsSize() instead.
    ai.timefold.solver.core.api.score.IBendableScore.getLevelsSize()
    Use IBendableScore.levelsSize() instead.
    ai.timefold.solver.core.api.score.IBendableScore.getSoftLevelsSize()
    Use IBendableScore.softLevelsSize() instead.
    ai.timefold.solver.core.api.score.Score.getInitScore()
    No point in using this method anymore.
    ai.timefold.solver.core.api.score.Score.initScore()
    No point in using this method anymore.
    ai.timefold.solver.core.api.score.Score.isSolutionInitialized()
    No point in using this method anymore.
    ai.timefold.solver.core.api.score.Score.withInitScore(int)
    No point in using this method anymore.
    ai.timefold.solver.core.api.score.stream.bi.BiConstraintStream.ifExistsIncludingNullVars(Class<C>, TriJoiner<A, B, C>)
    Prefer BiConstraintStream.ifExistsIncludingUnassigned(Class, TriJoiner).
    ai.timefold.solver.core.api.score.stream.bi.BiConstraintStream.ifExistsIncludingNullVars(Class<C>, TriJoiner<A, B, C>...)
    Prefer BiConstraintStream.ifExistsIncludingUnassigned(Class, TriJoiner...).
    ai.timefold.solver.core.api.score.stream.bi.BiConstraintStream.ifExistsIncludingNullVars(Class<C>, TriJoiner<A, B, C>, TriJoiner<A, B, C>)
    Prefer BiConstraintStream.ifExistsIncludingUnassigned(Class, TriJoiner, TriJoiner).
    ai.timefold.solver.core.api.score.stream.bi.BiConstraintStream.ifExistsIncludingNullVars(Class<C>, TriJoiner<A, B, C>, TriJoiner<A, B, C>, TriJoiner<A, B, C>)
    Prefer BiConstraintStream.ifExistsIncludingUnassigned(Class, TriJoiner, TriJoiner, TriJoiner).
    ai.timefold.solver.core.api.score.stream.bi.BiConstraintStream.ifExistsIncludingNullVars(Class<C>, TriJoiner<A, B, C>, TriJoiner<A, B, C>, TriJoiner<A, B, C>, TriJoiner<A, B, C>)
    Prefer BiConstraintStream.ifExistsIncludingUnassigned(Class, TriJoiner, TriJoiner, TriJoiner, TriJoiner).
    ai.timefold.solver.core.api.score.stream.bi.BiConstraintStream.ifNotExistsIncludingNullVars(Class<C>, TriJoiner<A, B, C>)
    Prefer BiConstraintStream.ifNotExistsIncludingUnassigned(Class, TriJoiner).
    ai.timefold.solver.core.api.score.stream.bi.BiConstraintStream.ifNotExistsIncludingNullVars(Class<C>, TriJoiner<A, B, C>...)
    Prefer BiConstraintStream.ifNotExistsIncludingUnassigned(Class, TriJoiner...).
    ai.timefold.solver.core.api.score.stream.bi.BiConstraintStream.ifNotExistsIncludingNullVars(Class<C>, TriJoiner<A, B, C>, TriJoiner<A, B, C>)
    Prefer BiConstraintStream.ifNotExistsIncludingUnassigned(Class, TriJoiner, TriJoiner).
    ai.timefold.solver.core.api.score.stream.bi.BiConstraintStream.ifNotExistsIncludingNullVars(Class<C>, TriJoiner<A, B, C>, TriJoiner<A, B, C>, TriJoiner<A, B, C>)
    Prefer BiConstraintStream.ifNotExistsIncludingUnassigned(Class, TriJoiner, TriJoiner, TriJoiner).
    ai.timefold.solver.core.api.score.stream.bi.BiConstraintStream.ifNotExistsIncludingNullVars(Class<C>, TriJoiner<A, B, C>, TriJoiner<A, B, C>, TriJoiner<A, B, C>, TriJoiner<A, B, C>)
    Prefer BiConstraintStream.ifNotExistsIncludingUnassigned(Class, TriJoiner, TriJoiner, TriJoiner, TriJoiner).
    ai.timefold.solver.core.api.score.stream.bi.BiConstraintStream.impact(String, Score<?>, ToIntBiFunction<A, B>)
    Prefer BiConstraintStream.impact(Score, ToIntBiFunction).
    ai.timefold.solver.core.api.score.stream.bi.BiConstraintStream.impact(String, String, Score<?>, ToIntBiFunction<A, B>)
    Prefer BiConstraintStream.impact(Score, ToIntBiFunction).
    ai.timefold.solver.core.api.score.stream.bi.BiConstraintStream.impactBigDecimal(String, Score<?>, BiFunction<A, B, BigDecimal>)
    Prefer BiConstraintStream.impactBigDecimal(Score, BiFunction).
    ai.timefold.solver.core.api.score.stream.bi.BiConstraintStream.impactBigDecimal(String, String, Score<?>, BiFunction<A, B, BigDecimal>)
    Prefer BiConstraintStream.impactBigDecimal(Score, BiFunction).
    ai.timefold.solver.core.api.score.stream.bi.BiConstraintStream.impactConfigurable()
    Prefer BiConstraintStream.impact(Score) and ConstraintWeightOverrides.
    ai.timefold.solver.core.api.score.stream.bi.BiConstraintStream.impactConfigurable(String, String, ToIntBiFunction<A, B>)
    Prefer BiConstraintStream.impact(Score, ToIntBiFunction) and ConstraintWeightOverrides.
    ai.timefold.solver.core.api.score.stream.bi.BiConstraintStream.impactConfigurable(String, ToIntBiFunction<A, B>)
    Prefer BiConstraintStream.impact(Score, ToIntBiFunction) and ConstraintWeightOverrides.
    ai.timefold.solver.core.api.score.stream.bi.BiConstraintStream.impactConfigurable(ToIntBiFunction<A, B>)
    Prefer BiConstraintStream.impact(Score, ToIntBiFunction) and ConstraintWeightOverrides.
    ai.timefold.solver.core.api.score.stream.bi.BiConstraintStream.impactConfigurableBigDecimal(String, String, BiFunction<A, B, BigDecimal>)
    Prefer BiConstraintStream.impactBigDecimal(Score, BiFunction) and ConstraintWeightOverrides.
    ai.timefold.solver.core.api.score.stream.bi.BiConstraintStream.impactConfigurableBigDecimal(String, BiFunction<A, B, BigDecimal>)
    Prefer BiConstraintStream.impactBigDecimal(Score, BiFunction) and ConstraintWeightOverrides.
    ai.timefold.solver.core.api.score.stream.bi.BiConstraintStream.impactConfigurableBigDecimal(BiFunction<A, B, BigDecimal>)
    Prefer BiConstraintStream.impactBigDecimal(Score, BiFunction) and ConstraintWeightOverrides.
    ai.timefold.solver.core.api.score.stream.bi.BiConstraintStream.impactConfigurableLong(String, String, ToLongBiFunction<A, B>)
    Prefer BiConstraintStream.impactLong(Score, ToLongBiFunction) and ConstraintWeightOverrides.
    ai.timefold.solver.core.api.score.stream.bi.BiConstraintStream.impactConfigurableLong(String, ToLongBiFunction<A, B>)
    Prefer BiConstraintStream.impactLong(Score, ToLongBiFunction) and ConstraintWeightOverrides.
    ai.timefold.solver.core.api.score.stream.bi.BiConstraintStream.impactConfigurableLong(ToLongBiFunction<A, B>)
    Prefer BiConstraintStream.impactLong(Score, ToLongBiFunction) and ConstraintWeightOverrides.
    ai.timefold.solver.core.api.score.stream.bi.BiConstraintStream.impactLong(String, Score<?>, ToLongBiFunction<A, B>)
    Prefer BiConstraintStream.impactLong(Score, ToLongBiFunction).
    ai.timefold.solver.core.api.score.stream.bi.BiConstraintStream.impactLong(String, String, Score<?>, ToLongBiFunction<A, B>)
    Prefer BiConstraintStream.impactLong(Score, ToLongBiFunction).
    ai.timefold.solver.core.api.score.stream.bi.BiConstraintStream.penalize(String, Score<?>, ToIntBiFunction<A, B>)
    Prefer BiConstraintStream.penalize(Score, ToIntBiFunction).
    ai.timefold.solver.core.api.score.stream.bi.BiConstraintStream.penalize(String, String, Score<?>, ToIntBiFunction<A, B>)
    Prefer BiConstraintStream.penalize(Score, ToIntBiFunction).
    ai.timefold.solver.core.api.score.stream.bi.BiConstraintStream.penalizeBigDecimal(String, Score<?>, BiFunction<A, B, BigDecimal>)
    Prefer BiConstraintStream.penalizeBigDecimal(Score, BiFunction).
    ai.timefold.solver.core.api.score.stream.bi.BiConstraintStream.penalizeBigDecimal(String, String, Score<?>, BiFunction<A, B, BigDecimal>)
    Prefer BiConstraintStream.penalizeBigDecimal(Score, BiFunction).
    ai.timefold.solver.core.api.score.stream.bi.BiConstraintStream.penalizeConfigurable()
    Prefer BiConstraintStream.penalize(Score) and ConstraintWeightOverrides.
    ai.timefold.solver.core.api.score.stream.bi.BiConstraintStream.penalizeConfigurable(String, String, ToIntBiFunction<A, B>)
    Prefer BiConstraintStream.penalize(Score, ToIntBiFunction) and ConstraintWeightOverrides.
    ai.timefold.solver.core.api.score.stream.bi.BiConstraintStream.penalizeConfigurable(String, ToIntBiFunction<A, B>)
    Prefer BiConstraintStream.penalize(Score, ToIntBiFunction) and ConstraintWeightOverrides.
    ai.timefold.solver.core.api.score.stream.bi.BiConstraintStream.penalizeConfigurable(ToIntBiFunction<A, B>)
    Prefer BiConstraintStream.penalize(Score, ToIntBiFunction) and ConstraintWeightOverrides.
    ai.timefold.solver.core.api.score.stream.bi.BiConstraintStream.penalizeConfigurableBigDecimal(String, String, BiFunction<A, B, BigDecimal>)
    Prefer BiConstraintStream.penalizeBigDecimal(Score, BiFunction) and ConstraintWeightOverrides.
    ai.timefold.solver.core.api.score.stream.bi.BiConstraintStream.penalizeConfigurableBigDecimal(String, BiFunction<A, B, BigDecimal>)
    Prefer BiConstraintStream.penalizeBigDecimal(Score, BiFunction) and ConstraintWeightOverrides.
    ai.timefold.solver.core.api.score.stream.bi.BiConstraintStream.penalizeConfigurableBigDecimal(BiFunction<A, B, BigDecimal>)
    Prefer BiConstraintStream.penalizeBigDecimal(Score, BiFunction) and ConstraintWeightOverrides.
    ai.timefold.solver.core.api.score.stream.bi.BiConstraintStream.penalizeConfigurableLong(String, String, ToLongBiFunction<A, B>)
    Prefer BiConstraintStream.penalizeLong(Score, ToLongBiFunction) and ConstraintWeightOverrides.
    ai.timefold.solver.core.api.score.stream.bi.BiConstraintStream.penalizeConfigurableLong(String, ToLongBiFunction<A, B>)
    Prefer BiConstraintStream.penalizeLong(Score, ToLongBiFunction) and ConstraintWeightOverrides.
    ai.timefold.solver.core.api.score.stream.bi.BiConstraintStream.penalizeConfigurableLong(ToLongBiFunction<A, B>)
    Prefer BiConstraintStream.penalizeLong(Score, ToLongBiFunction) and ConstraintWeightOverrides.
    ai.timefold.solver.core.api.score.stream.bi.BiConstraintStream.penalizeLong(String, Score<?>, ToLongBiFunction<A, B>)
    Prefer BiConstraintStream.penalizeLong(Score, ToLongBiFunction).
    ai.timefold.solver.core.api.score.stream.bi.BiConstraintStream.penalizeLong(String, String, Score<?>, ToLongBiFunction<A, B>)
    Prefer BiConstraintStream.penalizeLong(Score, ToLongBiFunction).
    ai.timefold.solver.core.api.score.stream.bi.BiConstraintStream.reward(String, Score<?>, ToIntBiFunction<A, B>)
    Prefer BiConstraintStream.reward(Score, ToIntBiFunction).
    ai.timefold.solver.core.api.score.stream.bi.BiConstraintStream.reward(String, String, Score<?>, ToIntBiFunction<A, B>)
    Prefer BiConstraintStream.reward(Score, ToIntBiFunction).
    ai.timefold.solver.core.api.score.stream.bi.BiConstraintStream.rewardBigDecimal(String, Score<?>, BiFunction<A, B, BigDecimal>)
    Prefer BiConstraintStream.rewardBigDecimal(Score, BiFunction).
    ai.timefold.solver.core.api.score.stream.bi.BiConstraintStream.rewardBigDecimal(String, String, Score<?>, BiFunction<A, B, BigDecimal>)
    Prefer BiConstraintStream.rewardBigDecimal(Score, BiFunction).
    ai.timefold.solver.core.api.score.stream.bi.BiConstraintStream.rewardConfigurable()
    Prefer BiConstraintStream.reward(Score, ToIntBiFunction) and ConstraintWeightOverrides.
    ai.timefold.solver.core.api.score.stream.bi.BiConstraintStream.rewardConfigurable(String, String, ToIntBiFunction<A, B>)
    Prefer BiConstraintStream.reward(Score, ToIntBiFunction) and ConstraintWeightOverrides.
    ai.timefold.solver.core.api.score.stream.bi.BiConstraintStream.rewardConfigurable(String, ToIntBiFunction<A, B>)
    Prefer BiConstraintStream.reward(Score, ToIntBiFunction) and ConstraintWeightOverrides.
    ai.timefold.solver.core.api.score.stream.bi.BiConstraintStream.rewardConfigurable(ToIntBiFunction<A, B>)
    Prefer BiConstraintStream.reward(Score, ToIntBiFunction) and ConstraintWeightOverrides.
    ai.timefold.solver.core.api.score.stream.bi.BiConstraintStream.rewardConfigurableBigDecimal(String, String, BiFunction<A, B, BigDecimal>)
    Prefer BiConstraintStream.rewardBigDecimal(Score, BiFunction) and ConstraintWeightOverrides.
    ai.timefold.solver.core.api.score.stream.bi.BiConstraintStream.rewardConfigurableBigDecimal(String, BiFunction<A, B, BigDecimal>)
    Prefer BiConstraintStream.rewardBigDecimal(Score, BiFunction) and ConstraintWeightOverrides.
    ai.timefold.solver.core.api.score.stream.bi.BiConstraintStream.rewardConfigurableBigDecimal(BiFunction<A, B, BigDecimal>)
    Prefer BiConstraintStream.rewardBigDecimal(Score, BiFunction) and ConstraintWeightOverrides.
    ai.timefold.solver.core.api.score.stream.bi.BiConstraintStream.rewardConfigurableLong(String, String, ToLongBiFunction<A, B>)
    Prefer BiConstraintStream.rewardLong(Score, ToLongBiFunction) and ConstraintWeightOverrides.
    ai.timefold.solver.core.api.score.stream.bi.BiConstraintStream.rewardConfigurableLong(String, ToLongBiFunction<A, B>)
    Prefer BiConstraintStream.rewardLong(Score, ToLongBiFunction) and ConstraintWeightOverrides.
    ai.timefold.solver.core.api.score.stream.bi.BiConstraintStream.rewardConfigurableLong(ToLongBiFunction<A, B>)
    Prefer BiConstraintStream.rewardLong(Score, ToLongBiFunction) and ConstraintWeightOverrides.
    ai.timefold.solver.core.api.score.stream.bi.BiConstraintStream.rewardLong(String, Score<?>, ToLongBiFunction<A, B>)
    Prefer BiConstraintStream.rewardLong(Score, ToLongBiFunction).
    ai.timefold.solver.core.api.score.stream.bi.BiConstraintStream.rewardLong(String, String, Score<?>, ToLongBiFunction<A, B>)
    Prefer BiConstraintStream.rewardLong(Score, ToLongBiFunction).
    ai.timefold.solver.core.api.score.stream.Constraint.getConstraintFactory()
    for removal as it is not necessary on the public API.
    ai.timefold.solver.core.api.score.stream.Constraint.getConstraintId()
    Prefer Constraint.getConstraintRef().
    ai.timefold.solver.core.api.score.stream.Constraint.getConstraintName()
    Prefer Constraint.getConstraintRef().
    ai.timefold.solver.core.api.score.stream.Constraint.getConstraintPackage()
    Prefer Constraint.getConstraintRef().
    ai.timefold.solver.core.api.score.stream.ConstraintBuilder.asConstraint(String, String)
    Constraint package should no longer be used, use ConstraintBuilder.asConstraint(String) instead.
    ai.timefold.solver.core.api.score.stream.ConstraintCollectors.max(QuadFunction<A, B, C, D, Mapped>, Comparator<? super Mapped>)
    Deprecated in favor of ConstraintCollectors.max(QuadFunction, Function), as this method can lead to unavoidable score corruptions.
    ai.timefold.solver.core.api.score.stream.ConstraintCollectors.max(TriFunction<A, B, C, Mapped>, Comparator<? super Mapped>)
    Deprecated in favor of ConstraintCollectors.max(TriFunction, Function), as this method can lead to unavoidable score corruptions.
    ai.timefold.solver.core.api.score.stream.ConstraintCollectors.max(Comparator<? super A>)
    Deprecated in favor of ConstraintCollectors.max(Function, Function), as this method can lead to unavoidable score corruptions.
    ai.timefold.solver.core.api.score.stream.ConstraintCollectors.max(BiFunction<A, B, Mapped>, Comparator<? super Mapped>)
    Deprecated in favor of ConstraintCollectors.max(BiFunction, Function), as this method can lead to unavoidable score corruptions.
    ai.timefold.solver.core.api.score.stream.ConstraintCollectors.max(Function<A, Mapped>, Comparator<? super Mapped>)
    Deprecated in favor of ConstraintCollectors.max(Function, Function), as this method can lead to unavoidable score corruptions.
    ai.timefold.solver.core.api.score.stream.ConstraintCollectors.min(QuadFunction<A, B, C, D, Mapped>, Comparator<? super Mapped>)
    Deprecated in favor of ConstraintCollectors.min(QuadFunction, Function), as this method can lead to unavoidable score corruptions.
    ai.timefold.solver.core.api.score.stream.ConstraintCollectors.min(TriFunction<A, B, C, Mapped>, Comparator<? super Mapped>)
    Deprecated in favor of ConstraintCollectors.min(TriFunction, Function), as this method can lead to unavoidable score corruptions.
    ai.timefold.solver.core.api.score.stream.ConstraintCollectors.min(Comparator<? super A>)
    Deprecated in favor of ConstraintCollectors.min(Function, Function), as this method can lead to unavoidable score corruptions.
    ai.timefold.solver.core.api.score.stream.ConstraintCollectors.min(BiFunction<A, B, Mapped>, Comparator<? super Mapped>)
    Deprecated in favor of ConstraintCollectors.min(BiFunction, Function), as this method can lead to unavoidable score corruptions.
    ai.timefold.solver.core.api.score.stream.ConstraintCollectors.min(Function<A, Mapped>, Comparator<? super Mapped>)
    Deprecated in favor of ConstraintCollectors.min(Function, Function), as this method can lead to unavoidable score corruptions.
    ai.timefold.solver.core.api.score.stream.ConstraintCollectors.toCollection(QuadFunction<A, B, C, D, Mapped>, IntFunction<Result>)
    Prefer ConstraintCollectors.toList(QuadFunction), ConstraintCollectors.toSet(QuadFunction) or ConstraintCollectors.toSortedSet(QuadFunction)
    ai.timefold.solver.core.api.score.stream.ConstraintCollectors.toCollection(TriFunction<A, B, C, Mapped>, IntFunction<Result>)
    Prefer ConstraintCollectors.toList(TriFunction), ConstraintCollectors.toSet(TriFunction) or ConstraintCollectors.toSortedSet(TriFunction)
    ai.timefold.solver.core.api.score.stream.ConstraintCollectors.toCollection(BiFunction<A, B, Mapped>, IntFunction<Result>)
    Prefer ConstraintCollectors.toList(BiFunction), ConstraintCollectors.toSet(BiFunction) or ConstraintCollectors.toSortedSet(BiFunction)
    ai.timefold.solver.core.api.score.stream.ConstraintCollectors.toCollection(Function<A, Mapped>, IntFunction<Result>)
    Prefer ConstraintCollectors.toList(Function), ConstraintCollectors.toSet(Function) or ConstraintCollectors.toSortedSet(Function)
    ai.timefold.solver.core.api.score.stream.ConstraintCollectors.toCollection(IntFunction<Result>)
    Prefer ConstraintCollectors.toList(), ConstraintCollectors.toSet() or ConstraintCollectors.toSortedSet()
    ai.timefold.solver.core.api.score.stream.ConstraintFactory.forEachIncludingNullVars(Class<A>)
    Use ConstraintFactory.forEachIncludingUnassigned(Class) instead.
    ai.timefold.solver.core.api.score.stream.ConstraintFactory.from(Class<A>)
    This method is deprecated in favor of ConstraintFactory.forEach(Class), which exhibits the same behavior for planning variables which both allow and don't allow unassigned values.
    ai.timefold.solver.core.api.score.stream.ConstraintFactory.fromUnfiltered(Class<A>)
    Prefer ConstraintFactory.forEachIncludingUnassigned(Class).
    ai.timefold.solver.core.api.score.stream.ConstraintFactory.fromUniquePair(Class<A>)
    Prefer ConstraintFactory.forEachUniquePair(Class), which exhibits the same behavior for planning variables which both allow and don't allow unassigned values.
    ai.timefold.solver.core.api.score.stream.ConstraintFactory.fromUniquePair(Class<A>, BiJoiner<A, A>)
    Prefer ConstraintFactory.forEachUniquePair(Class, BiJoiner), which exhibits the same behavior for planning variables which both allow and don't allow unassigned values.
    ai.timefold.solver.core.api.score.stream.ConstraintFactory.fromUniquePair(Class<A>, BiJoiner<A, A>...)
    Prefer ConstraintFactory.forEachUniquePair(Class, BiJoiner...), which exhibits the same behavior for planning variables which both allow and don't allow unassigned values.
    ai.timefold.solver.core.api.score.stream.ConstraintFactory.fromUniquePair(Class<A>, BiJoiner<A, A>, BiJoiner<A, A>)
    Prefer ConstraintFactory.forEachUniquePair(Class, BiJoiner, BiJoiner), which exhibits the same behavior for planning variables which both allow and don't allow unassigned values.
    ai.timefold.solver.core.api.score.stream.ConstraintFactory.fromUniquePair(Class<A>, BiJoiner<A, A>, BiJoiner<A, A>, BiJoiner<A, A>)
    Prefer ConstraintFactory.forEachUniquePair(Class, BiJoiner, BiJoiner, BiJoiner), which exhibits the same behavior for planning variables which both allow and don't allow unassigned values.
    ai.timefold.solver.core.api.score.stream.ConstraintFactory.fromUniquePair(Class<A>, BiJoiner<A, A>, BiJoiner<A, A>, BiJoiner<A, A>, BiJoiner<A, A>)
    Prefer ConstraintFactory.forEachUniquePair(Class, BiJoiner, BiJoiner, BiJoiner, BiJoiner), which exhibits the same behavior for planning variables which both allow and don't allow unassigned values.
    ai.timefold.solver.core.api.score.stream.ConstraintFactory.getDefaultConstraintPackage()
    Do not rely on any constraint package in user code.
    ai.timefold.solver.core.api.score.stream.ConstraintStream.impact(String, Score<?>)
    Prefer UniConstraintStream.impact(Score) and equivalent bi/tri/... overloads.
    ai.timefold.solver.core.api.score.stream.ConstraintStream.impact(String, String, Score<?>)
    Prefer UniConstraintStream.impact(Score) and equivalent bi/tri/... overloads.
    ai.timefold.solver.core.api.score.stream.ConstraintStream.penalize(String, Score<?>)
    Prefer UniConstraintStream.penalize(Score) and equivalent bi/tri/... overloads.
    ai.timefold.solver.core.api.score.stream.ConstraintStream.penalize(String, String, Score<?>)
    Prefer UniConstraintStream.penalize(Score) and equivalent bi/tri/... overloads.
    ai.timefold.solver.core.api.score.stream.ConstraintStream.penalizeConfigurable(String)
    Prefer penalize() and ConstraintWeightOverrides.
    ai.timefold.solver.core.api.score.stream.ConstraintStream.penalizeConfigurable(String, String)
    Prefer penalize() and ConstraintWeightOverrides.
    ai.timefold.solver.core.api.score.stream.ConstraintStream.reward(String, Score<?>)
    Prefer UniConstraintStream.reward(Score) and equivalent bi/tri/... overloads.
    ai.timefold.solver.core.api.score.stream.ConstraintStream.reward(String, String, Score<?>)
    Prefer UniConstraintStream.reward(Score) and equivalent bi/tri/... overloads.
    ai.timefold.solver.core.api.score.stream.ConstraintStream.rewardConfigurable(String)
    Prefer reward() and ConstraintWeightOverrides.
    ai.timefold.solver.core.api.score.stream.ConstraintStream.rewardConfigurable(String, String)
    Prefer reward() and ConstraintWeightOverrides.
    ai.timefold.solver.core.api.score.stream.quad.QuadConstraintStream.ifExistsIncludingNullVars(Class<E>, PentaJoiner<A, B, C, D, E>)
    Prefer QuadConstraintStream.ifExistsIncludingUnassigned(Class, PentaJoiner).
    ai.timefold.solver.core.api.score.stream.quad.QuadConstraintStream.ifExistsIncludingNullVars(Class<E>, PentaJoiner<A, B, C, D, E>...)
    Prefer QuadConstraintStream.ifExistsIncludingUnassigned(Class, PentaJoiner...).
    ai.timefold.solver.core.api.score.stream.quad.QuadConstraintStream.ifExistsIncludingNullVars(Class<E>, PentaJoiner<A, B, C, D, E>, PentaJoiner<A, B, C, D, E>)
    Prefer QuadConstraintStream.ifExistsIncludingUnassigned(Class, PentaJoiner, PentaJoiner).
    ai.timefold.solver.core.api.score.stream.quad.QuadConstraintStream.ifExistsIncludingNullVars(Class<E>, PentaJoiner<A, B, C, D, E>, PentaJoiner<A, B, C, D, E>, PentaJoiner<A, B, C, D, E>)
    Prefer QuadConstraintStream.ifExistsIncludingUnassigned(Class, PentaJoiner, PentaJoiner, PentaJoiner).
    ai.timefold.solver.core.api.score.stream.quad.QuadConstraintStream.ifExistsIncludingNullVars(Class<E>, PentaJoiner<A, B, C, D, E>, PentaJoiner<A, B, C, D, E>, PentaJoiner<A, B, C, D, E>, PentaJoiner<A, B, C, D, E>)
    Prefer QuadConstraintStream.ifExistsIncludingUnassigned(Class, PentaJoiner, PentaJoiner, PentaJoiner, PentaJoiner).
    ai.timefold.solver.core.api.score.stream.quad.QuadConstraintStream.ifNotExistsIncludingNullVars(Class<E>, PentaJoiner<A, B, C, D, E>)
    Prefer QuadConstraintStream.ifNotExistsIncludingUnassigned(Class, PentaJoiner).
    ai.timefold.solver.core.api.score.stream.quad.QuadConstraintStream.ifNotExistsIncludingNullVars(Class<E>, PentaJoiner<A, B, C, D, E>...)
    Prefer QuadConstraintStream.ifNotExistsIncludingUnassigned(Class, PentaJoiner...).
    ai.timefold.solver.core.api.score.stream.quad.QuadConstraintStream.ifNotExistsIncludingNullVars(Class<E>, PentaJoiner<A, B, C, D, E>, PentaJoiner<A, B, C, D, E>)
    Prefer QuadConstraintStream.ifNotExistsIncludingUnassigned(Class, PentaJoiner, PentaJoiner).
    ai.timefold.solver.core.api.score.stream.quad.QuadConstraintStream.ifNotExistsIncludingNullVars(Class<E>, PentaJoiner<A, B, C, D, E>, PentaJoiner<A, B, C, D, E>, PentaJoiner<A, B, C, D, E>)
    Prefer QuadConstraintStream.ifNotExistsIncludingUnassigned(Class, PentaJoiner, PentaJoiner, PentaJoiner).
    ai.timefold.solver.core.api.score.stream.quad.QuadConstraintStream.ifNotExistsIncludingNullVars(Class<E>, PentaJoiner<A, B, C, D, E>, PentaJoiner<A, B, C, D, E>, PentaJoiner<A, B, C, D, E>, PentaJoiner<A, B, C, D, E>)
    Prefer QuadConstraintStream.ifNotExistsIncludingUnassigned(Class, PentaJoiner, PentaJoiner, PentaJoiner, PentaJoiner).
    ai.timefold.solver.core.api.score.stream.quad.QuadConstraintStream.impact(String, Score<?>, ToIntQuadFunction<A, B, C, D>)
    Prefer QuadConstraintStream.impact(Score, ToIntQuadFunction).
    ai.timefold.solver.core.api.score.stream.quad.QuadConstraintStream.impact(String, String, Score<?>, ToIntQuadFunction<A, B, C, D>)
    Prefer QuadConstraintStream.impact(Score, ToIntQuadFunction).
    ai.timefold.solver.core.api.score.stream.quad.QuadConstraintStream.impactBigDecimal(String, Score<?>, QuadFunction<A, B, C, D, BigDecimal>)
    Prefer QuadConstraintStream.impactBigDecimal(Score, QuadFunction).
    ai.timefold.solver.core.api.score.stream.quad.QuadConstraintStream.impactBigDecimal(String, String, Score<?>, QuadFunction<A, B, C, D, BigDecimal>)
    Prefer QuadConstraintStream.impactBigDecimal(Score, QuadFunction).
    ai.timefold.solver.core.api.score.stream.quad.QuadConstraintStream.impactConfigurable()
    Prefer QuadConstraintStream.impact(Score) and ConstraintWeightOverrides.
    ai.timefold.solver.core.api.score.stream.quad.QuadConstraintStream.impactConfigurable(ToIntQuadFunction<A, B, C, D>)
    Prefer QuadConstraintStream.impact(Score, ToIntQuadFunction) and ConstraintWeightOverrides.
    ai.timefold.solver.core.api.score.stream.quad.QuadConstraintStream.impactConfigurable(String, ToIntQuadFunction<A, B, C, D>)
    Prefer QuadConstraintStream.impact(Score, ToIntQuadFunction) and ConstraintWeightOverrides.
    ai.timefold.solver.core.api.score.stream.quad.QuadConstraintStream.impactConfigurable(String, String, ToIntQuadFunction<A, B, C, D>)
    Prefer QuadConstraintStream.impact(Score, ToIntQuadFunction) and ConstraintWeightOverrides.
    ai.timefold.solver.core.api.score.stream.quad.QuadConstraintStream.impactConfigurableBigDecimal(QuadFunction<A, B, C, D, BigDecimal>)
    Prefer QuadConstraintStream.impactBigDecimal(Score, QuadFunction) and ConstraintWeightOverrides.
    ai.timefold.solver.core.api.score.stream.quad.QuadConstraintStream.impactConfigurableBigDecimal(String, QuadFunction<A, B, C, D, BigDecimal>)
    Prefer QuadConstraintStream.impactBigDecimal(Score, QuadFunction) and ConstraintWeightOverrides.
    ai.timefold.solver.core.api.score.stream.quad.QuadConstraintStream.impactConfigurableBigDecimal(String, String, QuadFunction<A, B, C, D, BigDecimal>)
    Prefer QuadConstraintStream.impactBigDecimal(Score, QuadFunction) and ConstraintWeightOverrides.
    ai.timefold.solver.core.api.score.stream.quad.QuadConstraintStream.impactConfigurableLong(ToLongQuadFunction<A, B, C, D>)
    Prefer QuadConstraintStream.impactLong(Score, ToLongQuadFunction) and ConstraintWeightOverrides.
    ai.timefold.solver.core.api.score.stream.quad.QuadConstraintStream.impactConfigurableLong(String, ToLongQuadFunction<A, B, C, D>)
    Prefer QuadConstraintStream.impactLong(Score, ToLongQuadFunction) and ConstraintWeightOverrides.
    ai.timefold.solver.core.api.score.stream.quad.QuadConstraintStream.impactConfigurableLong(String, String, ToLongQuadFunction<A, B, C, D>)
    Prefer QuadConstraintStream.impactLong(Score, ToLongQuadFunction) and ConstraintWeightOverrides.
    ai.timefold.solver.core.api.score.stream.quad.QuadConstraintStream.impactLong(String, Score<?>, ToLongQuadFunction<A, B, C, D>)
    Prefer QuadConstraintStream.impactLong(Score, ToLongQuadFunction).
    ai.timefold.solver.core.api.score.stream.quad.QuadConstraintStream.impactLong(String, String, Score<?>, ToLongQuadFunction<A, B, C, D>)
    Prefer QuadConstraintStream.impactLong(Score, ToLongQuadFunction).
    ai.timefold.solver.core.api.score.stream.quad.QuadConstraintStream.penalize(String, Score<?>, ToIntQuadFunction<A, B, C, D>)
    Prefer QuadConstraintStream.penalize(Score, ToIntQuadFunction).
    ai.timefold.solver.core.api.score.stream.quad.QuadConstraintStream.penalize(String, String, Score<?>, ToIntQuadFunction<A, B, C, D>)
    Prefer QuadConstraintStream.penalize(Score, ToIntQuadFunction).
    ai.timefold.solver.core.api.score.stream.quad.QuadConstraintStream.penalizeBigDecimal(String, Score<?>, QuadFunction<A, B, C, D, BigDecimal>)
    Prefer QuadConstraintStream.penalizeBigDecimal(Score, QuadFunction).
    ai.timefold.solver.core.api.score.stream.quad.QuadConstraintStream.penalizeBigDecimal(String, String, Score<?>, QuadFunction<A, B, C, D, BigDecimal>)
    Prefer QuadConstraintStream.penalizeBigDecimal(Score, QuadFunction).
    ai.timefold.solver.core.api.score.stream.quad.QuadConstraintStream.penalizeConfigurable()
    Prefer QuadConstraintStream.penalize(Score) and ConstraintWeightOverrides.
    ai.timefold.solver.core.api.score.stream.quad.QuadConstraintStream.penalizeConfigurable(ToIntQuadFunction<A, B, C, D>)
    Prefer QuadConstraintStream.penalize(Score, ToIntQuadFunction) and ConstraintWeightOverrides.
    ai.timefold.solver.core.api.score.stream.quad.QuadConstraintStream.penalizeConfigurable(String, ToIntQuadFunction<A, B, C, D>)
    Prefer QuadConstraintStream.penalize(Score, ToIntQuadFunction) and ConstraintWeightOverrides.
    ai.timefold.solver.core.api.score.stream.quad.QuadConstraintStream.penalizeConfigurable(String, String, ToIntQuadFunction<A, B, C, D>)
    Prefer QuadConstraintStream.penalize(Score, ToIntQuadFunction) and ConstraintWeightOverrides.
    ai.timefold.solver.core.api.score.stream.quad.QuadConstraintStream.penalizeConfigurableBigDecimal(QuadFunction<A, B, C, D, BigDecimal>)
    Prefer QuadConstraintStream.penalizeBigDecimal(Score, QuadFunction) and ConstraintWeightOverrides.
    ai.timefold.solver.core.api.score.stream.quad.QuadConstraintStream.penalizeConfigurableBigDecimal(String, QuadFunction<A, B, C, D, BigDecimal>)
    Prefer QuadConstraintStream.penalizeBigDecimal(Score, QuadFunction) and ConstraintWeightOverrides.
    ai.timefold.solver.core.api.score.stream.quad.QuadConstraintStream.penalizeConfigurableBigDecimal(String, String, QuadFunction<A, B, C, D, BigDecimal>)
    Prefer QuadConstraintStream.penalizeBigDecimal(Score, QuadFunction) and ConstraintWeightOverrides.
    ai.timefold.solver.core.api.score.stream.quad.QuadConstraintStream.penalizeConfigurableLong(ToLongQuadFunction<A, B, C, D>)
    Prefer QuadConstraintStream.penalizeLong(Score, ToLongQuadFunction) and ConstraintWeightOverrides.
    ai.timefold.solver.core.api.score.stream.quad.QuadConstraintStream.penalizeConfigurableLong(String, ToLongQuadFunction<A, B, C, D>)
    Prefer QuadConstraintStream.penalizeLong(Score, ToLongQuadFunction) and ConstraintWeightOverrides.
    ai.timefold.solver.core.api.score.stream.quad.QuadConstraintStream.penalizeConfigurableLong(String, String, ToLongQuadFunction<A, B, C, D>)
    Prefer QuadConstraintStream.penalizeLong(Score, ToLongQuadFunction) and ConstraintWeightOverrides.
    ai.timefold.solver.core.api.score.stream.quad.QuadConstraintStream.penalizeLong(String, Score<?>, ToLongQuadFunction<A, B, C, D>)
    Prefer QuadConstraintStream.penalizeLong(Score, ToLongQuadFunction).
    ai.timefold.solver.core.api.score.stream.quad.QuadConstraintStream.penalizeLong(String, String, Score<?>, ToLongQuadFunction<A, B, C, D>)
    Prefer QuadConstraintStream.penalizeLong(Score, ToLongQuadFunction).
    ai.timefold.solver.core.api.score.stream.quad.QuadConstraintStream.reward(String, Score<?>, ToIntQuadFunction<A, B, C, D>)
    Prefer QuadConstraintStream.reward(Score, ToIntQuadFunction).
    ai.timefold.solver.core.api.score.stream.quad.QuadConstraintStream.reward(String, String, Score<?>, ToIntQuadFunction<A, B, C, D>)
    Prefer QuadConstraintStream.reward(Score, ToIntQuadFunction).
    ai.timefold.solver.core.api.score.stream.quad.QuadConstraintStream.rewardBigDecimal(String, Score<?>, QuadFunction<A, B, C, D, BigDecimal>)
    Prefer QuadConstraintStream.rewardBigDecimal(Score, QuadFunction).
    ai.timefold.solver.core.api.score.stream.quad.QuadConstraintStream.rewardBigDecimal(String, String, Score<?>, QuadFunction<A, B, C, D, BigDecimal>)
    Prefer QuadConstraintStream.rewardBigDecimal(Score, QuadFunction).
    ai.timefold.solver.core.api.score.stream.quad.QuadConstraintStream.rewardConfigurable()
    Prefer QuadConstraintStream.reward(Score) and ConstraintWeightOverrides.
    ai.timefold.solver.core.api.score.stream.quad.QuadConstraintStream.rewardConfigurable(ToIntQuadFunction<A, B, C, D>)
    Prefer QuadConstraintStream.reward(Score, ToIntQuadFunction) and ConstraintWeightOverrides.
    ai.timefold.solver.core.api.score.stream.quad.QuadConstraintStream.rewardConfigurable(String, ToIntQuadFunction<A, B, C, D>)
    Prefer QuadConstraintStream.reward(Score, ToIntQuadFunction) and ConstraintWeightOverrides.
    ai.timefold.solver.core.api.score.stream.quad.QuadConstraintStream.rewardConfigurable(String, String, ToIntQuadFunction<A, B, C, D>)
    Prefer QuadConstraintStream.reward(Score, ToIntQuadFunction) and ConstraintWeightOverrides.
    ai.timefold.solver.core.api.score.stream.quad.QuadConstraintStream.rewardConfigurableBigDecimal(QuadFunction<A, B, C, D, BigDecimal>)
    Prefer QuadConstraintStream.rewardBigDecimal(Score, QuadFunction) and ConstraintWeightOverrides.
    ai.timefold.solver.core.api.score.stream.quad.QuadConstraintStream.rewardConfigurableBigDecimal(String, QuadFunction<A, B, C, D, BigDecimal>)
    Prefer QuadConstraintStream.rewardBigDecimal(Score, QuadFunction) and ConstraintWeightOverrides.
    ai.timefold.solver.core.api.score.stream.quad.QuadConstraintStream.rewardConfigurableBigDecimal(String, String, QuadFunction<A, B, C, D, BigDecimal>)
    Prefer QuadConstraintStream.rewardBigDecimal(Score, QuadFunction) and ConstraintWeightOverrides.
    ai.timefold.solver.core.api.score.stream.quad.QuadConstraintStream.rewardConfigurableLong(ToLongQuadFunction<A, B, C, D>)
    Prefer QuadConstraintStream.rewardLong(Score, ToLongQuadFunction) and ConstraintWeightOverrides.
    ai.timefold.solver.core.api.score.stream.quad.QuadConstraintStream.rewardConfigurableLong(String, ToLongQuadFunction<A, B, C, D>)
    Prefer QuadConstraintStream.rewardLong(Score, ToLongQuadFunction) and ConstraintWeightOverrides.
    ai.timefold.solver.core.api.score.stream.quad.QuadConstraintStream.rewardConfigurableLong(String, String, ToLongQuadFunction<A, B, C, D>)
    Prefer QuadConstraintStream.rewardLong(Score, ToLongQuadFunction) and ConstraintWeightOverrides.
    ai.timefold.solver.core.api.score.stream.quad.QuadConstraintStream.rewardLong(String, Score<?>, ToLongQuadFunction<A, B, C, D>)
    Prefer QuadConstraintStream.rewardLong(Score, ToLongQuadFunction).
    ai.timefold.solver.core.api.score.stream.quad.QuadConstraintStream.rewardLong(String, String, Score<?>, ToLongQuadFunction<A, B, C, D>)
    Prefer QuadConstraintStream.rewardLong(Score, ToLongQuadFunction).
    ai.timefold.solver.core.api.score.stream.tri.TriConstraintStream.ifExistsIncludingNullVars(Class<D>, QuadJoiner<A, B, C, D>)
    Prefer TriConstraintStream.ifExistsIncludingUnassigned(Class, QuadJoiner).
    ai.timefold.solver.core.api.score.stream.tri.TriConstraintStream.ifExistsIncludingNullVars(Class<D>, QuadJoiner<A, B, C, D>...)
    Prefer TriConstraintStream.ifExistsIncludingUnassigned(Class, QuadJoiner...).
    ai.timefold.solver.core.api.score.stream.tri.TriConstraintStream.ifExistsIncludingNullVars(Class<D>, QuadJoiner<A, B, C, D>, QuadJoiner<A, B, C, D>)
    Prefer TriConstraintStream.ifExistsIncludingUnassigned(Class, QuadJoiner, QuadJoiner).
    ai.timefold.solver.core.api.score.stream.tri.TriConstraintStream.ifExistsIncludingNullVars(Class<D>, QuadJoiner<A, B, C, D>, QuadJoiner<A, B, C, D>, QuadJoiner<A, B, C, D>)
    Prefer TriConstraintStream.ifExistsIncludingUnassigned(Class, QuadJoiner, QuadJoiner, QuadJoiner).
    ai.timefold.solver.core.api.score.stream.tri.TriConstraintStream.ifExistsIncludingNullVars(Class<D>, QuadJoiner<A, B, C, D>, QuadJoiner<A, B, C, D>, QuadJoiner<A, B, C, D>, QuadJoiner<A, B, C, D>)
    Prefer TriConstraintStream.ifExistsIncludingUnassigned(Class, QuadJoiner, QuadJoiner, QuadJoiner, QuadJoiner).
    ai.timefold.solver.core.api.score.stream.tri.TriConstraintStream.ifNotExistsIncludingNullVars(Class<D>, QuadJoiner<A, B, C, D>)
    Prefer TriConstraintStream.ifNotExistsIncludingUnassigned(Class, QuadJoiner).
    ai.timefold.solver.core.api.score.stream.tri.TriConstraintStream.ifNotExistsIncludingNullVars(Class<D>, QuadJoiner<A, B, C, D>...)
    Prefer TriConstraintStream.ifNotExistsIncludingUnassigned(Class, QuadJoiner...).
    ai.timefold.solver.core.api.score.stream.tri.TriConstraintStream.ifNotExistsIncludingNullVars(Class<D>, QuadJoiner<A, B, C, D>, QuadJoiner<A, B, C, D>)
    Prefer TriConstraintStream.ifNotExistsIncludingUnassigned(Class, QuadJoiner, QuadJoiner).
    ai.timefold.solver.core.api.score.stream.tri.TriConstraintStream.ifNotExistsIncludingNullVars(Class<D>, QuadJoiner<A, B, C, D>, QuadJoiner<A, B, C, D>, QuadJoiner<A, B, C, D>)
    Prefer TriConstraintStream.ifNotExistsIncludingUnassigned(Class, QuadJoiner, QuadJoiner, QuadJoiner).
    ai.timefold.solver.core.api.score.stream.tri.TriConstraintStream.ifNotExistsIncludingNullVars(Class<D>, QuadJoiner<A, B, C, D>, QuadJoiner<A, B, C, D>, QuadJoiner<A, B, C, D>, QuadJoiner<A, B, C, D>)
    Prefer TriConstraintStream.ifNotExistsIncludingUnassigned(Class, QuadJoiner, QuadJoiner, QuadJoiner, QuadJoiner).
    ai.timefold.solver.core.api.score.stream.tri.TriConstraintStream.impact(String, Score<?>, ToIntTriFunction<A, B, C>)
    Prefer TriConstraintStream.impact(Score, ToIntTriFunction).
    ai.timefold.solver.core.api.score.stream.tri.TriConstraintStream.impact(String, String, Score<?>, ToIntTriFunction<A, B, C>)
    Prefer TriConstraintStream.impact(Score, ToIntTriFunction).
    ai.timefold.solver.core.api.score.stream.tri.TriConstraintStream.impactBigDecimal(String, Score<?>, TriFunction<A, B, C, BigDecimal>)
    Prefer TriConstraintStream.impactBigDecimal(Score, TriFunction).
    ai.timefold.solver.core.api.score.stream.tri.TriConstraintStream.impactBigDecimal(String, String, Score<?>, TriFunction<A, B, C, BigDecimal>)
    Prefer TriConstraintStream.impactBigDecimal(Score, TriFunction).
    ai.timefold.solver.core.api.score.stream.tri.TriConstraintStream.impactConfigurable()
    Prefer TriConstraintStream.impact(Score) and ConstraintWeightOverrides.
    ai.timefold.solver.core.api.score.stream.tri.TriConstraintStream.impactConfigurable(ToIntTriFunction<A, B, C>)
    Prefer TriConstraintStream.impact(Score, ToIntTriFunction) and ConstraintWeightOverrides.
    ai.timefold.solver.core.api.score.stream.tri.TriConstraintStream.impactConfigurable(String, ToIntTriFunction<A, B, C>)
    Prefer TriConstraintStream.impact(Score, ToIntTriFunction) and ConstraintWeightOverrides.
    ai.timefold.solver.core.api.score.stream.tri.TriConstraintStream.impactConfigurable(String, String, ToIntTriFunction<A, B, C>)
    Prefer TriConstraintStream.impact(Score, ToIntTriFunction) and ConstraintWeightOverrides.
    ai.timefold.solver.core.api.score.stream.tri.TriConstraintStream.impactConfigurableBigDecimal(TriFunction<A, B, C, BigDecimal>)
    Prefer TriConstraintStream.impactBigDecimal(Score, TriFunction) and ConstraintWeightOverrides.
    ai.timefold.solver.core.api.score.stream.tri.TriConstraintStream.impactConfigurableBigDecimal(String, TriFunction<A, B, C, BigDecimal>)
    Prefer TriConstraintStream.impactBigDecimal(Score, TriFunction) and ConstraintWeightOverrides.
    ai.timefold.solver.core.api.score.stream.tri.TriConstraintStream.impactConfigurableBigDecimal(String, String, TriFunction<A, B, C, BigDecimal>)
    Prefer TriConstraintStream.impactBigDecimal(Score, TriFunction) and ConstraintWeightOverrides.
    ai.timefold.solver.core.api.score.stream.tri.TriConstraintStream.impactConfigurableLong(ToLongTriFunction<A, B, C>)
    Prefer TriConstraintStream.impactLong(Score, ToLongTriFunction) and ConstraintWeightOverrides.
    ai.timefold.solver.core.api.score.stream.tri.TriConstraintStream.impactConfigurableLong(String, ToLongTriFunction<A, B, C>)
    Prefer TriConstraintStream.impactLong(Score, ToLongTriFunction) and ConstraintWeightOverrides.
    ai.timefold.solver.core.api.score.stream.tri.TriConstraintStream.impactConfigurableLong(String, String, ToLongTriFunction<A, B, C>)
    Prefer TriConstraintStream.impactLong(Score, ToLongTriFunction) and ConstraintWeightOverrides.
    ai.timefold.solver.core.api.score.stream.tri.TriConstraintStream.impactLong(String, Score<?>, ToLongTriFunction<A, B, C>)
    Prefer TriConstraintStream.impactLong(Score, ToLongTriFunction).
    ai.timefold.solver.core.api.score.stream.tri.TriConstraintStream.impactLong(String, String, Score<?>, ToLongTriFunction<A, B, C>)
    Prefer TriConstraintStream.impactLong(Score, ToLongTriFunction).
    ai.timefold.solver.core.api.score.stream.tri.TriConstraintStream.penalize(String, Score<?>, ToIntTriFunction<A, B, C>)
    Prefer TriConstraintStream.penalize(Score, ToIntTriFunction).
    ai.timefold.solver.core.api.score.stream.tri.TriConstraintStream.penalize(String, String, Score<?>, ToIntTriFunction<A, B, C>)
    Prefer TriConstraintStream.penalize(Score, ToIntTriFunction).
    ai.timefold.solver.core.api.score.stream.tri.TriConstraintStream.penalizeBigDecimal(String, Score<?>, TriFunction<A, B, C, BigDecimal>)
    Prefer TriConstraintStream.penalizeBigDecimal(Score, TriFunction).
    ai.timefold.solver.core.api.score.stream.tri.TriConstraintStream.penalizeBigDecimal(String, String, Score<?>, TriFunction<A, B, C, BigDecimal>)
    Prefer TriConstraintStream.penalizeBigDecimal(Score, TriFunction).
    ai.timefold.solver.core.api.score.stream.tri.TriConstraintStream.penalizeConfigurable()
    Prefer TriConstraintStream.penalize(Score) and ConstraintWeightOverrides.
    ai.timefold.solver.core.api.score.stream.tri.TriConstraintStream.penalizeConfigurable(ToIntTriFunction<A, B, C>)
    Prefer TriConstraintStream.penalize(Score, ToIntTriFunction) and ConstraintWeightOverrides.
    ai.timefold.solver.core.api.score.stream.tri.TriConstraintStream.penalizeConfigurable(String, ToIntTriFunction<A, B, C>)
    Prefer TriConstraintStream.penalize(Score, ToIntTriFunction) and ConstraintWeightOverrides.
    ai.timefold.solver.core.api.score.stream.tri.TriConstraintStream.penalizeConfigurable(String, String, ToIntTriFunction<A, B, C>)
    Prefer TriConstraintStream.penalize(Score, ToIntTriFunction) and ConstraintWeightOverrides.
    ai.timefold.solver.core.api.score.stream.tri.TriConstraintStream.penalizeConfigurableBigDecimal(TriFunction<A, B, C, BigDecimal>)
    Prefer TriConstraintStream.penalizeBigDecimal(Score, TriFunction) and ConstraintWeightOverrides.
    ai.timefold.solver.core.api.score.stream.tri.TriConstraintStream.penalizeConfigurableBigDecimal(String, TriFunction<A, B, C, BigDecimal>)
    Prefer TriConstraintStream.penalizeBigDecimal(Score, TriFunction) and ConstraintWeightOverrides.
    ai.timefold.solver.core.api.score.stream.tri.TriConstraintStream.penalizeConfigurableBigDecimal(String, String, TriFunction<A, B, C, BigDecimal>)
    Prefer TriConstraintStream.penalizeBigDecimal(Score, TriFunction) and ConstraintWeightOverrides.
    ai.timefold.solver.core.api.score.stream.tri.TriConstraintStream.penalizeConfigurableLong(ToLongTriFunction<A, B, C>)
    Prefer TriConstraintStream.penalizeLong(Score, ToLongTriFunction) and ConstraintWeightOverrides.
    ai.timefold.solver.core.api.score.stream.tri.TriConstraintStream.penalizeConfigurableLong(String, ToLongTriFunction<A, B, C>)
    Prefer TriConstraintStream.penalizeConfigurableLong(ToLongTriFunction).
    ai.timefold.solver.core.api.score.stream.tri.TriConstraintStream.penalizeConfigurableLong(String, String, ToLongTriFunction<A, B, C>)
    Prefer TriConstraintStream.penalizeConfigurableLong(ToLongTriFunction).
    ai.timefold.solver.core.api.score.stream.tri.TriConstraintStream.penalizeLong(String, Score<?>, ToLongTriFunction<A, B, C>)
    Prefer TriConstraintStream.penalizeLong(Score, ToLongTriFunction).
    ai.timefold.solver.core.api.score.stream.tri.TriConstraintStream.penalizeLong(String, String, Score<?>, ToLongTriFunction<A, B, C>)
    Prefer TriConstraintStream.penalizeLong(Score, ToLongTriFunction).
    ai.timefold.solver.core.api.score.stream.tri.TriConstraintStream.reward(String, Score<?>, ToIntTriFunction<A, B, C>)
    Prefer TriConstraintStream.reward(Score, ToIntTriFunction).
    ai.timefold.solver.core.api.score.stream.tri.TriConstraintStream.reward(String, String, Score<?>, ToIntTriFunction<A, B, C>)
    Prefer TriConstraintStream.reward(Score, ToIntTriFunction).
    ai.timefold.solver.core.api.score.stream.tri.TriConstraintStream.rewardBigDecimal(String, Score<?>, TriFunction<A, B, C, BigDecimal>)
    Prefer TriConstraintStream.rewardBigDecimal(Score, TriFunction).
    ai.timefold.solver.core.api.score.stream.tri.TriConstraintStream.rewardBigDecimal(String, String, Score<?>, TriFunction<A, B, C, BigDecimal>)
    Prefer TriConstraintStream.rewardBigDecimal(Score, TriFunction).
    ai.timefold.solver.core.api.score.stream.tri.TriConstraintStream.rewardConfigurable()
    Prefer TriConstraintStream.reward(Score) and ConstraintWeightOverrides.
    ai.timefold.solver.core.api.score.stream.tri.TriConstraintStream.rewardConfigurable(ToIntTriFunction<A, B, C>)
    Prefer TriConstraintStream.reward(Score, ToIntTriFunction) and ConstraintWeightOverrides.
    ai.timefold.solver.core.api.score.stream.tri.TriConstraintStream.rewardConfigurable(String, ToIntTriFunction<A, B, C>)
    Prefer TriConstraintStream.reward(Score, ToIntTriFunction) and ConstraintWeightOverrides.
    ai.timefold.solver.core.api.score.stream.tri.TriConstraintStream.rewardConfigurable(String, String, ToIntTriFunction<A, B, C>)
    Prefer TriConstraintStream.reward(Score, ToIntTriFunction) and ConstraintWeightOverrides.
    ai.timefold.solver.core.api.score.stream.tri.TriConstraintStream.rewardConfigurableBigDecimal(TriFunction<A, B, C, BigDecimal>)
    Prefer TriConstraintStream.rewardBigDecimal(Score, TriFunction) and ConstraintWeightOverrides.
    ai.timefold.solver.core.api.score.stream.tri.TriConstraintStream.rewardConfigurableBigDecimal(String, TriFunction<A, B, C, BigDecimal>)
    Prefer TriConstraintStream.rewardBigDecimal(Score, TriFunction) and ConstraintWeightOverrides.
    ai.timefold.solver.core.api.score.stream.tri.TriConstraintStream.rewardConfigurableBigDecimal(String, String, TriFunction<A, B, C, BigDecimal>)
    Prefer TriConstraintStream.rewardBigDecimal(Score, TriFunction) and ConstraintWeightOverrides.
    ai.timefold.solver.core.api.score.stream.tri.TriConstraintStream.rewardConfigurableLong(ToLongTriFunction<A, B, C>)
    Prefer TriConstraintStream.rewardLong(Score, ToLongTriFunction) and ConstraintWeightOverrides.
    ai.timefold.solver.core.api.score.stream.tri.TriConstraintStream.rewardConfigurableLong(String, ToLongTriFunction<A, B, C>)
    Prefer TriConstraintStream.rewardLong(Score, ToLongTriFunction) and ConstraintWeightOverrides.
    ai.timefold.solver.core.api.score.stream.tri.TriConstraintStream.rewardConfigurableLong(String, String, ToLongTriFunction<A, B, C>)
    Prefer TriConstraintStream.rewardLong(Score, ToLongTriFunction) and ConstraintWeightOverrides.
    ai.timefold.solver.core.api.score.stream.tri.TriConstraintStream.rewardLong(String, Score<?>, ToLongTriFunction<A, B, C>)
    Prefer TriConstraintStream.rewardLong(Score, ToLongTriFunction).
    ai.timefold.solver.core.api.score.stream.tri.TriConstraintStream.rewardLong(String, String, Score<?>, ToLongTriFunction<A, B, C>)
    Prefer TriConstraintStream.rewardLong(Score, ToLongTriFunction).
    ai.timefold.solver.core.api.score.stream.uni.UniConstraintStream.ifExistsIncludingNullVars(Class<B>, BiJoiner<A, B>)
    Prefer UniConstraintStream.ifExistsIncludingUnassigned(Class, BiJoiner).
    ai.timefold.solver.core.api.score.stream.uni.UniConstraintStream.ifExistsIncludingNullVars(Class<B>, BiJoiner<A, B>...)
    Prefer UniConstraintStream.ifExistsIncludingUnassigned(Class, BiJoiner...).
    ai.timefold.solver.core.api.score.stream.uni.UniConstraintStream.ifExistsIncludingNullVars(Class<B>, BiJoiner<A, B>, BiJoiner<A, B>)
    Prefer UniConstraintStream.ifExistsIncludingUnassigned(Class, BiJoiner, BiJoiner).
    ai.timefold.solver.core.api.score.stream.uni.UniConstraintStream.ifExistsIncludingNullVars(Class<B>, BiJoiner<A, B>, BiJoiner<A, B>, BiJoiner<A, B>)
    Prefer UniConstraintStream.ifExistsIncludingUnassigned(Class, BiJoiner, BiJoiner, BiJoiner).
    ai.timefold.solver.core.api.score.stream.uni.UniConstraintStream.ifExistsIncludingNullVars(Class<B>, BiJoiner<A, B>, BiJoiner<A, B>, BiJoiner<A, B>, BiJoiner<A, B>)
    Prefer UniConstraintStream.ifExistsIncludingUnassigned(Class, BiJoiner, BiJoiner, BiJoiner, BiJoiner).
    ai.timefold.solver.core.api.score.stream.uni.UniConstraintStream.ifExistsOtherIncludingNullVars(Class<A>)
    Prefer UniConstraintStream.ifExistsOtherIncludingUnassigned(Class).
    ai.timefold.solver.core.api.score.stream.uni.UniConstraintStream.ifExistsOtherIncludingNullVars(Class<A>, BiJoiner<A, A>)
    Prefer UniConstraintStream.ifExistsOtherIncludingUnassigned(Class, BiJoiner).
    ai.timefold.solver.core.api.score.stream.uni.UniConstraintStream.ifExistsOtherIncludingNullVars(Class<A>, BiJoiner<A, A>...)
    Prefer UniConstraintStream.ifExistsOtherIncludingUnassigned(Class, BiJoiner...).
    ai.timefold.solver.core.api.score.stream.uni.UniConstraintStream.ifExistsOtherIncludingNullVars(Class<A>, BiJoiner<A, A>, BiJoiner<A, A>)
    Prefer UniConstraintStream.ifExistsOtherIncludingUnassigned(Class, BiJoiner, BiJoiner).
    ai.timefold.solver.core.api.score.stream.uni.UniConstraintStream.ifExistsOtherIncludingNullVars(Class<A>, BiJoiner<A, A>, BiJoiner<A, A>, BiJoiner<A, A>)
    Prefer UniConstraintStream.ifExistsOtherIncludingUnassigned(Class, BiJoiner, BiJoiner, BiJoiner).
    ai.timefold.solver.core.api.score.stream.uni.UniConstraintStream.ifExistsOtherIncludingNullVars(Class<A>, BiJoiner<A, A>, BiJoiner<A, A>, BiJoiner<A, A>, BiJoiner<A, A>)
    Prefer UniConstraintStream.ifExistsOtherIncludingUnassigned(Class, BiJoiner, BiJoiner, BiJoiner, BiJoiner).
    ai.timefold.solver.core.api.score.stream.uni.UniConstraintStream.ifNotExistsIncludingNullVars(Class<B>, BiJoiner<A, B>)
    Prefer UniConstraintStream.ifNotExistsIncludingUnassigned(Class, BiJoiner)
    ai.timefold.solver.core.api.score.stream.uni.UniConstraintStream.ifNotExistsIncludingNullVars(Class<B>, BiJoiner<A, B>...)
    Prefer UniConstraintStream.ifNotExistsIncludingUnassigned(Class, BiJoiner...)
    ai.timefold.solver.core.api.score.stream.uni.UniConstraintStream.ifNotExistsIncludingNullVars(Class<B>, BiJoiner<A, B>, BiJoiner<A, B>)
    Prefer UniConstraintStream.ifNotExistsIncludingUnassigned(Class, BiJoiner, BiJoiner)
    ai.timefold.solver.core.api.score.stream.uni.UniConstraintStream.ifNotExistsIncludingNullVars(Class<B>, BiJoiner<A, B>, BiJoiner<A, B>, BiJoiner<A, B>)
    Prefer UniConstraintStream.ifNotExistsIncludingUnassigned(Class, BiJoiner, BiJoiner, BiJoiner)
    ai.timefold.solver.core.api.score.stream.uni.UniConstraintStream.ifNotExistsIncludingNullVars(Class<B>, BiJoiner<A, B>, BiJoiner<A, B>, BiJoiner<A, B>, BiJoiner<A, B>)
    Prefer UniConstraintStream.ifNotExistsIncludingUnassigned(Class, BiJoiner, BiJoiner, BiJoiner, BiJoiner)
    ai.timefold.solver.core.api.score.stream.uni.UniConstraintStream.ifNotExistsOtherIncludingNullVars(Class<A>)
    Prefer UniConstraintStream.ifNotExistsOtherIncludingUnassigned(Class).
    ai.timefold.solver.core.api.score.stream.uni.UniConstraintStream.ifNotExistsOtherIncludingNullVars(Class<A>, BiJoiner<A, A>)
    Prefer UniConstraintStream.ifNotExistsOtherIncludingUnassigned(Class, BiJoiner).
    ai.timefold.solver.core.api.score.stream.uni.UniConstraintStream.ifNotExistsOtherIncludingNullVars(Class<A>, BiJoiner<A, A>...)
    Prefer UniConstraintStream.ifNotExistsOtherIncludingUnassigned(Class, BiJoiner...).
    ai.timefold.solver.core.api.score.stream.uni.UniConstraintStream.ifNotExistsOtherIncludingNullVars(Class<A>, BiJoiner<A, A>, BiJoiner<A, A>)
    Prefer UniConstraintStream.ifNotExistsOtherIncludingUnassigned(Class, BiJoiner, BiJoiner).
    ai.timefold.solver.core.api.score.stream.uni.UniConstraintStream.ifNotExistsOtherIncludingNullVars(Class<A>, BiJoiner<A, A>, BiJoiner<A, A>, BiJoiner<A, A>)
    Prefer UniConstraintStream.ifNotExistsOtherIncludingUnassigned(Class, BiJoiner, BiJoiner, BiJoiner).
    ai.timefold.solver.core.api.score.stream.uni.UniConstraintStream.ifNotExistsOtherIncludingNullVars(Class<A>, BiJoiner<A, A>, BiJoiner<A, A>, BiJoiner<A, A>, BiJoiner<A, A>)
    Prefer UniConstraintStream.ifNotExistsOtherIncludingUnassigned(Class, BiJoiner, BiJoiner, BiJoiner, BiJoiner).
    ai.timefold.solver.core.api.score.stream.uni.UniConstraintStream.impact(String, Score<?>, ToIntFunction<A>)
    Prefer UniConstraintStream.impact(Score, ToIntFunction).
    ai.timefold.solver.core.api.score.stream.uni.UniConstraintStream.impact(String, String, Score<?>, ToIntFunction<A>)
    Prefer UniConstraintStream.impact(Score, ToIntFunction).
    ai.timefold.solver.core.api.score.stream.uni.UniConstraintStream.impactBigDecimal(String, Score<?>, Function<A, BigDecimal>)
    Prefer UniConstraintStream.impactBigDecimal(Score, Function).
    ai.timefold.solver.core.api.score.stream.uni.UniConstraintStream.impactBigDecimal(String, String, Score<?>, Function<A, BigDecimal>)
    Prefer UniConstraintStream.impactBigDecimal(Score, Function).
    ai.timefold.solver.core.api.score.stream.uni.UniConstraintStream.impactConfigurable()
    Prefer UniConstraintStream.impact(Score) and ConstraintWeightOverrides.
    ai.timefold.solver.core.api.score.stream.uni.UniConstraintStream.impactConfigurable(String, String, ToIntFunction<A>)
    Prefer UniConstraintStream.impact(Score, ToIntFunction) and ConstraintWeightOverrides.
    ai.timefold.solver.core.api.score.stream.uni.UniConstraintStream.impactConfigurable(String, ToIntFunction<A>)
    Prefer UniConstraintStream.impact(Score, ToIntFunction) and ConstraintWeightOverrides.
    ai.timefold.solver.core.api.score.stream.uni.UniConstraintStream.impactConfigurable(ToIntFunction<A>)
    Prefer UniConstraintStream.impact(Score, ToIntFunction) and ConstraintWeightOverrides.
    ai.timefold.solver.core.api.score.stream.uni.UniConstraintStream.impactConfigurableBigDecimal(String, String, Function<A, BigDecimal>)
    Prefer UniConstraintStream.impactBigDecimal(Score, Function) and ConstraintWeightOverrides.
    ai.timefold.solver.core.api.score.stream.uni.UniConstraintStream.impactConfigurableBigDecimal(String, Function<A, BigDecimal>)
    Prefer UniConstraintStream.impactBigDecimal(Score, Function) and ConstraintWeightOverrides.
    ai.timefold.solver.core.api.score.stream.uni.UniConstraintStream.impactConfigurableBigDecimal(Function<A, BigDecimal>)
    Prefer UniConstraintStream.impactBigDecimal(Score, Function) and ConstraintWeightOverrides.
    ai.timefold.solver.core.api.score.stream.uni.UniConstraintStream.impactConfigurableLong(String, String, ToLongFunction<A>)
    Prefer UniConstraintStream.impactLong(Score, ToLongFunction) and ConstraintWeightOverrides.
    ai.timefold.solver.core.api.score.stream.uni.UniConstraintStream.impactConfigurableLong(String, ToLongFunction<A>)
    Prefer UniConstraintStream.impactLong(Score, ToLongFunction) and ConstraintWeightOverrides.
    ai.timefold.solver.core.api.score.stream.uni.UniConstraintStream.impactConfigurableLong(ToLongFunction<A>)
    Prefer UniConstraintStream.impactLong(Score, ToLongFunction) and ConstraintWeightOverrides.
    ai.timefold.solver.core.api.score.stream.uni.UniConstraintStream.impactLong(String, Score<?>, ToLongFunction<A>)
    Prefer UniConstraintStream.impactLong(Score, ToLongFunction).
    ai.timefold.solver.core.api.score.stream.uni.UniConstraintStream.impactLong(String, String, Score<?>, ToLongFunction<A>)
    Prefer UniConstraintStream.impactLong(Score, ToLongFunction).
    ai.timefold.solver.core.api.score.stream.uni.UniConstraintStream.penalize(String, Score<?>, ToIntFunction<A>)
    Prefer UniConstraintStream.penalize(Score, ToIntFunction).
    ai.timefold.solver.core.api.score.stream.uni.UniConstraintStream.penalize(String, String, Score<?>, ToIntFunction<A>)
    Prefer UniConstraintStream.penalize(Score, ToIntFunction).
    ai.timefold.solver.core.api.score.stream.uni.UniConstraintStream.penalizeBigDecimal(String, Score<?>, Function<A, BigDecimal>)
    Prefer UniConstraintStream.penalizeBigDecimal(Score, Function).
    ai.timefold.solver.core.api.score.stream.uni.UniConstraintStream.penalizeBigDecimal(String, String, Score<?>, Function<A, BigDecimal>)
    Prefer UniConstraintStream.penalizeBigDecimal(Score, Function).
    ai.timefold.solver.core.api.score.stream.uni.UniConstraintStream.penalizeConfigurable()
    Prefer UniConstraintStream.penalize(Score) and ConstraintWeightOverrides.
    ai.timefold.solver.core.api.score.stream.uni.UniConstraintStream.penalizeConfigurable(String, String, ToIntFunction<A>)
    Prefer UniConstraintStream.penalize(Score) and ConstraintWeightOverrides.
    ai.timefold.solver.core.api.score.stream.uni.UniConstraintStream.penalizeConfigurable(String, ToIntFunction<A>)
    Prefer UniConstraintStream.penalize(Score) and ConstraintWeightOverrides.
    ai.timefold.solver.core.api.score.stream.uni.UniConstraintStream.penalizeConfigurable(ToIntFunction<A>)
    Prefer UniConstraintStream.penalize(Score, ToIntFunction) and ConstraintWeightOverrides.
    ai.timefold.solver.core.api.score.stream.uni.UniConstraintStream.penalizeConfigurableBigDecimal(String, String, Function<A, BigDecimal>)
    Prefer UniConstraintStream.penalizeBigDecimal(Score, Function) and ConstraintWeightOverrides.
    ai.timefold.solver.core.api.score.stream.uni.UniConstraintStream.penalizeConfigurableBigDecimal(String, Function<A, BigDecimal>)
    Prefer UniConstraintStream.penalizeBigDecimal(Score, Function) and ConstraintWeightOverrides.
    ai.timefold.solver.core.api.score.stream.uni.UniConstraintStream.penalizeConfigurableBigDecimal(Function<A, BigDecimal>)
    Prefer UniConstraintStream.penalizeBigDecimal(Score, Function) and ConstraintWeightOverrides.
    ai.timefold.solver.core.api.score.stream.uni.UniConstraintStream.penalizeConfigurableLong(String, String, ToLongFunction<A>)
    Prefer UniConstraintStream.penalizeLong(Score, ToLongFunction) and ConstraintWeightOverrides.
    ai.timefold.solver.core.api.score.stream.uni.UniConstraintStream.penalizeConfigurableLong(String, ToLongFunction<A>)
    Prefer UniConstraintStream.penalizeLong(Score, ToLongFunction) and ConstraintWeightOverrides.
    ai.timefold.solver.core.api.score.stream.uni.UniConstraintStream.penalizeConfigurableLong(ToLongFunction<A>)
    Prefer UniConstraintStream.penalizeLong(Score, ToLongFunction) and ConstraintWeightOverrides.
    ai.timefold.solver.core.api.score.stream.uni.UniConstraintStream.penalizeLong(String, Score<?>, ToLongFunction<A>)
    Prefer UniConstraintStream.penalizeLong(Score, ToLongFunction).
    ai.timefold.solver.core.api.score.stream.uni.UniConstraintStream.penalizeLong(String, String, Score<?>, ToLongFunction<A>)
    Prefer UniConstraintStream.penalizeLong(Score, ToLongFunction).
    ai.timefold.solver.core.api.score.stream.uni.UniConstraintStream.reward(String, Score<?>, ToIntFunction<A>)
    Prefer UniConstraintStream.reward(Score, ToIntFunction).
    ai.timefold.solver.core.api.score.stream.uni.UniConstraintStream.reward(String, String, Score<?>, ToIntFunction<A>)
    Prefer UniConstraintStream.reward(Score, ToIntFunction).
    ai.timefold.solver.core.api.score.stream.uni.UniConstraintStream.rewardBigDecimal(String, Score<?>, Function<A, BigDecimal>)
    Prefer UniConstraintStream.rewardBigDecimal(Score, Function).
    ai.timefold.solver.core.api.score.stream.uni.UniConstraintStream.rewardBigDecimal(String, String, Score<?>, Function<A, BigDecimal>)
    Prefer UniConstraintStream.rewardBigDecimal(Score, Function).
    ai.timefold.solver.core.api.score.stream.uni.UniConstraintStream.rewardConfigurable()
    Prefer UniConstraintStream.reward(Score) and ConstraintWeightOverrides.
    ai.timefold.solver.core.api.score.stream.uni.UniConstraintStream.rewardConfigurable(String, String, ToIntFunction<A>)
    Prefer UniConstraintStream.reward(Score, ToIntFunction) and ConstraintWeightOverrides.
    ai.timefold.solver.core.api.score.stream.uni.UniConstraintStream.rewardConfigurable(String, ToIntFunction<A>)
    Prefer UniConstraintStream.reward(Score, ToIntFunction) and ConstraintWeightOverrides.
    ai.timefold.solver.core.api.score.stream.uni.UniConstraintStream.rewardConfigurable(ToIntFunction<A>)
    Prefer UniConstraintStream.reward(Score, ToIntFunction) and ConstraintWeightOverrides.
    ai.timefold.solver.core.api.score.stream.uni.UniConstraintStream.rewardConfigurableBigDecimal(String, String, Function<A, BigDecimal>)
    Prefer UniConstraintStream.rewardBigDecimal(Score, Function) and ConstraintWeightOverrides.
    ai.timefold.solver.core.api.score.stream.uni.UniConstraintStream.rewardConfigurableBigDecimal(String, Function<A, BigDecimal>)
    Prefer UniConstraintStream.rewardBigDecimal(Score, Function) and ConstraintWeightOverrides.
    ai.timefold.solver.core.api.score.stream.uni.UniConstraintStream.rewardConfigurableBigDecimal(Function<A, BigDecimal>)
    Prefer UniConstraintStream.rewardBigDecimal(Score, Function) and ConstraintWeightOverrides.
    ai.timefold.solver.core.api.score.stream.uni.UniConstraintStream.rewardConfigurableLong(String, String, ToLongFunction<A>)
    Prefer UniConstraintStream.rewardLong(Score, ToLongFunction) and ConstraintWeightOverrides.
    ai.timefold.solver.core.api.score.stream.uni.UniConstraintStream.rewardConfigurableLong(String, ToLongFunction<A>)
    Prefer UniConstraintStream.rewardLong(Score, ToLongFunction) and ConstraintWeightOverrides.
    ai.timefold.solver.core.api.score.stream.uni.UniConstraintStream.rewardConfigurableLong(ToLongFunction<A>)
    Prefer UniConstraintStream.rewardLong(Score, ToLongFunction) and ConstraintWeightOverrides.
    ai.timefold.solver.core.api.score.stream.uni.UniConstraintStream.rewardLong(String, Score<?>, ToLongFunction<A>)
    Prefer UniConstraintStream.rewardLong(Score, ToLongFunction).
    ai.timefold.solver.core.api.score.stream.uni.UniConstraintStream.rewardLong(String, String, Score<?>, ToLongFunction<A>)
    Prefer UniConstraintStream.rewardLong(Score, ToLongFunction).
    ai.timefold.solver.core.api.solver.event.BestSolutionChangedEvent.isEveryProblemFactChangeProcessed()
    Prefer BestSolutionChangedEvent.isEveryProblemChangeProcessed().
    ai.timefold.solver.core.api.solver.SolutionManager.recommendFit(Solution_, EntityOrElement_, Function<EntityOrElement_, Proposition_>)
    Prefer SolutionManager.recommendAssignment(Object, Object, Function, ScoreAnalysisFetchPolicy).
    ai.timefold.solver.core.api.solver.SolutionManager.recommendFit(Solution_, EntityOrElement_, Function<EntityOrElement_, Proposition_>, ScoreAnalysisFetchPolicy)
    Prefer SolutionManager.recommendAssignment(Object, Object, Function, ScoreAnalysisFetchPolicy).
    ai.timefold.solver.core.api.solver.Solver.addProblemFactChange(ProblemFactChange<Solution_>)
    Prefer Solver.addProblemChange(ProblemChange).
    ai.timefold.solver.core.api.solver.Solver.addProblemFactChanges(List<ProblemFactChange<Solution_>>)
    Prefer Solver.addProblemChanges(List).
    ai.timefold.solver.core.api.solver.Solver.isEveryProblemFactChangeProcessed()
    Prefer Solver.isEveryProblemChangeProcessed().
    ai.timefold.solver.core.api.solver.SolverJobBuilder.withFirstInitializedSolutionConsumer(Consumer<? super Solution_>)
    Use SolverJobBuilder.withFirstInitializedSolutionConsumer(FirstInitializedSolutionConsumer) instead.
    ai.timefold.solver.core.api.solver.SolverManager.solve(ProblemId_, Function<? super ProblemId_, ? extends Solution_>, Consumer<? super Solution_>)
    It is recommended to use SolverManager.solveBuilder()
    ai.timefold.solver.core.api.solver.SolverManager.solve(ProblemId_, Function<? super ProblemId_, ? extends Solution_>, Consumer<? super Solution_>, BiConsumer<? super ProblemId_, ? super Throwable>)
    It is recommended to use SolverManager.solveBuilder()
    ai.timefold.solver.core.api.solver.SolverManager.solve(ProblemId_, Solution_, Consumer<? super Solution_>, BiConsumer<? super ProblemId_, ? super Throwable>)
    It is recommended to use SolverManager.solveBuilder()
    ai.timefold.solver.core.api.solver.SolverManager.solveAndListen(ProblemId_, Function<? super ProblemId_, ? extends Solution_>, Consumer<? super Solution_>)
    It is recommended to use SolverManager.solveBuilder() while also providing a consumer for the best solution
    ai.timefold.solver.core.api.solver.SolverManager.solveAndListen(ProblemId_, Function<? super ProblemId_, ? extends Solution_>, Consumer<? super Solution_>, BiConsumer<? super ProblemId_, ? super Throwable>)
    It is recommended to use SolverManager.solveBuilder() while also providing a consumer for the best solution
    ai.timefold.solver.core.api.solver.SolverManager.solveAndListen(ProblemId_, Function<? super ProblemId_, ? extends Solution_>, Consumer<? super Solution_>, Consumer<? super Solution_>, BiConsumer<? super ProblemId_, ? super Throwable>)
    It is recommended to use SolverManager.solveBuilder() while also providing a consumer for the best solution
    ai.timefold.solver.core.config.heuristic.selector.move.composite.CartesianProductMoveSelectorConfig.getMoveSelectorConfigList()
    Prefer CartesianProductMoveSelectorConfig.getMoveSelectorList().
    ai.timefold.solver.core.config.heuristic.selector.move.composite.CartesianProductMoveSelectorConfig.setMoveSelectorConfigList(List<MoveSelectorConfig>)
    Prefer CartesianProductMoveSelectorConfig.setMoveSelectorList(List).
    ai.timefold.solver.core.config.heuristic.selector.move.composite.UnionMoveSelectorConfig.getMoveSelectorConfigList()
    Prefer UnionMoveSelectorConfig.getMoveSelectorList().
    ai.timefold.solver.core.config.heuristic.selector.move.composite.UnionMoveSelectorConfig.setMoveSelectorConfigList(List<MoveSelectorConfig>)
    Prefer UnionMoveSelectorConfig.setMoveSelectorList(List).
    ai.timefold.solver.core.config.heuristic.selector.move.generic.list.SubListChangeMoveSelectorConfig.getMaximumSubListSize()
    The maximumSubListSize on the SubListChangeMoveSelectorConfig is deprecated and will be removed in a future major version of Timefold. Use SubListSelectorConfig.getMaximumSubListSize() instead.
    ai.timefold.solver.core.config.heuristic.selector.move.generic.list.SubListChangeMoveSelectorConfig.getMinimumSubListSize()
    The minimumSubListSize on the SubListChangeMoveSelectorConfig is deprecated and will be removed in a future major version of Timefold. Use SubListSelectorConfig.getMinimumSubListSize() instead.
    ai.timefold.solver.core.config.heuristic.selector.move.generic.list.SubListChangeMoveSelectorConfig.setMaximumSubListSize(Integer)
    The maximumSubListSize on the SubListChangeMoveSelectorConfig is deprecated and will be removed in a future major version of Timefold. Use SubListSelectorConfig.setMaximumSubListSize(Integer) instead.
    ai.timefold.solver.core.config.heuristic.selector.move.generic.list.SubListChangeMoveSelectorConfig.setMinimumSubListSize(Integer)
    The minimumSubListSize on the SubListChangeMoveSelectorConfig is deprecated and will be removed in a future major version of Timefold. Use SubListSelectorConfig.setMinimumSubListSize(Integer) instead.
    ai.timefold.solver.core.config.heuristic.selector.move.generic.list.SubListSwapMoveSelectorConfig.getMaximumSubListSize()
    The maximumSubListSize on the SubListSwapMoveSelectorConfig is deprecated and will be removed in a future major version of Timefold. Use SubListSelectorConfig.getMaximumSubListSize() instead.
    ai.timefold.solver.core.config.heuristic.selector.move.generic.list.SubListSwapMoveSelectorConfig.getMinimumSubListSize()
    The minimumSubListSize on the SubListSwapMoveSelectorConfig is deprecated and will be removed in a future major version of Timefold. Use SubListSelectorConfig.getMinimumSubListSize() instead.
    ai.timefold.solver.core.config.heuristic.selector.move.generic.list.SubListSwapMoveSelectorConfig.setMaximumSubListSize(Integer)
    The maximumSubListSize on the SubListSwapMoveSelectorConfig is deprecated and will be removed in a future major version of Timefold. Use SubListSelectorConfig.setMaximumSubListSize(Integer) instead.
    ai.timefold.solver.core.config.heuristic.selector.move.generic.list.SubListSwapMoveSelectorConfig.setMinimumSubListSize(Integer)
    The minimumSubListSize on the SubListSwapMoveSelectorConfig is deprecated and will be removed in a future major version of Timefold. Use SubListSelectorConfig.setMinimumSubListSize(Integer) instead.
    ai.timefold.solver.core.config.localsearch.decider.acceptor.LocalSearchAcceptorConfig.getFadingUndoMoveTabuSize()
    Deprecated, no longer has any effect.
    ai.timefold.solver.core.config.localsearch.decider.acceptor.LocalSearchAcceptorConfig.getFadingValueTabuRatio()
    Deprecated on account of never having worked in the first place.
    ai.timefold.solver.core.config.localsearch.decider.acceptor.LocalSearchAcceptorConfig.getUndoMoveTabuSize()
    Deprecated, no longer has any effect.
    ai.timefold.solver.core.config.localsearch.decider.acceptor.LocalSearchAcceptorConfig.getValueTabuRatio()
    Deprecated on account of never having worked in the first place.
    ai.timefold.solver.core.config.localsearch.decider.acceptor.LocalSearchAcceptorConfig.setFadingUndoMoveTabuSize(Integer)
    Deprecated, no longer has any effect.
    ai.timefold.solver.core.config.localsearch.decider.acceptor.LocalSearchAcceptorConfig.setFadingValueTabuRatio(Double)
    Deprecated on account of never having worked in the first place.
    ai.timefold.solver.core.config.localsearch.decider.acceptor.LocalSearchAcceptorConfig.setUndoMoveTabuSize(Integer)
    Deprecated, no longer has any effect.
    ai.timefold.solver.core.config.localsearch.decider.acceptor.LocalSearchAcceptorConfig.setValueTabuRatio(Double)
    Deprecated on account of never having worked in the first place.
    ai.timefold.solver.core.config.localsearch.decider.acceptor.LocalSearchAcceptorConfig.withFadingUndoMoveTabuSize(Integer)
    Deprecated, no longer has any effect.
    ai.timefold.solver.core.config.localsearch.decider.acceptor.LocalSearchAcceptorConfig.withUndoMoveTabuSize(Integer)
    Deprecated, no longer has any effect.
    ai.timefold.solver.core.config.score.director.ScoreDirectorFactoryConfig.getConstraintStreamImplType()
    There is only one implementation, so this method is deprecated. This method no longer has any effect.
    ai.timefold.solver.core.config.score.director.ScoreDirectorFactoryConfig.getScoreDrlList()
    All support for Score DRL was removed when Timefold was forked from OptaPlanner. See DRL to Constraint Streams migration recipe.
    ai.timefold.solver.core.config.score.director.ScoreDirectorFactoryConfig.setConstraintStreamImplType(ConstraintStreamImplType)
    There is only one implementation, so this method is deprecated. This method no longer has any effect.
    ai.timefold.solver.core.config.score.director.ScoreDirectorFactoryConfig.setScoreDrlList(List<String>)
    All support for Score DRL was removed when Timefold was forked from OptaPlanner. See DRL to Constraint Streams migration recipe.
    ai.timefold.solver.core.config.score.director.ScoreDirectorFactoryConfig.withConstraintStreamImplType(ConstraintStreamImplType)
    There is only one implementation, so this method is deprecated. This method no longer has any effect.
    ai.timefold.solver.core.config.score.director.ScoreDirectorFactoryConfig.withScoreDrlList(List<String>)
    All support for Score DRL was removed when Timefold was forked from OptaPlanner. See DRL to Constraint Streams migration recipe.
    ai.timefold.solver.core.config.score.director.ScoreDirectorFactoryConfig.withScoreDrls(String...)
    All support for Score DRL was removed when Timefold was forked from OptaPlanner. See DRL to Constraint Streams migration recipe.
    ai.timefold.solver.core.config.solver.EnvironmentMode.isIntrusiveFastAsserted()
    Use EnvironmentMode.isIntrusivelyAsserted() instead.
    ai.timefold.solver.core.config.solver.EnvironmentMode.isNonIntrusiveFullAsserted()
    Use EnvironmentMode.isFullyAsserted() instead.
    ai.timefold.solver.core.config.solver.termination.TerminationConfig.getTerminationClass()
    A custom terminationClass is deprecated and will be removed in a future major version of Timefold.
    ai.timefold.solver.core.config.solver.termination.TerminationConfig.setTerminationClass(Class<? extends Termination>)
    A custom terminationClass is deprecated and will be removed in a future major version of Timefold.
    ai.timefold.solver.core.config.solver.termination.TerminationConfig.withTerminationClass(Class<? extends Termination>)
    A custom terminationClass is deprecated and will be removed in a future major version of Timefold.
    ai.timefold.solver.core.impl.domain.entity.descriptor.EntityDescriptor.getIsInitializedPredicate()
    Prefer EntityDescriptor.getHasNoNullVariablesPredicateListVar().
    ai.timefold.solver.core.impl.domain.solution.descriptor.SolutionDescriptor.getConstraintConfigurationMemberAccessor()
    ConstraintConfiguration was replaced by ConstraintWeightOverrides.
    ai.timefold.solver.core.impl.heuristic.move.AbstractMove.createUndoMove(ScoreDirector<Solution_>)
    The solver automatically generates undo moves, this method is no longer used.
    ai.timefold.solver.core.impl.heuristic.move.Move.doMove(ScoreDirector<Solution_>)
    Prefer Move.doMoveOnly(ScoreDirector) instead, undo moves no longer have any effect.
    ai.timefold.solver.core.impl.score.director.AbstractScoreDirector.clone()
    Unused, but kept for backward compatibility.
  • Deprecated Constructors
    Constructor
    Description
    ai.timefold.solver.core.api.score.constraint.ConstraintMatch(Constraint, ConstraintJustification, Collection<Object>, Score_)
    Prefer ConstraintMatch(ConstraintRef, ConstraintJustification, Collection, Score).
    ai.timefold.solver.core.api.score.constraint.ConstraintMatch(String, String, ConstraintJustification, Collection<Object>, Score_)
    Prefer ConstraintMatch(ConstraintRef, ConstraintJustification, Collection, Score).
    ai.timefold.solver.core.api.score.constraint.ConstraintMatch(String, String, String, ConstraintJustification, Collection<Object>, Score_)
    Prefer ConstraintMatch(ConstraintRef, ConstraintJustification, Collection, Score).
    ai.timefold.solver.core.api.score.constraint.ConstraintMatch(String, String, List<Object>, Score_)
    Prefer ConstraintMatch(ConstraintRef, ConstraintJustification, Collection, Score).
    ai.timefold.solver.core.api.solver.event.BestSolutionChangedEvent(Solver<Solution_>, long, Solution_, Score)
    Use BestSolutionChangedEvent(Solver, long, Object, Score, boolean) instead.
    ai.timefold.solver.core.impl.score.constraint.DefaultConstraintMatchTotal(ConstraintRef)
    Prefer DefaultConstraintMatchTotal(ConstraintRef, Score_).
    ai.timefold.solver.core.impl.score.constraint.DefaultConstraintMatchTotal(Constraint, Score_)
    Prefer DefaultConstraintMatchTotal(ConstraintRef, Score_).
    ai.timefold.solver.core.impl.score.constraint.DefaultConstraintMatchTotal(String, String)
    Prefer DefaultConstraintMatchTotal(ConstraintRef, Score_).
    ai.timefold.solver.core.impl.score.constraint.DefaultConstraintMatchTotal(String, String, Score_)
    Prefer DefaultConstraintMatchTotal(ConstraintRef, Score_).
  • Deprecated Enum Constants
    Enum Constant
    Description
    ai.timefold.solver.core.api.score.stream.ConstraintStreamImplType.DROOLS
    in favor of ConstraintStreamImplType.BAVET.
    ai.timefold.solver.core.config.score.definition.ScoreDefinitionType.HARD_SOFT_DOUBLE
    ai.timefold.solver.core.config.score.definition.ScoreDefinitionType.SIMPLE_DOUBLE
    ai.timefold.solver.core.config.solver.EnvironmentMode.FAST_ASSERT
    Prefer EnvironmentMode.STEP_ASSERT.
    ai.timefold.solver.core.config.solver.EnvironmentMode.REPRODUCIBLE
    Prefer EnvironmentMode.NO_ASSERT.
    ai.timefold.solver.core.impl.score.stream.common.RetrievalSemantics.LEGACY
    this semantics is deprecated and kept around for backward compatibility reasons. It will be removed in 2.0, together with the from() family of methods, along with this entire enum.
  • Deprecated Annotation Interface Elements
    Annotation Interface Element
    Description
    ai.timefold.solver.core.api.domain.solution.PlanningScore.scoreDefinitionClass()
    Support for custom scores is deprecated and will be removed in Timefold Solver 2.0.
    ai.timefold.solver.core.api.domain.solution.PlanningSolution.lookUpStrategyType()
    When multi-threaded solving, ensure your domain classes use @PlanningId instead.
    ai.timefold.solver.core.api.domain.variable.PlanningVariable.nullable()
    Use PlanningVariable.allowsUnassigned() instead.

Copyright © 2006–2025. All rights reserved.