Build. Evaluation. Context Namespace
An object used by the caller to extend the lifespan of evaluation caches (by passing the object on to other evaluations). The caller should throw away the context when the environment changes (IO, environment variables, SDK resolution inputs, etc). This class and it's closure needs to be thread safe since API users can do evaluations in parallel.