docs: public ExecutionContext with( Map<String, String> data ) {
          Map<String, String> newData = data;
          if (newData == null) {
              if (this.data.isEmpty()) return this;
          } else {
              // Copy the data in the map ...
              newData = Collections.unmodifiableMap(new HashMap<String, String>(data));
          }
          return new ExecutionContext(securityContext, namespaceRegistry, propertyFactory, threadPools, binaryStore, newData,
                                      processId, decoder, encoder, stringFactory, binaryFactory, booleanFactory, dateFactory,
                                      decimalFactory, doubleFactory, longFactory, nameFactory, pathFactory, referenceFactory,
                                      weakReferenceFactory, simpleReferenceFactory, uriFactory, objectFactory, locale);
      }