def param(name, type = nil, **opts, &block)
      dry_initializer.param(name, type, **opts, &block)
      self
    end
def param(name, type = nil, **opts, &block)
      dry_initializer.param(name, type, **opts, &block)
      self
    end
Adds or redefines a parameter of [#dry_initializer]
 @param  [Symbol]       name
 @param  [#call, nil]   type (nil)
 @option opts [Proc]    :default
 @option opts [Boolean] :optional
 @option opts [Symbol]  :as
 @option opts [true, false, :protected, :public, :private] :reader
 @yield block with nested definition
 @return [self] itself