Typed System One response with grouped convenience accessors.
Responses produced by the HTTP client retain request metadata separately from
the decoded API payload. request_id!/1 and raw_http_response!/1 mirror the
Python SDK's metadata access without polluting the wire fields.
Summary
Types
@type answer() :: TypeSafeSDK.NoulAnswer.t() | TypeSafeSDK.ChoiceAnswer.t() | TypeSafeSDK.ScoreAnswer.t()
@type t() :: %TypeSafeSDK.SystemOneResponse{ answers: %{required(String.t()) => answer()}, model: String.t(), raw_http_response: Pristine.Response.t() | nil, request_id: String.t() | nil, usage: TypeSafeSDK.Usage.t() }
Functions
@spec choices(t()) :: %{required(String.t()) => TypeSafeSDK.ChoiceAnswer.t()}
@spec decode(term()) :: {:ok, t()} | {:error, TypeSafeSDK.Error.t()}
@spec nouls(t()) :: %{required(String.t()) => TypeSafeSDK.NoulAnswer.t()}
@spec raw_http_response!(t()) :: Pristine.Response.t()
@spec scores(t()) :: %{required(String.t()) => TypeSafeSDK.ScoreAnswer.t()}