class ImmutableAclEntry implements AclEntry {

    public static AclEntry fromJson(final JsonObject jsonObject) {
        checkNotNull(jsonObject, "JSON object");

        return jsonObject.stream()
                .filter(field -> !Objects.equals(field.getKey(), JsonSchemaVersion.getJsonKey()))
                .findFirst()
                .map(field -> ImmutableAclEntry.of(field.getKey(), field.getValue()))
                .orElseThrow(() -> new DittoJsonException(JsonMissingFieldException.newBuilder()
                        .message("The JSON object for 'aclEntry' is missing.")
                        .build()));
    }

    private  ImmutableAclEntry(final AuthorizationSubject theAuthSubject, final Set<Permission> thePermissions);

}