Namespace Serenity.Achievements.Application.Sync
Classes
AchievementCopilotScript
Pure builder that turns a Push-direction AchievementSyncPlan and its accepted AchievementSyncReviewSelection into the manual walkthrough a Copilot-mode run hands an author instead of sending a real push.
AchievementIconDownload
What a connector brought back when asked to download one storefront icon: the image bytes, already checked to be an image, or why nothing was brought back.
AchievementIconImageLimits
The size a pulled icon may declare, judged from its header before anything decodes it: the one rule the download check and the file writer both ask, so a small file that declares enormous dimensions never reaches a decoder.
AchievementIconPayload
One achievement icon in neutral wire form: the PNG bytes a push sends, or the identifying information a pull reads back without downloading the image itself.
AchievementPushBatch
The achievements and locales one push sends to a connector, in the order they were given.
AchievementPushGuard
What a push checks before it sends anything, because the storefront checks nothing: it accepts a name with spaces, a name another achievement already has, and a save for a name it lists twice.
AchievementPushOutcome
What a push produced: which achievements the platform accepted, and what went wrong.
AchievementPushPlanExecutor
Pure sequencer that turns a Push-direction AchievementSyncPlan and its accepted AchievementSyncReviewSelection into the ordered list of work a push actually sends.
AchievementPushTextBaseline
Builds the record a push saves for an achievement that already exists on the platform: the platform's own texts as the baseline, with the authored text laid over it only for the locales in scope.
AchievementPushWorkItem
One unit of work a push sends to a storefront: either an achievement's metadata, or one of its icons.
AchievementPushWorkItem.Fields
The values one work item is built from, named rather than positional.
AchievementStorefrontIcon
An icon a storefront holds for one achievement, named by a reference only the connector that produced it can make sense of, so a pull can offer to bring it in without downloading anything while it plans.
AchievementStorefrontSnapshot
Everything one pull read back from a storefront's achievement list at one point in time.
AchievementStorefrontSnapshotJson
Encodes and decodes an AchievementStorefrontSnapshot as JSON, in the same
hand-rolled idiom StructuredWireJson uses for the structured-store wire DTOs: a
StringBuilder plus JsonStringEscaper for writing, JsonValue
for reading. Nothing here touches Unity — this is the wire/file shape a
IAchievementDefinitionSyncConnector
reads and writes, and doubles as a permanent, headless-testable import/export format independent of
which storefront (or file) a snapshot came from.
AchievementSyncApplyAction
One recorded outcome for one field change or creation.
AchievementSyncApplyMessage
One recorded report message.
AchievementSyncApplyReport
Accumulates the actions and messages an AchievementSyncAssetWriter records applying — or previewing — a sync plan's accepted changes, and renders a readable summary. The pull-side mirror of Serenity.ProjectRecipe.Infrastructure.Editor.Reporting.SerenityRecipeReport: one report shape shared by a dry-run preview and a real apply.
AchievementSyncCapabilities
What one connector can and cannot do, as the editor UI it drives needs to know before offering an action.
AchievementSyncCapabilities.Fields
The values one capabilities set is built from, named rather than positional.
AchievementSyncConnectionCheck
The result of asking a connector whether it can currently reach its platform.
AchievementSyncFieldChange
One field's comparison result between an authored achievement and its platform counterpart, for one locale when the field is localized.
AchievementSyncFieldChange.Fields
The values one field change is built from, named rather than positional.
AchievementSyncKeyCollisions
The achievements of one pull that would file their text under the same localization key, so that neither is created or moved into the string table until the author gives them ids whose keys differ.
AchievementSyncLocaleNotices
The plain statements a push owes an author about which languages travel: the project's languages the storefront has no counterpart for, and the achievement that holds its text literally and so sends one.
AchievementSyncMissingLocale
A language the storefront holds achievement text in that the project's string table collection has no table for, so a pull cannot file that text until the author adds the language — and, when the project has no locale for it either (under the storefront's code or an alias of it), the locale too.
AchievementSyncPlan
The whole result of one AchievementSyncPlanner run: every achievement it compared, in the order the review UI renders them, and the counts that UI's summary bar reads without re-walking the item list itself.
AchievementSyncPlanItem
One achievement's place in a sync plan: how it matched across authored and platform data, every field change the planner found for it, and why it could not be diffed at all when it could not.
AchievementSyncPlanItem.Fields
The values one plan item is built from, named rather than positional.
AchievementSyncPlanOptions
What the project, rather than the storefront, tells AchievementSyncPlanner about a pull: the locale the authored text is written in, whether the project can take translations into a string table, and which languages its string table collection already has a table for.
AchievementSyncPlanner
Pure diff engine between an authored achievement set and one platform snapshot: the single policy every sync review window builds its rows from, mirroring the set-algebra shape of AchievementReconciler one layer up, for definitions instead of unlock state.
AchievementSyncProgress
One step of a push, reported through IProgress<AchievementSyncProgress>.
AchievementSyncPulledTextNotices
What a pull says about a pulled text that holds characters a game's text pipeline may interpret. A pulled text is filed exactly as the storefront has it; this only points out the characters that Smart Format or rich text could read as markup, so the author decides knowingly.
AchievementSyncPushLocaleScope
Decides which locales a push covers. A push whose author ticked no locale covers every locale the project authors text in — never none, which would send an achievement with no text at all.
AchievementSyncRecord
One achievement in the neutral wire form the sync system pushes to and pulls from a storefront.
AchievementSyncRecord.Fields
The values one record is built from, named rather than positional.
AchievementSyncReviewSelection
Which field changes of a sync plan an author has accepted to apply, tracked independently of the plan itself so a review window can re-plan (for example after a pull refresh) without losing selections that still make sense.
CopilotAchievementScript
One achievement's Copilot walkthrough: its field-by-field paste instructions and its icon uploads.
CopilotAchievementScript.Fields
The values one achievement's script is built from, named rather than positional.
CopilotFieldInstruction
One field a Copilot walkthrough asks the author to paste by hand, platform-neutral: which field, which locale (if any), and the value to paste. A storefront adapter's presenter turns this into the label and hint an author actually reads.
CopilotIconInstruction
One icon a Copilot walkthrough asks the author to upload by hand: which achievement, which icon, the same bytes a push would have sent, and the file name a Copilot bundle export suggests for it.
CopilotWalkthroughProgress
Which fields and icons of a Copilot walkthrough an author has already marked done by hand.
LocalizedTextSet
An immutable set of localized strings for one achievement field, keyed by locale code (for
example "en", "es-AR").
Structs
AchievementSyncExistingAchievement
An achievement the project already holds, as far as localization keys go: its id, and the keys its text is actually filed under when those are not simply the ones its id derives.
AchievementSyncKeyOwner
An achievement whose text a pull is about to file under the keys its local id gives it: a new one the pull creates, or an existing one the pull moves into the string table.
Enums
AchievementIconRequirement
Which icons a platform requires before it will accept a pushed achievement.
AchievementPushWorkItemKind
What one push work item does when it runs.
AchievementSyncApplyOutcome
What one action an AchievementSyncApplyReport writer took (or previewed taking) resolved to.
AchievementSyncApplySeverity
Severity of an AchievementSyncApplyReport message, ordered from least to most severe.
AchievementSyncApplyTarget
Which kind of project data one apply action wrote, or would write, to.
AchievementSyncChangeKind
What one field comparison in a sync plan resolved to.
AchievementSyncDirection
The direction one field's value travels between Serenity and a storefront.
AchievementSyncFieldKind
The individual fields of an achievement definition that a sync connector may be able to push or pull, one value per field a storefront's editor UI can offer a checkbox for.
AchievementSyncMatch
How one plan item's authored and platform sides paired up by ApiName.
AchievementSyncTransportMode
How a Push-direction sync run actually delivers its accepted changes to the storefront.
CopilotIconKind
Which of an achievement's two icons a CopilotIconInstruction is for.