Generation.StatsStats for a single generation. Many fields are nullable on the wire; we keep them as options rather than papering over with defaults.
type t = {id : string;model : string;provider_name : string option;created_at : string;api_type : string option;origin : string option;user_agent : string option;http_referer : string option;session_id : string option;request_id : string option;upstream_id : string option;app_id : Jsonaf.t option;external_user : Jsonaf.t option;router : Jsonaf.t option;streamed : bool option;cancelled : bool option;is_byok : bool option;finish_reason : string option;native_finish_reason : string option;service_tier : string option;latency : int option;moderation_latency : int option;generation_time : int option;tokens_prompt : int option;tokens_completion : int option;native_tokens_prompt : int option;native_tokens_completion : int option;native_tokens_completion_images : int option;native_tokens_reasoning : int option;native_tokens_cached : int option;num_media_prompt : int option;num_input_audio_prompt : int option;num_media_completion : int option;num_search_results : int option;num_fetches : int option;web_search_engine : string option;usage : float option;total_cost : float option;upstream_inference_cost : float option;cache_discount : float option;response_cache_source_id : string option;provider_responses : Provider_response.t list;}module Fields : sig ... end