ConstraintStreams будет поддерживать честность в 2 этапа.
В фазе 1) пример тенниса применяет честность через пользовательский ConstraintCollector. Это работает здесь: https://github.com/kiegroup/optaplanner/pull/710 Это очень похоже на состояние в ScoreDRL.
На этапе 2) (намного позже), будет выход из Поставьте лучший в своем классе API на ConstraintStreams, который сделает все это за вас. Думайте что-то вроде from(Foo.class).groupBy(Foo::getBar, count()).loadBalance((bar, count) -> count)