All network IO for tmprl. Knows nothing about the UI.
Every RPC goes through the thin wrappers in this crate rather than through
temporalio-client directly. That crate is pre-1.0 and its surface moves
between releases, so confining it here keeps a version bump to one crate.