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.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.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.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.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.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.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.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.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.simple.SimpleScore.getScore()
    Use SimpleScore.score() instead.
    ai.timefold.solver.core.api.score.buildin.simplebigdecimal.SimpleBigDecimalScore.getScore()
    Use SimpleBigDecimalScore.score() instead.
    ai.timefold.solver.core.api.score.buildin.simplelong.SimpleLongScore.getScore()
    Use SimpleLongScore.score() 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()
    Use Score.initScore() instead.
    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.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.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.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.getFadingValueTabuRatio()
    Deprecated on account of never having worked in the first place.
    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.setFadingValueTabuRatio(Double)
    Deprecated on account of never having worked in the first place.
    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.score.definition.ScoreDefinitionType.HARD_SOFT_DOUBLE
    ai.timefold.solver.core.config.score.definition.ScoreDefinitionType.SIMPLE_DOUBLE
    ai.timefold.solver.core.config.score.director.ScoreDirectorFactoryConfig.getScoreDrlList()
    Score DRL is deprecated and will be removed in a future major version of Timefold. See DRL to Constraint Streams migration recipe.
    ai.timefold.solver.core.config.score.director.ScoreDirectorFactoryConfig.scoreDrlList
    ai.timefold.solver.core.config.score.director.ScoreDirectorFactoryConfig.setScoreDrlList(List<String>)
    Score DRL is deprecated and will be removed in a future major version of Timefold. See DRL to Constraint Streams migration recipe.
    ai.timefold.solver.core.config.score.director.ScoreDirectorFactoryConfig.withScoreDrlList(List<String>)
    Score DRL is deprecated and will be removed in a future major version of Timefold. See DRL to Constraint Streams migration recipe.
    ai.timefold.solver.core.config.score.director.ScoreDirectorFactoryConfig.withScoreDrls(String...)
    Score DRL is deprecated and will be removed in a future major version of Timefold. See DRL to Constraint Streams migration recipe.
    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.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.
  • 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.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.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.
  • 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.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.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.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.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.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.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.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.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.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.simple.SimpleScore.getScore()
    Use SimpleScore.score() instead.
    ai.timefold.solver.core.api.score.buildin.simplebigdecimal.SimpleBigDecimalScore.getScore()
    Use SimpleBigDecimalScore.score() instead.
    ai.timefold.solver.core.api.score.buildin.simplelong.SimpleLongScore.getScore()
    Use SimpleLongScore.score() 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()
    Use Score.initScore() 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, 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.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.getFadingValueTabuRatio()
    Deprecated on account of never having worked in the first place.
    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.setFadingValueTabuRatio(Double)
    Deprecated on account of never having worked in the first place.
    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.score.director.ScoreDirectorFactoryConfig.getScoreDrlList()
    Score DRL is deprecated and will be removed in a future major version of Timefold. See DRL to Constraint Streams migration recipe.
    ai.timefold.solver.core.config.score.director.ScoreDirectorFactoryConfig.setScoreDrlList(List<String>)
    Score DRL is deprecated and will be removed in a future major version of Timefold. See DRL to Constraint Streams migration recipe.
    ai.timefold.solver.core.config.score.director.ScoreDirectorFactoryConfig.withScoreDrlList(List<String>)
    Score DRL is deprecated and will be removed in a future major version of Timefold. See DRL to Constraint Streams migration recipe.
    ai.timefold.solver.core.config.score.director.ScoreDirectorFactoryConfig.withScoreDrls(String...)
    Score DRL is deprecated and will be removed in a future major version of Timefold. See DRL to Constraint Streams migration recipe.
    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.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.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.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–2024. All rights reserved.