{
  "durationSeconds": 26,
  "format": "Canvas 2D runtime / layered PNG + sprite-sheet animation",
  "svg": false,
  "runtime": "ending.js",
  "music": {
    "file": "music/win.mp3",
    "title": "按下開始",
    "startOffsetSeconds": 16,
    "volume": 0.2975
  },
  "shots": [
    {
      "start": 0,
      "end": 3,
      "name": "最後的炮聲",
      "layers": [
        "current gameplay scene"
      ],
      "motion": "微幅推近玩家，保留最後倒地效果。"
    },
    {
      "start": 3,
      "end": 11,
      "name": "閘門開啟",
      "layers": [
        "exit-scene",
        "gate-left",
        "gate-right",
        "hero"
      ],
      "motion": "門扇於 4 至 6.6 秒向兩側分開；人物於 5.8 至 10.6 秒向出口行走。",
      "sprite": {
        "sheet": "hero",
        "rows": 4,
        "columns": 4,
        "directionRow": 3,
        "frames": [
          0,
          1,
          2,
          3
        ],
        "fps": 6
      }
    },
    {
      "start": 11,
      "end": 21,
      "name": "返鄉列車",
      "layers": [
        "home-landscape",
        "train-window"
      ],
      "motion": "風景側向移動，窗框位於前景，輕微車身晃動。"
    },
    {
      "start": 21,
      "end": 26,
      "name": "回家的路",
      "layers": [
        "home-landscape"
      ],
      "motion": "向村落緩慢推近，最後 1.2 秒淡出。"
    }
  ],
  "accessibility": "尊重 prefers-reduced-motion，減少推鏡與車身晃動；可以略過、重播與在檢視頁手動拖曳。",
  "assets": [
    {
      "name": "hero",
      "file": "assets/hero.png",
      "width": 512,
      "height": 512,
      "format": "PNG",
      "mode": "RGBA",
      "bytes": 104507,
      "sha256": "d0cba7a5e1b44d6c0b619326153547c2e7055d214cd0a5813a0fb6d70c83317c",
      "source": "Existing game PNG reused",
      "prompt": null
    },
    {
      "name": "exit-scene",
      "file": "assets/exit-scene.png",
      "width": 1672,
      "height": 941,
      "format": "PNG",
      "mode": "RGB",
      "bytes": 3069441,
      "sha256": "f557d3febd9c4f1a7c33cfc05ab03a1c7d603fb90273053b95e6c90a7f6d858f",
      "source": "image_gen generated this revision",
      "prompt": "raw/exit-scene.prompt.txt"
    },
    {
      "name": "gate-left",
      "file": "assets/gate-left.png",
      "width": 416,
      "height": 1000,
      "format": "PNG",
      "mode": "RGBA",
      "bytes": 763396,
      "sha256": "75ab02213592cc389841d9f54953337e741c763e7ffefec017e50581c6764452",
      "source": "image_gen generated this revision",
      "prompt": "raw/gate-leaves.prompt.txt"
    },
    {
      "name": "gate-right",
      "file": "assets/gate-right.png",
      "width": 416,
      "height": 1000,
      "format": "PNG",
      "mode": "RGBA",
      "bytes": 756856,
      "sha256": "618f37978871a6d0767eeaa19a3418d6f5d21f6ddc3debbd1b9d26f26b255ee0",
      "source": "image_gen generated this revision",
      "prompt": "raw/gate-leaves.prompt.txt"
    },
    {
      "name": "train-window",
      "file": "assets/train-window.png",
      "width": 1400,
      "height": 788,
      "format": "PNG",
      "mode": "RGBA",
      "bytes": 1280816,
      "sha256": "d7ef74cddd1698d40fc7c82f9c059f4acd6f32a954b35a297566f8ce6155e8ca",
      "source": "image_gen generated this revision",
      "prompt": "raw/train-window.prompt.txt"
    },
    {
      "name": "home-landscape",
      "file": "assets/home-landscape.png",
      "width": 1672,
      "height": 941,
      "format": "PNG",
      "mode": "RGB",
      "bytes": 2931645,
      "sha256": "40ebfeda41456d901a3a7a598da26c197873ddf63d6dd9c58f81fe20289b92ee",
      "source": "image_gen generated this revision",
      "prompt": "raw/home-landscape.prompt.txt"
    }
  ]
}