class ReeSwagger::BuildSchema

def call(title:, description:, version:, endpoints:)

def call(title:, description:, version:, endpoints:)
  {
    openapi: "3.0.0",
    info: {
      title:       title,
      description: description,
      version:     version
    },
    paths: endpoints.each_with_object(Hash.new { _1[_2] = {} }) {
      path_dto = build_endpoint_schema(_1)
      _2[path_dto.path].merge!(path_dto.schema)
    }
  }
end