Порядок утверждений не имеет значения. Вы действительно нашли ошибку !
Если вы слегка измените пример, чтобы exists
не вызывался с input
в качестве первого аргумента, а вместо этого что-то вроде exists(input.user, "department")
и затем вы обновите входной документ, чтобы отразить это:
{"user": {"department": "Eng", "location": "London"}}
Вы увидите правильное поведение (например, world { contains(input.user["location"], "London"); exists(input.user, "department") }
).