namespace AIStudio.Provider.OpenRouter; /// /// A data model for an OpenRouter model from the API. /// /// The model's ID. /// The model's human-readable display name. /// The model's provider-reported reasoning behavior. public readonly record struct OpenRouterModel(string Id, string? Name, OpenRouterReasoning? Reasoning) { /// /// Converts the catalog entry into the model the rest of the app works with. /// public Model ToModel() => new(this.Id, this.Name) { ReasoningBehavior = this.Reasoning switch { { Mandatory: true } => ModelReasoningBehavior.ALWAYS_ON, { DefaultEnabled: true } => ModelReasoningBehavior.DEFAULT_ON, not null => ModelReasoningBehavior.OPTIONAL, _ => ModelReasoningBehavior.UNKNOWN, }, }; }