docs: public JsonTypeDefinition projectionType(String... properties) {
          if(this.getType() instanceof Map<?, ?>) {
              Map<?, ?> type = (Map<?, ?>) getType();
              Arrays.sort(properties);
              Map<String, Object> newType = new LinkedHashMap<String, Object>();
              for(String prop: properties)
                  newType.put(prop, type.get(prop));
              return new JsonTypeDefinition(newType);
          } else {
              throw new IllegalArgumentException("Cannot take the projection of a type that is not a Map.");
          }
      }