namespace AIStudio.Tools.ToolCallingSystem.ToolCallingImplementations.WebSearch;
///
/// What one search service can do with the parts of a search besides the query itself.
///
///
/// Two different answers come out of this, and what separates them is who asked for the thing
/// the service cannot do. The safe search policy is the user's, and an organization can lock
/// it — so a service that cannot filter is not asked at all, because searching unfiltered
/// would work around a decision somebody made on purpose. The language and the time range come
/// from the model, which can read a note and search again, so a service that cannot honour
/// them is still asked and reports what it did instead.
/// The result page is the exception among the model's own arguments: page 1 handed over as
/// page 3 would be hits the model already read, with nothing in the answer to say so, and no
/// note can undo that. A service that does not reach the requested page is therefore left out
/// like one that cannot filter.
///
/// Whether the service filters explicit results on request.
/// Whether the service can restrict a search to a recent period of time.
/// Whether the service can restrict a search to one language.
/// The highest result page the service serves.
public sealed record WebSearchCapabilities(bool SupportsSafeSearch, bool SupportsTimeRange, bool SupportsLanguage, int MaxPage);