Translator behavior.
@type endpoint() :: %{ adapter: module(), model: String.t(), temperature: float(), config: map() }
@type opts() :: %{message: String.t(), language_code: String.t()}
@type provider() :: %{ endpoint: endpoint(), persona: String.t(), style: String.t(), ignored_codes: [String.t()] }
@callback translate(provider(), opts()) :: {:ok, String.t()} | {:error, any()}