-record(chat, { client :: starlet:client(any()), model :: binary(), system_prompt :: gleam@option:option(binary()), messages :: list(starlet:message()), tools :: list(starlet@tool:definition()), temperature :: gleam@option:option(float()), max_tokens :: gleam@option:option(integer()), ext :: any(), json_schema :: gleam@option:option(gleam@json:json()), timeout_ms :: integer() }).