docs: protected Node recordPackage( final CompilationUnit compilationUnit,
                                    final Node outputNode ) throws Exception {
          final PackageDeclaration pkg = compilationUnit.getPackage();
  
          if (pkg == null) {
              return outputNode;
          }
  
          Node pkgNode = outputNode;
  
          { // create node for each segment of the package name
              final String pkgName = pkg.getName().getFullyQualifiedName();
              final String[] packagePath = pkgName.split("\\.");
  
              if (pkgName.length() > 0) {
                  for (final String segment : packagePath) {
                      pkgNode = pkgNode.addNode(segment);
                      pkgNode.addMixin(ClassFileSequencerLexicon.PACKAGE);
                  }
              }
          }
  
          { // Javadocs
              final Javadoc javadoc = pkg.getJavadoc();
  
              if (javadoc != null) {
                  record(javadoc, pkgNode);
              }
          }
  
          { // annotations
              @SuppressWarnings( "unchecked" )
              final List<Annotation> annotations = pkg.annotations();
  
              if ((annotations != null) && !annotations.isEmpty()) {
                  for (final Annotation annotation : annotations) {
                      record(annotation, pkgNode);
                  }
              }
          }
  
          recordSourceReference(pkg, pkgNode);
          return pkgNode;
      }