# 顺序打点最小配置模板
> 文档版本：v1.0
> 最后更新：2026-04-02 08:28:05


本文档提供一份 **顺序赛（`classic-sequential`）最小可跑配置模板**。

目标：

- 只保留顺序赛跑通所需的最少字段
- 让测试尽量回到程序默认规则本身
- 避免历史内容卡、H5 页面、样式覆盖继续干扰联调

如果你关心“最小模板下系统到底默认怎么跑”，请优先配合阅读：

- [顺序打点规则说明文档](D:/dev/cmr-mini/doc/games/顺序打点/规则说明文档.md)
- [程序默认规则基线](D:/dev/cmr-mini/doc/gameplay/程序默认规则基线.md)

---

## 1. 最小模板

```json
{
  "schemaVersion": "1",
  "version": "2026.03.31",
  "app": {
    "id": "sample-classic-001",
    "title": "顺序赛示例",
    "locale": "zh-CN"
  },
  "map": {
    "tiles": "../map/lxcb-001/tiles/",
    "mapmeta": "../map/lxcb-001/tiles/meta.json",
    "declination": 6.91,
    "initialView": {
      "zoom": 17
    }
  },
  "playfield": {
    "kind": "course",
    "source": {
      "type": "kml",
      "url": "../kml/lxcb-001/10/c01.kml"
    },
    "CPRadius": 6,
    "metadata": {
      "title": "顺序赛路线示例",
      "code": "classic-001"
    }
  },
  "game": {
    "mode": "classic-sequential"
  }
}
```

---

## 2. 字段说明

### `schemaVersion`

- 类型：`string`
- 必填：是
- 说明：配置结构版本
- 当前建议值：`"1"`

### `version`

- 类型：`string`
- 必填：是
- 说明：配置版本号

### `app.id`

- 类型：`string`
- 必填：是
- 说明：活动配置实例 ID

### `app.title`

- 类型：`string`
- 必填：是
- 说明：活动标题 / 比赛名称

### `app.locale`

- 类型：`string`
- 必填：否
- 说明：语言区域

### `map.tiles`

- 类型：`string`
- 必填：是
- 说明：地图瓦片根路径

### `map.mapmeta`

- 类型：`string`
- 必填：是
- 说明：地图 meta 文件路径

### `map.declination`

- 类型：`number`
- 必填：否
- 说明：磁偏角，未填写时按程序默认值处理

### `map.initialView.zoom`

- 类型：`number`
- 必填：否
- 说明：初始缩放级别，未填写时按程序默认视口逻辑处理

### `playfield.kind`

- 类型：`string`
- 必填：是
- 说明：空间对象类型
- 顺序赛固定使用：`course`

### `playfield.source.type`

- 类型：`string`
- 必填：是
- 说明：空间底稿来源类型
- 当前推荐值：`kml`

### `playfield.source.url`

- 类型：`string`
- 必填：是
- 说明：KML 文件路径

### `playfield.CPRadius`

- 类型：`number`
- 必填：否
- 说明：点位触发半径，未填写时按程序默认值处理

### `playfield.metadata.title`

- 类型：`string`
- 必填：否
- 说明：路线名称

### `playfield.metadata.code`

- 类型：`string`
- 必填：否
- 说明：路线编码

### `game.mode`

- 类型：`string`
- 必填：是
- 说明：玩法模式
- 顺序赛固定值：`classic-sequential`

### `game.*`

- 类型：`object`
- 必填：否
- 说明：最小样例默认不依赖额外玩法覆盖字段
- 备注：如需覆盖程序默认值，再补 `punch`、`sequence`、`guidance`、`finish` 等子块

---

## 3. 当前默认逻辑

如果你只写本页最小模板，顺序赛会按程序默认规则运行。

### 3.1 默认局流程

- 进入游戏后默认只显示开始点
- 系统默认提示玩家：需要先打开始点才正式开始比赛
- 未打开始点前，普通控制点和终点不生效
- 首次成功打开始点后：
  - 正式开始比赛
  - 初始化本局数据
  - 开始计时
  - 显示全部普通控制点、终点和腿线
  - 默认只给出“比赛开始”短反馈，并同步更新引导提示和 HUD
  - 最小模板下默认不弹开始白色内容卡
- 最小模板下，点击检查点默认不弹详情卡
- 普通控制点默认允许跳点
- 普通控制点成功打点后默认：
  - 先得 `1` 分基础分
  - 默认不弹题
  - 如需答题卡，需显式配置对应点位的 `quiz` CTA
- 开始点和结束点默认不弹题，只弹提示信息
- 成功打结束点后：
  - 停止计时
  - 给出完成短反馈
  - 直接进入默认成绩结算页
  - 默认不再额外叠加终点白色内容卡
- 白色内容卡默认改为显式配置启用；只有某个点位明确配置 `autoPopup = true` 时，完成该点后才会先弹白卡

### 3.2 默认规则参数

- `map.declination`
  - 没配时默认按 `0`
- `map.initialView.zoom`
  - 没配时由客户端初始视口逻辑接管
- `playfield.CPRadius`
  - 没配时按客户端内置值处理
- `game.session.*`
  - 默认非手动开始
  - 默认要求起点打卡
  - 默认要求终点打卡
  - 默认不在最后一个普通点自动结束
- `game.sequence.skip.*`
  - 默认启用跳点
  - 默认跳点半径 = 打点半径的 2 倍
  - 默认不需要二次确认
- `game.guidance.*`
  - 默认显示路线腿线
  - 默认显示腿线动效
  - 默认不允许手动聚焦选点
- `game.visibility.revealFullPlayfieldAfterStartPunch`
  - 默认按 `true` 处理
- `game.finish.finishControlAlwaysSelectable`
  - 默认按 `false` 处理

---

## 4. 当前样例说明

当前仓库中的 [classic-sequential.json](D:/dev/cmr-mini/event/classic-sequential.json) 已按这套最小测试口径收敛，只保留地图、场地和玩法标识，不再附带历史测试内容卡、H5 页面和样式覆盖。

如果要查看公共完整字段，请继续参考：

- [当前最全配置模板](D:/dev/cmr-mini/doc/config/当前最全配置模板.md)


