This context object provides a single, consistent interface for internal SWF
artifacts to use to reason on and manipulate the state of an external actor
calling into SWF to execute flows. It represents the context about a single,
external request to manipulate a flow execution.
The design of this interface was inspired by JSF's own ExternalContext
abstraction, and thus shares the same name for consistency. If a particular
external client type does not support all methods defined by this interface,
they can just be implemented as returning an empty map.