code: @Override
      public MoveSelector buildBaseMoveSelector(HeuristicConfigPolicy configPolicy,
              SelectionCacheType minimumCacheType, boolean randomSelection) {
          PillarSelectorConfig pillarSelectorConfig_ = pillarSelectorConfig == null ? new PillarSelectorConfig()
                  : pillarSelectorConfig;
          List<String> variableNameIncludeList = valueSelectorConfig == null ? null
                  : valueSelectorConfig.getVariableName() == null ? null
                  : Collections.singletonList(valueSelectorConfig.getVariableName());
          PillarSelector pillarSelector = pillarSelectorConfig_.buildPillarSelector(configPolicy,
                  minimumCacheType, SelectionOrder.fromRandomSelectionBoolean(randomSelection), variableNameIncludeList);
          ValueSelectorConfig valueSelectorConfig_ = valueSelectorConfig == null ? new ValueSelectorConfig()
                  : valueSelectorConfig;
          ValueSelector valueSelector = valueSelectorConfig_.buildValueSelector(configPolicy,
                  pillarSelector.getEntityDescriptor(),
                  minimumCacheType, SelectionOrder.fromRandomSelectionBoolean(randomSelection));
          return new PillarChangeMoveSelector(pillarSelector, valueSelector, randomSelection);
      }
docs: ************************************************************************