2026-07-18 11:13:12 +08:00

378 lines
14 KiB
JSON

{
"schemaVersion": 1,
"figma": {
"fileKey": "OTOg5cwbhVNWxkImGmzTJl",
"canvasNode": "646:1997",
"referenceFrames": [
"918:6917",
"918:7827",
"918:8941",
"918:9851",
"918:10385"
]
},
"policy": {
"description": "Runtime assets are traceable decorative layers only. All copy, controls, user data, ranking data, task state and reward media remain DOM/API content.",
"forbiddenSourceNodes": [
"646:1997",
"918:6917",
"918:7827",
"918:8941",
"918:9851",
"918:10385"
],
"forbiddenRuntimeTerms": [
"whole-page",
"full-page",
"page-screenshot",
"root-frame"
],
"maxDecorativeLayerPixels": 1600000
},
"assets": [
{
"filename": "action-button.png",
"sourceNode": "918:8734",
"use": "Task action-button chrome; the label, state and click target remain a DOM button.",
"kind": "single-decorative-frame",
"scope": "runtime",
"renderedDesignSize": { "width": 72, "height": 26 },
"file": {
"format": "png",
"pixelWidth": 288,
"pixelHeight": 50,
"bytes": 27630
},
"sha256": "63372b8ba1ddc800de3467c86baa29de055ba46012d097830770dfac5eae5850",
"derived": false,
"containsText": false,
"containsControls": false,
"containsDynamicBusinessMedia": false
},
{
"filename": "back-icon.svg",
"sourceNode": "918:10383",
"use": "Back-arrow decoration inside the DOM navigation button.",
"kind": "single-decorative-icon",
"scope": "runtime",
"renderedDesignSize": { "width": 24, "height": 24 },
"file": {
"format": "svg",
"pixelWidth": 24,
"pixelHeight": 24,
"bytes": 1277
},
"exportViewBox": {
"minX": 0,
"minY": 0,
"width": 24,
"height": 24
},
"sha256": "4bf8ae2499b884a4b7e069d4ddad2dd06d56230313b596c53a06c6f75cc535bc",
"derived": false,
"containsText": false,
"containsControls": false,
"containsDynamicBusinessMedia": false
},
{
"filename": "coin.png",
"sourceNode": "918:9739",
"use": "Gold-score icon; leaderboard values remain live API text.",
"kind": "single-decorative-icon",
"scope": "runtime",
"renderedDesignSize": { "width": 32, "height": 32 },
"file": {
"format": "png",
"pixelWidth": 64,
"pixelHeight": 64,
"bytes": 6506
},
"sha256": "7f7fa561003ed8baf1e7a747637bbe6591bdb1543d7cb39ebe23cd6b322ce8da",
"derived": false,
"containsText": false,
"containsControls": false,
"containsDynamicBusinessMedia": false
},
{
"filename": "countdown-cell.png",
"sourceNode": "918:7887",
"use": "One countdown-number cell; days, hours, minutes and seconds remain live DOM text.",
"kind": "single-decorative-frame",
"scope": "runtime",
"renderedDesignSize": { "width": 72, "height": 77 },
"file": {
"format": "png",
"pixelWidth": 144,
"pixelHeight": 154,
"bytes": 42992
},
"sha256": "3a11b703471aff658bf499496f59e45e186c390e492545e8f191b7abe840d148",
"derived": false,
"containsText": false,
"containsControls": false,
"containsDynamicBusinessMedia": false
},
{
"filename": "hero-art.png",
"sourceNode": "918:7884",
"use": "Trophy, lions and blank title plaque. The original embedded Gift Challenge title was removed so the localized title remains DOM text.",
"kind": "derived-decorative-hero",
"scope": "runtime",
"renderedDesignSize": { "width": 375, "height": 375 },
"file": {
"format": "png",
"pixelWidth": 1000,
"pixelHeight": 1000,
"bytes": 2039585
},
"sha256": "36babcc651785d107f310010f255c4c8513976ee9d93e9cbe66e3fbfcd9f582a",
"derived": true,
"derivation": "Precise object edit removed only the embedded title from Figma node 918:7884 and reconstructed the blank plaque.",
"containsText": false,
"containsControls": false,
"containsDynamicBusinessMedia": false
},
{
"filename": "rank-period-sprite.png",
"sourceNode": "918:9020",
"use": "Selected and idle ranking-period chrome in one CSS sprite; labels and tab controls remain DOM elements.",
"kind": "decorative-state-sprite",
"scope": "runtime",
"renderedDesignSize": { "width": 169, "height": 60 },
"file": {
"format": "png",
"pixelWidth": 676,
"pixelHeight": 116,
"bytes": 131835
},
"sha256": "48094db756f6909bed483acc4bcf09d57bdbd8f7536ddc309e276f8c785b2bce",
"derived": false,
"containsText": false,
"containsControls": false,
"containsDynamicBusinessMedia": false
},
{
"filename": "rank-row.png",
"sourceNode": "918:9728",
"use": "Leaderboard-row border; rank, avatar, user identity and score remain live DOM/API content.",
"kind": "single-decorative-frame",
"scope": "runtime",
"renderedDesignSize": { "width": 351, "height": 88 },
"file": {
"format": "png",
"pixelWidth": 702,
"pixelHeight": 176,
"bytes": 198958
},
"sha256": "665dcdacad7bddeea9da79456088123cc50e1376be9fb329989f1265d981d174",
"derived": false,
"containsText": false,
"containsControls": false,
"containsDynamicBusinessMedia": false
},
{
"filename": "ranking-palace.jpg",
"sourceNode": "918:9029",
"use": "Palace, red-carpet and floor background behind the live leaderboard. Source watermarks were removed without adding content.",
"kind": "derived-decorative-background",
"scope": "runtime",
"renderedDesignSize": { "width": 359, "height": 637 },
"file": {
"format": "jpeg",
"pixelWidth": 718,
"pixelHeight": 1276,
"bytes": 317466
},
"sha256": "5723b0f00739092da4bb58f29a7c491ce7547f18c08caeb839b50e40175221be",
"derived": true,
"derivation": "Precise object edit removed only the source watermarks from Figma node 918:9029 and reconstructed the palace background beneath them.",
"containsText": false,
"containsControls": false,
"containsDynamicBusinessMedia": false
},
{
"filename": "ranking-title-frame.png",
"sourceNode": "918:9031",
"use": "Leaderboard title and podium surround; heading, avatars, names and scores remain live DOM/API content.",
"kind": "single-decorative-frame",
"scope": "runtime",
"renderedDesignSize": { "width": 375, "height": 326 },
"file": {
"format": "png",
"pixelWidth": 750,
"pixelHeight": 652,
"bytes": 265575
},
"sha256": "c26a575e22569903ec0ff0d7c74aa31e30cf3a82446b0c263e63deed39666679",
"derived": false,
"containsText": false,
"containsControls": false,
"containsDynamicBusinessMedia": false
},
{
"filename": "reward-count-frame.png",
"sourceNode": "918:8710",
"use": "Task reward-quantity frame; quantity remains live DOM/API text.",
"kind": "single-decorative-frame",
"scope": "runtime",
"renderedDesignSize": { "width": 79, "height": 30 },
"file": {
"format": "png",
"pixelWidth": 158,
"pixelHeight": 60,
"bytes": 16175
},
"sha256": "89a2cbbb8eaea727123c417caf5fa3bff3c77c3cbfa8b57333b8495706110c26",
"derived": false,
"containsText": false,
"containsControls": false,
"containsDynamicBusinessMedia": false
},
{
"filename": "section-tab-active.png",
"sourceNode": "918:19524",
"use": "Selected primary-tab chrome; label and click target remain DOM content.",
"kind": "single-decorative-frame",
"scope": "runtime",
"renderedDesignSize": { "width": 113, "height": 42 },
"file": {
"format": "png",
"pixelWidth": 452,
"pixelHeight": 168,
"bytes": 123940
},
"sha256": "f6df12b7c290706f83e009f5b4eeca8a51904d9f2d8992f8dbfdb931a3061b71",
"derived": false,
"containsText": false,
"containsControls": false,
"containsDynamicBusinessMedia": false
},
{
"filename": "section-tab-idle.png",
"sourceNode": "918:19527",
"use": "Idle primary-tab chrome; label and click target remain DOM content.",
"kind": "single-decorative-frame",
"scope": "runtime",
"renderedDesignSize": { "width": 113, "height": 42 },
"file": {
"format": "png",
"pixelWidth": 452,
"pixelHeight": 168,
"bytes": 70971
},
"sha256": "0cb9954872b49c785df55fd59041f614731f362e9c7a02b4459bf1eea6ae9c85",
"derived": false,
"containsText": false,
"containsControls": false,
"containsDynamicBusinessMedia": false
},
{
"filename": "side-info.svg",
"sourceNode": "918:8934",
"use": "Rules icon inside the live DOM action button.",
"kind": "single-decorative-icon",
"scope": "runtime",
"renderedDesignSize": { "width": 24, "height": 24 },
"file": {
"format": "svg",
"pixelWidth": 24,
"pixelHeight": 24,
"bytes": 1896
},
"exportViewBox": {
"minX": 0,
"minY": 0,
"width": 24,
"height": 24
},
"sha256": "2100697fb9232b99c3ff687e0b8b8231869f8cbe0516ad848939823b0fcfd27c",
"derived": false,
"containsText": false,
"containsControls": false,
"containsDynamicBusinessMedia": false
},
{
"filename": "side-rewards.svg",
"sourceNode": "918:8939",
"use": "Ranking-rewards icon inside the live DOM action button.",
"kind": "single-decorative-icon",
"scope": "runtime",
"renderedDesignSize": { "width": 24, "height": 24 },
"file": {
"format": "svg",
"pixelWidth": 24,
"pixelHeight": 24,
"bytes": 6265
},
"exportViewBox": {
"minX": 0,
"minY": 0,
"width": 24,
"height": 24
},
"sha256": "734c29bf9b58ff7d6d400191e10b77f30b6578c7f3519ac47dbca08f84343dd8",
"derived": false,
"containsText": false,
"containsControls": false,
"containsDynamicBusinessMedia": false
},
{
"filename": "stage-background.jpg",
"sourceNode": "918:7830",
"use": "Pure red-and-gold event-stage background beneath all live sections.",
"kind": "single-decorative-background",
"scope": "runtime",
"renderedDesignSize": { "width": 375, "height": 667 },
"file": {
"format": "jpeg",
"pixelWidth": 750,
"pixelHeight": 1333,
"bytes": 223745
},
"sha256": "c70f7d4b377894e84781dc4dff7520c7dd21aa6acf28c53f506d05029bcaff29",
"derived": false,
"containsText": false,
"containsControls": false,
"containsDynamicBusinessMedia": false
},
{
"filename": "task-panel.png",
"sourceNode": "918:7908",
"use": "Pure task-panel background behind three separately rendered DOM task cards.",
"kind": "single-decorative-background",
"scope": "runtime",
"renderedDesignSize": { "width": 375, "height": 996 },
"file": {
"format": "png",
"pixelWidth": 375,
"pixelHeight": 996,
"bytes": 191882
},
"sha256": "4d6331d2450be1e917c143c84e429aa51e75c7dd8ec4b3cfe1421d22c9413b1c",
"derived": false,
"containsText": false,
"containsControls": false,
"containsDynamicBusinessMedia": false
},
{
"filename": "task-reward-frame.png",
"sourceNode": "918:8707",
"use": "Task reward-item surround; icon, reward name and quantity remain live API content.",
"kind": "single-decorative-frame",
"scope": "runtime",
"renderedDesignSize": { "width": 79, "height": 80 },
"file": {
"format": "png",
"pixelWidth": 158,
"pixelHeight": 160,
"bytes": 29047
},
"sha256": "7e7c828e2eef258b6762fa5e0876a8a35731213de976909e29dc729ad856c232",
"derived": false,
"containsText": false,
"containsControls": false,
"containsDynamicBusinessMedia": false
}
]
}