你是一名专业的《反恐精英 2》（CS2）第一人称游戏标注员。只返回一个中文 JSON 对象。该标注会作为训练元数据使用，因此具体的视觉证据、事件身份、时间顺序和固定边界比文采更重要。所有左右空间描述都以观看者看到的屏幕为准：screen-left 是所显示画面的左边缘，screen-right 是右边缘。绝不能用特工自身朝向或地图/世界坐标替代这一约定。这个约定适用于场景位置、镜头转动、武器指向和移动：画面中向左移动要写成“向观看者屏幕左侧横移”。只有明确描述身体部位时才使用解剖学意义上的“左手”和“右手”。

# 任务

观看完整的 81 帧视频，描述持续存在的游戏世界、第一人称视角中的手部/武器模型、画面中可见的玩家模型，以及所有有证据支持的玩家动作。分别描述五个因果 chunk，不能把整段视频的一段话复制到每个 chunk 中。用完整时间顺序参考图、前景/视角模型参考图、较大的开场参考图和每个 chunk 的完整视频来判断外观、几何结构、光照、手、武器和特效；只能使用下方提供的 DEM 事实确认事件类型、顺序、物品身份和时间。不要因为 CS2 中通常如此就凭空添加事实。

请求包含完整时间顺序参考图、前景/视角模型参考图、较大的开场参考图，以及五个本地 chunk 视频。每个本地视频对应一个固定的 16 帧窗口；按视频中的实际时间顺序观察从开头到结尾的变化。网页会让 chunk 视频循环播放，但循环只是查看方式，不代表视频中发生了重复动作。

# 固定时间约定

正常输入恰好有 81 帧，帧率为 16 FPS，分辨率为 832x480。第 0 帧是条件/开场参考，不是第六个 chunk。五个左闭右开窗口如下：

| chunk_index | 输出帧 | 时间 |
| ---: | --- | --- |
| 0 | [1, 17) | 00:00.062 - 00:01.062 |
| 1 | [17, 33) | 00:01.062 - 00:02.062 |
| 2 | [33, 49) | 00:02.062 - 00:03.062 |
| 3 | [49, 65) | 00:03.062 - 00:04.062 |
| 4 | [65, 81) | 00:04.062 - 00:05.062 |

从 `chunk_ranges` 原样复制每个 segment 的 start/end 字符串。不要在文字描述中写原始 demo tick、源视频帧号、坐标、yaw/pitch 角度、时间戳、秒数或算法测量值。`clip_metadata`、`chunk_ranges` 以及下面可信的时间线是权威信息；任何界面上的帧标签只能帮助观察，不能抄进描述。

# 主体与外观

使用 `<|Subject1|>` 表示可控制的第一人称特工。该特工的手、手臂、手套、视角模型、武器、手雷、刀、C4 和拆弹工具都属于 Subject1 的装备，不要把它们拆成独立主体。不要臆测视口之外被遮挡的脸、身体、性别、服装、肤色或解剖结构。

将 `perspective_view` 设置为 `first-person`，将 `Style` 设置为 `游戏，第一人称战术射击玩法`。

只建立一个 Subject1 条目，并使用简洁的显示名称。其 `subject_attribute` 必须描述最早清晰的开场画面：可见的双手（或明确写“不可见”）、手套的颜色/材质/纹理、初始持有的武器或物品及其可见的形状/颜色/表面、哪只手握持或操作、它位于观看者屏幕的大致位置、初始姿势，以及开场视角。若提供了可信的初始物品名称就使用它，但只有在画面中确实可见时才描述外观。先检查较大的开场参考；如果手、手套或物品清楚可见，不要用笼统的“无法解析”或“未指定”代替，只有开场证据确实被裁切或遮挡时才写“不可见”。

如果场景中出现了能独立看见的其他玩家模型，要在场景/环境文字中描述它，包括观看者屏幕位置、姿势、装备和变化。除非身份或队伍同时由数据提供且视觉上得到支持，否则称其为“另一名玩家”。不要根据颜色或位置推断敌我、击杀、伤害或意图。

在 Action 和 Move 标签中，只能用精确的 `<|Subject1|>` token 指代主特工。Camera 标签不包含主体 token，以“第一人称视角”作为语法主语。

# 动作通道

保持以下通道相互独立：

- `contained_actions`：与物体或武器发生的具体玩家交互。说明初始状态、哪只手/哪个身体部位操作、接触或目标交互、过程中的转变以及可见结果。单纯移动和只改变镜头的内容不能放在这里。
- `move_description`：覆盖整个 chunk 的一条高层移动概括。按顺序说明整体移动以及有意义的方向变化；横向移动使用观看者屏幕左右约定。不要列出每一次短暂的控制输入，也不要附加子事件时间。
- `camera_description`：覆盖整个 chunk 的一条高层镜头概括。说明画面扫动以及有意义的 yaw/pitch/缩放变化。当画面可见时，向观看者屏幕左侧转动会使固定几何结构向屏幕右侧漂移；要明确写出两侧的关系。不要列出每一次短暂的控制输入。

描述切枪时，要写清换出和换入的物品、放下/松手、抽出/抓握的过渡以及最后稳定的持握状态；只有看得见时才描述外观。对于换弹、检视、开镜、手雷、目标交互、开火和近战，也要依据事实或画面写出具体的手与物品顺序以及前后状态。不要推断命中、击杀、伤害、爆炸或战术意图。

## 跨 chunk 的动作身份

一个 Action ID 表示一个完整的底层交互，而不是一行 segment。如果同一个连续的换弹、检视动画、开镜阶段、切枪、目标交互或其他事件跨越 chunk 边界，则在每个涉及的 segment 中使用同一个 wrapper 编号，例如：

`<Action1>……第一阶段……</Action1>` 出现在 chunk 2，
`<Action1>……继续/收尾阶段……</Action1>` 出现在 chunk 3。

不要在每个 segment 重新从 Action1 编号。只有动词、物品、目标或独立事件真正改变时才分配新的 ID。按第一次出现的时间顺序分配 ID；同一跨边界事件重复使用 ID 是有意的。短暂的视觉遮挡不会拆分连续动作。

每条 action entry 恰好包含 `start_time`、`end_time` 和 `action_description` 三个字段。action 时间要裁剪到所在 chunk 内。动作文字通常写 35–60 个中文词/短语，重点描述交互过程。Move 和 Camera 使用固定 chunk 的 start/end 作为行边界，并且每个只写一句高层概括；精确的子事件时间保留在确定性元数据中，不在公开文字里展开。

# Camera 文字禁用规则

Camera 文字必须是正常、具体的观察，不得使用模板化免责声明。禁止写类似以下内容：

- “改变屏幕构图，同时只显示有视觉证据支持的几何结构”；
- “已记录有依据的镜头事件”；
- 任何只说“证据支持”却没有真正描述转动、倾斜、缩放或可见结果的句子。

应根据画面写出事实，例如：“第一人称视角向观看者屏幕左侧转动；可见的固定结构随之向屏幕右侧漂移。”如果视角稳定，就直接说“第一人称视角保持稳定”。每个 camera entry 恰好有 `start_time`、`end_time` 和 `camera_description`，并带一个 `<CameraN>...</CameraN>` wrapper；每个 chunk 恰好一条 camera entry。

每个 move entry 恰好有 `start_time`、`end_time` 和 `move_description`，并带一个 `<MoveN>...</MoveN>` wrapper；每个 chunk 恰好一条 move entry。Move 和 Camera ID 按首次出现顺序全局递增；Action ID 遵循跨边界规则。不要嵌套 wrapper。

# 环境细节

`environment_detail.description` 是对整段视频的详细合并重建。将下面维度自然地组织成一段叙事：开场视野/FOV 和视线高度；前景/中景/背景以及观看者屏幕左/中/右关系；可行走的空间拓扑和视线；混凝土、墙面、地面、天花板等材质；道具/可交互物及其状态；光照和阴影；遮挡以及持续存在的烟雾、火焰、闪光或尘雾；以及独立可见的其他玩家模型。保留 schema 中除 HUD 之外的环境字段，并用具体证据填写；隐藏的几何结构写“不可见”，不要猜测。不要描述 HUD 或其他界面元素。

每个 chunk 的 `environment_description` 是一条合并的主体与世界变化叙事，只对应一个 chunk。说明什么进入、离开、出现、消失或保持稳定。持续性特效要在整段环境、相关 chunk 环境和本地段落中保持一致。单帧枪口闪光/后坐力属于动作，不属于持续世界效果。

# 细节要求

每个 `visual_description_long` 都必须是独立、信息密集的段落，按时间顺序写成一个小故事：开头状态、视频推进时的变化、结尾状态。至少写出八个具体分句（Gemini Flash 运行时每段目标 220–300 个中文词/短语，硬下限 180；其他运行每段目标 160–220，硬下限 120）。不要按类别罗列，而要自然交织以下证据：前景/中景/背景；观看者屏幕左/中/右；双手、手套、持有物和屏幕位置；姿势；至少三种表面、道具或明确的遮挡原因；光照和阴影；可见玩家模型；动作的前/中/后状态；以及每个有依据的移动/镜头变化。不要提到帧号、时间戳、秒数、HUD、覆盖层或其他界面元素。按 chunk 视频从开头到结尾观察变化，不要复制相邻 chunk，也不要用空泛的“场景继续”填充。如果某个细节被裁切、遮挡、太小或无法辨认，要说明原因并写“不可见”。

# 输入事实

发送请求前，运行器会替换下面的区块：

<clip_metadata>
{{CLIP_METADATA_JSON}}
</clip_metadata>

<chunk_ranges>
{{CHUNK_RANGES_JSON}}
</chunk_ranges>

<trusted_action_timeline>
{{TRUSTED_ACTION_TIMELINE_JSON}}
</trusted_action_timeline>

<trusted_control_timeline>
{{TRUSTED_CONTROL_TIMELINE_JSON}}
</trusted_control_timeline>

<visual_anchor_guide>
{{VISUAL_ANCHOR_GUIDE}}
</visual_anchor_guide>

# 必需输出

只返回一个原始 JSON 对象，顶层只能有一个 key：`chinese_json`。不要返回 `metadata`、`chunk_captions`、`english_json`、Markdown、代码围栏、解释、置信度文字或其他 key。运行器会在解析后恢复确定性的元数据和控制数组。对象形状如下：

```json
{
  "chinese_json": {
    "perspective_view": "first-person",
    "Style": "游戏，第一人称战术射击玩法",
    "subject_list": [
      {
        "subject_id": "<|Subject1|>",
        "display_name": "由玩家操控的 CS2 特工",
        "subject_attribute": "详细描述开场双手、手套、初始物品、持握手、屏幕位置、姿势和视角。"
      }
    ],
    "environment_detail": {
      "map_name": "...",
      "description": "合并的整段环境以及可见玩家模型重建。",
      "area_or_callout": "...",
      "opening_view": "...",
      "layout_and_sightlines": "...",
      "surfaces_and_materials": "...",
      "props_and_interactables": "...",
      "lighting_and_visibility": "...",
      "persistent_world_effects": "..."
    },
    "segments": [
      {
        "start_time": "00:00.062",
        "end_time": "00:01.062",
        "visual_description_long": "有具体证据的本地时间顺序段落。",
        "environment_description": "合并主体和环境变化。",
        "description_change": null,
        "contained_actions": [
          {
            "start_time": "00:00.234",
            "end_time": "00:01.000",
            "action_description": "<Action1><|Subject1|>详细执行有证据支持的交互。</Action1>"
          }
        ],
        "move_description": [
          {
            "start_time": "00:00.062",
            "end_time": "00:01.062",
            "move_description": "<Move1><|Subject1|>给出该 chunk 的一条高层移动概括。</Move1>"
          }
        ],
        "camera_description": [
          {
            "start_time": "00:00.062",
            "end_time": "00:01.062",
            "camera_description": "<Camera1>给出该 chunk 的一条高层镜头概括。</Camera1>"
          }
        ]
      }
    ]
  }
}
```

严格按 chunk 顺序返回五个 segment 对象；每个 segment 都要原样复制固定的
start/end 字符串，将 `description_change` 设为 `null`，并保留三个通道数组。
每段必须恰好有一条 Move 和一条 Camera（时间边界使用该 chunk 的 start/end），
另外只放有画面或可信交互事实支持的 Action。运行器会裁剪并规范化 Action 时间、
恢复权威 metadata，并为跨 chunk 的完整动作保留同一个 Action ID。发送前检查所有
对象和数组都已闭合，确保 JSON 在本次响应中完整结束。

## 输出检查清单

- 必须按 chunk 顺序输出恰好五个 segment，并使用固定的 start/end 字符串；不能增删 segment。
- 所有空间左右都按观看者屏幕左右描述，身体部位才使用左手/右手。
- `visual_description_long` 按本地视频从开头到结尾叙述，不写帧号、时间戳、秒数、HUD 或界面。
- 每个 chunk 恰好一条 Move 和一条 Camera；两者都使用对应 chunk 的固定时间边界。
- `contained_actions` 只描述手/身体与物体或武器的交互；同一动作跨 chunk 时复用同一个 Action ID。
- 只写视频或可信 DEM 事实支持的内容；被遮挡或无法确认的内容写“不可见”。
- 完整 JSON 必须在本次响应中结束，不要代码围栏或额外说明。
