public @Nullable JsonSchemaObject read(@NotNull PsiFile file) {
    if (Registry.is("json.schema.object.v2")) {
      return getOrComputeSchemaObjectForSchemaFile(file.getOriginalFile().getVirtualFile(), file.getProject());
    }

    JsonLikePsiWalker walker = JsonLikePsiWalker.getWalker(file, JsonSchemaObjectReadingUtils.NULL_OBJ);
    if (walker == null) return null;
    PsiElement root = AstLoadingFilter.forceAllowTreeLoading(file, () -> ContainerUtil.getFirstItem(walker.getRoots(file)));
    if (root == null) return null;
    JsonValueAdapter rootAdapter = walker.createValueAdapter(root);
    return rootAdapter == null ? null : read(rootAdapter);
  }
public @Nullable JsonSchemaObject read(@NotNull PsiFile file)