When I first shipped TravelAI.Core, it only worked with Azure OpenAI and Azure AI Search. You needed an Azure subscription, a deployed GPT-4o model, a configured AI Search index, and the patience to wire it all up before you could generate a single itinerary. Downloads were slow. Not surprising in hindsight. Most developers don't have Azure credentials sitting around. They want to try something before committing to a cloud provider. I was basically asking people to do significant setup work before they could see if the library was even useful to them. So I rebuilt the provider layer. What changed The core interfaces stayed exactly the same. IItineraryGenerationService, IDestinationSearchService, IPriceAnomalyDetector all look identical from the outside. What changed is how you wire up the backend. In v1.0.0 you needed a config section with Azure credentials. In v2.0.0 you pick a provider: builder . Services . AddTravelAI ( options => options . UseMock ()); builder . Services .…