Hi guys,

In Planner, I am going to do some structural improvements on the selectors.
Below are some of the idea's on how to do that. All of these are ideas are still very volatile.
Feed-back is welcome, especially if you don't like a particular naming or semantic.

Global design objectives:

- 1) Make selectors and generic MoveFactories faster, scalable and use less memory: by optionally not generating all the moves
- 2) Make selectors and generic MoveFactories more configurable: filter on entities, variables, moveFilter, ...
- 3) Unify entity, variable and value selectors under the same system, to also make them faster, scalable, memory-efficient and more configurable

Let's focus on 1) MoveSelector only for now, on terminology and semantics.
What does a MoveSelector need to have?

Terminology of methods/attributes on MoveSelector. How would you name them? MoveSelector composition: Local Search can only have 1 direct MoveSelector, but that one can be CompositeMoveSelector of other MoveSelectors. There are several forms of composition: I hope this makes sense :) What do you think? Naming, semantics, usage, ...
MoveFilters, entity inclusion/exclusion, etc are for phase 2 (by much easier to do once this stuff in in place)
With kind regards,
Geoffrey De Smet