code: public static ExternalDataStored compose(ExternalDataLayerStored... layers) {
          ExternalDataStored ed = new ExternalDataStored();
          for (ExternalDataLayerStored layer : layers) {
              ed.layersInOrder[ExternalDataLayerTag.getFromClass(layer.getClass()).ordinal()] = layer;
          }
          return ed;
      }
docs: Composes the layers into one document. Normally, you should not use this
  method, unless you want to manually compose document from the layer
  pieces.
  
  @param layers
  @return external data composed of the provided layers