public static Object read(JsonReaderEx reader) {
    return switch (reader.peek()) {
      case BEGIN_ARRAY -> nextList(reader);
      case BEGIN_OBJECT -> {
        reader.beginObject();
        yield nextObject(reader);
      }
      case STRING -> reader.nextString();
      case NUMBER -> reader.nextDouble();
      case BOOLEAN -> reader.nextBoolean();
      case NULL -> {
        reader.nextNull();
        yield null;
      }
      default -> throw new IllegalStateException();
    };
  }
public static Object read(JsonReaderEx reader)