OptionalborrowOther scopes that BORROW this command (in addition to the file's owner CommandCatalog.scope).
A command lives in its owner's file; borrow seeds it into the listed scopes too — e.g. the insert
commands are editor-owned with borrow: ['sheet']; undo is sheet-owned with borrow: ['workbook'].
Routing metadata only — not part of the command chrome.
OptionaldescriptionCommand description.
OptionalgroupPer-surface description overrides keyed by groupKey — the description twin of
groupLabels. Same field/shape as ICommandDefinition.groupDescriptions.
OptionalgroupPer-surface icon overrides keyed by groupKey. Legitimate but bad hygiene across scopes (I18N-DESIGN.md decision 8): an icon should normally be identical everywhere a command appears.
OptionalgroupPer-surface label overrides keyed by groupKey (the flat-pack cmd.<key>.label@<groupKey> variants) —
e.g. { view: 'Row Gridlines', gridlinesOptions: 'Rows' }. Same field/shape as
ICommandDefinition.groupLabels.
OptionaliconIcon glyph key (string only — React-element icons stay dynamic/TS).
OptionallabelCommand label. May contain {param} placeholders once the parameterized path is wired.
OptionalparamsDefault message parameters for parameterized (ICU-subset) label/groupLabels/
description messages — e.g. { "count": 1, "mode": "none" } for
"{count, plural, one{Insert Row} other{Insert # Rows}}". Seeded into the definition so
pre-mount surfaces (shortcut dialog, command palette) render the sensible default; a dynamic
contributor overrides with live values (ICommandDefinition.params). Copied from English by
the build (never translated) — messages localize, parameter defaults don't.
OptionalshortcutKeyboard shortcut(s), compact VSCode-style: 'ctrl+shift+h', 'alt+='. An array is a list
of alternative bindings. Parsed to IKeyStroke at load via parseShortcutString.
null means explicitly unbound in this locale (the usual convention: undefined = take
the default, null = exclude it). A locale pack inherits English shortcuts by absence, so
null is the only way for a locale to drop one — needed when a localized mnemonic claims a
chord English gives to some other command (de Bold takes ctrl+shift+F, so de
formatCellsFont must give it up). See config/i18n-catalog-build.mjs.
OptionaltagsAccumulated metadata tags (e.g. 'mutator', 'quickAction').
The JSON-serializable chrome for one command — the literal subset of ICommandDefinition (everything except callbacks/state/context, which stay in the
…DynamicTS half). This is the per-command record inside a CommandCatalog, the source of truth for a command's presentation (I18N-DESIGN.md decision 8).Field names are the compact catalog form; chromeToPartial maps them onto the
ICommandDefinitionnames (desc → description,group → groupLabels). Only literal values live here — a dynamic (function) label such asselectNamed's stays in the dynamic contribution and wins at resolve time (functions always beat the catalog).