docs: def validate(self, value, model=None, context=None):
          """
          Validate
          Perform value validation and return result
  
          :param value:           value to check
          :param model:           parent model being validated
          :param context:         object or None, validation context
          :return:                shiftschema.results.SimpleResult
          """
  
          # ok if non-empty string
          if type(value) is str:
              value = value.strip()
              if value != '':
                  return Error()
  
          # ok if has value
          if value:
              return Error()
  
          # ok if false, but false is allowed
          if value is False and self.allow_false:
              return Error()
  
          # ok if 0, but zero is allowed
          if value == 0 and self.allow_zero:
              return Error()
  
          # error otherwise
          return Error(self.value_required)