{
  "appVersion": "0.7.2",
  "title": "末班车 制片教学案例",
  "author": "剧本工坊原创教学",
  "language": "zh-CN",
  "formatId": "hollywood",
  "fontFamily": "Courier Prime",
  "fontSize": 12,
  "pageSize": "letter",
  "elements": [
    {
      "id": "s1",
      "type": "scene",
      "text": "内景 便利店 - 夜"
    },
    {
      "id": "a1",
      "type": "action",
      "text": "暴雨敲打玻璃。便利店只开着一排灯。林夏把背包抵在柜台边，一只手攥着末班车票，另一只手不停擦手机屏幕。"
    },
    {
      "id": "a2",
      "type": "action",
      "text": "屏幕上是一条没有发送的消息：“我今晚走。”收件人是母亲。她删掉“今晚”，又把整句话删掉。"
    },
    {
      "id": "a3",
      "type": "action",
      "text": "阿城从门外进来，裤脚滴水。他把一封旧信放在车票旁。信封上的“林夏收”被反复描过。"
    },
    {
      "id": "c1",
      "type": "character",
      "text": "林夏"
    },
    {
      "id": "d1",
      "type": "dialogue",
      "text": "她让你来的？"
    },
    {
      "id": "c2",
      "type": "character",
      "text": "阿城"
    },
    {
      "id": "d2",
      "type": "dialogue",
      "text": "信一直在她抽屉里。搬柜子才找到。"
    },
    {
      "id": "a4",
      "type": "action",
      "text": "林夏把信推回去。阿城没有接。"
    },
    {
      "id": "c3",
      "type": "character",
      "text": "林夏"
    },
    {
      "id": "d3",
      "type": "dialogue",
      "text": "那就放回去。"
    },
    {
      "id": "a5",
      "type": "action",
      "text": "门外亮起车灯。林夏抓起背包，信封被背带扫落在地。她停了一下，弯腰拾起，却没有拆。"
    },
    {
      "id": "s2",
      "type": "scene",
      "text": "外景 便利店门口 - 夜"
    },
    {
      "id": "a6",
      "type": "action",
      "text": "车门打开。雨水顺着雨棚边沿落下。林夏站在雨棚下，把车票伸出，又缩回袖口。阿城跟出来，隔着一步站住。"
    },
    {
      "id": "c4",
      "type": "character",
      "text": "阿城"
    },
    {
      "id": "d4",
      "type": "dialogue",
      "text": "拆不拆，都不用回她。"
    },
    {
      "id": "c5",
      "type": "character",
      "text": "林夏"
    },
    {
      "id": "d5",
      "type": "dialogue",
      "text": "你倒替她想好了。"
    },
    {
      "id": "a7",
      "type": "action",
      "text": "司机按了一声喇叭。林夏走到车门前，发现信封沾着的水已经洇进字里。她用掌心盖住名字。"
    },
    {
      "id": "c6",
      "type": "character",
      "text": "林夏"
    },
    {
      "id": "p1",
      "type": "parenthetical",
      "text": "（没有回头）"
    },
    {
      "id": "d6",
      "type": "dialogue",
      "text": "那年她为什么没寄？"
    },
    {
      "id": "c7",
      "type": "character",
      "text": "阿城"
    },
    {
      "id": "d7",
      "type": "dialogue",
      "text": "我没问。"
    },
    {
      "id": "a8",
      "type": "action",
      "text": "车门发出提示音。林夏退回雨棚，朝司机抬了抬手。车门合上。车灯掠过两人，驶入雨幕。"
    },
    {
      "id": "s3",
      "type": "scene",
      "text": "内景 便利店 - 夜"
    },
    {
      "id": "a9",
      "type": "action",
      "text": "林夏重新把背包放上柜台。阿城取来纸巾，只放在她手边。他转过身，拧干自己的袖口。"
    },
    {
      "id": "a10",
      "type": "action",
      "text": "林夏沿着信封已经开胶的一角，慢慢把信抽出来。里面夹着一张旧车票。她把两张票并排放好：同一个终点，相差十年。"
    },
    {
      "id": "c8",
      "type": "character",
      "text": "林夏"
    },
    {
      "id": "d8",
      "type": "dialogue",
      "text": "她也去过？"
    },
    {
      "id": "c9",
      "type": "character",
      "text": "阿城"
    },
    {
      "id": "d9",
      "type": "dialogue",
      "text": "你问她。"
    },
    {
      "id": "a11",
      "type": "action",
      "text": "林夏看着信。字很少。她的拇指在一处水痕上停住，移开，把信折回原来的折痕。"
    },
    {
      "id": "c10",
      "type": "character",
      "text": "林夏"
    },
    {
      "id": "d10",
      "type": "dialogue",
      "text": "你是不是还得回去送柜子？"
    },
    {
      "id": "a12",
      "type": "action",
      "text": "阿城点头，把湿外套重新穿上。他等着，没有催。"
    },
    {
      "id": "s4",
      "type": "scene",
      "text": "外景 便利店门口 - 夜"
    },
    {
      "id": "a13",
      "type": "action",
      "text": "雨小了。阿城撑开一把伞。林夏把新车票折进信封，将信封放进背包内袋，拉好拉链。"
    },
    {
      "id": "c11",
      "type": "character",
      "text": "林夏"
    },
    {
      "id": "d11",
      "type": "dialogue",
      "text": "我只帮你搬到门口。"
    },
    {
      "id": "c12",
      "type": "character",
      "text": "阿城"
    },
    {
      "id": "d12",
      "type": "dialogue",
      "text": "行。"
    },
    {
      "id": "a14",
      "type": "action",
      "text": "两人走进与公交车相反方向的巷子。便利店的灯在身后灭掉。"
    }
  ],
  "titlePage": {
    "enabled": true,
    "title": "末班车 课程完成稿",
    "credit": "原创教学剧本",
    "authors": "剧本工坊教学中心",
    "basedOn": "",
    "draftDate": "2026-10-15",
    "contact": "",
    "copyright": ""
  },
  "exportSettings": {
    "profileId": "us-spec",
    "includeTitlePage": true,
    "moreContinued": true,
    "sceneNumbers": false,
    "lockedPageLabels": false,
    "headerText": "",
    "footerText": ""
  },
  "reviewNotes": [],
  "writingTools": {
    "projectId": "academy-last-bus-末班车 课程完成稿",
    "aliases": [],
    "tasks": [],
    "cuttings": [],
    "continuity": [],
    "storyLinks": [],
    "reviewImports": []
  },
  "production": {
    "schemaVersion": 2,
    "syncedAt": "2026-10-15T09:42:45.921Z",
    "scriptFingerprint": "1gvtks5",
    "sceneFingerprints": {
      "s1": "1jph1y2",
      "s2": "8qjvwc",
      "s3": "1nsjg4z",
      "s4": "b11miq"
    },
    "scenes": [
      {
        "sceneId": "s1",
        "number": "1",
        "heading": "内景 便利店 - 夜",
        "locationName": "便利店",
        "timeOfDay": "night",
        "interiorExterior": "int",
        "pageEighths": 3,
        "shootDayId": "day-1",
        "status": "review",
        "notes": "信封尚未拆；车票未折；阿城衣袖湿。",
        "tagIds": [
          "tag-1lgxcwi",
          "tag-qd5lh9",
          "academy-s1-0",
          "academy-s1-1",
          "academy-s1-2",
          "academy-s1-3",
          "wardrobe-s1"
        ]
      },
      {
        "sceneId": "s2",
        "number": "2",
        "heading": "外景 便利店门口 - 夜",
        "locationName": "便利店门口",
        "timeOfDay": "night",
        "interiorExterior": "ext",
        "pageEighths": 3,
        "shootDayId": "day-1",
        "status": "review",
        "notes": "信封一角洇湿；林夏暂未拆信。",
        "tagIds": [
          "tag-11mjbts",
          "tag-n8vbej",
          "academy-s2-0",
          "academy-s2-1",
          "wardrobe-s2",
          "bus-s2"
        ]
      },
      {
        "sceneId": "s3",
        "number": "3",
        "heading": "内景 便利店 - 夜",
        "locationName": "便利店",
        "timeOfDay": "night",
        "interiorExterior": "int",
        "pageEighths": 3,
        "shootDayId": "day-1",
        "status": "review",
        "notes": "信已拆；旧车票第一次出现；折痕须一致。",
        "tagIds": [
          "tag-17c8pak",
          "tag-163rdt3",
          "academy-s3-0",
          "academy-s3-1",
          "academy-s3-2",
          "academy-s3-3",
          "academy-s3-4",
          "wardrobe-s3"
        ]
      },
      {
        "sceneId": "s4",
        "number": "4",
        "heading": "外景 便利店门口 - 夜",
        "locationName": "便利店门口",
        "timeOfDay": "night",
        "interiorExterior": "ext",
        "pageEighths": 2,
        "shootDayId": "day-1",
        "status": "review",
        "notes": "雨势减弱；两张票在背包内袋；外套仍湿。",
        "tagIds": [
          "tag-j1hgp1",
          "tag-1azzvga",
          "academy-s4-0",
          "academy-s4-1",
          "academy-s4-2",
          "academy-s4-3",
          "academy-s4-4",
          "wardrobe-s4"
        ]
      }
    ],
    "tags": [
      {
        "id": "tag-1lgxcwi",
        "sceneId": "s1",
        "category": "cast",
        "name": "林夏",
        "sourceElementId": "c3",
        "sourceText": "林夏",
        "confirmed": true,
        "notes": ""
      },
      {
        "id": "tag-qd5lh9",
        "sceneId": "s1",
        "category": "cast",
        "name": "阿城",
        "sourceElementId": "c2",
        "sourceText": "阿城",
        "confirmed": true,
        "notes": ""
      },
      {
        "id": "tag-11mjbts",
        "sceneId": "s2",
        "category": "cast",
        "name": "阿城",
        "sourceElementId": "c7",
        "sourceText": "阿城",
        "confirmed": true,
        "notes": ""
      },
      {
        "id": "tag-n8vbej",
        "sceneId": "s2",
        "category": "cast",
        "name": "林夏",
        "sourceElementId": "c6",
        "sourceText": "林夏",
        "confirmed": true,
        "notes": ""
      },
      {
        "id": "tag-17c8pak",
        "sceneId": "s3",
        "category": "cast",
        "name": "林夏",
        "sourceElementId": "c10",
        "sourceText": "林夏",
        "confirmed": true,
        "notes": ""
      },
      {
        "id": "tag-163rdt3",
        "sceneId": "s3",
        "category": "cast",
        "name": "阿城",
        "sourceElementId": "c9",
        "sourceText": "阿城",
        "confirmed": true,
        "notes": ""
      },
      {
        "id": "tag-j1hgp1",
        "sceneId": "s4",
        "category": "cast",
        "name": "林夏",
        "sourceElementId": "c11",
        "sourceText": "林夏",
        "confirmed": true,
        "notes": ""
      },
      {
        "id": "tag-1azzvga",
        "sceneId": "s4",
        "category": "cast",
        "name": "阿城",
        "sourceElementId": "c12",
        "sourceText": "阿城",
        "confirmed": true,
        "notes": ""
      },
      {
        "id": "academy-s1-0",
        "sceneId": "s1",
        "category": "props",
        "name": "新车票",
        "confirmed": true,
        "notes": "教学人工核对：以正文与连续性表为依据。"
      },
      {
        "id": "academy-s1-1",
        "sceneId": "s1",
        "category": "props",
        "name": "旧信与信封",
        "confirmed": true,
        "notes": "教学人工核对：以正文与连续性表为依据。"
      },
      {
        "id": "academy-s1-2",
        "sceneId": "s1",
        "category": "props",
        "name": "手机",
        "confirmed": true,
        "notes": "教学人工核对：以正文与连续性表为依据。"
      },
      {
        "id": "academy-s1-3",
        "sceneId": "s1",
        "category": "props",
        "name": "背包",
        "confirmed": true,
        "notes": "教学人工核对：以正文与连续性表为依据。"
      },
      {
        "id": "wardrobe-s1",
        "sceneId": "s1",
        "category": "costume",
        "name": "阿城外套",
        "confirmed": true,
        "notes": "衣袖湿度与穿脱按故事顺序核对。"
      },
      {
        "id": "academy-s2-0",
        "sceneId": "s2",
        "category": "props",
        "name": "新车票",
        "confirmed": true,
        "notes": "教学人工核对：以正文与连续性表为依据。"
      },
      {
        "id": "academy-s2-1",
        "sceneId": "s2",
        "category": "props",
        "name": "旧信与信封",
        "confirmed": true,
        "notes": "教学人工核对：以正文与连续性表为依据。"
      },
      {
        "id": "wardrobe-s2",
        "sceneId": "s2",
        "category": "costume",
        "name": "阿城外套",
        "confirmed": true,
        "notes": "衣袖湿度与穿脱按故事顺序核对。"
      },
      {
        "id": "academy-s3-0",
        "sceneId": "s3",
        "category": "props",
        "name": "新车票",
        "confirmed": true,
        "notes": "教学人工核对：以正文与连续性表为依据。"
      },
      {
        "id": "academy-s3-1",
        "sceneId": "s3",
        "category": "props",
        "name": "旧车票",
        "confirmed": true,
        "notes": "教学人工核对：以正文与连续性表为依据。"
      },
      {
        "id": "academy-s3-2",
        "sceneId": "s3",
        "category": "props",
        "name": "旧信与信封",
        "confirmed": true,
        "notes": "教学人工核对：以正文与连续性表为依据。"
      },
      {
        "id": "academy-s3-3",
        "sceneId": "s3",
        "category": "props",
        "name": "纸巾",
        "confirmed": true,
        "notes": "教学人工核对：以正文与连续性表为依据。"
      },
      {
        "id": "academy-s3-4",
        "sceneId": "s3",
        "category": "props",
        "name": "背包",
        "confirmed": true,
        "notes": "教学人工核对：以正文与连续性表为依据。"
      },
      {
        "id": "wardrobe-s3",
        "sceneId": "s3",
        "category": "costume",
        "name": "阿城外套",
        "confirmed": true,
        "notes": "衣袖湿度与穿脱按故事顺序核对。"
      },
      {
        "id": "academy-s4-0",
        "sceneId": "s4",
        "category": "props",
        "name": "伞",
        "confirmed": true,
        "notes": "教学人工核对：以正文与连续性表为依据。"
      },
      {
        "id": "academy-s4-1",
        "sceneId": "s4",
        "category": "props",
        "name": "背包",
        "confirmed": true,
        "notes": "教学人工核对：以正文与连续性表为依据。"
      },
      {
        "id": "academy-s4-2",
        "sceneId": "s4",
        "category": "props",
        "name": "旧信与信封",
        "confirmed": true,
        "notes": "教学人工核对：以正文与连续性表为依据。"
      },
      {
        "id": "academy-s4-3",
        "sceneId": "s4",
        "category": "props",
        "name": "新车票",
        "confirmed": true,
        "notes": "教学人工核对：以正文与连续性表为依据。"
      },
      {
        "id": "academy-s4-4",
        "sceneId": "s4",
        "category": "props",
        "name": "旧车票",
        "confirmed": true,
        "notes": "教学人工核对：以正文与连续性表为依据。"
      },
      {
        "id": "wardrobe-s4",
        "sceneId": "s4",
        "category": "costume",
        "name": "阿城外套",
        "confirmed": true,
        "notes": "衣袖湿度与穿脱按故事顺序核对。"
      },
      {
        "id": "bus-s2",
        "sceneId": "s2",
        "category": "vehicle",
        "name": "末班公交车",
        "confirmed": true,
        "notes": "需确认实车许可，或经验证的灯光声音替代方案，不占用真实道路。"
      }
    ],
    "locations": [
      {
        "id": "loc-shop",
        "name": "便利店及门口",
        "address": "虚构地点 未设置真实地址",
        "coordinates": "",
        "contact": "示例联系人",
        "phone": "",
        "availability": "教学计划 2026-10-20 晚间",
        "unavailableDates": [],
        "permitStatus": "待取得实际书面许可",
        "fee": "500",
        "power": "实拍前由合格人员核对负载与漏电保护",
        "noise": "冷柜、道路与雨声需现场录音测试",
        "parking": "待勘景确认",
        "facilities": "卫生间、避雨区和备用供电待确认",
        "accessibility": "检查通道与无障碍条件",
        "safety": "不占用真实车道；雨戏用电须单独评估",
        "sunDirection": "夜戏，检查环境灯与车灯方向",
        "dimensions": "待实测",
        "score": 3,
        "status": "review",
        "notes": "虚构教学场地，无实际许可。",
        "photoPaths": []
      }
    ],
    "shots": [
      {
        "id": "shot-1",
        "sceneId": "s1",
        "number": "1-1",
        "description": "车票与未发送消息，建立离开的目标",
        "shotSize": "特写",
        "angle": "平视",
        "movement": "固定",
        "lens": "50mm",
        "fps": "24",
        "shutter": "180°",
        "filter": "",
        "support": "三脚架",
        "camera": "教学机位 A",
        "lighting": "便利店实景灯配合补光，实拍前测试频闪",
        "equipment": "防雨与用电保护",
        "estimatedMinutes": 20,
        "durationSeconds": 8,
        "storyboardPath": "",
        "dialogueReference": "见对应场次",
        "status": "review",
        "notes": "文字分镜示例；没有附实际拍摄素材。"
      },
      {
        "id": "shot-2",
        "sceneId": "s1",
        "number": "1-2",
        "description": "旧信推回柜台，两个人保持距离",
        "shotSize": "中景",
        "angle": "平视",
        "movement": "固定",
        "lens": "35mm",
        "fps": "24",
        "shutter": "180°",
        "filter": "",
        "support": "三脚架",
        "camera": "教学机位 A",
        "lighting": "便利店实景灯配合补光，实拍前测试频闪",
        "equipment": "防雨与用电保护",
        "estimatedMinutes": 20,
        "durationSeconds": 8,
        "storyboardPath": "",
        "dialogueReference": "见对应场次",
        "status": "review",
        "notes": "文字分镜示例；没有附实际拍摄素材。"
      },
      {
        "id": "shot-3",
        "sceneId": "s2",
        "number": "2-1",
        "description": "车灯掠过，林夏退回雨棚",
        "shotSize": "中景",
        "angle": "平视",
        "movement": "固定",
        "lens": "35mm",
        "fps": "24",
        "shutter": "180°",
        "filter": "",
        "support": "三脚架",
        "camera": "教学机位 A",
        "lighting": "便利店实景灯配合补光，实拍前测试频闪",
        "equipment": "防雨与用电保护",
        "estimatedMinutes": 20,
        "durationSeconds": 8,
        "storyboardPath": "",
        "dialogueReference": "见对应场次",
        "status": "review",
        "notes": "文字分镜示例；没有附实际拍摄素材。"
      },
      {
        "id": "shot-4",
        "sceneId": "s3",
        "number": "3-1",
        "description": "新旧两张车票并排",
        "shotSize": "特写",
        "angle": "平视",
        "movement": "固定",
        "lens": "50mm",
        "fps": "24",
        "shutter": "180°",
        "filter": "",
        "support": "三脚架",
        "camera": "教学机位 A",
        "lighting": "便利店实景灯配合补光，实拍前测试频闪",
        "equipment": "防雨与用电保护",
        "estimatedMinutes": 20,
        "durationSeconds": 8,
        "storyboardPath": "",
        "dialogueReference": "见对应场次",
        "status": "review",
        "notes": "文字分镜示例；没有附实际拍摄素材。"
      },
      {
        "id": "shot-5",
        "sceneId": "s4",
        "number": "4-1",
        "description": "两个人走向与公交车相反的方向",
        "shotSize": "全景",
        "angle": "平视",
        "movement": "固定",
        "lens": "35mm",
        "fps": "24",
        "shutter": "180°",
        "filter": "",
        "support": "三脚架",
        "camera": "教学机位 A",
        "lighting": "便利店实景灯配合补光，实拍前测试频闪",
        "equipment": "防雨与用电保护",
        "estimatedMinutes": 20,
        "durationSeconds": 8,
        "storyboardPath": "",
        "dialogueReference": "见对应场次",
        "status": "review",
        "notes": "文字分镜示例；没有附实际拍摄素材。"
      }
    ],
    "takes": [
      {
        "id": "take-1",
        "shotId": "shot-4",
        "takeNumber": 1,
        "timecodeIn": "01:00:00:00",
        "timecodeOut": "01:00:08:00",
        "videoRoll": "A001",
        "soundRoll": "S001",
        "selected": true,
        "status": "good",
        "notes": "虚构时间码，仅供 ALE/EDL 字段练习，不对应真实媒体。"
      }
    ],
    "assets": [
      {
        "id": "asset-letter",
        "department": "props",
        "name": "旧信与信封",
        "category": "教学示例",
        "sceneIds": [
          "s1",
          "s2",
          "s3",
          "s4"
        ],
        "character": "",
        "quantity": 3,
        "source": "教学设定",
        "vendor": "示例供应方",
        "cost": "30",
        "lifecycleStatus": "received",
        "fittingOrDelivery": "2026-10-20",
        "returnOrStrike": "2026-10-21",
        "continuity": "准备干燥、洇湿、拆封后三种状态，不混用。",
        "photoPaths": [],
        "status": "review",
        "notes": "示例价格和日期仅用于练习，不代表实际报价或已取得许可。"
      },
      {
        "id": "asset-ticket",
        "department": "props",
        "name": "新旧两种车票",
        "category": "教学示例",
        "sceneIds": [
          "s1",
          "s2",
          "s3",
          "s4"
        ],
        "character": "",
        "quantity": 6,
        "source": "教学设定",
        "vendor": "示例供应方",
        "cost": "30",
        "lifecycleStatus": "received",
        "fittingOrDelivery": "2026-10-20",
        "returnOrStrike": "2026-10-21",
        "continuity": "旧票样式一致；新票结尾折入信封。",
        "photoPaths": [],
        "status": "review",
        "notes": "示例价格和日期仅用于练习，不代表实际报价或已取得许可。"
      },
      {
        "id": "asset-coat",
        "department": "costume",
        "name": "阿城外套",
        "category": "教学示例",
        "sceneIds": [
          "s1",
          "s2",
          "s3",
          "s4"
        ],
        "character": "阿城",
        "quantity": 2,
        "source": "教学设定",
        "vendor": "示例供应方",
        "cost": "120",
        "lifecycleStatus": "received",
        "fittingOrDelivery": "2026-10-20",
        "returnOrStrike": "2026-10-21",
        "continuity": "记录每场湿度、穿脱与袖口状态，准备干燥备份。",
        "photoPaths": [],
        "status": "review",
        "notes": "示例价格和日期仅用于练习，不代表实际报价或已取得许可。"
      }
    ],
    "shootDays": [
      {
        "id": "day-1",
        "dayNumber": 1,
        "date": "2026-10-20",
        "unit": "A 组",
        "sceneIds": [
          "s1",
          "s3",
          "s2",
          "s4"
        ],
        "callTime": "16:00",
        "mealTime": "19:00",
        "wrapTime": "23:00",
        "locationName": "便利店及门口",
        "notes": "按内外景集中拍摄的教学排法；以实际人员、天候、许可和工时要求重排。"
      }
    ],
    "tasks": [],
    "notes": [],
    "changeImpacts": [],
    "revisionSets": [],
    "revisionDistributions": [],
    "castAvailability": [
      {
        "id": "cast-lin",
        "castName": "林夏",
        "unavailableDates": [],
        "maxConsecutiveDays": 5,
        "notes": "教学角色档期，不代表真实演员安排。"
      }
    ],
    "travelTimes": [
      {
        "id": "travel-1",
        "fromLocation": "便利店",
        "toLocation": "便利店门口",
        "minutes": 10
      }
    ],
    "budgetLines": [
      {
        "id": "budget-location",
        "category": "location",
        "description": "便利店场地教学预算",
        "department": "location",
        "sceneIds": [
          "s1",
          "s2",
          "s3",
          "s4"
        ],
        "vendor": "示例场地方",
        "budgetAmount": 500,
        "committedAmount": 400,
        "actualAmount": 400,
        "status": "review",
        "notes": "虚构金额；不含税费、保险和额外工时。"
      },
      {
        "id": "budget-props",
        "category": "props",
        "description": "旧信与车票制作",
        "department": "props",
        "assetId": "asset-letter",
        "sceneIds": [
          "s1",
          "s2",
          "s3",
          "s4"
        ],
        "vendor": "示例道具组",
        "budgetAmount": 100,
        "committedAmount": 80,
        "actualAmount": 60,
        "status": "review",
        "notes": "教学预算，不是影片总预算。"
      }
    ],
    "assetEvents": [
      {
        "id": "event-received",
        "assetId": "asset-letter",
        "type": "received",
        "date": "2026-10-19",
        "quantity": 3,
        "amount": 60,
        "person": "示例道具负责人",
        "notes": "核对干燥、洇湿、拆封状态各一份。"
      },
      {
        "id": "event-issued",
        "assetId": "asset-letter",
        "type": "issued",
        "date": "2026-10-20",
        "quantity": 3,
        "amount": 0,
        "person": "示例场记",
        "notes": "按场次状态领用；收工核对数量。"
      }
    ]
  }
}