[{"data":1,"prerenderedAt":102},["ShallowReactive",2],{"docs:\u002Fplugins\u002Freference\u002FUnbroken.LaunchBox.Plugins.Services.Achievements.IAchievementManager":3},{"kind":4,"title":5,"namespace":6,"namespaceUrl":7,"trail":8,"typeKind":14,"availability":15,"signature":18,"displaySignature":19,"signatureHtml":20,"documentation":21,"documented":22,"bases":23,"inheritedMembers":24,"members":25,"release":99,"section":101},"type","IAchievementManager","Unbroken.LaunchBox.Plugins.Services.Achievements","\u002Fplugins\u002Fnamespaces\u002FUnbroken.LaunchBox.Plugins.Services.Achievements",[9,12],{"title":10,"url":11},"Services","\u002Fplugins\u002Fnamespaces\u002FUnbroken.LaunchBox.Plugins.Services",{"title":13,"url":7},"Achievements","Interface",{"firstSeen":16,"isBaseline":17,"declarationFirstSeen":16},"14.1",false,"public interface Unbroken.LaunchBox.Plugins.Services.Achievements.IAchievementManager","public interface IAchievementManager","\u003Cpre class=\"shiki dark-plus\" style=\"background-color:#1E1E1E;color:#D4D4D4\" tabindex=\"0\" aria-label=\"C# code\">\u003Ccode>\u003Cspan class=\"line\">\u003Cspan style=\"color:#569CD6\">public\u003C\u002Fspan>\u003Cspan style=\"color:#569CD6\"> interface\u003C\u002Fspan>\u003Cspan style=\"color:#4EC9B0\"> \u003C\u002Fspan>\u003Cspan title=\"Unbroken.LaunchBox.Plugins.Services.Achievements.IAchievementManager\">\u003Cspan style=\"color:#4EC9B0\">IAchievementManager\u003C\u002Fspan>\u003C\u002Fspan>\u003C\u002Fspan>\u003C\u002Fcode>\u003C\u002Fpre>","\n            \u003Cdiv class=\"api-summary\">Provides host-managed achievement data from RetroAchievements, storefronts, and other installed sources.\u003C\u002Fdiv>\n            \u003Ch4>Remarks\u003C\u002Fh4>Request this service by declaring a public constructor with an \u003Ca href=\"\u002Fplugins\u002Freference\u002FUnbroken.LaunchBox.Plugins.Services.Achievements.IAchievementManager\" title=\"Unbroken.LaunchBox.Plugins.Services.Achievements.IAchievementManager\">IAchievementManager\u003C\u002Fa> parameter. Providers implement the achievement capabilities; consumers use this service. Calls never expose provider instances or credentials. Invoke asynchronously after activation, not from a plugin constructor. Caller cancellation throws \u003Ca href=\"https:\u002F\u002Flearn.microsoft.com\u002Fdotnet\u002Fapi\u002Fsystem.operationcanceledexception\" title=\"System.OperationCanceledException\">OperationCanceledException\u003C\u002Fa>; retrieval problems are reported in results.\n        ",true,[],[],[26,38,48,58,68,78,89],{"availability":27,"id":28,"name":29,"label":30,"kind":31,"summary":32,"signature":33,"displaySignature":34,"signatureHtml":35,"anchor":36,"documentation":37,"documented":22},{"firstSeen":16,"isBaseline":17,"declarationFirstSeen":16},"M:Unbroken.LaunchBox.Plugins.Services.Achievements.IAchievementManager.GetCachedAsync(System.String,System.String,System.Threading.CancellationToken)","GetCachedAsync","GetCachedAsync(string, string, CancellationToken)","Method","Reads a cached source-local game without making network requests or creating a library association.","System.Threading.Tasks.Task\u003CUnbroken.LaunchBox.Plugins.Services.Achievements.AchievementGameSnapshot> GetCachedAsync(string sourceId, string gameId, System.Threading.CancellationToken cancellationToken)","Task\u003CAchievementGameSnapshot> GetCachedAsync(\n    string sourceId,\n    string gameId,\n    CancellationToken cancellationToken\n)","\u003Cpre class=\"shiki dark-plus\" style=\"background-color:#1E1E1E;color:#D4D4D4\" tabindex=\"0\" aria-label=\"C# code\">\u003Ccode>\u003Cspan class=\"line\">\u003Ca href=\"https:\u002F\u002Flearn.microsoft.com\u002Fdotnet\u002Fapi\u002Fsystem.threading.tasks.task-1\" title=\"System.Threading.Tasks.Task (Microsoft Learn)\">\u003Cspan style=\"color:#4EC9B0\">Task\u003C\u002Fspan>\u003C\u002Fa>\u003Cspan style=\"color:#D4D4D4\">&#x3C;\u003C\u002Fspan>\u003Ca href=\"\u002Fplugins\u002Freference\u002FUnbroken.LaunchBox.Plugins.Services.Achievements.AchievementGameSnapshot\" title=\"Unbroken.LaunchBox.Plugins.Services.Achievements.AchievementGameSnapshot\">\u003Cspan style=\"color:#4EC9B0\">AchievementGameSnapshot\u003C\u002Fspan>\u003C\u002Fa>\u003Cspan style=\"color:#D4D4D4\">> \u003C\u002Fspan>\u003Cspan style=\"color:#DCDCAA\">GetCachedAsync\u003C\u002Fspan>\u003Cspan style=\"color:#D4D4D4\">(\u003C\u002Fspan>\u003C\u002Fspan>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#569CD6\">    string\u003C\u002Fspan>\u003Cspan style=\"color:#9CDCFE\"> sourceId\u003C\u002Fspan>\u003Cspan style=\"color:#D4D4D4\">,\u003C\u002Fspan>\u003C\u002Fspan>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#569CD6\">    string\u003C\u002Fspan>\u003Cspan style=\"color:#9CDCFE\"> gameId\u003C\u002Fspan>\u003Cspan style=\"color:#D4D4D4\">,\u003C\u002Fspan>\u003C\u002Fspan>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#4EC9B0\">    \u003C\u002Fspan>\u003Ca href=\"https:\u002F\u002Flearn.microsoft.com\u002Fdotnet\u002Fapi\u002Fsystem.threading.cancellationtoken\" title=\"System.Threading.CancellationToken (Microsoft Learn)\">\u003Cspan style=\"color:#4EC9B0\">CancellationToken\u003C\u002Fspan>\u003C\u002Fa>\u003Cspan style=\"color:#9CDCFE\"> cancellationToken\u003C\u002Fspan>\u003C\u002Fspan>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#D4D4D4\">)\u003C\u002Fspan>\u003C\u002Fspan>\u003C\u002Fcode>\u003C\u002Fpre>","member-72ddcf557544adc26438","\n            \u003Cdiv class=\"api-summary\">Reads a cached source-local game without making network requests or creating a library association.\u003C\u002Fdiv>\n            \u003Cdl>\u003Cdt class=\"version-row\">\u003Cspan>\u003Ccode>sourceId\u003C\u002Fcode>\u003C\u002Fspan>\u003C\u002Fdt>\u003Cdd>The achievement source identity.\u003C\u002Fdd>\u003C\u002Fdl>\n            \u003Cdl>\u003Cdt class=\"version-row\">\u003Cspan>\u003Ccode>gameId\u003C\u002Fcode>\u003C\u002Fspan>\u003C\u002Fdt>\u003Cdd>The source-local game identity.\u003C\u002Fdd>\u003C\u002Fdl>\n            \u003Cdl>\u003Cdt class=\"version-row\">\u003Cspan>\u003Ccode>cancellationToken\u003C\u002Fcode>\u003C\u002Fspan>\u003C\u002Fdt>\u003Cdd>Cancels the operation.\u003C\u002Fdd>\u003C\u002Fdl>\n            \u003Ch4>Returns\u003C\u002Fh4>The cached snapshot, including explicit missing or unavailable state.\n        ",{"availability":39,"id":40,"name":29,"label":41,"kind":31,"summary":42,"signature":43,"displaySignature":44,"signatureHtml":45,"anchor":46,"documentation":47,"documented":22},{"firstSeen":16,"isBaseline":17,"declarationFirstSeen":16},"M:Unbroken.LaunchBox.Plugins.Services.Achievements.IAchievementManager.GetCachedAsync(Unbroken.LaunchBox.Plugins.Data.IGame,System.Threading.CancellationToken)","GetCachedAsync(IGame, CancellationToken)","Reads cached achievements for a library game's existing source associations without making network requests.","System.Threading.Tasks.Task\u003CSystem.Collections.Generic.IReadOnlyList\u003CUnbroken.LaunchBox.Plugins.Services.Achievements.AchievementGameSnapshot>> GetCachedAsync(Unbroken.LaunchBox.Plugins.Data.IGame game, System.Threading.CancellationToken cancellationToken)","Task\u003CIReadOnlyList\u003CAchievementGameSnapshot>> GetCachedAsync(\n    IGame game,\n    CancellationToken cancellationToken\n)","\u003Cpre class=\"shiki dark-plus\" style=\"background-color:#1E1E1E;color:#D4D4D4\" tabindex=\"0\" aria-label=\"C# code\">\u003Ccode>\u003Cspan class=\"line\">\u003Ca href=\"https:\u002F\u002Flearn.microsoft.com\u002Fdotnet\u002Fapi\u002Fsystem.threading.tasks.task-1\" title=\"System.Threading.Tasks.Task (Microsoft Learn)\">\u003Cspan style=\"color:#4EC9B0\">Task\u003C\u002Fspan>\u003C\u002Fa>\u003Cspan style=\"color:#D4D4D4\">&#x3C;\u003C\u002Fspan>\u003Ca href=\"https:\u002F\u002Flearn.microsoft.com\u002Fdotnet\u002Fapi\u002Fsystem.collections.generic.ireadonlylist-1\" title=\"System.Collections.Generic.IReadOnlyList (Microsoft Learn)\">\u003Cspan style=\"color:#4EC9B0\">IReadOnlyList\u003C\u002Fspan>\u003C\u002Fa>\u003Cspan style=\"color:#D4D4D4\">&#x3C;\u003C\u002Fspan>\u003Ca href=\"\u002Fplugins\u002Freference\u002FUnbroken.LaunchBox.Plugins.Services.Achievements.AchievementGameSnapshot\" title=\"Unbroken.LaunchBox.Plugins.Services.Achievements.AchievementGameSnapshot\">\u003Cspan style=\"color:#4EC9B0\">AchievementGameSnapshot\u003C\u002Fspan>\u003C\u002Fa>\u003Cspan style=\"color:#D4D4D4\">>> \u003C\u002Fspan>\u003Cspan style=\"color:#DCDCAA\">GetCachedAsync\u003C\u002Fspan>\u003Cspan style=\"color:#D4D4D4\">(\u003C\u002Fspan>\u003C\u002Fspan>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#4EC9B0\">    \u003C\u002Fspan>\u003Ca href=\"\u002Fplugins\u002Freference\u002FUnbroken.LaunchBox.Plugins.Data.IGame\" title=\"Unbroken.LaunchBox.Plugins.Data.IGame\">\u003Cspan style=\"color:#4EC9B0\">IGame\u003C\u002Fspan>\u003C\u002Fa>\u003Cspan style=\"color:#9CDCFE\"> game\u003C\u002Fspan>\u003Cspan style=\"color:#D4D4D4\">,\u003C\u002Fspan>\u003C\u002Fspan>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#4EC9B0\">    \u003C\u002Fspan>\u003Ca href=\"https:\u002F\u002Flearn.microsoft.com\u002Fdotnet\u002Fapi\u002Fsystem.threading.cancellationtoken\" title=\"System.Threading.CancellationToken (Microsoft Learn)\">\u003Cspan style=\"color:#4EC9B0\">CancellationToken\u003C\u002Fspan>\u003C\u002Fa>\u003Cspan style=\"color:#9CDCFE\"> cancellationToken\u003C\u002Fspan>\u003C\u002Fspan>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#D4D4D4\">)\u003C\u002Fspan>\u003C\u002Fspan>\u003C\u002Fcode>\u003C\u002Fpre>","member-1f78e09670beb4aa6155","\n            \u003Cdiv class=\"api-summary\">Reads cached achievements for a library game&#39;s existing source associations without making network requests.\u003C\u002Fdiv>\n            \u003Cdl>\u003Cdt class=\"version-row\">\u003Cspan>\u003Ccode>game\u003C\u002Fcode>\u003C\u002Fspan>\u003C\u002Fdt>\u003Cdd>The host library game.\u003C\u002Fdd>\u003C\u002Fdl>\n            \u003Cdl>\u003Cdt class=\"version-row\">\u003Cspan>\u003Ccode>cancellationToken\u003C\u002Fcode>\u003C\u002Fspan>\u003C\u002Fdt>\u003Cdd>Cancels the operation.\u003C\u002Fdd>\u003C\u002Fdl>\n            \u003Ch4>Returns\u003C\u002Fh4>One snapshot per distinct source and source-local game; an empty list means no known associations.\n        ",{"availability":49,"id":50,"name":51,"label":51,"kind":31,"summary":52,"signature":53,"displaySignature":54,"signatureHtml":55,"anchor":56,"documentation":57,"documented":22},{"firstSeen":16,"isBaseline":17,"declarationFirstSeen":16},"M:Unbroken.LaunchBox.Plugins.Services.Achievements.IAchievementManager.GetContextsAsync(System.String,System.Threading.CancellationToken)","GetContextsAsync","Queries the source's configured account and modes without exposing credentials.","System.Threading.Tasks.Task\u003CUnbroken.LaunchBox.Plugins.Services.PluginServiceResult\u003CSystem.Collections.Generic.IReadOnlyList\u003CUnbroken.LaunchBox.Plugins.Components.Achievements.AchievementProgressContext>>> GetContextsAsync(string sourceId, System.Threading.CancellationToken cancellationToken)","Task\u003CPluginServiceResult\u003CIReadOnlyList\u003CAchievementProgressContext>>> GetContextsAsync(\n    string sourceId,\n    CancellationToken cancellationToken\n)","\u003Cpre class=\"shiki dark-plus\" style=\"background-color:#1E1E1E;color:#D4D4D4\" tabindex=\"0\" aria-label=\"C# code\">\u003Ccode>\u003Cspan class=\"line\">\u003Ca href=\"https:\u002F\u002Flearn.microsoft.com\u002Fdotnet\u002Fapi\u002Fsystem.threading.tasks.task-1\" title=\"System.Threading.Tasks.Task (Microsoft Learn)\">\u003Cspan style=\"color:#4EC9B0\">Task\u003C\u002Fspan>\u003C\u002Fa>\u003Cspan style=\"color:#D4D4D4\">&#x3C;\u003C\u002Fspan>\u003Ca href=\"\u002Fplugins\u002Freference\u002FUnbroken.LaunchBox.Plugins.Services.PluginServiceResult-1\" title=\"Unbroken.LaunchBox.Plugins.Services.PluginServiceResult\">\u003Cspan style=\"color:#4EC9B0\">PluginServiceResult\u003C\u002Fspan>\u003C\u002Fa>\u003Cspan style=\"color:#D4D4D4\">&#x3C;\u003C\u002Fspan>\u003Ca href=\"https:\u002F\u002Flearn.microsoft.com\u002Fdotnet\u002Fapi\u002Fsystem.collections.generic.ireadonlylist-1\" title=\"System.Collections.Generic.IReadOnlyList (Microsoft Learn)\">\u003Cspan style=\"color:#4EC9B0\">IReadOnlyList\u003C\u002Fspan>\u003C\u002Fa>\u003Cspan style=\"color:#D4D4D4\">&#x3C;\u003C\u002Fspan>\u003Ca href=\"\u002Fplugins\u002Freference\u002FUnbroken.LaunchBox.Plugins.Components.Achievements.AchievementProgressContext\" title=\"Unbroken.LaunchBox.Plugins.Components.Achievements.AchievementProgressContext\">\u003Cspan style=\"color:#4EC9B0\">AchievementProgressContext\u003C\u002Fspan>\u003C\u002Fa>\u003Cspan style=\"color:#D4D4D4\">>>> \u003C\u002Fspan>\u003Cspan style=\"color:#DCDCAA\">GetContextsAsync\u003C\u002Fspan>\u003Cspan style=\"color:#D4D4D4\">(\u003C\u002Fspan>\u003C\u002Fspan>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#569CD6\">    string\u003C\u002Fspan>\u003Cspan style=\"color:#9CDCFE\"> sourceId\u003C\u002Fspan>\u003Cspan style=\"color:#D4D4D4\">,\u003C\u002Fspan>\u003C\u002Fspan>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#4EC9B0\">    \u003C\u002Fspan>\u003Ca href=\"https:\u002F\u002Flearn.microsoft.com\u002Fdotnet\u002Fapi\u002Fsystem.threading.cancellationtoken\" title=\"System.Threading.CancellationToken (Microsoft Learn)\">\u003Cspan style=\"color:#4EC9B0\">CancellationToken\u003C\u002Fspan>\u003C\u002Fa>\u003Cspan style=\"color:#9CDCFE\"> cancellationToken\u003C\u002Fspan>\u003C\u002Fspan>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#D4D4D4\">)\u003C\u002Fspan>\u003C\u002Fspan>\u003C\u002Fcode>\u003C\u002Fpre>","member-2a364239d06f70508d90","\n            \u003Cdiv class=\"api-summary\">Queries the source&#39;s configured account and modes without exposing credentials.\u003C\u002Fdiv>\n            \u003Cdl>\u003Cdt class=\"version-row\">\u003Cspan>\u003Ccode>sourceId\u003C\u002Fcode>\u003C\u002Fspan>\u003C\u002Fdt>\u003Cdd>The achievement source identity.\u003C\u002Fdd>\u003C\u002Fdl>\n            \u003Cdl>\u003Cdt class=\"version-row\">\u003Cspan>\u003Ccode>cancellationToken\u003C\u002Fcode>\u003C\u002Fspan>\u003C\u002Fdt>\u003Cdd>Cancels retrieval.\u003C\u002Fdd>\u003C\u002Fdl>\n            \u003Ch4>Returns\u003C\u002Fh4>Current contexts, or an explicit unconfigured, incomplete, unsupported, or unavailable result.\n        ",{"availability":59,"id":60,"name":61,"label":61,"kind":31,"summary":62,"signature":63,"displaySignature":64,"signatureHtml":65,"anchor":66,"documentation":67,"documented":22},{"firstSeen":16,"isBaseline":17,"declarationFirstSeen":16},"M:Unbroken.LaunchBox.Plugins.Services.Achievements.IAchievementManager.GetLibraryProgressAsync(System.String,System.Threading.CancellationToken)","GetLibraryProgressAsync","Queries complete account-wide game summaries when supported, without changing the user's library.","System.Threading.Tasks.Task\u003CUnbroken.LaunchBox.Plugins.Services.PluginServiceResult\u003CSystem.Collections.Generic.IReadOnlyList\u003CUnbroken.LaunchBox.Plugins.Components.Achievements.AchievementProgress>>> GetLibraryProgressAsync(string sourceId, System.Threading.CancellationToken cancellationToken)","Task\u003CPluginServiceResult\u003CIReadOnlyList\u003CAchievementProgress>>> GetLibraryProgressAsync(\n    string sourceId,\n    CancellationToken cancellationToken\n)","\u003Cpre class=\"shiki dark-plus\" style=\"background-color:#1E1E1E;color:#D4D4D4\" tabindex=\"0\" aria-label=\"C# code\">\u003Ccode>\u003Cspan class=\"line\">\u003Ca href=\"https:\u002F\u002Flearn.microsoft.com\u002Fdotnet\u002Fapi\u002Fsystem.threading.tasks.task-1\" title=\"System.Threading.Tasks.Task (Microsoft Learn)\">\u003Cspan style=\"color:#4EC9B0\">Task\u003C\u002Fspan>\u003C\u002Fa>\u003Cspan style=\"color:#D4D4D4\">&#x3C;\u003C\u002Fspan>\u003Ca href=\"\u002Fplugins\u002Freference\u002FUnbroken.LaunchBox.Plugins.Services.PluginServiceResult-1\" title=\"Unbroken.LaunchBox.Plugins.Services.PluginServiceResult\">\u003Cspan style=\"color:#4EC9B0\">PluginServiceResult\u003C\u002Fspan>\u003C\u002Fa>\u003Cspan style=\"color:#D4D4D4\">&#x3C;\u003C\u002Fspan>\u003Ca href=\"https:\u002F\u002Flearn.microsoft.com\u002Fdotnet\u002Fapi\u002Fsystem.collections.generic.ireadonlylist-1\" title=\"System.Collections.Generic.IReadOnlyList (Microsoft Learn)\">\u003Cspan style=\"color:#4EC9B0\">IReadOnlyList\u003C\u002Fspan>\u003C\u002Fa>\u003Cspan style=\"color:#D4D4D4\">&#x3C;\u003C\u002Fspan>\u003Ca href=\"\u002Fplugins\u002Freference\u002FUnbroken.LaunchBox.Plugins.Components.Achievements.AchievementProgress\" title=\"Unbroken.LaunchBox.Plugins.Components.Achievements.AchievementProgress\">\u003Cspan style=\"color:#4EC9B0\">AchievementProgress\u003C\u002Fspan>\u003C\u002Fa>\u003Cspan style=\"color:#D4D4D4\">>>> \u003C\u002Fspan>\u003Cspan style=\"color:#DCDCAA\">GetLibraryProgressAsync\u003C\u002Fspan>\u003Cspan style=\"color:#D4D4D4\">(\u003C\u002Fspan>\u003C\u002Fspan>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#569CD6\">    string\u003C\u002Fspan>\u003Cspan style=\"color:#9CDCFE\"> sourceId\u003C\u002Fspan>\u003Cspan style=\"color:#D4D4D4\">,\u003C\u002Fspan>\u003C\u002Fspan>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#4EC9B0\">    \u003C\u002Fspan>\u003Ca href=\"https:\u002F\u002Flearn.microsoft.com\u002Fdotnet\u002Fapi\u002Fsystem.threading.cancellationtoken\" title=\"System.Threading.CancellationToken (Microsoft Learn)\">\u003Cspan style=\"color:#4EC9B0\">CancellationToken\u003C\u002Fspan>\u003C\u002Fa>\u003Cspan style=\"color:#9CDCFE\"> cancellationToken\u003C\u002Fspan>\u003C\u002Fspan>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#D4D4D4\">)\u003C\u002Fspan>\u003C\u002Fspan>\u003C\u002Fcode>\u003C\u002Fpre>","member-44b7a95abd237c8a6ac5","\n            \u003Cdiv class=\"api-summary\">Queries complete account-wide game summaries when supported, without changing the user&#39;s library.\u003C\u002Fdiv>\n            \u003Cdl>\u003Cdt class=\"version-row\">\u003Cspan>\u003Ccode>sourceId\u003C\u002Fcode>\u003C\u002Fspan>\u003C\u002Fdt>\u003Cdd>The achievement source identity.\u003C\u002Fdd>\u003C\u002Fdl>\n            \u003Cdl>\u003Cdt class=\"version-row\">\u003Cspan>\u003Ccode>cancellationToken\u003C\u002Fcode>\u003C\u002Fspan>\u003C\u002Fdt>\u003Cdd>Cancels retrieval.\u003C\u002Fdd>\u003C\u002Fdl>\n            \u003Ch4>Returns\u003C\u002Fh4>Fresh summaries for the configured account and modes. Failed pagination never becomes a successful partial library.\n        ",{"availability":69,"id":70,"name":71,"label":71,"kind":31,"summary":72,"signature":73,"displaySignature":74,"signatureHtml":75,"anchor":76,"documentation":77,"documented":22},{"firstSeen":16,"isBaseline":17,"declarationFirstSeen":16},"M:Unbroken.LaunchBox.Plugins.Services.Achievements.IAchievementManager.GetSourcesAsync(System.Threading.CancellationToken)","GetSourcesAsync","Lists registered sources and sources retained in the game cache without making network requests.","System.Threading.Tasks.Task\u003CSystem.Collections.Generic.IReadOnlyList\u003CUnbroken.LaunchBox.Plugins.Services.Achievements.AchievementSourceInfo>> GetSourcesAsync(System.Threading.CancellationToken cancellationToken)","Task\u003CIReadOnlyList\u003CAchievementSourceInfo>> GetSourcesAsync(\n    CancellationToken cancellationToken\n)","\u003Cpre class=\"shiki dark-plus\" style=\"background-color:#1E1E1E;color:#D4D4D4\" tabindex=\"0\" aria-label=\"C# code\">\u003Ccode>\u003Cspan class=\"line\">\u003Ca href=\"https:\u002F\u002Flearn.microsoft.com\u002Fdotnet\u002Fapi\u002Fsystem.threading.tasks.task-1\" title=\"System.Threading.Tasks.Task (Microsoft Learn)\">\u003Cspan style=\"color:#4EC9B0\">Task\u003C\u002Fspan>\u003C\u002Fa>\u003Cspan style=\"color:#D4D4D4\">&#x3C;\u003C\u002Fspan>\u003Ca href=\"https:\u002F\u002Flearn.microsoft.com\u002Fdotnet\u002Fapi\u002Fsystem.collections.generic.ireadonlylist-1\" title=\"System.Collections.Generic.IReadOnlyList (Microsoft Learn)\">\u003Cspan style=\"color:#4EC9B0\">IReadOnlyList\u003C\u002Fspan>\u003C\u002Fa>\u003Cspan style=\"color:#D4D4D4\">&#x3C;\u003C\u002Fspan>\u003Ca href=\"\u002Fplugins\u002Freference\u002FUnbroken.LaunchBox.Plugins.Services.Achievements.AchievementSourceInfo\" title=\"Unbroken.LaunchBox.Plugins.Services.Achievements.AchievementSourceInfo\">\u003Cspan style=\"color:#4EC9B0\">AchievementSourceInfo\u003C\u002Fspan>\u003C\u002Fa>\u003Cspan style=\"color:#D4D4D4\">>> \u003C\u002Fspan>\u003Cspan style=\"color:#DCDCAA\">GetSourcesAsync\u003C\u002Fspan>\u003Cspan style=\"color:#D4D4D4\">(\u003C\u002Fspan>\u003C\u002Fspan>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#4EC9B0\">    \u003C\u002Fspan>\u003Ca href=\"https:\u002F\u002Flearn.microsoft.com\u002Fdotnet\u002Fapi\u002Fsystem.threading.cancellationtoken\" title=\"System.Threading.CancellationToken (Microsoft Learn)\">\u003Cspan style=\"color:#4EC9B0\">CancellationToken\u003C\u002Fspan>\u003C\u002Fa>\u003Cspan style=\"color:#9CDCFE\"> cancellationToken\u003C\u002Fspan>\u003C\u002Fspan>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#D4D4D4\">)\u003C\u002Fspan>\u003C\u002Fspan>\u003C\u002Fcode>\u003C\u002Fpre>","member-289dc66e7ce3c49664b2","\n            \u003Cdiv class=\"api-summary\">Lists registered sources and sources retained in the game cache without making network requests.\u003C\u002Fdiv>\n            \u003Cdl>\u003Cdt class=\"version-row\">\u003Cspan>\u003Ccode>cancellationToken\u003C\u002Fcode>\u003C\u002Fspan>\u003C\u002Fdt>\u003Cdd>Cancels the operation.\u003C\u002Fdd>\u003C\u002Fdl>\n            \u003Ch4>Returns\u003C\u002Fh4>Sources with their current availability and supported features. Features of an absent provider are unknown.\n        ",{"availability":79,"id":80,"name":81,"label":82,"kind":31,"summary":83,"signature":84,"displaySignature":85,"signatureHtml":86,"anchor":87,"documentation":88,"documented":22},{"firstSeen":16,"isBaseline":17,"declarationFirstSeen":16},"M:Unbroken.LaunchBox.Plugins.Services.Achievements.IAchievementManager.RefreshAsync(System.String,System.String,System.Threading.CancellationToken)","RefreshAsync","RefreshAsync(string, string, CancellationToken)","Refreshes a source-local game through the host and updates its cache without creating a library association. Concurrent explicit requests for the same source\u002Fgame and provider generation share work.","System.Threading.Tasks.Task\u003CUnbroken.LaunchBox.Plugins.Services.Achievements.AchievementGameSnapshot> RefreshAsync(string sourceId, string gameId, System.Threading.CancellationToken cancellationToken)","Task\u003CAchievementGameSnapshot> RefreshAsync(\n    string sourceId,\n    string gameId,\n    CancellationToken cancellationToken\n)","\u003Cpre class=\"shiki dark-plus\" style=\"background-color:#1E1E1E;color:#D4D4D4\" tabindex=\"0\" aria-label=\"C# code\">\u003Ccode>\u003Cspan class=\"line\">\u003Ca href=\"https:\u002F\u002Flearn.microsoft.com\u002Fdotnet\u002Fapi\u002Fsystem.threading.tasks.task-1\" title=\"System.Threading.Tasks.Task (Microsoft Learn)\">\u003Cspan style=\"color:#4EC9B0\">Task\u003C\u002Fspan>\u003C\u002Fa>\u003Cspan style=\"color:#D4D4D4\">&#x3C;\u003C\u002Fspan>\u003Ca href=\"\u002Fplugins\u002Freference\u002FUnbroken.LaunchBox.Plugins.Services.Achievements.AchievementGameSnapshot\" title=\"Unbroken.LaunchBox.Plugins.Services.Achievements.AchievementGameSnapshot\">\u003Cspan style=\"color:#4EC9B0\">AchievementGameSnapshot\u003C\u002Fspan>\u003C\u002Fa>\u003Cspan style=\"color:#D4D4D4\">> \u003C\u002Fspan>\u003Cspan style=\"color:#DCDCAA\">RefreshAsync\u003C\u002Fspan>\u003Cspan style=\"color:#D4D4D4\">(\u003C\u002Fspan>\u003C\u002Fspan>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#569CD6\">    string\u003C\u002Fspan>\u003Cspan style=\"color:#9CDCFE\"> sourceId\u003C\u002Fspan>\u003Cspan style=\"color:#D4D4D4\">,\u003C\u002Fspan>\u003C\u002Fspan>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#569CD6\">    string\u003C\u002Fspan>\u003Cspan style=\"color:#9CDCFE\"> gameId\u003C\u002Fspan>\u003Cspan style=\"color:#D4D4D4\">,\u003C\u002Fspan>\u003C\u002Fspan>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#4EC9B0\">    \u003C\u002Fspan>\u003Ca href=\"https:\u002F\u002Flearn.microsoft.com\u002Fdotnet\u002Fapi\u002Fsystem.threading.cancellationtoken\" title=\"System.Threading.CancellationToken (Microsoft Learn)\">\u003Cspan style=\"color:#4EC9B0\">CancellationToken\u003C\u002Fspan>\u003C\u002Fa>\u003Cspan style=\"color:#9CDCFE\"> cancellationToken\u003C\u002Fspan>\u003C\u002Fspan>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#D4D4D4\">)\u003C\u002Fspan>\u003C\u002Fspan>\u003C\u002Fcode>\u003C\u002Fpre>","member-a33466970f13bd98b1d4","\n            \u003Cdiv class=\"api-summary\">Refreshes a source-local game through the host and updates its cache without creating a library association. Concurrent explicit requests for the same source\u002Fgame and provider generation share work.\u003C\u002Fdiv>\n            \u003Ch4>Remarks\u003C\u002Fh4>At most eight distinct explicit refresh requests per source may be outstanding. Further distinct requests return Failed with a localized busy message; callers may retry after pending work completes. Caller cancellation does not cancel other waiters. Consumer-only cache records are bounded to 128 entries across sources; library cache records are retained independently. Unknown-only first observations retain bounded diagnostics in memory without creating game files. Sequential requests still refresh.\n            \u003Cdl>\u003Cdt class=\"version-row\">\u003Cspan>\u003Ccode>sourceId\u003C\u002Fcode>\u003C\u002Fspan>\u003C\u002Fdt>\u003Cdd>The achievement source identity.\u003C\u002Fdd>\u003C\u002Fdl>\n            \u003Cdl>\u003Cdt class=\"version-row\">\u003Cspan>\u003Ccode>gameId\u003C\u002Fcode>\u003C\u002Fspan>\u003C\u002Fdt>\u003Cdd>The source-local game identity.\u003C\u002Fdd>\u003C\u002Fdl>\n            \u003Cdl>\u003Cdt class=\"version-row\">\u003Cspan>\u003Ccode>cancellationToken\u003C\u002Fcode>\u003C\u002Fspan>\u003C\u002Fdt>\u003Cdd>Cancels this caller&#39;s wait; already-started shared cache work may continue.\u003C\u002Fdd>\u003C\u002Fdl>\n            \u003Ch4>Returns\u003C\u002Fh4>The resulting snapshot, retaining previous observations on retrieval failure.\n        ",{"availability":90,"id":91,"name":81,"label":92,"kind":31,"summary":93,"signature":94,"displaySignature":95,"signatureHtml":96,"anchor":97,"documentation":98,"documented":22},{"firstSeen":16,"isBaseline":17,"declarationFirstSeen":16},"M:Unbroken.LaunchBox.Plugins.Services.Achievements.IAchievementManager.RefreshAsync(Unbroken.LaunchBox.Plugins.Data.IGame,System.Threading.CancellationToken)","RefreshAsync(IGame, CancellationToken)","Refreshes a library game's achievements using the host's matching, account selection, scheduling, and cache merging.","System.Threading.Tasks.Task\u003CSystem.Collections.Generic.IReadOnlyList\u003CUnbroken.LaunchBox.Plugins.Services.Achievements.AchievementGameSnapshot>> RefreshAsync(Unbroken.LaunchBox.Plugins.Data.IGame game, System.Threading.CancellationToken cancellationToken)","Task\u003CIReadOnlyList\u003CAchievementGameSnapshot>> RefreshAsync(\n    IGame game,\n    CancellationToken cancellationToken\n)","\u003Cpre class=\"shiki dark-plus\" style=\"background-color:#1E1E1E;color:#D4D4D4\" tabindex=\"0\" aria-label=\"C# code\">\u003Ccode>\u003Cspan class=\"line\">\u003Ca href=\"https:\u002F\u002Flearn.microsoft.com\u002Fdotnet\u002Fapi\u002Fsystem.threading.tasks.task-1\" title=\"System.Threading.Tasks.Task (Microsoft Learn)\">\u003Cspan style=\"color:#4EC9B0\">Task\u003C\u002Fspan>\u003C\u002Fa>\u003Cspan style=\"color:#D4D4D4\">&#x3C;\u003C\u002Fspan>\u003Ca href=\"https:\u002F\u002Flearn.microsoft.com\u002Fdotnet\u002Fapi\u002Fsystem.collections.generic.ireadonlylist-1\" title=\"System.Collections.Generic.IReadOnlyList (Microsoft Learn)\">\u003Cspan style=\"color:#4EC9B0\">IReadOnlyList\u003C\u002Fspan>\u003C\u002Fa>\u003Cspan style=\"color:#D4D4D4\">&#x3C;\u003C\u002Fspan>\u003Ca href=\"\u002Fplugins\u002Freference\u002FUnbroken.LaunchBox.Plugins.Services.Achievements.AchievementGameSnapshot\" title=\"Unbroken.LaunchBox.Plugins.Services.Achievements.AchievementGameSnapshot\">\u003Cspan style=\"color:#4EC9B0\">AchievementGameSnapshot\u003C\u002Fspan>\u003C\u002Fa>\u003Cspan style=\"color:#D4D4D4\">>> \u003C\u002Fspan>\u003Cspan style=\"color:#DCDCAA\">RefreshAsync\u003C\u002Fspan>\u003Cspan style=\"color:#D4D4D4\">(\u003C\u002Fspan>\u003C\u002Fspan>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#4EC9B0\">    \u003C\u002Fspan>\u003Ca href=\"\u002Fplugins\u002Freference\u002FUnbroken.LaunchBox.Plugins.Data.IGame\" title=\"Unbroken.LaunchBox.Plugins.Data.IGame\">\u003Cspan style=\"color:#4EC9B0\">IGame\u003C\u002Fspan>\u003C\u002Fa>\u003Cspan style=\"color:#9CDCFE\"> game\u003C\u002Fspan>\u003Cspan style=\"color:#D4D4D4\">,\u003C\u002Fspan>\u003C\u002Fspan>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#4EC9B0\">    \u003C\u002Fspan>\u003Ca href=\"https:\u002F\u002Flearn.microsoft.com\u002Fdotnet\u002Fapi\u002Fsystem.threading.cancellationtoken\" title=\"System.Threading.CancellationToken (Microsoft Learn)\">\u003Cspan style=\"color:#4EC9B0\">CancellationToken\u003C\u002Fspan>\u003C\u002Fa>\u003Cspan style=\"color:#9CDCFE\"> cancellationToken\u003C\u002Fspan>\u003C\u002Fspan>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#D4D4D4\">)\u003C\u002Fspan>\u003C\u002Fspan>\u003C\u002Fcode>\u003C\u002Fpre>","member-46fdaf8f95e5b695db5c","\n            \u003Cdiv class=\"api-summary\">Refreshes a library game&#39;s achievements using the host&#39;s matching, account selection, scheduling, and cache merging.\u003C\u002Fdiv>\n            \u003Cdl>\u003Cdt class=\"version-row\">\u003Cspan>\u003Ccode>game\u003C\u002Fcode>\u003C\u002Fspan>\u003C\u002Fdt>\u003Cdd>The host library game.\u003C\u002Fdd>\u003C\u002Fdl>\n            \u003Cdl>\u003Cdt class=\"version-row\">\u003Cspan>\u003Ccode>cancellationToken\u003C\u002Fcode>\u003C\u002Fspan>\u003C\u002Fdt>\u003Cdd>Cancels this caller&#39;s wait. Shared provider work may continue for other callers.\u003C\u002Fdd>\u003C\u002Fdl>\n            \u003Ch4>Returns\u003C\u002Fh4>Resulting snapshots, retaining saved observations when retrieval is incomplete or unavailable.\n        ",{"currentRelease":16,"currentReleaseState":100},"stable","plugins",1794763757731]