public static @Nullable ModCommandAction createFix(@NotNull PsiClass subclass,
                                                      @NotNull PsiClass parentClass) {
    if (!parentClass.isInterface() && (subclass.isInterface() || subclass.isRecord() || subclass.isEnum())) {
      return null;
    }
    if (subclass.isAnnotationType()) return null;
    PsiModifierList modifiers = subclass.getModifierList();
    if (modifiers == null) return null;
    if (parentClass.isInterface()) {
      PsiReferenceList targetList = subclass.isInterface() ? subclass.getExtendsList() : subclass.getImplementsList();
      if (targetList == null) return null;
    }
    else if (subclass.getExtendsList() == null || hasNonObjectParent(subclass)) {
      return null;
    }

    ModCommandAction fix = ExtendSealedClassFix.createFix(parentClass, subclass);
    if (fix != null) return fix;
    return new ImplementOrExtendFix(subclass, parentClass);
  }
public static @Nullable ModCommandAction createFix(@NotNull PsiClass subclass,
                                                      @NotNull PsiClass parentClass)