code: @Override
      public <M extends Enum<M>> ServiceMilestone.Recommendation evaluate(Class<M> type, String name, DataBinder binder, Reifier dict, Persistence persist) {
          if (_script != null) {
              try {
                  js.put("type", type);
                  js.put("name", name);
                  js.put("binder", binder);
                  js.put("dictionary", dict);
                  js.put("persistence", persist);
                  Object value = js.eval(_script);
          return value != null ? Enum.valueOf(ServiceMilestone.Recommendation.class, value.toString().toUpperCase()) : ServiceMilestone.Recommendation.CONTINUE;
              } catch (Throwable t) {
                  binder.put("_script_", _script);
                  throw new ServiceException(getScriptingExceptionMessage(t));
              }
          } else {
              return ServiceMilestone.Recommendation.CONTINUE;
          }
      }
docs: Calls the evaluations in order, returning immediately if one returns ServiceMilestone.Recommendation.COMPLETE.