Generated resource accessors connect code to localized text, icons, sounds, layouts, and browser assets. Treat them as versioned contracts rather than editable source files.
Resource categories
| Category | Examples | Failure strategy |
|---|---|---|
| Localization | Labels, descriptions and formatted messages | Fallback text and logged missing key |
| Images and icons | Atlas entries, browser assets and static textures | Existence check and neutral placeholder |
| Layouts and views | Aliases, XML/Flash definitions, browser bundles | Disable only the dependent UI |
| Sound identifiers | UI and battle event names | Silent no-op with throttled diagnostic |
| Dynamic resources | Mode or season-provided paths | Feature gate by package and resource availability |
Asset membership does not prove every variant is available
The rare-achievement cache classifies local IDs from the union of filenames for two image sizes before reading their bytes. A local ID can therefore lack one size, while its request path still skips remote text and images for that ID. Check the requested variant itself and retain a placeholder; catalog membership alone is not a completeness or decoding guarantee.
Remote fields merge independently. Missing or None text fields preserve prior values, while unchanged text or image bytes emit no change event. A change notification is therefore not a terminal result for each submitted asset request. Keep per-variant availability, refresh completion and dossier ownership separate. These Python wrapper rules are version-sensitive; they do not establish that any shipped image is missing or that a download occurred.
Read by topic
Choose a focused chapter. Complete examples and reference details are preserved on their topic pages.