docs: private void removeStoredProjection( String externalNodeKey ) {
          SessionCache systemSession = repository.createSystemSession(repository.context(), false);
          NodeKey systemNodeKey = getSystemNode(systemSession).getKey();
          MutableCachedNode systemNode = systemSession.mutable(systemNodeKey);
          ChildReference federationNodeRef = systemNode.getChildReferences(systemSession).getChild(ModeShapeLexicon.FEDERATION);
  
          // if we're removing a projection, one had to be stored previously, so there should be a federation node present
          assert federationNodeRef != null;
  
          NodeKey federationNodeKey = federationNodeRef.getKey();
          MutableCachedNode federationNode = systemSession.mutable(federationNodeKey);
          ChildReferences federationChildRefs = federationNode.getChildReferences(systemSession);
  
          int projectionsCount = federationChildRefs.getChildCount(ModeShapeLexicon.PROJECTION);
  
          for (int i = 1; i <= projectionsCount; i++) {
              ChildReference projectionRef = federationChildRefs.getChild(ModeShapeLexicon.PROJECTION, i);
              NodeKey projectionRefKey = projectionRef.getKey();
              CachedNode storedProjection = systemSession.getNode(projectionRefKey);
              String storedProjectionExternalNodeKey = storedProjection.getProperty(ModeShapeLexicon.EXTERNAL_NODE_KEY,
                                                                                    systemSession).getFirstValue().toString();
              assert storedProjectionExternalNodeKey != null;
              if (storedProjectionExternalNodeKey.equals(externalNodeKey)) {
                  federationNode.removeChild(systemSession, projectionRefKey);
                  systemSession.destroy(projectionRefKey);
                  systemSession.save();
                  break;
              }
          }
      }