The RT mode needs to keep the lookahead parameter at zero to meet its requirements.
This means that the goal-seeker needs to know to avoid it - this may fit best if the ConfigurationFixups function of "Codec" takes a "mode" parameter - this requires keeping the name of the mode around, which argues for encapsulating the scoring function into an object having both a mode name and a score function.
An alternative design is to have separate codec names for each mode, which control the underlying parameters.
The RT mode needs to keep the lookahead parameter at zero to meet its requirements. This means that the goal-seeker needs to know to avoid it - this may fit best if the ConfigurationFixups function of "Codec" takes a "mode" parameter - this requires keeping the name of the mode around, which argues for encapsulating the scoring function into an object having both a mode name and a score function.
An alternative design is to have separate codec names for each mode, which control the underlying parameters.