This is the detriment of having such an elegant and over-simplified API. People tend to muddle the difference between the data sent as part of a request and what happens when creating the initial connection and handling the response. They're not all the same thing. They're distinctly separate parts of doing `Session#get` (or more generally `Session#request`).

They're options that are configurable on the Session as a compromise since even most advanced users do not need to bother with Adapters. They're specified each time you do `Session#request` because they can change between connections. Yes we take advantage of Connection Pooling but most people are not entirely aware that that is a thing. Further, some people use Session's to talk to many hosts and at that point the previous settings on the connection are not valid. 

And once again, I'll stress that I was not advocating for an `AdapterSettings` object, just merely pointing out that that may make the division clearer to future contributors. Passing around a dictionary doesn't add any semantic meaning to the data being passed around.