pub struct ModelFacts {
pub id: String,
pub context_tokens: Option<u64>,
pub max_output_tokens: Option<Ceiling>,
pub input_modalities: Vec<String>,
pub input_price: Option<String>,
pub output_price: Option<String>,
pub thinking: Option<ThinkingStatement>,
pub canonical: Option<String>,
pub listing: Listing,
}Expand description
What a model list said about one model.
Everything but the id is optional, because for most providers
everything but the id is missing. The endpoint book carries these
rows into the postcard snapshots of the views and the standing, so
Serialize is written by hand: an absent thinking or canonical
is omitted only in a human-readable format (kernel D58).
Fields§
§id: String§context_tokens: Option<u64>How many tokens the model reads in one call.
max_output_tokens: Option<Ceiling>How many tokens it may write back.
input_modalities: Vec<String>What it accepts, in the provider’s own words (text, image,
audio). Empty means the row said nothing, never “text only”.
input_price: Option<String>The provider’s own input price, verbatim, unit included when the provider stated one.
output_price: Option<String>The provider’s own output price, verbatim.
thinking: Option<ThinkingStatement>What the row said about thinking levels, read by the gateway’s
thinking ladder (crates/gateway/spec/Provider/Thinking.lean).
Absent on a row that said nothing and on a line written before
the key existed.
canonical: Option<String>The upstream’s own identity for this model across providers,
where it states one (crates/gateway/spec/Provider/Identity.lean).
listing: ListingWhether the endpoint’s own list carried this row, or the person named an id the list did not carry (kernel D63). A row the person named states nothing else, because nobody asked the provider about it.