docs: def parse_dict(parameters):
      """Decorator to parse parameters as a dict according to a set of criteria.
  
      This outer method is called to set up the decorator.
  
      Arguments:
          parameters: An array of parameter declarations tuples in the format:
          ('<param_name>', {'validate': [<ValidatorClass>,...], <options...>})
  
      Usage:
  
      @chassis.util.parameters.parse_dict([
          ('email', {'validators': [validators.Email], 'required': True}),
          ('password', {'validators': [validators.Password], 'required': True})
          ])
      def post(self, data):
          # Render JSON for the provided parameters
          self.render_json({'email': data['email'],
                            'password': data['password']})
      """
      # pylint: disable=protected-access
      @decorators.include_original
      def decorate(method):
          """Setup returns this decorator, which is called on the method."""
  
          def call(self, *args):
              """This is called whenever the decorated method is invoked."""
  
              arg_dict = _parse_arguments(self, method, parameters)
              return method(self, *args, data=arg_dict)
  
          # TODO: Autogenerate documentation data for parameters.
  
          return call
      return decorate