Input for one agent turn.
@type t() :: %Jidoka.Turn.Request{ agent_state: term(), context: map(), input: binary(), metadata: map(), request_id: binary() }
@spec from_input( t() | String.t() | keyword() | map(), keyword() ) :: {:ok, t()} | {:error, term()}
@spec new( keyword() | map(), keyword() ) :: {:ok, t()} | {:error, term()}
@spec new!( keyword() | map(), keyword() ) :: t()
@spec schema() :: Zoi.schema()