一条规程 = 五构件 + 引擎绑定,存进 regulations 六个 TEXT 列(每列一段 JSON)。所有参数都可配,系统只比关系、不认具体数值。
| 构件 | 含义 | 关键字段 |
|---|---|---|
| nature | 参赛主体形态 | category=GROUP/INDIVIDUAL/MIXED;entity=TEAM/DELEGATION/PAIR/PLAYER;eligibility |
| format | 阶段流水线(F 层唯一表达) | stages[] = {order,type,config},类型见 ② |
| unit | 最小对抗单位 | level=TIE/MATCH/SEGMENT;tie.win_mode 见 ③ |
| scoring | 计分(含换边/间歇/裁判流程) | profile_ref;stage_overrides;flow(见 ④⑤) |
| handicap | 让分 | start_score 恒为 true(一律用起始分,禁止终局加减) |
阶段顺序硬规则:draw/seeding 必须在 knockout 之前;ranking 必须在最后。
| win_mode | 含义 |
|---|---|
| COUNT | 先胜几项(团体五场三胜 win_target=3) |
| AGGREGATE | 累加总分定胜负 |
| POINTS | 先到目标分者胜(追逐赛/3v3) |
| SHORT_GAME | 短局制 |
| profile | 类型 | 目标分 | 净胜@ | 封顶 | 发球倒计时 | 换边时点 | 间歇 |
|---|---|---|---|---|---|---|---|
| S_21 | 分制 | 21 | 20 | 30 | 20s | 第一局结束; 第三局(决胜局)开始; 11分 | PRE_MATCH → 20s; LEAD_REACH@11 → 60s; BETWEEN_GAMES → 120s |
| S_15 | 分制 | 15 | 14 | 21 | 25s | 第一局结束; 第三局(决胜局)开始; 8分 | PRE_MATCH → 20s; LEAD_REACH@8 → 60s; BETWEEN_GAMES → 120s |
| S_31_G | 分制 | 31 | 30 | 31 | 20s | 16分 | PRE_MATCH → 20s |
| S_31_L | 分制 | 31 | 30 | 35 | 20s | 16分 | PRE_MATCH → 20s |
| S_RALLY | 累加 | 100 | - | 可配 | 20s | 50分 | PRE_MATCH → 20s |
| S_CLOCK | 计时 | 10/半场 | - | 无封顶(计时制) | 20s | 中场换边 | PRE_MATCH → 20s; HALF_TIME → 180s |
S_15 为 BWF 新规,2027-01-04 起实施(effective_from)。S_31_G 金球 / S_31_L 净胜 2 两种口径并存,cap 由举办方定(默认 35)。S_RALLY 的 target 可配 50/75/100。
| 节点 | 动作 | skippable |
|---|---|---|
| PRE_MATCH | 核对双方、场地、挑边结果 | false(不可跳过) |
| SERVE_COUNTDOWN | 发球倒计时,超时判违例 | false(不可跳过) |
| LEAD_INTERVAL | 间歇,倒计时由系统驱动 | false(不可跳过) |
| CHANGE_ENDS | 到点换边并双人确认,不得跳过后继续 | false(不可跳过) |
| GAME_END | 确认本局比分后才可进入下一局 | false(不可跳过) |
| SUBSTITUTE | 节点换人,先到 target 者胜 | false(不可跳过) |
人性化硬规则:倒计时由系统驱动(与首页时钟同源);节点只能提前不能延后;想改流程数值只能「发布新版本」,比赛中途不允许改。