Hello, I know this list is geared toward rack development, but I couldn't see any kind of non "devel" rack mailing list referenced anywhere. So, I'm reading the rack source and I'm really trying to understand the purpose of the Rack::Utils::Context class/protocol? I notice that some classes (i.e. Rack::Session::Abstract::ID) claim to be "Rack::Utils::Context" compatible, this meaning they define a #context method according to the protocol: method takes an "env" parameter and an "app" parameter (though the Rack::Session::Abstract::ID#context's app parameter is optional, defaulting to the middleware's already-referenced app). So, reading the code I get a sense of what you might be able to do with a Rack::Utils::Context located in a stack, but I'm specifically wondering what the design goals are and what the official purposes and use-cases of this class are. Is there anyone willing to give me a brief description and possibly a brief pseudo-code example? I'm specifically curious if there's any intent for other users to inherit from Rack::Utils::Context (becoming "Rack::Utils::Context" compatible) or if the intent is for the Context to simply be used directly in a middleware stack, referencing the "compatible" middleware (@for) and application (@app)? Is it solely to facilitate testing (I noticed it looks like it's used heavily in some of the tests), or is/was there intent it'd be used as part of a production rack app's stack? I'd sure appreciate any explanations or help. Sorry if this isn't the proper place to ask this kind of question (let me know if this is the case). Thanks.