docs: public Frontier reproduce(Map<String, String> decomposition, List<CustomTagExtension> tagExtensionList) {
          tagExtensionList = new LinkedList<>(tagExtensionList);
          tagExtensionList.add(new SetAssignExtension());
          tagExtensionList.add(new SingleValueAssignExtension());
          tagExtensionList.add(new FileExtension());
          tagExtensionList.add(new RangeExtension());
  
          setModel(decomposition.get("model"), tagExtensionList);
          TransitionTarget target = (TransitionTarget) model.getTargets().get(decomposition.get("target"));
  
          Map<String, String> variables = new HashMap<>();
          String[] assignments = decomposition.get("variables").split(";");
          for (int i = 0; i < assignments.length; i++) {
              String[] a = assignments[i].split("::");
              if (a.length == 2) {
                  variables.put(a[0], a[1]);
              } else {
                  variables.put(a[0], "");
              }
          }
  
          return new SCXMLFrontier(new PossibleState(target, variables), model, tagExtensionList);
      }