[{"data":1,"prerenderedAt":151},["ShallowReactive",2],{"docs:\u002Fplugins\u002Freference\u002FUnbroken.LaunchBox.Plugins.Components.Achievements.AchievementProgress":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":148,"section":150},"type","AchievementProgress","Unbroken.LaunchBox.Plugins.Components.Achievements","\u002Fplugins\u002Fnamespaces\u002FUnbroken.LaunchBox.Plugins.Components.Achievements",[9,12],{"title":10,"url":11},"Components","\u002Fplugins\u002Fnamespaces\u002FUnbroken.LaunchBox.Plugins.Components",{"title":13,"url":7},"Achievements","Class",{"firstSeen":16,"isBaseline":17,"declarationFirstSeen":16},"14.1",false,"public sealed class Unbroken.LaunchBox.Plugins.Components.Achievements.AchievementProgress","public sealed class AchievementProgress","\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\"> sealed\u003C\u002Fspan>\u003Cspan style=\"color:#569CD6\"> class\u003C\u002Fspan>\u003Cspan style=\"color:#4EC9B0\"> \u003C\u002Fspan>\u003Cspan title=\"Unbroken.LaunchBox.Plugins.Components.Achievements.AchievementProgress\">\u003Cspan style=\"color:#4EC9B0\">AchievementProgress\u003C\u002Fspan>\u003C\u002Fspan>\u003C\u002Fspan>\u003C\u002Fcode>\u003C\u002Fpre>","\n            \u003Cdiv class=\"api-summary\">Contains progress for exactly one game, account, and mode.\u003C\u002Fdiv>\n        ",true,[],[],[26,36,46,56,66,76,85,94,103,112,121,130,139],{"availability":27,"id":28,"name":5,"label":5,"kind":29,"summary":30,"signature":31,"displaySignature":32,"signatureHtml":33,"anchor":34,"documentation":35,"documented":22},{"firstSeen":16,"isBaseline":17,"declarationFirstSeen":16},"M:Unbroken.LaunchBox.Plugins.Components.Achievements.AchievementProgress.#ctor(System.String,Unbroken.LaunchBox.Plugins.Components.Achievements.AchievementProgressContext,System.Collections.Generic.IReadOnlyCollection{Unbroken.LaunchBox.Plugins.Components.Achievements.AchievementProgressObservation},System.Boolean)","Constructor","Creates a progress observation.","public AchievementProgress(string gameId, Unbroken.LaunchBox.Plugins.Components.Achievements.AchievementProgressContext context, System.Collections.Generic.IReadOnlyCollection\u003CUnbroken.LaunchBox.Plugins.Components.Achievements.AchievementProgressObservation> achievements, bool isSnapshotComplete = true)","public AchievementProgress(\n    string gameId,\n    AchievementProgressContext context,\n    IReadOnlyCollection\u003CAchievementProgressObservation> achievements,\n    bool isSnapshotComplete = true\n)","\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:#DCDCAA\"> AchievementProgress\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:#9CDCFE\">    \u003C\u002Fspan>\u003Ca href=\"\u002Fplugins\u002Freference\u002FUnbroken.LaunchBox.Plugins.Components.Achievements.AchievementProgressContext\" title=\"Unbroken.LaunchBox.Plugins.Components.Achievements.AchievementProgressContext\">\u003Cspan style=\"color:#9CDCFE\">AchievementProgressContext\u003C\u002Fspan>\u003C\u002Fa>\u003Cspan style=\"color:#9CDCFE\"> context\u003C\u002Fspan>\u003Cspan style=\"color:#D4D4D4\">,\u003C\u002Fspan>\u003C\u002Fspan>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#9CDCFE\">    \u003C\u002Fspan>\u003Ca href=\"https:\u002F\u002Flearn.microsoft.com\u002Fdotnet\u002Fapi\u002Fsystem.collections.generic.ireadonlycollection-1\" title=\"System.Collections.Generic.IReadOnlyCollection (Microsoft Learn)\">\u003Cspan style=\"color:#9CDCFE\">IReadOnlyCollection\u003C\u002Fspan>\u003C\u002Fa>\u003Cspan style=\"color:#D4D4D4\">&#x3C;\u003C\u002Fspan>\u003Ca href=\"\u002Fplugins\u002Freference\u002FUnbroken.LaunchBox.Plugins.Components.Achievements.AchievementProgressObservation\" title=\"Unbroken.LaunchBox.Plugins.Components.Achievements.AchievementProgressObservation\">\u003Cspan style=\"color:#9CDCFE\">AchievementProgressObservation\u003C\u002Fspan>\u003C\u002Fa>\u003Cspan style=\"color:#D4D4D4\">> \u003C\u002Fspan>\u003Cspan style=\"color:#9CDCFE\">achievements\u003C\u002Fspan>\u003Cspan style=\"color:#D4D4D4\">,\u003C\u002Fspan>\u003C\u002Fspan>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#569CD6\">    bool\u003C\u002Fspan>\u003Cspan style=\"color:#9CDCFE\"> isSnapshotComplete\u003C\u002Fspan>\u003Cspan style=\"color:#D4D4D4\"> = \u003C\u002Fspan>\u003Cspan style=\"color:#569CD6\">true\u003C\u002Fspan>\u003C\u002Fspan>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#D4D4D4\">)\u003C\u002Fspan>\u003C\u002Fspan>\u003C\u002Fcode>\u003C\u002Fpre>","member-316514a89178fe112bd7","\n            \u003Cdiv class=\"api-summary\">Creates a progress observation.\u003C\u002Fdiv>\n            \u003Cdl>\u003Cdt class=\"version-row\">\u003Cspan>\u003Ccode>gameId\u003C\u002Fcode>\u003C\u002Fspan>\u003C\u002Fdt>\u003Cdd>Source-local game ID.\u003C\u002Fdd>\u003C\u002Fdl>\n            \u003Cdl>\u003Cdt class=\"version-row\">\u003Cspan>\u003Ccode>context\u003C\u002Fcode>\u003C\u002Fspan>\u003C\u002Fdt>\u003Cdd>The context actually used, which must match the request.\u003C\u002Fdd>\u003C\u002Fdl>\n            \u003Cdl>\u003Cdt class=\"version-row\">\u003Cspan>\u003Ccode>achievements\u003C\u002Fcode>\u003C\u002Fspan>\u003C\u002Fdt>\u003Cdd>Explicit observations. Missing items imply locked only when the snapshot is complete.\u003C\u002Fdd>\u003C\u002Fdl>\n            \u003Cdl>\u003Cdt class=\"version-row\">\u003Cspan>\u003Ccode>isSnapshotComplete\u003C\u002Fcode>\u003C\u002Fspan>\u003C\u002Fdt>\u003Cdd>Whether progress is authoritative for the entire game catalog, regardless of how many achievements the player has unlocked.\u003C\u002Fdd>\u003C\u002Fdl>\n        ",{"availability":37,"id":38,"name":13,"label":13,"kind":39,"summary":40,"signature":41,"displaySignature":42,"signatureHtml":43,"anchor":44,"documentation":45,"documented":22},{"firstSeen":16,"isBaseline":17,"declarationFirstSeen":16},"P:Unbroken.LaunchBox.Plugins.Components.Achievements.AchievementProgress.Achievements","Property","Gets explicit progress observations.","public System.Collections.Generic.IReadOnlyCollection\u003CUnbroken.LaunchBox.Plugins.Components.Achievements.AchievementProgressObservation> Achievements { get; }","public IReadOnlyCollection\u003CAchievementProgressObservation> Achievements { get; }","\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:#9CDCFE\"> \u003C\u002Fspan>\u003Ca href=\"https:\u002F\u002Flearn.microsoft.com\u002Fdotnet\u002Fapi\u002Fsystem.collections.generic.ireadonlycollection-1\" title=\"System.Collections.Generic.IReadOnlyCollection (Microsoft Learn)\">\u003Cspan style=\"color:#9CDCFE\">IReadOnlyCollection\u003C\u002Fspan>\u003C\u002Fa>\u003Cspan style=\"color:#D4D4D4\">&#x3C;\u003C\u002Fspan>\u003Ca href=\"\u002Fplugins\u002Freference\u002FUnbroken.LaunchBox.Plugins.Components.Achievements.AchievementProgressObservation\" title=\"Unbroken.LaunchBox.Plugins.Components.Achievements.AchievementProgressObservation\">\u003Cspan style=\"color:#9CDCFE\">AchievementProgressObservation\u003C\u002Fspan>\u003C\u002Fa>\u003Cspan style=\"color:#D4D4D4\">> \u003C\u002Fspan>\u003Cspan style=\"color:#9CDCFE\">Achievements\u003C\u002Fspan>\u003Cspan style=\"color:#D4D4D4\"> { \u003C\u002Fspan>\u003Cspan style=\"color:#9CDCFE\">get\u003C\u002Fspan>\u003Cspan style=\"color:#D4D4D4\">; }\u003C\u002Fspan>\u003C\u002Fspan>\u003C\u002Fcode>\u003C\u002Fpre>","member-e64d03f1ed235dc0a1d8","\n            \u003Cdiv class=\"api-summary\">Gets explicit progress observations.\u003C\u002Fdiv>\n        ",{"availability":47,"id":48,"name":49,"label":49,"kind":39,"summary":50,"signature":51,"displaySignature":52,"signatureHtml":53,"anchor":54,"documentation":55,"documented":22},{"firstSeen":16,"isBaseline":17,"declarationFirstSeen":16},"P:Unbroken.LaunchBox.Plugins.Components.Achievements.AchievementProgress.BeatenAt","BeatenAt","Gets or initializes the provider-reported time the game was beaten in this account and mode; null means unknown.","public System.DateTimeOffset? BeatenAt { get; init; }","public DateTimeOffset? BeatenAt { get; init; }","\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:#9CDCFE\"> \u003C\u002Fspan>\u003Ca href=\"https:\u002F\u002Flearn.microsoft.com\u002Fdotnet\u002Fapi\u002Fsystem.datetimeoffset\" title=\"System.DateTimeOffset (Microsoft Learn)\">\u003Cspan style=\"color:#9CDCFE\">DateTimeOffset\u003C\u002Fspan>\u003C\u002Fa>\u003Cspan style=\"color:#D4D4D4\">? \u003C\u002Fspan>\u003Cspan style=\"color:#9CDCFE\">BeatenAt\u003C\u002Fspan>\u003Cspan style=\"color:#D4D4D4\"> { \u003C\u002Fspan>\u003Cspan style=\"color:#9CDCFE\">get\u003C\u002Fspan>\u003Cspan style=\"color:#D4D4D4\">; \u003C\u002Fspan>\u003Cspan style=\"color:#9CDCFE\">init\u003C\u002Fspan>\u003Cspan style=\"color:#D4D4D4\">; }\u003C\u002Fspan>\u003C\u002Fspan>\u003C\u002Fcode>\u003C\u002Fpre>","member-b5d057bd95eee390f0a0","\n            \u003Cdiv class=\"api-summary\">Gets or initializes the provider-reported time the game was beaten in this account and mode; null means unknown.\u003C\u002Fdiv>\n            \u003Ch4>Remarks\u003C\u002Fh4>A timestamp requires \u003Ca href=\"\u002Fplugins\u002Freference\u002FUnbroken.LaunchBox.Plugins.Components.Achievements.AchievementProgress#member-87a25ea2c9e765a1e177\" title=\"Unbroken.LaunchBox.Plugins.Components.Achievements.AchievementProgress.IsBeaten\">AchievementProgress.IsBeaten\u003C\u002Fa> to be true. An unknown timestamp preserves a saved date unless the provider explicitly reports that the game is no longer beaten. Dates from another mode, completion, or individual unlocks do not establish this timestamp.\n        ",{"availability":57,"id":58,"name":59,"label":59,"kind":39,"summary":60,"signature":61,"displaySignature":62,"signatureHtml":63,"anchor":64,"documentation":65,"documented":22},{"firstSeen":16,"isBaseline":17,"declarationFirstSeen":16},"P:Unbroken.LaunchBox.Plugins.Components.Achievements.AchievementProgress.CompletedAt","CompletedAt","Gets or initializes the provider-reported time full game completion was achieved in this account and mode; null means unknown.","public System.DateTimeOffset? CompletedAt { get; init; }","public DateTimeOffset? CompletedAt { get; init; }","\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:#9CDCFE\"> \u003C\u002Fspan>\u003Ca href=\"https:\u002F\u002Flearn.microsoft.com\u002Fdotnet\u002Fapi\u002Fsystem.datetimeoffset\" title=\"System.DateTimeOffset (Microsoft Learn)\">\u003Cspan style=\"color:#9CDCFE\">DateTimeOffset\u003C\u002Fspan>\u003C\u002Fa>\u003Cspan style=\"color:#D4D4D4\">? \u003C\u002Fspan>\u003Cspan style=\"color:#9CDCFE\">CompletedAt\u003C\u002Fspan>\u003Cspan style=\"color:#D4D4D4\"> { \u003C\u002Fspan>\u003Cspan style=\"color:#9CDCFE\">get\u003C\u002Fspan>\u003Cspan style=\"color:#D4D4D4\">; \u003C\u002Fspan>\u003Cspan style=\"color:#9CDCFE\">init\u003C\u002Fspan>\u003Cspan style=\"color:#D4D4D4\">; }\u003C\u002Fspan>\u003C\u002Fspan>\u003C\u002Fcode>\u003C\u002Fpre>","member-64b4cdb83e3f1fc0564b","\n            \u003Cdiv class=\"api-summary\">Gets or initializes the provider-reported time full game completion was achieved in this account and mode; null means unknown.\u003C\u002Fdiv>\n            \u003Ch4>Remarks\u003C\u002Fh4>A timestamp requires \u003Ca href=\"\u002Fplugins\u002Freference\u002FUnbroken.LaunchBox.Plugins.Components.Achievements.AchievementProgress#member-45572b363e426d302031\" title=\"Unbroken.LaunchBox.Plugins.Components.Achievements.AchievementProgress.IsCompleted\">AchievementProgress.IsCompleted\u003C\u002Fa> to be true. An unknown timestamp preserves a saved date unless the provider explicitly reports that the game is no longer completed. Dates from another mode, beaten state, or individual unlocks do not establish this timestamp.\n        ",{"availability":67,"id":68,"name":69,"label":69,"kind":39,"summary":70,"signature":71,"displaySignature":72,"signatureHtml":73,"anchor":74,"documentation":75,"documented":22},{"firstSeen":16,"isBaseline":17,"declarationFirstSeen":16},"P:Unbroken.LaunchBox.Plugins.Components.Achievements.AchievementProgress.Context","Context","Gets the actual account and mode.","public Unbroken.LaunchBox.Plugins.Components.Achievements.AchievementProgressContext Context { get; }","public AchievementProgressContext Context { get; }","\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:#9CDCFE\"> \u003C\u002Fspan>\u003Ca href=\"\u002Fplugins\u002Freference\u002FUnbroken.LaunchBox.Plugins.Components.Achievements.AchievementProgressContext\" title=\"Unbroken.LaunchBox.Plugins.Components.Achievements.AchievementProgressContext\">\u003Cspan style=\"color:#9CDCFE\">AchievementProgressContext\u003C\u002Fspan>\u003C\u002Fa>\u003Cspan style=\"color:#9CDCFE\"> Context\u003C\u002Fspan>\u003Cspan style=\"color:#D4D4D4\"> { \u003C\u002Fspan>\u003Cspan style=\"color:#9CDCFE\">get\u003C\u002Fspan>\u003Cspan style=\"color:#D4D4D4\">; }\u003C\u002Fspan>\u003C\u002Fspan>\u003C\u002Fcode>\u003C\u002Fpre>","member-38bcc7f9cf18906118f0","\n            \u003Cdiv class=\"api-summary\">Gets the actual account and mode.\u003C\u002Fdiv>\n        ",{"availability":77,"id":78,"name":79,"label":79,"kind":39,"summary":80,"signature":81,"displaySignature":81,"signatureHtml":82,"anchor":83,"documentation":84,"documented":22},{"firstSeen":16,"isBaseline":17,"declarationFirstSeen":16},"P:Unbroken.LaunchBox.Plugins.Components.Achievements.AchievementProgress.EarnedPoints","EarnedPoints","Gets or initializes the observed achievement points earned for this game and context; null means unknown.","public decimal? EarnedPoints { get; init; }","\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\"> decimal\u003C\u002Fspan>\u003Cspan style=\"color:#D4D4D4\">? \u003C\u002Fspan>\u003Cspan style=\"color:#9CDCFE\">EarnedPoints\u003C\u002Fspan>\u003Cspan style=\"color:#D4D4D4\"> { \u003C\u002Fspan>\u003Cspan style=\"color:#9CDCFE\">get\u003C\u002Fspan>\u003Cspan style=\"color:#D4D4D4\">; \u003C\u002Fspan>\u003Cspan style=\"color:#9CDCFE\">init\u003C\u002Fspan>\u003Cspan style=\"color:#D4D4D4\">; }\u003C\u002Fspan>\u003C\u002Fspan>\u003C\u002Fcode>\u003C\u002Fpre>","member-097db1d71ddd7976a7b6","\n            \u003Cdiv class=\"api-summary\">Gets or initializes the observed achievement points earned for this game and context; null means unknown.\u003C\u002Fdiv>\n            \u003Ch4>Remarks\u003C\u002Fh4>This value does not identify which achievements are unlocked or make the snapshot complete. It must be nonnegative and must not exceed \u003Ca href=\"\u002Fplugins\u002Freference\u002FUnbroken.LaunchBox.Plugins.Components.Achievements.AchievementProgress#member-81e446e381223649c21b\" title=\"Unbroken.LaunchBox.Plugins.Components.Achievements.AchievementProgress.TotalPoints\">AchievementProgress.TotalPoints\u003C\u002Fa> when both values are known.\n        ",{"availability":86,"id":87,"name":88,"label":88,"kind":39,"summary":89,"signature":90,"displaySignature":90,"signatureHtml":91,"anchor":92,"documentation":93,"documented":22},{"firstSeen":16,"isBaseline":17,"declarationFirstSeen":16},"P:Unbroken.LaunchBox.Plugins.Components.Achievements.AchievementProgress.GameId","GameId","Gets the source-local game ID.","public string GameId { get; }","\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\"> string\u003C\u002Fspan>\u003Cspan style=\"color:#9CDCFE\"> GameId\u003C\u002Fspan>\u003Cspan style=\"color:#D4D4D4\"> { \u003C\u002Fspan>\u003Cspan style=\"color:#9CDCFE\">get\u003C\u002Fspan>\u003Cspan style=\"color:#D4D4D4\">; }\u003C\u002Fspan>\u003C\u002Fspan>\u003C\u002Fcode>\u003C\u002Fpre>","member-ca80aa4350ff24aa38b2","\n            \u003Cdiv class=\"api-summary\">Gets the source-local game ID.\u003C\u002Fdiv>\n        ",{"availability":95,"id":96,"name":97,"label":97,"kind":39,"summary":98,"signature":99,"displaySignature":99,"signatureHtml":100,"anchor":101,"documentation":102,"documented":22},{"firstSeen":16,"isBaseline":17,"declarationFirstSeen":16},"P:Unbroken.LaunchBox.Plugins.Components.Achievements.AchievementProgress.IsBeaten","IsBeaten","Gets or initializes whether the provider confirms the game has been beaten in this account and mode; null means unknown.","public bool? IsBeaten { get; init; }","\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\"> bool\u003C\u002Fspan>\u003Cspan style=\"color:#D4D4D4\">? \u003C\u002Fspan>\u003Cspan style=\"color:#9CDCFE\">IsBeaten\u003C\u002Fspan>\u003Cspan style=\"color:#D4D4D4\"> { \u003C\u002Fspan>\u003Cspan style=\"color:#9CDCFE\">get\u003C\u002Fspan>\u003Cspan style=\"color:#D4D4D4\">; \u003C\u002Fspan>\u003Cspan style=\"color:#9CDCFE\">init\u003C\u002Fspan>\u003Cspan style=\"color:#D4D4D4\">; }\u003C\u002Fspan>\u003C\u002Fspan>\u003C\u002Fcode>\u003C\u002Fpre>","member-87a25ea2c9e765a1e177","\n            \u003Cdiv class=\"api-summary\">Gets or initializes whether the provider confirms the game has been beaten in this account and mode; null means unknown.\u003C\u002Fdiv>\n            \u003Ch4>Remarks\u003C\u002Fh4>This is supplied by the provider, not inferred from achievement counts. An unknown value does not clear saved completion state.\n        ",{"availability":104,"id":105,"name":106,"label":106,"kind":39,"summary":107,"signature":108,"displaySignature":108,"signatureHtml":109,"anchor":110,"documentation":111,"documented":22},{"firstSeen":16,"isBaseline":17,"declarationFirstSeen":16},"P:Unbroken.LaunchBox.Plugins.Components.Achievements.AchievementProgress.IsCompleted","IsCompleted","Gets or initializes whether the provider confirms full game completion in this account and mode; null means unknown.","public bool? IsCompleted { get; init; }","\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\"> bool\u003C\u002Fspan>\u003Cspan style=\"color:#D4D4D4\">? \u003C\u002Fspan>\u003Cspan style=\"color:#9CDCFE\">IsCompleted\u003C\u002Fspan>\u003Cspan style=\"color:#D4D4D4\"> { \u003C\u002Fspan>\u003Cspan style=\"color:#9CDCFE\">get\u003C\u002Fspan>\u003Cspan style=\"color:#D4D4D4\">; \u003C\u002Fspan>\u003Cspan style=\"color:#9CDCFE\">init\u003C\u002Fspan>\u003Cspan style=\"color:#D4D4D4\">; }\u003C\u002Fspan>\u003C\u002Fspan>\u003C\u002Fcode>\u003C\u002Fpre>","member-45572b363e426d302031","\n            \u003Cdiv class=\"api-summary\">Gets or initializes whether the provider confirms full game completion in this account and mode; null means unknown.\u003C\u002Fdiv>\n            \u003Ch4>Remarks\u003C\u002Fh4>This is independent of \u003Ca href=\"\u002Fplugins\u002Freference\u002FUnbroken.LaunchBox.Plugins.Components.Achievements.AchievementProgress#member-a902df45f99ed9c86e3b\" title=\"Unbroken.LaunchBox.Plugins.Components.Achievements.AchievementProgress.IsSnapshotComplete\">AchievementProgress.IsSnapshotComplete\u003C\u002Fa> and is not inferred from achievement counts. An unknown value does not clear saved completion state.\n        ",{"availability":113,"id":114,"name":115,"label":115,"kind":39,"summary":116,"signature":117,"displaySignature":117,"signatureHtml":118,"anchor":119,"documentation":120,"documented":22},{"firstSeen":16,"isBaseline":17,"declarationFirstSeen":16},"P:Unbroken.LaunchBox.Plugins.Components.Achievements.AchievementProgress.IsSnapshotComplete","IsSnapshotComplete","Gets whether this snapshot is authoritative for the entire game catalog and context. Missing achievements remain unknown when false; this does not indicate player completion.","public bool IsSnapshotComplete { get; }","\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\"> bool\u003C\u002Fspan>\u003Cspan style=\"color:#9CDCFE\"> IsSnapshotComplete\u003C\u002Fspan>\u003Cspan style=\"color:#D4D4D4\"> { \u003C\u002Fspan>\u003Cspan style=\"color:#9CDCFE\">get\u003C\u002Fspan>\u003Cspan style=\"color:#D4D4D4\">; }\u003C\u002Fspan>\u003C\u002Fspan>\u003C\u002Fcode>\u003C\u002Fpre>","member-a902df45f99ed9c86e3b","\n            \u003Cdiv class=\"api-summary\">Gets whether this snapshot is authoritative for the entire game catalog and context. Missing achievements remain unknown when false; this does not indicate player completion.\u003C\u002Fdiv>\n        ",{"availability":122,"id":123,"name":124,"label":124,"kind":39,"summary":125,"signature":126,"displaySignature":126,"signatureHtml":127,"anchor":128,"documentation":129,"documented":22},{"firstSeen":16,"isBaseline":17,"declarationFirstSeen":16},"P:Unbroken.LaunchBox.Plugins.Components.Achievements.AchievementProgress.TotalAchievements","TotalAchievements","Gets or initializes the observed total achievement count for this game and context; null means unknown.","public int? TotalAchievements { get; init; }","\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\"> int\u003C\u002Fspan>\u003Cspan style=\"color:#D4D4D4\">? \u003C\u002Fspan>\u003Cspan style=\"color:#9CDCFE\">TotalAchievements\u003C\u002Fspan>\u003Cspan style=\"color:#D4D4D4\"> { \u003C\u002Fspan>\u003Cspan style=\"color:#9CDCFE\">get\u003C\u002Fspan>\u003Cspan style=\"color:#D4D4D4\">; \u003C\u002Fspan>\u003Cspan style=\"color:#9CDCFE\">init\u003C\u002Fspan>\u003Cspan style=\"color:#D4D4D4\">; }\u003C\u002Fspan>\u003C\u002Fspan>\u003C\u002Fcode>\u003C\u002Fpre>","member-272b3cb5a57947fc9ed1","\n            \u003Cdiv class=\"api-summary\">Gets or initializes the observed total achievement count for this game and context; null means unknown.\u003C\u002Fdiv>\n            \u003Ch4>Remarks\u003C\u002Fh4>This count can describe the whole game even when individual observations are incomplete. It must be nonnegative.\n        ",{"availability":131,"id":132,"name":133,"label":133,"kind":39,"summary":134,"signature":135,"displaySignature":135,"signatureHtml":136,"anchor":137,"documentation":138,"documented":22},{"firstSeen":16,"isBaseline":17,"declarationFirstSeen":16},"P:Unbroken.LaunchBox.Plugins.Components.Achievements.AchievementProgress.TotalPoints","TotalPoints","Gets or initializes the observed total achievement points available for this game and context; null means unknown.","public decimal? TotalPoints { get; init; }","\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\"> decimal\u003C\u002Fspan>\u003Cspan style=\"color:#D4D4D4\">? \u003C\u002Fspan>\u003Cspan style=\"color:#9CDCFE\">TotalPoints\u003C\u002Fspan>\u003Cspan style=\"color:#D4D4D4\"> { \u003C\u002Fspan>\u003Cspan style=\"color:#9CDCFE\">get\u003C\u002Fspan>\u003Cspan style=\"color:#D4D4D4\">; \u003C\u002Fspan>\u003Cspan style=\"color:#9CDCFE\">init\u003C\u002Fspan>\u003Cspan style=\"color:#D4D4D4\">; }\u003C\u002Fspan>\u003C\u002Fspan>\u003C\u002Fcode>\u003C\u002Fpre>","member-81e446e381223649c21b","\n            \u003Cdiv class=\"api-summary\">Gets or initializes the observed total achievement points available for this game and context; null means unknown.\u003C\u002Fdiv>\n            \u003Ch4>Remarks\u003C\u002Fh4>This value can describe the whole game even when individual observations are incomplete. It must be nonnegative and use the same units as \u003Ca href=\"\u002Fplugins\u002Freference\u002FUnbroken.LaunchBox.Plugins.Components.Achievements.AchievementDefinition#member-960554116fca32482881\" title=\"Unbroken.LaunchBox.Plugins.Components.Achievements.AchievementDefinition.Points\">AchievementDefinition.Points\u003C\u002Fa>.\n        ",{"availability":140,"id":141,"name":142,"label":142,"kind":39,"summary":143,"signature":144,"displaySignature":144,"signatureHtml":145,"anchor":146,"documentation":147,"documented":22},{"firstSeen":16,"isBaseline":17,"declarationFirstSeen":16},"P:Unbroken.LaunchBox.Plugins.Components.Achievements.AchievementProgress.UnlockedAchievements","UnlockedAchievements","Gets or initializes the observed unlocked count for this game and context; null means unknown.","public int? UnlockedAchievements { get; init; }","\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\"> int\u003C\u002Fspan>\u003Cspan style=\"color:#D4D4D4\">? \u003C\u002Fspan>\u003Cspan style=\"color:#9CDCFE\">UnlockedAchievements\u003C\u002Fspan>\u003Cspan style=\"color:#D4D4D4\"> { \u003C\u002Fspan>\u003Cspan style=\"color:#9CDCFE\">get\u003C\u002Fspan>\u003Cspan style=\"color:#D4D4D4\">; \u003C\u002Fspan>\u003Cspan style=\"color:#9CDCFE\">init\u003C\u002Fspan>\u003Cspan style=\"color:#D4D4D4\">; }\u003C\u002Fspan>\u003C\u002Fspan>\u003C\u002Fcode>\u003C\u002Fpre>","member-c7f505f47fc583ef3730","\n            \u003Cdiv class=\"api-summary\">Gets or initializes the observed unlocked count for this game and context; null means unknown.\u003C\u002Fdiv>\n            \u003Ch4>Remarks\u003C\u002Fh4>This count does not identify which achievements are unlocked or make the snapshot complete. It must be nonnegative and must not exceed \u003Ca href=\"\u002Fplugins\u002Freference\u002FUnbroken.LaunchBox.Plugins.Components.Achievements.AchievementProgress#member-272b3cb5a57947fc9ed1\" title=\"Unbroken.LaunchBox.Plugins.Components.Achievements.AchievementProgress.TotalAchievements\">AchievementProgress.TotalAchievements\u003C\u002Fa> when both counts are known.\n        ",{"currentRelease":16,"currentReleaseState":149},"stable","plugins",1794763752356]