Interface IBendableScore<Score_ extends IBendableScore<Score_>>

Type Parameters:
Score_ - the actual score type to allow addition, subtraction and other arithmetic
All Superinterfaces:
Comparable<Score_>, Score<Score_>, Serializable
All Known Implementing Classes:
AbstractBendableScore, BendableBigDecimalScore, BendableLongScore, BendableScore

@NullMarked public interface IBendableScore<Score_ extends IBendableScore<Score_>> extends Score<Score_>, Serializable
Bendable score is a Score whose hardLevelsSize() and softLevelsSize() are only known at runtime.

Interfaces in Timefold are usually not prefixed with "I". However, the conflict in name with its implementation (BendableScore) made this necessary. All the other options were considered worse, some even harmful. This is a minor issue, as users will access the implementation and not the interface anyway.