using System.Text.Json.Serialization;
namespace AIStudio.Provider.SelfHosted;
///
/// One model as an OpenAI-compatible engine lists it.
///
///
/// The context window is vLLM's addition to that route: it reports the window the operator started
/// the engine with, which is the one number no rule about the weights could ever know. Ollama,
/// LM Studio, and llama.cpp answer the same route without it, so it stays unknown there instead of
/// being guessed.
///
/// vLLM calls that field max_model_len, which reads like a limit on the model rather than on a
/// conversation. The wire keeps their spelling, and this record says what the number means, so that
/// nobody has to remember the translation while reading the code that uses it.
///
/// The model's ID.
/// What kind of thing the entry is. Known value: "model".
/// Who the engine names as the owner of the model.
/// Which kinds of input and output the model takes, where the engine says.
/// The context window the engine was started with, in tokens, where it says.
public readonly record struct Model(string Id, string? Object, string? OwnedBy, ModelArchitecture? Architecture, [property: JsonPropertyName("max_model_len")] int? ContextWindowTokens);