docs: public List<Map<String, String>> pipelinePossibleStates(RangeTag action,
                                                              List<Map<String, String>> possibleStateList) {
          String variable = action.getName();
          BigDecimal from = new BigDecimal(action.getFrom());
          BigDecimal to = new BigDecimal(action.getTo());
          BigDecimal step;
          if (action.getStep() != null) {
              step = new BigDecimal(action.getStep());
          } else {
              step = BigDecimal.ONE;
          }
  
          List<BigDecimal> rangeValues = new ArrayList<>();
          if (step.signum() == 1) {
              for (BigDecimal current = from; current.compareTo(to) <= 0; current = current.add(step)) {
                  rangeValues.add(current);
              }
          } else if (step.signum() == -1) {
              for (BigDecimal current = from; current.compareTo(to) >= 0; current = current.add(step)) {
                  rangeValues.add(current);
              }
          } else {
              rangeValues.add(from);
          }
  
          //take the product
          List<Map<String, String>> productTemp = new LinkedList<>();
          for (Map<String, String> p : possibleStateList) {
              for (BigDecimal value : rangeValues) {
                  HashMap<String, String> n = new HashMap<>(p);
                  n.put(variable, value.toString());
                  productTemp.add(n);
              }
          }
  
          return productTemp;
      }