---
elements:
    - name: foo
      constraints:
        - type: Integer

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

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

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

    - name: coo
      constraints:
        - type: Number

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