code: public static <T> Optional<T> get(final List list, final Class<T> clazz, final Integer... path) {
          if (path == null || path.length == 0) {
              throw new IllegalArgumentException(PATH_MUST_BE_SPECIFIED);
          }
          if (path.length == 1) {
              return Optional.ofNullable((T) list.get(path[0]));
          }
          final Integer[] pathToLastNode = Arrays.copyOfRange(path, 0, path.length - 1);
          final Integer lastKey = path[path.length - 1];
          List intermediateList = list;
          for (Integer index : pathToLastNode) {
              final Object node = intermediateList.get(index);
              if (node != null) {
                  final Optional<List> nodeListOption = ClassApi.cast(node, List.class);
                  if (nodeListOption.isPresent()) {
                      intermediateList = nodeListOption.get();
                  } else {
                      throw new IllegalAccessError("Node with key '" + index + "' is not a list!");
                  }
              } else {
                  return Optional.empty();
              }
          }
          return Optional.ofNullable((T) intermediateList.get(lastKey));
      }
docs: Walks by list's nodes and extracts optional value of type T.
  @param list subject
  @param clazz value type
  @param path nodes to walk in list
  @param <T> value type
  @return optional value of type T