docs: private static List<Type> fetchAllNestedTypes(MessageType type, boolean all) {
          List<Type> ret = new ArrayList<Type>();
  
          List<Type> nestedTypes = type.getNestedTypes();
          ret.addAll(nestedTypes);
          if (all) {
              for (Type t : nestedTypes) {
                  if (t instanceof MessageType) {
                      List<Type> subNestedTypes = fetchAllNestedTypes((MessageType) t, true);
                      ret.addAll(subNestedTypes);
                  }
              }
          }
  
          return ret;
      }