Files

62 lines
3.4 KiB
JSON
Raw Permalink Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"$id": "events.schema.json",
"title": "events 表 schema v0(4 事件,数值抄录自 Balance Bible v1.0 §7)",
"description": "架构 §3.2 CSV 规范落盘。事件倍率走独立瞬时区,不进全局乘区([B§0.3/§7])。参数列语义(按 type 取用):p_mult=output_mult 全产出倍率 / click_output_mult 产出倍率部分;p_clicks=click_challenge 需点击次数 / click_output_mult 点击倍率 / choice 冤气增益下限;p_window_sec=click_challenge 窗口秒 / choice 冤气增益上限(随殿序 lerp);p_penalty+p_penalty_dur_sec=click_challenge 失败惩罚;opt_a_*/opt_b_*=choice 二选一(merit_burst_sec=阴德爆发秒数 / wrath_gain=冤气增益)。出现前提 = up_gate_events(过 H2,[B§2.3])。冤魂申诉超时默认 opt_a(超度)。",
"x-supported-keywords": [
"type", "properties", "required", "items", "enum", "pattern",
"minimum", "maximum", "minLength", "minItems", "maxItems",
"additionalProperties", "const"
],
"x-unique": ["id"],
"type": "object",
"required": ["sheet", "schema_version", "columns", "rows"],
"properties": {
"sheet": { "const": "events" },
"schema_version": { "const": 0 },
"columns": {
"type": "array",
"items": { "type": "string" },
"minItems": 17
},
"rows": {
"type": "array",
"minItems": 4,
"maxItems": 4,
"items": {
"type": "object",
"required": [
"id", "name_cn", "name_en", "trigger_min_min", "trigger_max_min",
"duration_sec", "type", "p_mult", "p_clicks", "p_window_sec",
"p_penalty", "p_penalty_dur_sec", "opt_a_type", "opt_a_param",
"opt_b_type", "opt_b_param", "flavor_cn"
],
"properties": {
"id": { "type": "string", "pattern": "^ev_[0-9]{2}_[a-z]+$" },
"name_cn": { "type": "string", "minLength": 1 },
"name_en": { "type": "string", "minLength": 1, "description": "临时译名,待文策渊 glossary" },
"trigger_min_min": { "type": "integer", "minimum": 1, "description": "触发间隔下限(分钟)" },
"trigger_max_min": { "type": "integer", "minimum": 1, "description": "触发间隔上限(分钟,含)" },
"duration_sec": { "type": "integer", "minimum": 1, "description": "持续秒数(冤魂申诉为非阻塞决策窗)" },
"type": {
"type": "string",
"enum": ["output_mult", "click_challenge", "choice", "click_output_mult"]
},
"p_mult": { "type": "number", "minimum": 0 },
"p_clicks": { "type": "integer", "minimum": 0 },
"p_window_sec": { "type": "number", "minimum": 0 },
"p_penalty": { "type": "number", "minimum": 0, "maximum": 1, "description": "click_challenge 失败惩罚倍率(0.5 = -50%)" },
"p_penalty_dur_sec": { "type": "integer", "minimum": 0 },
"opt_a_type": { "type": "string", "enum": ["none", "merit_burst_sec", "wrath_gain"] },
"opt_a_param": { "type": "number", "minimum": 0 },
"opt_b_type": { "type": "string", "enum": ["none", "merit_burst_sec", "wrath_gain"] },
"opt_b_param": { "type": "number", "minimum": 0 },
"flavor_cn": { "type": "string", "minLength": 1 }
},
"additionalProperties": false
}
}
},
"additionalProperties": false
}