# File lib/skeleton/serializers/options.rb, line 132
      def schema_to_h(schema)
        hash = {}

        return hash if schema.nil?

        if schema.ref?
          hash['$ref'] = definition_reference(schema.ref)
          dependencies.merge(dependencies_for(schema))
          dependencies.add(schema.ref)
        end

        hash[:description]       = schema.description         if schema.description?
        hash[:default]           = schema.default             if schema.default?
        hash[:maximum]           = schema.maximum             if schema.maximum?
        hash[:exclusive_maximum] = !!schema.exclusive_maximum if schema.exclusive_maximum?
        hash[:minimum]           = schema.minimum             if schema.minimum?
        hash[:exclusive_minimum] = !!schema.exclusive_minimum if schema.exclusive_minimum?
        hash[:max_length]        = schema.max_length          if schema.max_length?
        hash[:min_length]        = schema.min_length          if schema.min_length?
        hash[:pattern]           = schema.pattern             if schema.pattern?
        hash[:max_items]         = schema.max_items           if schema.max_items?
        hash[:min_items]         = schema.min_items           if schema.min_items?
        hash[:unique_items]      = !!schema.unique_items      if schema.unique_items?
        hash[:enum]              = schema.enum.map(&:to_s)    unless schema.enum.empty?
        hash[:multiple_of]       = schema.multiple_of         if schema.multiple_of?
        hash[:type]              = schema.type                if schema.type

        if schema.properties?
          hash[:properties] = {}
          schema.properties.each do |name, prop|
            hash[:properties][name] = schema_to_h(prop)
          end
        end

        if schema.items?
          hash[:items] = schema_to_h(schema.items)
        end
        hash
      end