{"approved": false}와 {}는 allow if input.approved == true에서 같은 답을 받습니다. 그 답은 false가 아니라 undefined입니다.
호스트는 선택적 불리언 필드 approved가 있는 객체를 받고, 쿼리가 true를 반환할 때만 작업을 허용합니다. 이 규칙은 완전 규칙이고 기본값이 없습니다. 두 입력 모두 규칙을 성립시키지 못하므로 allow는 둘 다 undefined입니다. 명시적인 false 결과는 이와 다른 결과이고, 호스트는 자신이 어느 쪽을 받았는지 알아야 합니다.
길은 두 가지입니다. default allow := false를 추가하면 두 입력 모두 false를 반환합니다. 아니면 undefined를 유지하고 호스트가 명시적으로 처리하게 합니다. 어느 쪽이든 결과가 없을 때 그것이 무슨 뜻인지는 호스트가 정합니다. 양쪽 다 근거가 있어서 아직 하나를 고르지 못했습니다.
어느 방법도 입력 문서가 존재하는지, approved가 실제로 불리언인지는 확인하지 않습니다. 그것은 입력 검증의 일이고, 쿼리 전에 이루어집니다.