feat(isac): support deferred item icons
This commit is contained in:
@@ -1222,3 +1222,19 @@ Use explicit textual tier capacity wherever Gear tier is summarized: `1 MOD
|
||||
SLOT` for T0 and `2 MOD SLOTS` for T1/T2. On narrow screens the identity band
|
||||
and preview controls stack, while repeated quality data may scroll rather than
|
||||
compressing numeric controls below usable sizes.
|
||||
|
||||
### Deferred game-data icons
|
||||
|
||||
Game-data icons are optional enrichment, never a blocker for creating or
|
||||
proposing a canonical item. Upload fields must state that an icon may be
|
||||
contributed later and show the shared `/missing-item-icon.svg` artwork when no
|
||||
upload exists. Registries, relationship rails, and builder selection controls
|
||||
use the same placeholder instead of initials, empty boxes, or ad hoc glyphs.
|
||||
|
||||
Treat the placeholder as an explicit incomplete-data state: keep its subdued
|
||||
SHD styling and useful alternative text where the surrounding item name is not
|
||||
already available. Do not persist placeholder metadata or copy the placeholder
|
||||
into per-item storage. A later contributor replaces it through the normal icon
|
||||
upload proposal, preserving the canonical record and audit history. The upload
|
||||
itself retains all transparent-format, size, SVG-safety, focus, drag/drop, and
|
||||
paste validation requirements.
|
||||
|
||||
@@ -313,3 +313,11 @@ served by the validated `/icons/game-data/[type]/[id]` endpoint with immutable
|
||||
cache headers and MIME sniffing disabled. ISAC save actions process files
|
||||
before mutation, apply upload or removal after record validation, and include
|
||||
only safe icon metadata—not image bytes—in their audit snapshots.
|
||||
|
||||
Icon metadata is optional. Canonical records and contributor proposals may be
|
||||
created without an upload, allowing values and artwork to be contributed in
|
||||
separate dependency-safe changes. Missing artwork is represented at render
|
||||
time by the static `/missing-item-icon.svg` asset through the shared
|
||||
`ItemIcon` component; the placeholder is never inserted into
|
||||
`game_data_icons`. A later edit or proposal can attach the real icon without
|
||||
recreating or replacing the canonical item.
|
||||
|
||||
Reference in New Issue
Block a user