[
  {
    "id": "field.next",
    "description": "Next field",
    "descriptionZh": "下一个字段",
    "contexts": [
      "default",
      "overlay"
    ],
    "action": {
      "kind": "fieldStep",
      "delta": 1
    },
    "combos": [
      "Tab",
      "Down"
    ]
  },
  {
    "id": "field.prev",
    "description": "Previous field",
    "descriptionZh": "上一个字段",
    "contexts": [
      "default",
      "overlay"
    ],
    "action": {
      "kind": "fieldStep",
      "delta": -1
    },
    "combos": [
      "BackTab",
      "Up"
    ]
  },
  {
    "id": "field.text.cursor.left",
    "description": "Move cursor left",
    "descriptionZh": "光标左移",
    "contexts": [
      "text"
    ],
    "dispatch": false,
    "action": {
      "kind": "none"
    },
    "combos": [
      "Left"
    ]
  },
  {
    "id": "field.text.cursor.right",
    "description": "Move cursor right",
    "descriptionZh": "光标右移",
    "contexts": [
      "text"
    ],
    "dispatch": false,
    "action": {
      "kind": "none"
    },
    "combos": [
      "Right"
    ]
  },
  {
    "id": "field.text.cursor.home",
    "description": "Jump to line start",
    "descriptionZh": "跳到行首",
    "contexts": [
      "text"
    ],
    "dispatch": false,
    "action": {
      "kind": "none"
    },
    "combos": [
      "Home"
    ]
  },
  {
    "id": "field.text.cursor.end",
    "description": "Jump to line end",
    "descriptionZh": "跳到行尾",
    "contexts": [
      "text"
    ],
    "dispatch": false,
    "action": {
      "kind": "none"
    },
    "combos": [
      "End"
    ]
  },
  {
    "id": "field.text.delete.backward",
    "description": "Delete previous character",
    "descriptionZh": "删除前一个字符",
    "contexts": [
      "text"
    ],
    "dispatch": false,
    "action": {
      "kind": "none"
    },
    "combos": [
      "Backspace"
    ]
  },
  {
    "id": "field.text.delete.forward",
    "description": "Delete next character",
    "descriptionZh": "删除后一个字符",
    "contexts": [
      "text"
    ],
    "dispatch": false,
    "action": {
      "kind": "none"
    },
    "combos": [
      "Delete"
    ]
  },
  {
    "id": "field.text.delete.word",
    "description": "Delete previous word",
    "descriptionZh": "删除前一个单词",
    "contexts": [
      "text"
    ],
    "dispatch": false,
    "action": {
      "kind": "none"
    },
    "combos": [
      "Ctrl+W"
    ]
  },
  {
    "id": "field.text.undo",
    "description": "Undo text edit",
    "descriptionZh": "撤销文本编辑",
    "contexts": [
      "text"
    ],
    "dispatch": false,
    "action": {
      "kind": "none"
    },
    "combos": [
      "Ctrl+Z"
    ]
  },
  {
    "id": "field.text.redo",
    "description": "Redo text edit",
    "descriptionZh": "重做文本编辑",
    "contexts": [
      "text"
    ],
    "dispatch": false,
    "action": {
      "kind": "none"
    },
    "combos": [
      "Ctrl+Y"
    ]
  },
  {
    "id": "field.numeric.step.left",
    "description": "Step value down",
    "descriptionZh": "数值减一步",
    "contexts": [
      "numeric"
    ],
    "dispatch": false,
    "action": {
      "kind": "none"
    },
    "combos": [
      "Left"
    ]
  },
  {
    "id": "field.numeric.step.right",
    "description": "Step value up",
    "descriptionZh": "数值加一步",
    "contexts": [
      "numeric"
    ],
    "dispatch": false,
    "action": {
      "kind": "none"
    },
    "combos": [
      "Right"
    ]
  },
  {
    "id": "field.numeric.fast-step.left",
    "description": "Fast step value down",
    "descriptionZh": "数值快速减一步",
    "contexts": [
      "numeric"
    ],
    "dispatch": false,
    "action": {
      "kind": "none"
    },
    "combos": [
      "Shift+Left"
    ]
  },
  {
    "id": "field.numeric.fast-step.right",
    "description": "Fast step value up",
    "descriptionZh": "数值快速加一步",
    "contexts": [
      "numeric"
    ],
    "dispatch": false,
    "action": {
      "kind": "none"
    },
    "combos": [
      "Shift+Right"
    ]
  },
  {
    "id": "field.numeric.delete.backward",
    "description": "Delete previous character",
    "descriptionZh": "删除前一个字符",
    "contexts": [
      "numeric"
    ],
    "dispatch": false,
    "action": {
      "kind": "none"
    },
    "combos": [
      "Backspace"
    ]
  },
  {
    "id": "field.numeric.delete.forward",
    "description": "Delete next character",
    "descriptionZh": "删除后一个字符",
    "contexts": [
      "numeric"
    ],
    "dispatch": false,
    "action": {
      "kind": "none"
    },
    "combos": [
      "Delete"
    ]
  },
  {
    "id": "field.numeric.undo",
    "description": "Undo numeric edit",
    "descriptionZh": "撤销数值编辑",
    "contexts": [
      "numeric"
    ],
    "dispatch": false,
    "action": {
      "kind": "none"
    },
    "combos": [
      "Ctrl+Z"
    ]
  },
  {
    "id": "field.numeric.redo",
    "description": "Redo numeric edit",
    "descriptionZh": "重做数值编辑",
    "contexts": [
      "numeric"
    ],
    "dispatch": false,
    "action": {
      "kind": "none"
    },
    "combos": [
      "Ctrl+Y"
    ]
  },
  {
    "id": "field.boolean.toggle",
    "description": "Toggle boolean value",
    "descriptionZh": "切换布尔值",
    "contexts": [
      "boolean"
    ],
    "dispatch": false,
    "action": {
      "kind": "none"
    },
    "combos": [
      "Space",
      "Left",
      "Right"
    ]
  },
  {
    "id": "field.enum.prev",
    "description": "Previous enum option",
    "descriptionZh": "上一个枚举选项",
    "contexts": [
      "enum"
    ],
    "dispatch": false,
    "action": {
      "kind": "none"
    },
    "combos": [
      "Up",
      "Left"
    ]
  },
  {
    "id": "field.enum.next",
    "description": "Next enum option",
    "descriptionZh": "下一个枚举选项",
    "contexts": [
      "enum"
    ],
    "dispatch": false,
    "action": {
      "kind": "none"
    },
    "combos": [
      "Down",
      "Right"
    ]
  },
  {
    "id": "field.composite.prev",
    "description": "Previous composite variant",
    "descriptionZh": "上一个复合变体",
    "contexts": [
      "composite"
    ],
    "dispatch": false,
    "action": {
      "kind": "none"
    },
    "combos": [
      "Left"
    ]
  },
  {
    "id": "field.composite.next",
    "description": "Next composite variant",
    "descriptionZh": "下一个复合变体",
    "contexts": [
      "composite"
    ],
    "dispatch": false,
    "action": {
      "kind": "none"
    },
    "combos": [
      "Right"
    ]
  },
  {
    "id": "field.array-buffer.delete.backward",
    "description": "Delete previous array buffer character",
    "descriptionZh": "删除前一个数组缓冲字符",
    "contexts": [
      "arrayBuffer"
    ],
    "dispatch": false,
    "action": {
      "kind": "none"
    },
    "combos": [
      "Backspace"
    ]
  },
  {
    "id": "field.array-buffer.clear",
    "description": "Clear array buffer",
    "descriptionZh": "清空数组缓冲",
    "contexts": [
      "arrayBuffer"
    ],
    "dispatch": false,
    "action": {
      "kind": "none"
    },
    "combos": [
      "Delete"
    ]
  },
  {
    "id": "popup.close",
    "description": "Close popup",
    "descriptionZh": "关闭弹窗",
    "contexts": [
      "popup"
    ],
    "action": {
      "kind": "popupClose"
    },
    "combos": [
      "Esc"
    ]
  },
  {
    "id": "popup.select.prev",
    "description": "Select previous popup option",
    "descriptionZh": "选择上一个弹窗选项",
    "contexts": [
      "popup"
    ],
    "action": {
      "kind": "popupSelect",
      "delta": -1
    },
    "combos": [
      "Up"
    ]
  },
  {
    "id": "popup.select.next",
    "description": "Select next popup option",
    "descriptionZh": "选择下一个弹窗选项",
    "contexts": [
      "popup"
    ],
    "action": {
      "kind": "popupSelect",
      "delta": 1
    },
    "combos": [
      "Down"
    ]
  },
  {
    "id": "popup.option.toggle",
    "description": "Toggle popup option",
    "descriptionZh": "切换弹窗选项",
    "contexts": [
      "popup"
    ],
    "action": {
      "kind": "popupToggle"
    },
    "combos": [
      "Space"
    ]
  },
  {
    "id": "popup.apply",
    "description": "Apply popup selection",
    "descriptionZh": "应用弹窗选择",
    "contexts": [
      "popup"
    ],
    "action": {
      "kind": "popupApply"
    },
    "combos": [
      "Enter"
    ]
  },
  {
    "id": "help.close",
    "description": "Close help",
    "descriptionZh": "关闭帮助",
    "contexts": [
      "help"
    ],
    "action": {
      "kind": "helpClose"
    },
    "combos": [
      "Esc",
      "Ctrl+H",
      "Ctrl+?"
    ]
  },
  {
    "id": "help.page.next",
    "description": "Next error page",
    "descriptionZh": "下一页错误",
    "contexts": [
      "help"
    ],
    "action": {
      "kind": "helpPageStep",
      "delta": 1
    },
    "combos": [
      "Tab"
    ]
  },
  {
    "id": "help.page.prev",
    "description": "Previous error page",
    "descriptionZh": "上一页错误",
    "contexts": [
      "help"
    ],
    "action": {
      "kind": "helpPageStep",
      "delta": -1
    },
    "combos": [
      "BackTab"
    ]
  },
  {
    "id": "help.shortcuts.scroll.up",
    "description": "Scroll shortcuts up",
    "descriptionZh": "快捷键向上滚动",
    "contexts": [
      "help"
    ],
    "action": {
      "kind": "helpShortcutScroll",
      "delta": -1
    },
    "combos": [
      "Up",
      "k"
    ]
  },
  {
    "id": "help.shortcuts.scroll.down",
    "description": "Scroll shortcuts down",
    "descriptionZh": "快捷键向下滚动",
    "contexts": [
      "help"
    ],
    "action": {
      "kind": "helpShortcutScroll",
      "delta": 1
    },
    "combos": [
      "Down",
      "j"
    ]
  },
  {
    "id": "help.shortcuts.page.up",
    "description": "Page shortcuts up",
    "descriptionZh": "快捷键上翻页",
    "contexts": [
      "help"
    ],
    "action": {
      "kind": "helpShortcutPage",
      "delta": -1
    },
    "combos": [
      "PageUp"
    ]
  },
  {
    "id": "help.shortcuts.page.down",
    "description": "Page shortcuts down",
    "descriptionZh": "快捷键下翻页",
    "contexts": [
      "help"
    ],
    "action": {
      "kind": "helpShortcutPage",
      "delta": 1
    },
    "combos": [
      "PageDown"
    ]
  },
  {
    "id": "help.shortcuts.home",
    "description": "Jump shortcuts to top",
    "descriptionZh": "快捷键跳到顶部",
    "contexts": [
      "help"
    ],
    "action": {
      "kind": "helpShortcutHome"
    },
    "combos": [
      "Home"
    ]
  },
  {
    "id": "help.shortcuts.end",
    "description": "Jump shortcuts to bottom",
    "descriptionZh": "快捷键跳到底部",
    "contexts": [
      "help"
    ],
    "action": {
      "kind": "helpShortcutEnd"
    },
    "combos": [
      "End"
    ]
  },
  {
    "id": "help.errors.scroll.left",
    "description": "Scroll error text left",
    "descriptionZh": "错误文本左滚",
    "contexts": [
      "help"
    ],
    "action": {
      "kind": "helpErrorScroll",
      "delta": -1
    },
    "combos": [
      "h"
    ]
  },
  {
    "id": "help.errors.scroll.right",
    "description": "Scroll error text right",
    "descriptionZh": "错误文本右滚",
    "contexts": [
      "help"
    ],
    "action": {
      "kind": "helpErrorScroll",
      "delta": 1
    },
    "combos": [
      "l"
    ]
  },
  {
    "id": "section.next",
    "description": "Next section",
    "descriptionZh": "下一个分区",
    "contexts": [
      "default"
    ],
    "action": {
      "kind": "sectionStep",
      "delta": 1
    },
    "combos": [
      "Ctrl+Tab"
    ]
  },
  {
    "id": "section.prev",
    "description": "Previous section",
    "descriptionZh": "上一个分区",
    "contexts": [
      "default"
    ],
    "action": {
      "kind": "sectionStep",
      "delta": -1
    },
    "combos": [
      "Ctrl+Shift+Tab"
    ]
  },
  {
    "id": "root.next",
    "description": "Next root tab",
    "descriptionZh": "下一个根标签",
    "contexts": [
      "default"
    ],
    "action": {
      "kind": "rootStep",
      "delta": 1
    },
    "combos": [
      "Ctrl+L"
    ]
  },
  {
    "id": "root.prev",
    "description": "Previous root tab",
    "descriptionZh": "上一个根标签",
    "contexts": [
      "default"
    ],
    "action": {
      "kind": "rootStep",
      "delta": -1
    },
    "combos": [
      "Ctrl+J"
    ]
  },
  {
    "id": "popup.activate",
    "description": "Open popup / apply selection",
    "descriptionZh": "打开弹窗 / 应用选择",
    "contexts": [
      "default",
      "boolean",
      "enum",
      "multiSelect",
      "composite"
    ],
    "action": {
      "kind": "togglePopup"
    },
    "combos": [
      "Enter"
    ]
  },
  {
    "id": "composite.edit",
    "description": "Open composite editor",
    "descriptionZh": "打开复合编辑器",
    "contexts": [
      "default",
      "collection"
    ],
    "action": {
      "kind": "editComposite"
    },
    "combos": [
      "Ctrl+E"
    ]
  },
  {
    "id": "list.add",
    "description": "Add entry",
    "descriptionZh": "添加条目",
    "contexts": [
      "collection",
      "overlay"
    ],
    "action": {
      "kind": "listAddEntry"
    },
    "combos": [
      "Ctrl+N"
    ]
  },
  {
    "id": "list.remove",
    "description": "Remove entry",
    "descriptionZh": "删除条目",
    "contexts": [
      "collection",
      "overlay"
    ],
    "action": {
      "kind": "listRemoveEntry"
    },
    "combos": [
      "Ctrl+D"
    ]
  },
  {
    "id": "list.select.prev",
    "description": "Select previous entry",
    "descriptionZh": "选择上一个条目",
    "contexts": [
      "collection",
      "overlay"
    ],
    "action": {
      "kind": "listSelect",
      "delta": -1
    },
    "combos": [
      "Ctrl+Left"
    ]
  },
  {
    "id": "list.select.next",
    "description": "Select next entry",
    "descriptionZh": "选择下一个条目",
    "contexts": [
      "collection",
      "overlay"
    ],
    "action": {
      "kind": "listSelect",
      "delta": 1
    },
    "combos": [
      "Ctrl+Right"
    ]
  },
  {
    "id": "list.move.up",
    "description": "Move entry up",
    "descriptionZh": "条目上移",
    "contexts": [
      "collection",
      "overlay"
    ],
    "action": {
      "kind": "listMove",
      "delta": -1
    },
    "combos": [
      "Ctrl+Up"
    ]
  },
  {
    "id": "list.move.down",
    "description": "Move entry down",
    "descriptionZh": "条目下移",
    "contexts": [
      "collection",
      "overlay"
    ],
    "action": {
      "kind": "listMove",
      "delta": 1
    },
    "combos": [
      "Ctrl+Down"
    ]
  },
  {
    "id": "app.save",
    "description": "Save & validate (overlays stay open)",
    "descriptionZh": "保存并验证（覆盖层保持打开）",
    "contexts": [
      "default",
      "overlay"
    ],
    "action": {
      "kind": "save"
    },
    "combos": [
      "Ctrl+S"
    ]
  },
  {
    "id": "app.quit",
    "description": "Quit (confirm if dirty)",
    "descriptionZh": "退出（脏状态需确认）",
    "contexts": [
      "default"
    ],
    "action": {
      "kind": "quit"
    },
    "combos": [
      "Ctrl+Q",
      "Ctrl+C"
    ]
  },
  {
    "id": "status.reset",
    "description": "Cancel / clear status (overlays: pop current level)",
    "descriptionZh": "取消 / 清除状态（覆盖层：弹出当前层）",
    "contexts": [
      "default",
      "overlay"
    ],
    "action": {
      "kind": "resetStatus"
    },
    "combos": [
      "Esc"
    ]
  },
  {
    "id": "help.show",
    "description": "Show help and error summary",
    "descriptionZh": "显示帮助与错误摘要",
    "contexts": [
      "default",
      "collection",
      "overlay"
    ],
    "action": {
      "kind": "showHelp"
    },
    "combos": [
      "Ctrl+?",
      "Ctrl+H"
    ]
  }
]
