@ApiStatus.Internal
  public static @Nullable Project prepareProject(@Nullable CachingSimpleNode parent,
                                                 @Nullable Configurable configurable) {
    if (configurable instanceof ConfigurableWrapper wrapper) {
      return wrapper.getExtensionPoint().getProject();
    }
    if (configurable instanceof SortedConfigurableGroup group) {
      Configurable[] configurables = group.getConfigurables();
      if (configurables.length != 0) {
        Project project = prepareProject(parent, configurables[0]);
        if (project != null) {
          for (int i = 1; i < configurables.length; i++) {
            if (project != prepareProject(parent, configurables[i])) {
              return null;
            }
          }
        }
        return project;
      }
    }
    if (configurable instanceof ConfigurableProjectProvider) {
      return ((ConfigurableProjectProvider)configurable).getProject();
    }
    return parent == null ? null : parent.getProject();
  }
@ApiStatus.Internal
  public static @Nullable Project prepareProject(@Nullable CachingSimpleNode parent,
                                                 @Nullable Configurable configurable)