class ImmutableFilteredAcknowledgementRequest implements FilteredAcknowledgementRequest {

    public static FilteredAcknowledgementRequest fromJson(final JsonObject jsonObject) {
        return FilteredAcknowledgementRequest.of(
                jsonObject.getValue(JsonFields.INCLUDES).orElse(JsonArray.empty()).stream()
                        .filter(JsonValue::isString)
                        .map(JsonValue::asString)
                        .map(AcknowledgementRequest::parseAcknowledgementRequest)
                        .collect(Collectors.toSet()), jsonObject.getValue(JsonFields.FILTER).orElse(null));
    }

    private  ImmutableFilteredAcknowledgementRequest(final Set<AcknowledgementRequest> includes,
            @Nullable final String filter);

}