{
  "version": "3.0-portal-candidate",
  "sourceVersion": "2.2",
  "generated": "2026-10-15",
  "preservation": "Source art was only cropped or converted, not redrawn. Alpha preserved losslessly for standalone character WebP. Original transparent PNG bytes included.",
  "statusLegend": {
    "confirmed-style-reference": "Approved M01 drawing/style reference only",
    "historical-layout-reference": "Retained historical narrative reference with excluded cats/logos",
    "candidate": "Proposed visual asset; not automatically promoted to approved master"
  },
  "files": [
    {
      "file": "day.webp",
      "source": "VI_V2.2/design/atmosphere/C06-day-night-candidate.png",
      "status": "candidate",
      "operation": "crop 0,0,960,819; WebP quality92",
      "bytes": 264266,
      "sha256": "f326e4bc4d2872796f06c52cfb5d64ee3e7051d4a7446b71a3b4fa6505a08e0c",
      "width": 960,
      "height": 819,
      "alpha": false,
      "notes": "Day atmosphere candidate. Not an exact HEX swatch or character master.",
      "path": "assets/day.webp",
      "url": "./assets/day.webp",
      "assetIds": [
        "C06"
      ]
    },
    {
      "file": "night.webp",
      "source": "VI_V2.2/design/atmosphere/C06-day-night-candidate.png",
      "status": "candidate",
      "operation": "crop 960,0,1920,819; WebP quality92",
      "bytes": 270254,
      "sha256": "bbce1c62e33d57bc34ec49203b2297edef8a8220185f15f4da119c5490fe4653",
      "width": 960,
      "height": 819,
      "alpha": false,
      "notes": "Night atmosphere candidate; pose and book state differ from day view; not animation keyframes.",
      "path": "assets/night.webp",
      "url": "./assets/night.webp",
      "assetIds": [
        "C06"
      ]
    },
    {
      "file": "ambience.webp",
      "source": "/workspace/scratch/aceb109f0580/vi_v22/atmosphere.png",
      "status": "candidate",
      "operation": "WebP quality92",
      "bytes": 533028,
      "sha256": "87e07bc35c8a90aead72f498d2a61bc12a308a18ac30c59eca01d5f7cd598e86",
      "width": 1920,
      "height": 819,
      "alpha": false,
      "notes": "Full paired day/night atmosphere candidate.",
      "path": "assets/ambience.webp",
      "url": "./assets/ambience.webp",
      "assetIds": [
        "C06"
      ]
    },
    {
      "file": "character-front.webp",
      "source": "VI_V2.2/characters/C03-neutral-front.png",
      "status": "candidate",
      "operation": "lossless WebP",
      "bytes": 1210414,
      "sha256": "1eda34470c1b3e3f1cd8e7e899d7d0450dd0b881b2d52fca0baa233ba5c95550",
      "width": 1024,
      "height": 1536,
      "alpha": true,
      "notes": "Original proportions and alpha preserved; candidate, not an approved orthographic master.",
      "path": "assets/character-front.webp",
      "url": "./assets/character-front.webp",
      "assetIds": [
        "C03"
      ]
    },
    {
      "file": "originals/C03-neutral-front.png",
      "source": "VI_V2.2/characters/C03-neutral-front.png",
      "status": "candidate",
      "operation": "copy",
      "bytes": 2275587,
      "sha256": "9ffbfb7088e4e082c9dc393ba339cc8d120a421f18321b5486bd242b77530c38",
      "width": 1024,
      "height": 1536,
      "alpha": true,
      "notes": "Original PNG bytes retained.",
      "path": "assets/originals/C03-neutral-front.png",
      "url": "./assets/originals/C03-neutral-front.png",
      "assetIds": [
        "C03"
      ]
    },
    {
      "file": "character-explain.webp",
      "source": "VI_V2.2/characters/C04-explain-left.png",
      "status": "candidate",
      "operation": "lossless WebP",
      "bytes": 1154494,
      "sha256": "8c2d63adb68c84193215ea28f41fe4238ab64478b065e68f296ee870c9923a59",
      "width": 1151,
      "height": 1366,
      "alpha": true,
      "notes": "Original proportions and alpha preserved; candidate, not an approved orthographic master.",
      "path": "assets/character-explain.webp",
      "url": "./assets/character-explain.webp",
      "assetIds": [
        "C04"
      ]
    },
    {
      "file": "originals/C04-explain-left.png",
      "source": "VI_V2.2/characters/C04-explain-left.png",
      "status": "candidate",
      "operation": "copy",
      "bytes": 1737274,
      "sha256": "3005ebe6e819ac9e140b6ce4929e55f911e2648e8651b7bbf715efd7c64c8bbd",
      "width": 1151,
      "height": 1366,
      "alpha": true,
      "notes": "Original PNG bytes retained.",
      "path": "assets/originals/C04-explain-left.png",
      "url": "./assets/originals/C04-explain-left.png",
      "assetIds": [
        "C04"
      ]
    },
    {
      "file": "character-invite.webp",
      "source": "VI_V2.2/characters/C05-invite-seated.png",
      "status": "candidate",
      "operation": "lossless WebP",
      "bytes": 1327156,
      "sha256": "e49ed97fa7020014730a505b5bf9455094b6b1177c1ff00791ea0826d5be9a5a",
      "width": 1024,
      "height": 1536,
      "alpha": true,
      "notes": "Original proportions and alpha preserved; candidate, not an approved orthographic master.",
      "path": "assets/character-invite.webp",
      "url": "./assets/character-invite.webp",
      "assetIds": [
        "C05"
      ]
    },
    {
      "file": "originals/C05-invite-seated.png",
      "source": "VI_V2.2/characters/C05-invite-seated.png",
      "status": "candidate",
      "operation": "copy",
      "bytes": 2416621,
      "sha256": "3a201671fc95df372a14dbc0102db2693da4093a2ed07ada9b225ff1f85de1df",
      "width": 1024,
      "height": 1536,
      "alpha": true,
      "notes": "Original PNG bytes retained.",
      "path": "assets/originals/C05-invite-seated.png",
      "url": "./assets/originals/C05-invite-seated.png",
      "assetIds": [
        "C05"
      ]
    },
    {
      "file": "master-reference.webp",
      "source": "VI_V2.2/references/M01-style-master.png",
      "status": "confirmed-style-reference",
      "operation": "WebP quality92",
      "bytes": 395580,
      "sha256": "85b6908eecd161aeaece6b8f5086818e0915dc91cbb6ddb62f0ae932e50b9af2",
      "width": 1086,
      "height": 1448,
      "alpha": false,
      "notes": "Approved character drawing/style reference. Does not automatically approve every incidental prop or other character.",
      "path": "assets/master-reference.webp",
      "url": "./assets/master-reference.webp",
      "assetIds": [
        "M01"
      ]
    },
    {
      "file": "story-reference.webp",
      "source": "VI_V2.2/references/M02-comic-layout.png",
      "status": "historical-layout-reference",
      "operation": "WebP quality92",
      "bytes": 418032,
      "sha256": "17ee1d8a43aa08d67d80db9a390e4c406e4c76348431c4167b170c94582cb533",
      "width": 1086,
      "height": 1448,
      "alpha": false,
      "notes": "Historical narrative layout reference. Generated cats and logos are not authoritative or current character standards.",
      "path": "assets/story-reference.webp",
      "url": "./assets/story-reference.webp",
      "assetIds": [
        "M02"
      ]
    },
    {
      "file": "character-views.webp",
      "source": "VI_V2.2/boards/05.png",
      "status": "candidate",
      "operation": "crop 35,154,1769,741; WebP quality92",
      "bytes": 195646,
      "sha256": "8692ec2e24894be797f8cc44fb7557fcdd885fa7eda39b25d00395ec8ba8815d",
      "width": 1734,
      "height": 587,
      "alpha": false,
      "notes": "Candidate front, opposite three-quarter, and back views. Do not treat as true 90-degree side masters.",
      "path": "assets/character-views.webp",
      "url": "./assets/character-views.webp",
      "assetIds": [
        "C01"
      ]
    },
    {
      "file": "wardrobe.webp",
      "source": "VI_V2.2/boards/15.png",
      "status": "candidate",
      "operation": "crop 410,212,1370,700; WebP quality92",
      "bytes": 110860,
      "sha256": "3a3aa090e066e2c90842baf00a156c28e4212f1d9de8de7758427bba29e889b2",
      "width": 960,
      "height": 488,
      "alpha": false,
      "notes": "Candidate work, tennis, fitness wardrobe. Different proportions; cannot measure head/body ratio from this crop.",
      "path": "assets/wardrobe.webp",
      "url": "./assets/wardrobe.webp",
      "assetIds": [
        "C01"
      ]
    },
    {
      "file": "expression-0.webp",
      "source": "VI_V2.2/boards/17.png",
      "status": "candidate",
      "operation": "crop 280,237,485,461; WebP quality92",
      "bytes": 18204,
      "sha256": "a54df7260b4c6a752c7cf10afb77d5ed0b2122ed3644f153730b6cefc4a7c7a0",
      "width": 205,
      "height": 224,
      "alpha": false,
      "notes": "自然; candidate expression, differences remain subject to review.",
      "path": "assets/expression-0.webp",
      "url": "./assets/expression-0.webp",
      "assetIds": [
        "C02"
      ]
    },
    {
      "file": "expression-1.webp",
      "source": "VI_V2.2/boards/17.png",
      "status": "candidate",
      "operation": "crop 485,237,690,461; WebP quality92",
      "bytes": 18608,
      "sha256": "1121bc59a707f783255672b8a9c756469f4256c5e08ba1e2990efb3dccb44f8b",
      "width": 205,
      "height": 224,
      "alpha": false,
      "notes": "专注; candidate expression, differences remain subject to review.",
      "path": "assets/expression-1.webp",
      "url": "./assets/expression-1.webp",
      "assetIds": [
        "C02"
      ]
    },
    {
      "file": "expression-2.webp",
      "source": "VI_V2.2/boards/17.png",
      "status": "candidate",
      "operation": "crop 690,237,895,461; WebP quality92",
      "bytes": 17896,
      "sha256": "b30c6900ed92c0711fb6cc91bd613dc142ae0c6df2992d136b660f32ab55e483",
      "width": 205,
      "height": 224,
      "alpha": false,
      "notes": "疑惑; candidate expression, differences remain subject to review.",
      "path": "assets/expression-2.webp",
      "url": "./assets/expression-2.webp",
      "assetIds": [
        "C02"
      ]
    },
    {
      "file": "expression-3.webp",
      "source": "VI_V2.2/boards/17.png",
      "status": "candidate",
      "operation": "crop 895,237,1100,461; WebP quality92",
      "bytes": 17342,
      "sha256": "54347e559d00c80627b330f8f8712d89823d05dada336ac247b9254819e33bfb",
      "width": 205,
      "height": 224,
      "alpha": false,
      "notes": "无语; candidate expression, differences remain subject to review.",
      "path": "assets/expression-3.webp",
      "url": "./assets/expression-3.webp",
      "assetIds": [
        "C02"
      ]
    },
    {
      "file": "expression-4.webp",
      "source": "VI_V2.2/boards/17.png",
      "status": "candidate",
      "operation": "crop 1100,237,1305,461; WebP quality92",
      "bytes": 17740,
      "sha256": "f39149d8ce52b891e1e89b38ca7874cb3ec279ccd049210158335d4f5cc99a02",
      "width": 205,
      "height": 224,
      "alpha": false,
      "notes": "惊讶; candidate expression, differences remain subject to review.",
      "path": "assets/expression-4.webp",
      "url": "./assets/expression-4.webp",
      "assetIds": [
        "C02"
      ]
    },
    {
      "file": "expression-5.webp",
      "source": "VI_V2.2/boards/17.png",
      "status": "candidate",
      "operation": "crop 1305,237,1510,461; WebP quality92",
      "bytes": 17922,
      "sha256": "bd0f6561203ad2ea61943f53b4cb91b1ab1e4b39a8a4ab78b2202609a04bf166",
      "width": 205,
      "height": 224,
      "alpha": false,
      "notes": "微笑; candidate expression, differences remain subject to review.",
      "path": "assets/expression-5.webp",
      "url": "./assets/expression-5.webp",
      "assetIds": [
        "C02"
      ]
    },
    {
      "file": "template-cover.webp",
      "source": "VI_V2.2/design/templates/cover-1080x1440.png",
      "status": "candidate",
      "operation": "WebP quality92",
      "bytes": 115252,
      "sha256": "c321dc246d08353844e5fb6049efab8ab62c07793e03b20cf937e5fdb51277f7",
      "width": 1080,
      "height": 1440,
      "alpha": false,
      "notes": "3:4 application design candidate; content and phone-size readability require final review.",
      "path": "assets/template-cover.webp",
      "url": "./assets/template-cover.webp",
      "assetIds": []
    },
    {
      "file": "template-cover.svg",
      "source": "VI_V2.2/design/templates/cover-1080x1440.svg",
      "status": "candidate",
      "operation": "copy",
      "bytes": 4546919,
      "sha256": "4bb426a7d47f50707aacd519b9648cde20b29d2fa40e70d9e26a82e05edb7985",
      "notes": "Editable SVG source; check font availability and line breaks before export.",
      "path": "assets/template-cover.svg",
      "url": "./assets/template-cover.svg",
      "assetIds": []
    },
    {
      "file": "template-tutorial.webp",
      "source": "VI_V2.2/design/templates/tutorial-1080x1440.png",
      "status": "candidate",
      "operation": "WebP quality92",
      "bytes": 84482,
      "sha256": "3070ea73225f1aadd1eb441b23f5b1d056f44dcc122d8ecadcd993ebd84474e0",
      "width": 1080,
      "height": 1440,
      "alpha": false,
      "notes": "3:4 application design candidate; content and phone-size readability require final review.",
      "path": "assets/template-tutorial.webp",
      "url": "./assets/template-tutorial.webp",
      "assetIds": []
    },
    {
      "file": "template-tutorial.svg",
      "source": "VI_V2.2/design/templates/tutorial-1080x1440.svg",
      "status": "candidate",
      "operation": "copy",
      "bytes": 4370,
      "sha256": "01a7c2a8f3496f73ecfe5b4597033a9dac36b7737f674f7644eb2051c50ecf07",
      "notes": "Editable SVG source; check font availability and line breaks before export.",
      "path": "assets/template-tutorial.svg",
      "url": "./assets/template-tutorial.svg",
      "assetIds": []
    },
    {
      "file": "template-comic.webp",
      "source": "VI_V2.2/design/templates/comic-1080x1440.png",
      "status": "candidate",
      "operation": "WebP quality92",
      "bytes": 334124,
      "sha256": "5f7467bf7bccb43cf4a02b3d501360520c7fbd401b14b4fc0f00f084fd6746a4",
      "width": 1080,
      "height": 1440,
      "alpha": false,
      "notes": "3:4 application design candidate; comic retains historical layout and is not a publish-ready new story.",
      "path": "assets/template-comic.webp",
      "url": "./assets/template-comic.webp",
      "assetIds": []
    },
    {
      "file": "template-comic.svg",
      "source": "VI_V2.2/design/templates/comic-1080x1440.svg",
      "status": "candidate",
      "operation": "copy",
      "bytes": 3460529,
      "sha256": "8401014e1c4d4a26956ba2dcee1d2c0cd19be67bbde66eb73840e598cd2690f8",
      "notes": "Editable SVG source; check font availability and line breaks before export.",
      "path": "assets/template-comic.svg",
      "url": "./assets/template-comic.svg",
      "assetIds": []
    },
    {
      "file": "template-invite.webp",
      "source": "VI_V2.2/design/templates/invite-1080x1440.png",
      "status": "candidate",
      "operation": "WebP quality92",
      "bytes": 90798,
      "sha256": "36714f471384752b36a05a04737b013ac01b4346d4fbb1d6a1461a38d2a5bf29",
      "width": 1080,
      "height": 1440,
      "alpha": false,
      "notes": "3:4 application design candidate; content and phone-size readability require final review.",
      "path": "assets/template-invite.webp",
      "url": "./assets/template-invite.webp",
      "assetIds": []
    },
    {
      "file": "template-invite.svg",
      "source": "VI_V2.2/design/templates/invite-1080x1440.svg",
      "status": "candidate",
      "operation": "copy",
      "bytes": 3220466,
      "sha256": "c703ccad5eef4e53bdcecdd347351da2d091e662eea33fc55ca978c2b611b606",
      "notes": "Editable SVG source; check font availability and line breaks before export.",
      "path": "assets/template-invite.svg",
      "url": "./assets/template-invite.svg",
      "assetIds": []
    },
    {
      "file": "icons/book.svg",
      "source": "VI_V2.2/design/icons/book.svg",
      "status": "candidate",
      "operation": "copy",
      "bytes": 399,
      "sha256": "1bcc6fbf53a5f53ff17020b698fd83e3420a717e9a9efea93d1a0537cf78c47f",
      "path": "assets/icons/book.svg",
      "url": "./assets/icons/book.svg",
      "assetIds": []
    },
    {
      "file": "icons/contact.svg",
      "source": "VI_V2.2/design/icons/contact.svg",
      "status": "candidate",
      "operation": "copy",
      "bytes": 349,
      "sha256": "fa0953ccc42fa670be3f3a057ad60a67e0981821abb7c8f3ec54744a56224aac",
      "path": "assets/icons/contact.svg",
      "url": "./assets/icons/contact.svg",
      "assetIds": []
    },
    {
      "file": "icons/download.svg",
      "source": "VI_V2.2/design/icons/download.svg",
      "status": "candidate",
      "operation": "copy",
      "bytes": 369,
      "sha256": "c6d159a9226c8c5b0e9e5234737e5a5726c3c865291cc33ff17dccdaf5d9856f",
      "path": "assets/icons/download.svg",
      "url": "./assets/icons/download.svg",
      "assetIds": []
    },
    {
      "file": "icons/home.svg",
      "source": "VI_V2.2/design/icons/home.svg",
      "status": "candidate",
      "operation": "copy",
      "bytes": 382,
      "sha256": "7a5b4af361c2c400f39cd3b2a8e7bac6cd307183c63d7830dcb5cd721de9ae50",
      "path": "assets/icons/home.svg",
      "url": "./assets/icons/home.svg",
      "assetIds": []
    },
    {
      "file": "icons/play.svg",
      "source": "VI_V2.2/design/icons/play.svg",
      "status": "candidate",
      "operation": "copy",
      "bytes": 343,
      "sha256": "5910ab5384e138e110a9a02078a7b13f0132862555b2f3c3a7f834aceb761e0f",
      "path": "assets/icons/play.svg",
      "url": "./assets/icons/play.svg",
      "assetIds": []
    },
    {
      "file": "icons/projects.svg",
      "source": "VI_V2.2/design/icons/projects.svg",
      "status": "candidate",
      "operation": "copy",
      "bytes": 490,
      "sha256": "9b0f48782da85dcb4f16162c1a09147f2bec8361b23f08eaa4d7d0b7c1c1ffaa",
      "path": "assets/icons/projects.svg",
      "url": "./assets/icons/projects.svg",
      "assetIds": []
    },
    {
      "file": "icons/search.svg",
      "source": "VI_V2.2/design/icons/search.svg",
      "status": "candidate",
      "operation": "copy",
      "bytes": 341,
      "sha256": "773fb925038a4bb67e1a46a06b62f823884ef54a0674c451368788abe73bc017",
      "path": "assets/icons/search.svg",
      "url": "./assets/icons/search.svg",
      "assetIds": []
    },
    {
      "file": "icons/settings.svg",
      "source": "VI_V2.2/design/icons/settings.svg",
      "status": "candidate",
      "operation": "copy",
      "bytes": 502,
      "sha256": "f133f22b7d49a9a35f46c0e62317705adc70ffd64cdfed2a2094818d0ddef36d",
      "path": "assets/icons/settings.svg",
      "url": "./assets/icons/settings.svg",
      "assetIds": []
    },
    {
      "file": "originals/M01-style-master.png",
      "source": "VI_V2.2/references/M01-style-master.png",
      "status": "confirmed-style-reference",
      "operation": "Original PNG bytes unchanged",
      "bytes": 3408368,
      "sha256": "827b3a319470d842409b8c57ef8517f36805299756296d2cba317dd2eea1a65f",
      "width": 1086,
      "height": 1448,
      "alpha": true,
      "path": "assets/originals/M01-style-master.png",
      "url": "./assets/originals/M01-style-master.png",
      "notes": "Scope remains limited to the reference uses listed in brand-system.json.",
      "assetIds": [
        "M01"
      ]
    },
    {
      "file": "originals/M02-comic-layout.png",
      "source": "VI_V2.2/references/M02-comic-layout.png",
      "status": "historical-layout-reference",
      "operation": "Original PNG bytes unchanged",
      "bytes": 2594304,
      "sha256": "44a97da7ddf5a46ea077be007b6033c35f170052aa928cef411986453bccbe3d",
      "width": 1086,
      "height": 1448,
      "alpha": false,
      "path": "assets/originals/M02-comic-layout.png",
      "url": "./assets/originals/M02-comic-layout.png",
      "notes": "Scope remains limited to the reference uses listed in brand-system.json.",
      "assetIds": [
        "M02"
      ]
    }
  ],
  "additionalData": [
    {
      "file": "../data/tokens.json",
      "source": "/workspace/scratch/aceb109f0580/vi_v23/unpacked/Jessy_Visual_Identity_V2.2/design/tokens.json",
      "bytes": 15441,
      "status": "candidate-rules-with-confirmed-base-colors-retained",
      "path": "data/tokens.json",
      "url": "./data/tokens.json"
    }
  ],
  "assetGroups": {
    "M01": {
      "primary": "assets/originals/M01-style-master.png",
      "preview": "assets/master-reference.webp",
      "status": "confirmed-style-reference",
      "scope": "人物与画法，不含旧猫、品牌道具规范"
    },
    "M02": {
      "primary": "assets/originals/M02-comic-layout.png",
      "preview": "assets/story-reference.webp",
      "status": "historical-layout-reference",
      "scope": "历史叙事与分镜，不作为猫咪与产品外观母版"
    },
    "C01": {
      "views": "assets/character-views.webp",
      "wardrobe": "assets/wardrobe.webp",
      "status": "candidate",
      "scope": "视角与服装候选，不是真90度侧视母版"
    },
    "C02": {
      "expressions": [
        "assets/expression-0.webp",
        "assets/expression-1.webp",
        "assets/expression-2.webp",
        "assets/expression-3.webp",
        "assets/expression-4.webp",
        "assets/expression-5.webp"
      ],
      "poses": [
        "C03",
        "C04",
        "C05"
      ],
      "status": "candidate"
    },
    "C03": {
      "primary": "assets/originals/C03-neutral-front.png",
      "preview": "assets/character-front.webp",
      "status": "candidate"
    },
    "C04": {
      "primary": "assets/originals/C04-explain-left.png",
      "preview": "assets/character-explain.webp",
      "status": "candidate"
    },
    "C05": {
      "primary": "assets/originals/C05-invite-seated.png",
      "preview": "assets/character-invite.webp",
      "status": "candidate"
    },
    "C06": {
      "day": "assets/day.webp",
      "night": "assets/night.webp",
      "full": "assets/ambience.webp",
      "status": "candidate"
    },
    "A01": {
      "available": false,
      "status": "historical-reference",
      "notes": "历史网站探索未收入本门户；不能用C06自动替代其历史确认记录。"
    },
    "H01": {
      "available": false,
      "status": "historical-reference",
      "notes": "旧角色合集未收入本门户，避免其被误作主参考。"
    }
  }
}