# File lib/grape/dsl/parameters.rb, line 123
      def requires(*attrs, &block)
        orig_attrs = attrs.clone

        opts = attrs.extract_options!.clone
        opts[:presence] = { value: true, message: opts[:message] }
        opts = @group.merge(opts) if @group

        if opts[:using]
          require_required_and_optional_fields(attrs.first, opts)
        else
          validate_attributes(attrs, opts, &block)
          block_given? ? new_scope(orig_attrs, &block) : push_declared_params(attrs, opts.slice(:as))
        end
      end