docs: private static void addShapeAndMembers(String shapeName,
              Map<String, ShapeModel> in,
              Map<String, ShapeModel> out) {
  
          if (shapeName == null) return;
  
          final ShapeModel shape = in.get(shapeName);
          if (shape == null) return;
  
          if (!out.containsKey(shapeName)) {
              out.put(shapeName, in.get(shapeName));
              List<MemberModel> members = shape.getMembers();
  
              if (members != null) {
                  for (MemberModel member : members) {
                      List<String> memberShapes = resolveMemberShapes(member);
                      if (memberShapes == null) continue;
                      for (String memberShape : memberShapes) {
                          addShapeAndMembers(memberShape, in, out);
                      }
                  }
              }
          }
      }