---
elements:
    type: Block
    nested_name: xyz
    elements:
        - name: foo
          constraints:
            - type: Integer

        - name: bar
          constraints:
            - type: Required
              when:
                field: xyz.foo
                value: 1

        - name: moo
          constraints:
            type: Required
            when:
                field: xyz.foo
                values: [2,3,4]

        - name: zoo
          constraints:
            - type: Required
              when:
                field: xyz.foo
                value: 5
                not: 1

        - name: coo
          constraints:
            - type: Number

        - name: coo2
          constraints:
            - type: Integer
              when:
                callback: 'CB::nested_when_string_callback'