class JsonSchemaGenerator implements Supplier<JsonObject> {

    @Override
    public JsonObject get() {
        final JsonObjectBuilder json = jsonBuilderFactory.createObjectBuilder();
        json.add("type", jsonBuilderFactory.createArrayBuilder().add("null").add("object").build());
        json.add("additionalProperties", false);
        json.add("properties", properties.stream().map(this::toJson).collect(toJsonObject()));
        return json.build();
    }

}