/// An object that's waiting for a meta cell (one not associated with a stream) in order to make
/// send and receive cells: if one of its functions tried to do that, it would just hang forever.
/// A possible successful outcome of giving a message to a [`MsgHandler`](super::msghandler::MsgHandler).
// (For outbound messages (towards relays), there is only one hop that can send them: the client.)
// TODO: For onion services, we might be able to enforce the HopNum earlier: we would never accept an
/// the `HopLocation` can become stale if a single-path circuit is later extended or truncated.
/// we would want to store the stream position as a `HopLocation` and not a `TargetHop::LastHop`
/// You should try to only resolve to a specific [`UniqId`] and [`HopNum`] immediately before you