Opaque actor reference.
@type t() :: %GroundPlane.Contracts.ActorRef{ref: String.t(), segments: [String.t()]}
@spec new(String.t()) :: {:ok, t()} | {:error, term()}
@spec new(String.t(), String.t()) :: {:ok, t()} | {:error, term()}
@spec new(String.t(), String.t(), String.t()) :: {:ok, t()} | {:error, term()}
@spec new(String.t(), String.t(), String.t(), String.t()) :: {:ok, t()} | {:error, term()}
@spec parse(String.t()) :: {:ok, t()} | {:error, term()}
@spec to_string(t()) :: String.t()
@spec valid?(term()) :: boolean()