default <C extends Document & HasName & HasMainInterface> String defaultNameFor(C childDocument) {
        int counter = 1;
        String nameCandidate;
        do {
            nameCandidate = childDocument.mainInterface().getSimpleName() + counter++;
        } while (
            children()
                .map(child -> child.getAsString(NAME))
                .anyMatch(nameCandidate::equals)
        );
        
        return nameCandidate;
    }
Generates a new default name for the specified child by appending an 
unique number to the {@link HasMainInterface#mainInterface()} of that
document.
<p>
This method will only suggest a new name for the specified child, not set
it.

@param <C>            the child type
@param childDocument  the child to name
@return               the suggested name for that child
runtime-parent/runtime-config/src/main/java/com/speedment/runtime/config/trait/HasChildren.java