text: {{## def.checkMissingProperty:_properties:
    {{~ _properties:$propertyKey:$i }}
      {{?$i}} || {{?}}
      {{
        var $prop = it.util.getProperty($propertyKey)
          , $useData = $data + $prop;
      }}
      ( ({{# def.noPropertyInData }}) && (missing{{=$lvl}} = {{= it.util.toQuotedString(it.opts.jsonPointers ? $propertyKey : $prop) }}) )
    {{~}}
  #}}
  
  
  {{## def.errorMissingProperty:_error:
    {{
      var $propertyPath = 'missing' + $lvl
        , $missingProperty = '\' + ' + $propertyPath + ' + \'';
      if (it.opts._errorDataPathProperty) {
        it.errorPath = it.opts.jsonPointers
                        ? it.util.getPathExpr($currentErrorPath,  $propertyPath, true)
                        : $currentErrorPath + ' + ' + $propertyPath;
      }
    }}
    {{# def.error:_error }}
  #}}
  
  
  {{## def.allErrorsMissingProperty:_error:
    {{
      var $prop = it.util.getProperty($propertyKey)
        , $missingProperty = it.util.escapeQuotes($propertyKey)
        , $useData = $data + $prop;
      if (it.opts._errorDataPathProperty) {
        it.errorPath = it.util.getPath($currentErrorPath, $propertyKey, it.opts.jsonPointers);
      }
    }}
    if ({{# def.noPropertyInData }}) {
      {{# def.addError:_error }}
    }
  #}}
  