Recursively generate a dictionary representation of the model, optionally specifying which fields to include or exclude.
prompt_token_details is the per-category breakdown of prompt_tokens.
Category names are model-specific (for example cache_read, cache_write). Returned only when the PROMPT_TOKEN_DETAILS field is requested.
raw maps each category name to its prompt-token count.