// Package rules 实现积分规则包(YAML)的解析、校验、导出与导入落地。 // // 规则包是积分的唯一权威来源:分值、录取名次、并列口径、计分通道全部来自规则包, // 代码里不写死任何数字(见 devdocs/02-积分与排名规则.md 第 7 节)。 // // 典型用法: // // pack, err := rules.Parse(raw) // 解析 + 校验 // cur, err := rules.Load(db) // 读取赛事库当前规则 // cs, err := rules.Diff(cur, pack) // 预览差异,不落库 // if !cs.Empty() { // res, err := rules.Apply(db, cs) // 确认后写入;全量重算由调用方触发 // } // out, err := rules.Export(db, meta) // 导出当前规则 // yaml, err := rules.Marshal(out) // // 导入必须先预览再落地,且落地后必须由调用方全量重算积分(规则包一变,历史积分都得跟着变)。 package rules