private void addPropertyLinks(
     MutableModelNode modelNode,
     ModelSchemaStore schemaStore,
     NodeInitializerRegistry nodeInitializerRegistry) {
   for (ManagedProperty<?> property : bindings.getManagedProperties().values()) {
     addPropertyLink(modelNode, property, schemaStore, nodeInitializerRegistry);
   }
   if (isNamedType()) {
     // Only initialize "name" child node if the schema has such a managed property.
     // This is not the case for a managed subtype of an unmanaged type that implements Named.
     if (bindings.getManagedProperties().containsKey("name")) {
       MutableModelNode nameLink = modelNode.getLink("name");
       if (nameLink == null) {
         throw new IllegalStateException("expected name node for " + modelNode.getPath());
       }
       nameLink.setPrivateData(ModelType.of(String.class), modelNode.getPath().getName());
     }
   }
 }