private static @NotNull Collection<List<Field>> collectPaths(final @NotNull Collection<? extends Field> fields, final int deepness) {
    Collection<List<Field>> result = new ArrayList<>();
    doCollectPathsRec(fields, Collections.emptyList(), result, deepness);
    return result;
  }
private static @NotNull Collection<List<Field>> collectPaths(final @NotNull Collection<? extends Field> fields, final int deepness)