/// Context provides an interface to use a [`Session`], IO streams
/// and a state.
///
/// It's used primarily in callbacks for [`InteractSession`].
///
/// [`InteractSession`]: crate::interact::InteractSession
/// [`Session`]: crate::session::Session