private DocumentProperty createWithConstructor() {
            final DocumentProperty inst = constructor.create(parent, key);
            
            // Name needs to be set manually before the two documents are merged
            inst.stringPropertyOf(HasIdUtil.ID, () -> null)
                .setValue(HasId.of(document).getId());
            
            return inst;
        }
Merges a document into the source by adding it to the end. If it already
exists, move the existing to the end and merge into it. This is done with
the superior document.
tool-parent/tool-config/src/main/java/com/speedment/tool/config/util/DocumentMerger.java