Constraint streams will be awesome! Writing constraints was the hard part, hard enough that eventually we gave up on a solver and went back to our terrible home rolled algorithm. That's always the case with solvers though.
Another hard part was combining chain through time with entities that can be scheduled together vs ones that need gaps. This seems to be a common use case, grouping work where you need a setup/teardown gap between entities. Not sure how to improve this but maybe add some kind of built-in support for "entity coloring" on chained variables where you can configure which run together in a chain vs which ones need setup/teardown gaps between.
Overall Optaplanner is an amazing piece of software though, good work!
Another hard part was combining chain through time with entities that can be scheduled together vs ones that need gaps. This seems to be a common use case, grouping work where you need a setup/teardown gap between entities. Not sure how to improve this but maybe add some kind of built-in support for "entity coloring" on chained variables where you can configure which run together in a chain vs which ones need setup/teardown gaps between.
Overall Optaplanner is an amazing piece of software though, good work!