docs: def validate(self, value, messages=None):
          """Returns True if the given Argument value is valid, False otherwise.
          Validation error messages are appended to an optional messages
          array.
          """
          valid     = True
          primitive = value
  
          def log(msg):
              if messages is not None:
                  messages.append(msg)
  
          if self.enum:
              if value not in self.enum.keys():
                  valid = False
                  args  = (self.name, str(value))
                  log("%s value '%s' not in allowed enumerated values." % args)
              else:
                  primitive = int(self.enum[value])
  
          if self.type:
              if self.type.validate(primitive, messages, self.name) is False:
                  valid = False
  
          if self.range:
              if primitive < self.range[0] or primitive > self.range[1]:
                  valid = False
                  args  = (self.name, str(primitive), self.range[0], self.range[1])
                  log("%s value '%s' out of range [%d, %d]." % args)
  
          return valid