docs: private StepIdentifier generateIdentifier(List<Pair<StepContextId, INodeEntry>> stack) {
          List<StepContextId> ctxs = new ArrayList<>();
          int i = 0;
          for (Pair<StepContextId, INodeEntry> pair : stack) {
              Map<String, String> params = null;
              if (null != pair.getSecond() && i < stack.size() - 1) {
                  //include node as a parameter to the context only when it is an intermediate step,
                  // i.e. a parent in the sequence
                  params = new HashMap<>();
                  params.put("node", pair.getSecond().getNodename());
              }
              ctxs.add(StateUtils.stepContextId(pair.getFirst().getStep(), !pair.getFirst().getAspect().isMain(),
                                                params
              ));
              i++;
          }
          return StateUtils.stepIdentifier(ctxs);
      }