class RubyLLM::MCP::Parameter

def as_json(*_args)

def as_json(*_args)
  to_h
end

def initialize(name, type: "string", desc: nil, required: true, default: nil, union_type: nil) # rubocop:disable Metrics/ParameterLists

rubocop:disable Metrics/ParameterLists
def initialize(name, type: "string", desc: nil, required: true, default: nil, union_type: nil) # rubocop:disable Metrics/ParameterLists
  super(name, type: type.to_sym, desc: desc, required: required)
  @properties = {}
  @union_type = union_type
  @default = default
end

def item_type

def item_type
  @items&.dig("type")&.to_sym
end

def to_h

def to_h
  {
    name: @name,
    type: @type,
    description: @desc,
    required: @required,
    default: @default,
    union_type: @union_type,
    items: @items&.to_h,
    properties: @properties&.values,
    enum: @enum
  }
end