Files

1861 lines
387 KiB
JSON

{
"$schema": "./param_concepts.schema.json",
"version": 1,
"morphological_rules": {
"kebab_camel_equivalence": {"desc":"--page-size == --pageSize","enabled":true},
"separator_normalization": {"desc":"-, _, . are equivalent separators","enabled":true},
"trailing_id_tolerance": {"desc":"--base tolerates --base-id when only one is a real flag on the command","enabled":true,"guard":"the two must not both be real flags with different semantics"},
"pluralization": {"desc":"--id<->--ids, --user<->--users","enabled":false,"reason":"singular/list semantics can differ; handled by concept+intersection or command override instead"}
},
"concepts": {
"search_query": {"denotes":"search keyword string","canonical_hint":"query","members":["query","keyword","keywords","q","search-word"],"excludes":["name","subject","text","title"],"commands":["aitable +base-search","aitable +find-record","aitable +record-bulk-patch","aitable +record-query","aitable +template-search","aitable base search","aitable field search-options","aitable record list","aitable record query","aitable search","aitable template search","contact +dept-members","contact +resolve-dept","contact +search-user","doc +create-from-template","doc +find-doc","doc +search","doc +template-search","doc template search","drive +find-file","drive +search","drive +search-docs","drive search","mail +find-mail-user","mail user search","oa +search-forms","oa approval search-forms","calendar +book-search","calendar +search-event","minutes +latest","minutes +list-all","minutes +list-mine","minutes +list-shared","minutes +search","minutes +transcript","todo +search","wiki +node-search","wiki +resolve-space","wiki +space-search","wiki node search","wiki space search","attendance +search-adjustment-rule","attendance +search-class","attendance +search-group","attendance +search-overtime-rule","mail +user-search","oa +list-cc","oa +list-executed","oa +list-pending","oa +list-submitted","oa +my-initiated","report +template-search","aisearch +search-person","contact dept search","contact user search","devdoc article search","hrbrain talent-pool list","hrbrain search employees","agoal obj-template list","agoal report list-statistics","agoal report submit-detail","dev app event list","dev app permission list","dev doc search","devapp +event-list","devapp +permission-list","event +listen-im","event consume","recruit job list"],"risk":"green"},
"pagination_size": {"denotes":"returned item count upper bound","canonical_hint":"limit","members":["limit","size","page-size","max-results","max-result","take","top","per-page"],"excludes":["count","page","cursor"],"commands":["aitable +base-list","aitable +record-history-list","aitable +record-query","aitable +record-query-empty","aitable +template-search","aitable +workflow-list","aitable base list","aitable field search-options","aitable list","aitable record history-list","aitable record list","aitable record query","aitable record query-empty","aitable template search","aitable workflow history","aitable workflow list","calendar event list","chat message list","devdoc article search","doc +comment-list","doc +find-doc","doc +list","doc +search","doc +template-list","doc +template-search","doc +version-list","doc comment list","doc template list","doc template search","doc version list","drive +list","drive +recent","drive +recycle-list","drive +search","drive +search-docs","drive +star-list","drive +version-history","drive list","drive list-spaces","drive permission list","drive recent","drive recycle list","drive search","drive star list","mail thread list","calendar +agenda","calendar +room-groups","calendar +room-find","calendar +search-event","minutes +list-all","minutes +list-mine","minutes +list-shared","minutes +search","minutes list all","minutes list mine","minutes list shared","minutes tag query","todo +list-comment","todo comment list","wiki +member-list","wiki +node-search","wiki +space-search","wiki feed list","wiki member list","wiki node list","wiki node search","wiki space list","wiki space search","attendance +check-result","attendance +search-adjustment-rule","attendance +search-class","attendance +search-group","attendance +search-overtime-rule","mail +contact-list","mail +find-mail-user","mail +recent-mail","mail +search-mail","mail +template-list","mail +thread-list","mail +unread-mail","mail +user-search","mail +triage","oa +list-cc","oa +list-forms","oa +list-pending","oa +list-submitted","oa +my-initiated","report +inbox-list","report +outbox-list","contact user dismission search","hrbrain talent-pool list","hrbrain talent-pool employees","hrbrain search employees","hrbrain search employees-structured","agoal obj-template list","agoal report submit-detail","dev app event list","dev app list","dev app permission list","dev app version list","dev doc search","devapp +event-list","devapp +list","devapp +permission-list","devapp +version-list","recruit job list"],"risk":"green"},
"page_number": {"denotes":"one-based page number","canonical_hint":"page","members":["page","page-no","current-page","page-num"],"excludes":["cursor","page-index","page-size","page-token"],"commands":["devdoc article search","todo +get-my-tasks","todo +list-comment","todo comment list","todo task list","attendance +search-adjustment-rule","attendance +search-class","attendance +search-group","attendance +search-overtime-rule","oa +list-cc","oa +list-executed","oa +list-pending","oa +list-submitted","oa +my-initiated","contact user dismission search","hrbrain talent-pool list","hrbrain talent-pool employees","hrbrain search employees","hrbrain search employees-structured","agoal obj-template list","agoal report submit-detail","dev doc search"],"risk":"green"},
"page_cursor": {"denotes":"pagination cursor/token","canonical_hint":"cursor","members":["cursor","next-cursor","page-token","next-token","next-page-token"],"excludes":["page","offset"],"commands":["aitable +base-list","aitable +base-search","aitable +record-query","aitable +record-query-empty","aitable +template-search","aitable base list","aitable base search","aitable list","aitable record list","aitable record query","aitable record query-empty","aitable search","aitable template search","calendar event list","doc +comment-list","doc +list","doc +search","doc +template-list","doc +template-search","doc +version-list","doc comment list","doc template list","doc template search","doc version list","drive +list","drive +recent","drive +recycle-list","drive +search","drive +star-list","drive +version-history","drive list","drive list-spaces","drive recent","drive recycle list","drive search","drive star list","calendar +agenda","calendar +search-event","minutes +detail","minutes +list-all","minutes +list-mine","minutes +list-shared","minutes +search","minutes +transcript","wiki +feed-list","wiki +node-search","wiki feed list","wiki node list","wiki node search","wiki space list","mail +contact-list","mail +template-list","mail +thread-list","mail +user-search","mail +find-mail-user","mail +recent-mail","mail +search-mail","mail +triage","mail +unread-mail","oa +list-forms","dev app event list","dev app list","dev app permission list","dev app version list","devapp +event-list","devapp +list","devapp +permission-list","devapp +version-list","recruit job list"],"risk":"green"},
"content_text": {"denotes":"text body content","canonical_hint":"text","members":["text","content","body"],"excludes":["title","name"],"commands":["doc +checkpoint-update","doc +comment-create","doc +comment-reply","doc +comment-update","doc +create","doc +doc-append","doc block insert","doc block update","doc comment create","doc comment create-inline","doc comment reply","doc comment update","doc create","minutes +summary","minutes update summary","todo +comment","todo comment add","ding +send-personal","markdown create","markdown overwrite"],"risk":"green"},
"time_start": {"denotes":"start time point with unchanged value format and unit","canonical_hint":"start","members":["start","start-time","start-date","from","from-date","begin","since","time-min","min-time"],"excludes":["date","time","end"],"commands":["calendar event list","chat message list-all","report list","calendar +agenda","calendar +free","calendar +freebusy","calendar +my-free","calendar +suggest-time","calendar +room-find","calendar +search-event","calendar +suggestion","minutes +search","minutes audio-memo list","minutes list all","minutes list mine","minutes list shared","attendance +check-record","attendance +check-result","attendance +get-checkin-record","attendance +get-leave-records","attendance +get-schedule","attendance +list-approve","attendance +query-report-data","mail +thread-list","oa +list-pending","report +inbox-list","report +outbox-list","report +report-latest","contact user dismission search"],"risk":"yellow"},
"time_end": {"denotes":"end time point with unchanged value format and unit","canonical_hint":"end","members":["end","end-time","end-date","time-max","max-time"],"excludes":["date","time","start"],"commands":["calendar event list","calendar +agenda","calendar +free","calendar +freebusy","calendar +my-free","calendar +suggest-time","calendar +room-find","calendar +search-event","calendar +suggestion","minutes +search","minutes audio-memo list","minutes list all","minutes list mine","minutes list shared","attendance +check-record","attendance +check-result","attendance +get-checkin-record","attendance +get-leave-records","attendance +get-schedule","attendance +list-approve","attendance +query-report-data","mail +thread-list","oa +list-pending","report +inbox-list","report +outbox-list","report +report-latest","contact user dismission search"],"risk":"yellow"},
"base_id": {"denotes":"multi-dimensional table Base id","canonical_hint":"base-id","members":["base","base-id","base-token"],"excludes":[],"commands":["aitable +advperm-disable","aitable +advperm-enable","aitable +attachment-put","aitable +attachment-remove","aitable +attachment-upload","aitable +base-copy","aitable +base-delete","aitable +base-get","aitable +base-get-primary-doc-id","aitable +base-schema-snapshot","aitable +base-update","aitable +chart-delete","aitable +chart-get","aitable +chart-share-get","aitable +chart-share-update","aitable +chart-update","aitable +dashboard-arrange","aitable +dashboard-delete","aitable +dashboard-get","aitable +dashboard-share-get","aitable +dashboard-share-update","aitable +dashboard-update","aitable +export-data","aitable +field-delete","aitable +field-get","aitable +field-update","aitable +find-record","aitable +form-delete","aitable +form-field-hide","aitable +form-field-list","aitable +form-field-update","aitable +form-list","aitable +form-share-get","aitable +form-share-update","aitable +form-update","aitable +import-upload","aitable +list-tables","aitable +record-bulk-patch","aitable +record-delete","aitable +record-history-list","aitable +record-primary-doc-create","aitable +record-primary-doc-get","aitable +record-query","aitable +record-query-empty","aitable +record-share-links","aitable +record-share-url","aitable +record-update","aitable +record-upsert","aitable +record-upsert-by-key","aitable +resolve-table","aitable +role-create","aitable +role-delete","aitable +role-get","aitable +role-list","aitable +role-update","aitable +section-create","aitable +section-delete","aitable +section-list-empty","aitable +section-list-nodes","aitable +section-move-node","aitable +section-rename","aitable +section-reorder","aitable +table-delete","aitable +table-get","aitable +table-update","aitable +view-delete","aitable +view-duplicate","aitable +view-get","aitable +view-get-frozen-cols","aitable +view-get-lock","aitable +view-get-row-height","aitable +view-lock","aitable +view-preset-apply","aitable +view-set-fill-color-rule","aitable +view-set-frozen-cols","aitable +view-set-row-height","aitable +view-update","aitable +workflow-deploy","aitable +workflow-disable","aitable +workflow-enable","aitable +workflow-get","aitable +workflow-list","aitable advperm disable","aitable advperm enable","aitable advperm role-create","aitable advperm role-delete","aitable advperm role-get","aitable advperm role-list","aitable advperm role-update","aitable attachment upload","aitable base copy","aitable base delete","aitable base get","aitable base get-primary-doc-id","aitable base update","aitable chart create","aitable chart delete","aitable chart get","aitable chart share get","aitable chart share update","aitable chart update","aitable dashboard arrange","aitable dashboard create","aitable dashboard delete","aitable dashboard get","aitable dashboard share get","aitable dashboard share update","aitable dashboard update","aitable export data","aitable field create","aitable field delete","aitable field get","aitable field list","aitable field search-options","aitable field update","aitable form create","aitable form delete","aitable form field hide","aitable form field list","aitable form field update","aitable form get","aitable form list","aitable form questions create","aitable form questions delete","aitable form share get","aitable form share update","aitable form update","aitable import upload","aitable info","aitable record batch-update","aitable record create","aitable record delete","aitable record get","aitable record history-list","aitable record primary-doc-create","aitable record primary-doc-get","aitable record query","aitable record query-empty","aitable record share-url","aitable record update","aitable record upsert","aitable section create","aitable section delete","aitable section list-empty","aitable section list-nodes","aitable section move-node","aitable section rename","aitable section reorder","aitable table create","aitable table delete","aitable table get","aitable table list","aitable table update","aitable view create","aitable view delete","aitable view duplicate","aitable view get aggregate","aitable view get card","aitable view get field-widths","aitable view get fill-color-rule","aitable view get filter","aitable view get frozen-cols","aitable view get group","aitable view get lock","aitable view get row-height","aitable view get sort","aitable view get timebar","aitable view get visible-fields","aitable view list","aitable view lock","aitable view update aggregate","aitable view update card","aitable view update field-widths","aitable view update fill-color-rule","aitable view update filter","aitable view update frozen-cols","aitable view update group","aitable view update name","aitable view update row-height","aitable view update sort","aitable view update timebar","aitable view update visible-fields","aitable workflow create","aitable workflow disable","aitable workflow enable","aitable workflow get","aitable workflow history","aitable workflow list","aitable workflow run","aitable workflow update"],"risk":"green"},
"table_id": {"denotes":"single AI Table data-table Table ID","canonical_hint":"table-id","members":["table","table-id"],"excludes":["table-ids","source-table-id","target-table-id","name"],"commands":["aitable +attachment-put","aitable +attachment-remove","aitable +base-get-primary-doc-id","aitable +export-data","aitable +field-delete","aitable +field-get","aitable +field-update","aitable +find-record","aitable +form-delete","aitable +form-field-hide","aitable +form-field-list","aitable +form-field-update","aitable +form-list","aitable +form-share-get","aitable +form-share-update","aitable +form-update","aitable +import-data","aitable +record-bulk-patch","aitable +record-delete","aitable +record-history-list","aitable +record-primary-doc-create","aitable +record-primary-doc-get","aitable +record-query","aitable +record-query-empty","aitable +record-share-links","aitable +record-share-url","aitable +record-update","aitable +record-upsert","aitable +record-upsert-by-key","aitable +table-delete","aitable +table-update","aitable +view-delete","aitable +view-duplicate","aitable +view-get","aitable +view-get-frozen-cols","aitable +view-get-lock","aitable +view-get-row-height","aitable +view-lock","aitable +view-preset-apply","aitable +view-set-fill-color-rule","aitable +view-set-frozen-cols","aitable +view-set-row-height","aitable +view-update","aitable base get-primary-doc-id","aitable export data","aitable field create","aitable field delete","aitable field get","aitable field list","aitable field search-options","aitable field update","aitable form create","aitable form delete","aitable form field hide","aitable form field list","aitable form field update","aitable form get","aitable form list","aitable form questions create","aitable form questions delete","aitable form share get","aitable form share update","aitable form update","aitable import data","aitable record batch-update","aitable record create","aitable record delete","aitable record get","aitable record history-list","aitable record primary-doc-create","aitable record primary-doc-get","aitable record query","aitable record query-empty","aitable record share-url","aitable record update","aitable record upsert","aitable table delete","aitable table update","aitable view create","aitable view delete","aitable view duplicate","aitable view get aggregate","aitable view get card","aitable view get field-widths","aitable view get fill-color-rule","aitable view get filter","aitable view get frozen-cols","aitable view get group","aitable view get lock","aitable view get row-height","aitable view get sort","aitable view get timebar","aitable view get visible-fields","aitable view list","aitable view lock","aitable view update aggregate","aitable view update card","aitable view update field-widths","aitable view update fill-color-rule","aitable view update filter","aitable view update frozen-cols","aitable view update group","aitable view update name","aitable view update row-height","aitable view update sort","aitable view update timebar","aitable view update visible-fields","aitable workflow run"],"risk":"green"},
"plain_description": {"denotes":"plain-text description or remark with unchanged value","canonical_hint":"description","members":["description","desc"],"excludes":["field-description","config"],"commands":["aitable +base-update","aitable +form-update","aitable +table-update","aitable base update","aitable form create","aitable form update","aitable table update","calendar +create","calendar +update","wiki +space-create","wiki space create","dev app create","dev app robot config","dev app robot submit","dev app update","dev app version create","devapp +create","devapp +update"],"risk":"green"},
"workflow_id": {"denotes":"single AI Table workflow identifier; service flowId and CLI workflow-id carry the same value","canonical_hint":"workflow-id","members":["workflow-id","flow-id"],"excludes":["id","task-id"],"commands":["aitable +workflow-deploy","aitable +workflow-disable","aitable +workflow-enable","aitable +workflow-get","aitable workflow disable","aitable workflow enable","aitable workflow get","aitable workflow history","aitable workflow run","aitable workflow update"],"risk":"green"},
"dept_id": {"denotes":"single department id","canonical_hint":"dept","members":["dept","dept-id","department","department-id","parent","parent-id"],"excludes":["depts","dept-ids","department-ids","name","query"],"commands":["contact +list-sub-depts","contact dept list-children"],"risk":"yellow"},
"dept_ids": {"denotes":"department id list","canonical_hint":"dept-ids","members":["depts","dept-ids","department-ids"],"excludes":["dept","dept-id","department-id","name","query"],"commands":["contact +list-dept-members","contact account create","contact dept list-members","contact user dismission search"],"risk":"yellow"},
"group_id": {"denotes":"single DingTalk numeric groupId","canonical_hint":"group-id","members":["group-id"],"excludes":["group","conversation-id","chat","chat-id","open-conversation-id","conversation-ids","open-conversation-ids","group-name","name","id"],"commands":["chat +chat-get-by-id","chat group get-by-group-id"],"risk":"yellow"},
"open_conversation_id": {"denotes":"single DingTalk openConversationId with unchanged value","canonical_hint":"conversation-id","members":["group","conversation-id","chat","chat-id","open-conversation-id"],"excludes":["group-id","group-ids","conversation-ids","open-conversation-ids","group-name","name","id","source","target","src-conversation-id","dest-conversation-id"],"commands":["chat +category-add-conversation","chat +category-remove-conversation","chat +chat-add-bot","chat +chat-audit-join","chat +chat-bots","chat +chat-dismiss","chat +chat-invite-url","chat +chat-members-get","chat +chat-mute","chat +chat-mute-member","chat +chat-quit","chat +chat-remove-bot","chat +chat-role-add","chat +chat-role-list","chat +chat-role-query-user","chat +chat-role-remove","chat +chat-role-remove-user","chat +chat-role-set-user","chat +chat-role-update","chat +chat-set-admin","chat +chat-set-history","chat +chat-transfer-owner","chat +chat-update-alias","chat +chat-update-icon","chat +chat-update-nick","chat +chat-update-settings","chat +conversation-clear-messages","chat +conversation-clear-red-point","chat +conversation-hide","chat +conversation-info","chat +conversation-mark-read","chat +conversation-mark-unread","chat +conversation-mute","chat +flag-cancel","chat +flag-create","chat +messages-add-emoji","chat +messages-add-text-emotion","chat +messages-list-pin","chat +messages-read-status","chat +messages-recall-by-bot","chat +messages-remove-emoji","chat +messages-remove-text-emotion","chat +messages-reply","chat +messages-resource-download","chat +messages-resource-url","chat +messages-send-by-bot","chat +messages-set-pin","chat +messages-set-top","chat +messages-unset-pin","chat +messages-unset-top","chat category add-conv","chat category remove-conv","chat chmod","chat clear-messages","chat clear-red-point","chat conversation-info","chat group audit-join-validation","chat group bots","chat group dismiss","chat group invite-url","chat group members","chat group members add","chat group members add-bot","chat group members list-by-ids","chat group members remove","chat group members remove-bot","chat group notice create","chat group notice edit","chat group notice get","chat group notice list","chat group quit","chat group rename","chat group set-admin","chat group set-history","chat group transfer-owner","chat group update-alias","chat group update-icon","chat group update-nick","chat group update-settings","chat group-mute","chat group-mute-member","chat group-role add","chat group-role list","chat group-role query-user","chat group-role remove","chat group-role remove-user","chat group-role set-user","chat group-role update","chat hide","chat mark-read","chat mark-unread","chat message add-favorite","chat message download-media","chat message list","chat message list-mentions","chat message list-pin-msg","chat message list-topic-replies","chat message read-status","chat message recall","chat message recall-by-bot","chat message remove-favorite","chat message reply","chat message search","chat message send","chat message send-by-bot","chat message send-card","chat message set-pin-msg","chat message set-top-msg","chat message unset-pin-msg","chat message unset-top-msg","chat mute-at-all","chat mute-red-envelope","chat set-top","event +listen-im","event consume"],"risk":"yellow"},
"open_conversation_ids": {"denotes":"DingTalk openConversationId list with unchanged element values","canonical_hint":"conversation-ids","members":["conversation-ids","open-conversation-ids","groups"],"excludes":["group-id","group-ids","conversation-id","open-conversation-id","chat-id"],"commands":["chat message search-advanced"],"risk":"yellow"},
"group_name": {"denotes":"group-name search keyword, not a group identifier","canonical_hint":"group-name","members":["group-name"],"excludes":["group-id","conversation-id","open-conversation-id","chat-id","id"],"commands":["chat +group-members","chat +send-to-group"],"risk":"yellow"},
"open_message_id": {"denotes":"single DingTalk openMessageId with unchanged value","canonical_hint":"open-message-id","members":["msg-id","message-id","open-message-id"],"excludes":["msg-ids","message-ids","open-message-ids","ref-msg-id","src-msg-id","open-task-id","topic-id","resource-id"],"commands":["chat +conversation-mark-read","chat +flag-cancel","chat +flag-create","chat +messages-add-emoji","chat +messages-add-text-emotion","chat +messages-forward","chat +messages-read-status","chat +messages-remove-emoji","chat +messages-remove-text-emotion","chat +messages-resource-download","chat +messages-set-pin","chat +messages-set-top","chat +messages-unset-pin","chat +messages-unset-top","chat mark-read","chat message add-emoji","chat message add-favorite","chat message add-text-emotion","chat message download-media","chat message forward","chat message read-status","chat message recall","chat message remove-emoji","chat message remove-favorite","chat message remove-text-emotion","chat message set-pin-msg","chat message set-top-msg","chat message unset-pin-msg","chat message unset-top-msg"],"risk":"yellow"},
"open_message_ids": {"denotes":"DingTalk openMessageId list with unchanged element values","canonical_hint":"msg-ids","members":["msg-ids","message-ids","open-message-ids"],"excludes":["msg-id","message-id","open-message-id","ref-msg-id","src-msg-id"],"commands":["chat +flag-cancel","chat +flag-create","chat +messages-combine-forward","chat +messages-mget","chat message combine-forward","chat message list-by-ids","chat message list-emotion-replies"],"risk":"yellow"},
"referenced_open_message_id": {"denotes":"referenced DingTalk openMessageId in a reply","canonical_hint":"ref-msg-id","members":["ref-msg-id","ref-message-id"],"excludes":["msg-id","message-id","open-message-id","msg-ids","src-msg-id"],"commands":["chat +messages-reply","chat message reply"],"risk":"yellow"},
"user_id": {"denotes":"single user id","canonical_hint":"user-id","members":["user","user-id","userid","uid","staff-id"],"excludes":["at-user-ids","to-user","users","user-ids","name"],"commands":["chat +chat-role-query-user","chat +chat-role-set-user","chat +messages-list-direct","chat chmod","chat conversation-info","chat group transfer-owner","chat group-role query-user","chat group-role remove-user","chat group-role set-user","chat message list","chat message send","contact user profile get","attendance +get-leave-records","attendance +get-self-setting","attendance +get-summary","contact account update","contact user update","contact user update-ownness","agoal user rules","agoal user objectives","event +listen-im","event consume","devapp +member-list"],"risk":"yellow"},
"user_ids": {"denotes":"user id list","canonical_hint":"user-ids","members":["users","user-ids"],"excludes":["user","user-id","userid","uid","staff-id","at-user-ids"],"commands":["attendance +check-result","attendance check result","chat +messages-batch-send-by-bot","chat group members remove","chat group set-admin","chat group-mute-member","chat message read-status","chat message search-advanced","chat message send-by-bot","calendar +freebusy","calendar +suggestion","minutes +share","minutes +unshare","minutes permission add","minutes permission remove","wiki +member-add","wiki +member-remove","wiki +member-update","attendance +check-record","attendance +get-checkin-record","attendance +get-schedule","attendance +list-approve","attendance +query-report-data","contact user get","dev app member add","dev app member remove","devapp +member-add","devapp +member-remove"],"risk":"yellow"},
"open_dingtalk_ids": {"denotes":"DingTalk openDingTalkId list with unchanged element values","canonical_hint":"open-dingtalk-ids","members":["open-dingtalk-ids"],"excludes":["user","user-id","user-ids","staff-id","users"],"commands":["chat +chat-members-get","chat category create-smart","chat group members list-by-ids","chat message send-by-bot","ding +send-personal"],"risk":"yellow"},
"ding_id": {"denotes":"DING id","canonical_hint":"ding-id","members":["ding-id","open-ding-id"],"excludes":["id"],"commands":["ding message receiver-status","ding +recall-personal","ding +receiver-status"],"risk":"yellow"},
"folder_id": {"denotes":"drive folder id","canonical_hint":"folder","members":["folder","folder-id"],"excludes":["space-id"],"commands":["drive +copy","drive +create-folder","drive +create-shortcut","drive +list","drive +move","drive +upload","drive commit","drive copy","drive list","drive mkdir","drive move","drive shortcut","drive upload","drive upload-info","mail folder update","markdown create"],"risk":"green"},
"drive_storage_space_id": {"denotes":"single numeric DingDrive storage space ID with unchanged value","canonical_hint":"space-id","members":["space-id","drive-space-id","storage-space-id","dingdrive-space-id"],"excludes":["space","workspace","workspace-id","knowledge-base-id","wiki-workspace-id"],"commands":["drive +create-folder","drive +download","drive +info","drive +inspect","drive +list","drive +recycle-list","drive +upload","drive commit","drive download","drive info","drive list","drive mkdir","drive recycle list","drive upload","drive upload-info","markdown fetch","markdown create","markdown overwrite","markdown patch"],"risk":"yellow"},
"app_id": {"denotes":"application id","canonical_hint":"unified-app-id","members":["app-id","unified-app-id","application-id"],"excludes":["app-key","app-secret","agent-id"],"commands":["dev app get","dev app credentials get","dev app delete","dev app disable","dev app enable","dev app event list","dev app event subscribe","dev app event unsubscribe","dev app member add","dev app member list","dev app member remove","dev app permission add","dev app permission list","dev app permission remove","dev app robot config","dev app robot disable","dev app robot enable","dev app robot get","dev app security config","dev app update","dev app version check-approval","dev app version create","dev app version get","dev app version list","dev app version publish","dev app version status","dev app webapp config","dev app webapp get","dev connect restart","dev connect status","dev connect stop","devapp +delete","devapp +disable","devapp +enable","devapp +event-list","devapp +get","devapp +member-add","devapp +member-list","devapp +member-remove","devapp +permission-list","devapp +robot-get","devapp +update","devapp +version-check-approval","devapp +version-get","devapp +version-list","devapp +version-status","devapp +webapp-config","devapp +webapp-get"],"risk":"yellow"},
"robot_code": {"denotes":"robot code","canonical_hint":"robot-code","members":["robot-code","robot"],"excludes":["robot-id","bot-id","open-bot-id","bot-code"],"commands":["chat +chat-add-bot","chat +messages-batch-recall-by-bot","chat +messages-batch-send-by-bot","chat +messages-recall-by-bot","chat +messages-send-by-bot","chat group members add-bot","chat message recall-by-bot","chat message send-by-bot","ding message send"],"risk":"yellow"},
"open_bot_id": {"denotes":"single DingTalk openBotId with unchanged value","canonical_hint":"bot-id","members":["bot-id","open-bot-id"],"excludes":["robot-code","robot","robot-id","bot-code"],"commands":["chat +chat-remove-bot","chat group members remove-bot"],"risk":"yellow"},
"doc_node_id": {"denotes":"single DingTalk document nodeId or accepted document URL/token with unchanged value","canonical_hint":"node","members":["node","node-id","doc","doc-id","file-id","document-id","url","dentry-uuid"],"excludes":["id","folder","folder-id","parent-id","workspace","workspace-id","block-id","comment-id","comment-key","job-id","task-id","template-id","version","revision","dentry-id","space-id","name","role"],"commands":["doc +access-change","doc +access-grant","doc +access-revoke","doc +background-delete","doc +background-update","doc +checkpoint-update","doc +comment-create","doc +comment-delete","doc +comment-list","doc +comment-reply","doc +comment-update","doc +copy","doc +doc-append","doc +export","doc +export-submit","doc +fetch","doc +history-list","doc +history-revert","doc +history-save","doc +inspect","doc +move","doc +review","doc +version-list","doc +version-revert","doc +version-save","doc block delete","doc block insert","doc block list","doc block update","doc comment create","doc comment create-inline","doc comment delete","doc comment list","doc comment reply","doc comment update","doc export","doc info","doc media download","doc media insert","doc media upload","doc read","doc style background clear","doc style background set","doc style cover clear","doc style cover set","doc style get","doc update","doc version list","doc version revert","doc version save","doc whiteboard insert","sheet +list-sheets","sheet +read"],"risk":"yellow"},
"doc_comment_key": {"denotes":"single DingTalk document commentKey with unchanged value","canonical_hint":"comment-key","members":["comment-key","comment-id"],"excludes":["id","node","node-id","doc-id","block-id"],"commands":["doc +comment-delete","doc +comment-reply","doc +comment-update","doc comment delete","doc comment reply","doc comment update"],"risk":"yellow"},
"doc_version_number": {"denotes":"single document or Drive ordinary-file historical version number with unchanged positive integer value","canonical_hint":"version","members":["version","version-number","version-no"],"excludes":["revision","id","node","node-id","doc-id"],"commands":["doc +history-revert","doc +version-revert","doc version revert","drive +version-download","drive +version-get","drive +version-revert","drive download","drive download-version","drive revert","markdown diff"],"risk":"yellow"},
"doc_content_format": {"denotes":"DingTalk document body format with unchanged markdown/jsonml value","canonical_hint":"content-format","members":["content-format","doc-format"],"excludes":["format","export-format","mime-type"],"commands":["doc +create","doc +update","doc create","doc update"],"risk":"green"},
"doc_edit_revision": {"denotes":"single optimistic-concurrency revision for a document edit","canonical_hint":"revision","members":["revision","expected-revision"],"excludes":["version","version-number","version-no"],"commands":["doc +update","doc update"],"risk":"yellow"},
"drive_recycle_item_id": {"denotes":"single Drive recycle-bin item ID returned by recycle list","canonical_hint":"id","members":["id","recycle-item-id","trash-item-id","deleted-item-id"],"excludes":["node","node-id","file-id","folder-id","space-id","workspace-id"],"commands":["drive +recycle-restore","drive recycle restore"],"risk":"yellow"},
"drive_modified_time_start": {"denotes":"Drive search modified-time lower bound in unchanged millisecond timestamp unit","canonical_hint":"modified-from","members":["modified-from","modified-after","modify-time-from","modified-time-start"],"excludes":["modified-to","created-from","created-to","start","from"],"commands":["drive +search","drive search"],"risk":"yellow"},
"drive_modified_time_end": {"denotes":"Drive search modified-time upper bound in unchanged millisecond timestamp unit","canonical_hint":"modified-to","members":["modified-to","modified-before","modify-time-to","modified-time-end"],"excludes":["modified-from","created-from","created-to","end","to"],"commands":["drive +search","drive search"],"risk":"yellow"},
"drive_file_size_bytes": {"denotes":"file size in bytes passed unchanged","canonical_hint":"file-size","members":["file-size","file-size-bytes","size-bytes","content-length"],"excludes":["part-size","page-size","limit","size"],"commands":["drive commit","drive upload-info"],"risk":"yellow"},
"drive_sort_direction": {"denotes":"Drive result sort direction with unchanged asc/desc enum","canonical_hint":"order","members":["order","sort","sort-direction","order-direction"],"excludes":["order-by","sort-by","order-field"],"commands":["drive +list","drive list","drive star list"],"risk":"green"},
"workspace_id": {"denotes":"single knowledge-base or document-space workspace ID/URL passed unchanged; never a numeric DingDrive storage space ID","canonical_hint":"workspace","members":["workspace","workspace-id","knowledge-base-id","wiki-workspace-id"],"excludes":["space","space-id","drive-space-id","storage-space-id","dingdrive-space-id","folder","folder-id","node","node-id","dentry-id"],"commands":["doc +access-change","doc +access-grant","doc +access-revoke","doc +copy","doc +create","doc +create-from-template","doc +grant-and-share","doc +import","doc +list","doc +move","doc create","doc file create","doc import","doc template apply","drive +copy","drive +create-shortcut","drive +move","drive copy","drive list","drive move","drive permission add","drive permission list","drive permission remove","drive permission transfer-owner","drive permission update","drive shortcut","drive upload","wiki +delete-space","wiki +feed-list","wiki +member-add","wiki +member-list","wiki +member-remove","wiki +member-update","wiki +move","wiki +node-copy","wiki +node-create","wiki +node-delete","wiki +node-list","wiki +node-search","wiki +space-get","wiki feed list","wiki member add","wiki member list","wiki member remove","wiki member update","wiki node copy","wiki node create","wiki node delete","wiki node list","wiki node move","wiki node search","wiki space delete","wiki space get","markdown fetch","markdown create","markdown overwrite","markdown patch"],"risk":"yellow"},
"created_time_start": {"denotes":"Doc/Drive search created-time lower bound in unchanged millisecond timestamp unit","canonical_hint":"created-from","members":["created-from","created-after","create-time-from","created-time-start","create-time-start"],"excludes":["created-to","modified-from","modified-to","start","from"],"commands":["doc +search","drive +search","drive search"],"risk":"yellow"},
"created_time_end": {"denotes":"Doc/Drive search created-time upper bound in unchanged millisecond timestamp unit","canonical_hint":"created-to","members":["created-to","created-before","create-time-to","created-time-end","create-time-end"],"excludes":["created-from","modified-from","modified-to","end","to"],"commands":["doc +search","drive +search","drive search"],"risk":"yellow"},
"document_permission_role": {"denotes":"direct document-space permission role on grant/apply/update, passed unchanged","canonical_hint":"role","members":["role","permission-role","access-role","member-role"],"excludes":["filter-role","reserve-role","permission","public-permission"],"commands":["doc +access-change","doc +access-grant","doc +grant-and-share","drive permission add","drive permission apply","drive permission update"],"risk":"yellow"},
"creator_user_ids": {"denotes":"creator userId list used to filter Doc/Drive search results, passed unchanged","canonical_hint":"creator-uids","members":["creator-uids","creator-user-ids","creator-ids","created-by-user-ids"],"excludes":["user","user-id","user-ids","users","owner-id","modifier-uids"],"commands":["doc +search","drive +search","drive search","recruit job list"],"risk":"yellow"},
"local_output_path": {"denotes":"local destination file or directory path for a download/export result, passed unchanged","canonical_hint":"output","members":["output","output-path","destination-path","save-path"],"excludes":["file","file-path","folder","folder-id","content-file"],"commands":["doc +export","doc +export-get","doc +media-download","doc +resource-download","doc read","drive +download","drive +version-download","drive download","drive download-version","markdown fetch","audit tail","audit export","audit verify"],"risk":"green"},
"calendar_event_id": {"denotes":"single calendar eventId in the target-event role","canonical_hint":"event","members":["event","event-id","calendar-event-id"],"excludes":["id","calendar-id","calendar-book-id","acl-id","room-id"],"commands":["calendar +attendee-list","calendar +cancel-event","calendar +invite","calendar +reschedule","calendar +get","calendar +rsvp","calendar +update"],"risk":"yellow"},
"calendar_book_id": {"denotes":"single calendar container calendarId, not an eventId","canonical_hint":"calendar-id","members":["calendar-id","calendar","calendar-book-id"],"excludes":["id","event","event-id","acl-id","room-id"],"commands":["calendar +agenda","calendar +attendee-list","calendar +create","calendar +get","calendar +rsvp","calendar +search-event","calendar +update"],"risk":"yellow"},
"calendar_event_title": {"denotes":"calendar event title text","canonical_hint":"title","members":["title","summary","subject"],"excludes":["name","room-name","calendar-name"],"commands":["calendar +book","calendar +create","calendar +update"],"risk":"green"},
"calendar_person_name_list": {"denotes":"comma-separated DingTalk person names resolved by the shortcut","canonical_hint":"with","members":["with","names","attendee-names","participant-names"],"excludes":["user","user-id","user-ids","users","attendees","participants","open-dingtalk-ids"],"commands":["calendar +book","calendar +invite","calendar +suggest-time"],"risk":"yellow"},
"calendar_room_ids": {"denotes":"calendar meeting roomId list with unchanged element values; one roomId is a one-element list","canonical_hint":"rooms","members":["rooms","room-id","room-ids"],"excludes":["room","room-name","group-id","location"],"commands":["calendar event create","calendar room add","calendar room delete","calendar busy search","calendar +create","calendar +freebusy"],"risk":"yellow"},
"calendar_duration_minutes": {"denotes":"meeting duration in minutes with unchanged numeric text","canonical_hint":"duration","members":["duration","duration-minutes","meeting-duration-minutes"],"excludes":["remind-minutes","start","end","from","to"],"commands":["calendar event suggest","calendar +suggest-time","calendar +suggestion"],"risk":"green"},
"calendar_timezone": {"denotes":"IANA timezone string with unchanged value","canonical_hint":"timezone","members":["timezone","time-zone","tz"],"excludes":["offset","utc-offset","locale"],"commands":["calendar event create","calendar event suggest","calendar event update","calendar +create","calendar +suggestion","calendar +update"],"risk":"green"},
"minutes_task_uuid": {"denotes":"single DingTalk Minutes taskUuid with unchanged value","canonical_hint":"task-uuid","members":["task-uuid","uuid"],"excludes":["ids","task-uuids","uuids","url","minutes-id","meeting-id","record-id","task-id"],"commands":["minutes +action-items","minutes +apply-permission","minutes +detail","minutes +download","minutes +export-pack","minutes +mindmap","minutes +record-pause","minutes +record-resume","minutes +record-stop","minutes +record-wrap-up","minutes +replace-batch","minutes +share","minutes +speaker-insights","minutes +speaker-replace","minutes +summary","minutes +transcript","minutes +unshare","minutes +update","minutes record pause","minutes record resume","minutes record stop","minutes replace-text","minutes speaker replace","minutes update summary","minutes update title"],"risk":"yellow"},
"minutes_task_uuids": {"denotes":"Minutes taskUuid list with unchanged element values and unchanged list encoding","canonical_hint":"ids","members":["ids","task-uuids","uuids"],"excludes":["id","task-uuid","uuid","url","minutes-id","minutes-ids","meeting-id","meeting-ids"],"commands":["minutes +detail","minutes +download","minutes +share","minutes +unshare","minutes get batch","minutes permission add","minutes permission remove","minutes speaker summary create","minutes speaker summary get"],"risk":"yellow"},
"minutes_hot_words": {"denotes":"personal hot-word list with unchanged values and unchanged list encoding","canonical_hint":"words","members":["words","hot-words","hotwords"],"excludes":["word","hot-word","query","keyword","keywords","search"],"commands":["minutes +prepare-asr","minutes hot-word add","minutes hot-word delete"],"risk":"yellow"},
"minutes_upload_session_id": {"denotes":"single Minutes file-upload sessionId with unchanged value","canonical_hint":"session-id","members":["session-id","upload-session-id","upload-id"],"excludes":["id","task-id","task-uuid","minutes-id","recording-session-id"],"commands":["minutes upload cancel","minutes upload complete"],"risk":"yellow"},
"todo_task_id": {"denotes":"single DingTalk todo taskId with unchanged value","canonical_hint":"task-id","members":["task-id","todo-id"],"excludes":["id","ids","task","task-ids","todo-ids","parent-id","comment-id","attachment-id","open-task-id"],"commands":["todo +comment","todo +complete","todo +get","todo +list-attachment","todo +list-comment","todo +list-sub","todo +reminder","todo +reopen","todo +update","todo comment add","todo comment delete","todo comment list","todo tag add","todo task add-attachment","todo task add-executor","todo task add-participant","todo task add-reminder","todo task create-sub","todo task delete","todo task done","todo task get","todo task list-attachment","todo task list-sub","todo task remove-attachment","todo task remove-executor","todo task remove-participant","todo task reset-reminder","todo task update"],"risk":"yellow"},
"todo_due_time": {"denotes":"todo deadline ISO-8601 value, not an independent reminder time","canonical_hint":"due","members":["due","due-time","deadline"],"excludes":["remind-at","reminder-at","reminder-time","reminder-time-stamp","due-date-offset","plan-finish-start","plan-finish-end","plan-finish-date-start","plan-finish-date-end"],"commands":["todo +assign","todo +create","todo +update","todo task create","todo task create-sub","todo task update"],"risk":"yellow"},
"todo_executor_ids": {"denotes":"todo executor userId list with unchanged comma-separated value","canonical_hint":"executors","members":["executors","executor-ids"],"excludes":["executor","executor-id","participant","participant-id","participants","participant-ids","to","user","user-id","user-ids","users","name"],"commands":["todo +create","todo task add-executor","todo task create","todo task create-sub","todo task remove-executor"],"risk":"yellow"},
"todo_participant_ids": {"denotes":"todo participant userId list with unchanged comma-separated value","canonical_hint":"participants","members":["participants","participant-ids"],"excludes":["participant","participant-id","executor","executor-id","executors","executor-ids","to","user","user-id","user-ids","users","name"],"commands":["todo task add-participant","todo task remove-participant"],"risk":"yellow"},
"todo_completion_state": {"denotes":"todo completion boolean string true/false with unchanged value","canonical_hint":"status","members":["status","done","is-done","todo-status"],"excludes":["state","task-status"],"commands":["todo +get-my-tasks","todo +search","todo task done","todo task list","todo task update"],"risk":"yellow"},
"todo_role_types": {"denotes":"todo creator/executor/participant role filter list with unchanged comma-separated value","canonical_hint":"role-types","members":["role-types","roles"],"excludes":["role","role-id","role-ids"],"commands":["todo +due-today","todo +get-my-tasks","todo +get-related-tasks","todo task list"],"risk":"yellow"},
"attendance_leave_code": {"denotes":"single attendance vacation or leave rule code","canonical_hint":"leave-code","members":["leave-code","vacation-type-code"],"excludes":["leave-name","leave-names","vacation-name","id","rule-id"],"commands":["attendance +get-leave-records"],"risk":"yellow"},
"attendance_query_date": {"denotes":"single attendance query date whose supplied format is preserved","canonical_hint":"date","members":["date","attendance-date"],"excludes":["start","end","start-date","end-date","time"],"commands":["attendance +get-summary"],"risk":"yellow"},
"sheet_a1_range": {"denotes":"single A1 worksheet range with unchanged text","canonical_hint":"range","members":["range"],"excludes":["ranges","a1-ranges","cell-ranges","source-range","target-range","destination-range","start-cell"],"commands":["sheet +read"],"risk":"yellow"},
"sheet_tab_reference": {"denotes":"single worksheet ID accepted unchanged by a sheet command; never a worksheet display name","canonical_hint":"sheet-id","members":["sheet-id","worksheet-id"],"excludes":["id","node","node-id","document-id","target-sheet-id","source-sheet-id","name","title"],"commands":["sheet +read"],"risk":"yellow"},
"markdown_file_name": {"denotes":"display filename for one native Markdown file, passed unchanged and required to end in .md where Runtime requires it","canonical_hint":"name","members":["name","file-name","filename"],"excludes":["file","file-path","node","node-id","title","folder","folder-id"],"commands":["markdown create","markdown overwrite"],"risk":"yellow"},
"markdown_local_file_path": {"denotes":"local native Markdown file path passed unchanged; never a remote node ID or output destination","canonical_hint":"file","members":["file","file-path","local-file"],"excludes":["file-id","node","node-id","output","output-path","folder","folder-id","content-file"],"commands":["markdown create","markdown diff","markdown overwrite"],"risk":"yellow"},
"aisearch_person_dimension": {"denotes":"one or more comma-separated enterprise person search dimensions passed unchanged","canonical_hint":"dimension","members":["dimension","dimensions","search-dimension","person-dimension","search-by"],"excludes":["type","types","category","scope","field","query","queries","department","position","duty","phone","job-number"],"commands":["aisearch","aisearch person","aisearch +search-person"],"risk":"yellow"},
"aisearch_content_queries": {"denotes":"comma-separated enterprise content topic keywords with time, type, behavior, and conversational filler already removed","canonical_hint":"queries","members":["queries","topics","topic-queries","content-query","content-queries","search-terms"],"excludes":["query","keyword","question","natural-language","types","time-range","behavior-type","direction","chat-scope"],"commands":["aisearch enterprise","aisearch behavior"],"risk":"yellow"},
"aisearch_content_types": {"denotes":"comma-separated aisearch content type enum values passed unchanged","canonical_hint":"types","members":["types","content-types","resource-types","search-categories","search-type-list"],"excludes":["type","category","source","query","queries","dimension","behavior-type"],"commands":["aisearch enterprise","aisearch behavior"],"risk":"yellow"},
"aisearch_time_range": {"denotes":"explicit user-provided natural-language or textual time range passed unchanged","canonical_hint":"time-range","members":["time-range","time-window","date-range","search-period","period"],"excludes":["time","date","range","start","end","since","until","created-at","updated-at"],"commands":["aisearch enterprise","aisearch behavior"],"risk":"yellow"},
"contact_mobile_number": {"denotes":"one person's mobile phone number with unchanged formatting","canonical_hint":"mobile","members":["mobile","org-user-mobile"],"excludes":["user-id","login-id","email"],"commands":["contact +by-mobile","contact +search-mobile","contact account create","contact user invite","contact user search-mobile"],"risk":"yellow"},
"contact_org_user_name": {"denotes":"employee display name inside an organization","canonical_hint":"org-user-name","members":["org-user-name","organization-user-name"],"excludes":["org-name","creator-username","nick"],"commands":["contact account create","contact account update","contact user invite","contact user update"],"risk":"yellow"},
"contact_dept_json_assignments": {"denotes":"department membership JSON array without value transformation","canonical_hint":"depts","members":["department-memberships-json","department-assignments-json"],"excludes":["dept","dept-id","dept-ids","department-ids"],"commands":["contact account update","contact user invite","contact user update"],"risk":"yellow"},
"hrbrain_pool_code": {"denotes":"single Hrbrain talent-pool code with unchanged value","canonical_hint":"pool-code","members":["pool-code","talent-pool-code"],"excludes":["pool","pool-id","talent-pool-id","code","id","name"],"commands":["hrbrain talent-pool detail","hrbrain talent-pool employees","hrbrain search employees"],"risk":"yellow"},
"hrbrain_work_no": {"denotes":"single Hrbrain employee work number with unchanged value","canonical_hint":"work-no","members":["work-no","employee-no","employee-number","staff-no"],"excludes":["staff-ids","work-nos","employee-id","staff-id","user-id","id","name"],"commands":["hrbrain profile metadata","hrbrain profile query","hrbrain profile career","hrbrain profile performance"],"risk":"yellow"},
"hrbrain_work_nos": {"denotes":"Hrbrain employee work-number list with unchanged list encoding","canonical_hint":"staff-ids","members":["staff-ids","work-nos","employee-nos","staff-nos"],"excludes":["work-no","employee-no","staff-no","employee-ids","user-ids","id","name"],"commands":["hrbrain profile labels"],"risk":"yellow"},
"dev_version_id": {"denotes":"single open-platform application version id","canonical_hint":"version-id","members":["version-id","release-version-id"],"excludes":["version","task-id","unified-app-id","app-key","id"],"commands":["dev app version check-approval","dev app version get","dev app version publish","dev app version status","devapp +version-check-approval","devapp +version-get","devapp +version-status"],"risk":"yellow"},
"dev_app_key": {"denotes":"open-platform application appKey/clientId used as application lookup key","canonical_hint":"app-key","members":["app-key","application-key"],"excludes":["app-id","unified-app-id","application-id","robot-client-id","client-secret","id"],"commands":["dev app get","dev app list"],"risk":"yellow"},
"dev_robot_client_id": {"denotes":"robot credential clientId/AppKey for connector identity","canonical_hint":"robot-client-id","members":["robot-client-id","connector-client-id"],"excludes":["app-id","unified-app-id","application-id","app-key","robot-client-secret","id"],"commands":["dev connect restart","dev connect status","dev connect stop"],"risk":"yellow"},
"dev_permission_scope_values": {"denotes":"list of permission scopeValue strings","canonical_hint":"scope-values","members":["scope-values","permission-scopes"],"excludes":["scope-value","scope-type","api-status","auth-status"],"commands":["dev app permission add","dev app permission remove"],"risk":"yellow"},
"dev_event_codes": {"denotes":"list of open-platform event code strings","canonical_hint":"event-codes","members":["event-codes","event-code-list"],"excludes":["keyword","query","scope-values"],"commands":["dev app event subscribe","dev app event unsubscribe"],"risk":"yellow"},
"dev_app_name": {"denotes":"open-platform application name or application-name filter","canonical_hint":"name","members":["application-name"],"excludes":["robot-name","agent-name","confirm-name","creator"],"commands":["dev app create","dev app list","dev app update","devapp +create","devapp +list","devapp +update"],"risk":"yellow"},
"dev_robot_name": {"denotes":"client-visible robot name or robot-name filter","canonical_hint":"robot-name","members":["robot-name","display-robot-name"],"excludes":["name","app-name","agent-name","confirm-name"],"commands":["dev app list","dev app robot config","dev app robot submit"],"risk":"yellow"},
"event_max_events": {"denotes":"maximum number of delivered events before a consumer exits, passed unchanged as an integer","canonical_hint":"max-events","members":["max-events","event-limit"],"excludes":["limit","count","max-results","duration","ttl"],"commands":["event +listen-im","event consume"],"risk":"yellow"},
"event_subscription_id": {"denotes":"single personal-event subscription ID used to reuse or filter one subscription","canonical_hint":"subscribe-id","members":["subscribe-id","subscription-id"],"excludes":["id","event-id","event-key","source-id","client-id","subscribe-ids","subscription-ids"],"commands":["event consume","event status"],"risk":"yellow"}
},
"command_overrides": {
"doc +version-list": {"ambiguous":["size","max-results","max-result","take","top","per-page","next-cursor","next-token","next-page-token"],"note":"--limit/--cursor and the shipped visible compatibility flags --page-size/--page-token remain native. Other pagination spellings cannot choose between two visible real flags and must stop before execution."},
"chat group rename": {"bind":{"id":"open_conversation_id"},"note":"This command's real --id carries one openConversationId; aliases reduce to --id without changing the value."},
"chat group members": {"bind":{"id":"open_conversation_id"}},
"chat group members add": {"bind":{"id":"open_conversation_id"},"block":["user-id","open-dingtalk-id"],"note":"The real --users is a list and may contain mixed userId/openDingTalkId values; singular inputs are not promoted automatically."},
"chat group members remove": {"bind":{"id":"open_conversation_id"}},
"chat conversation-info": {"ambiguous":["chat-id","open-conversation-id"],"note":"Visible --conversation-id and legacy --group both remain executable outside the approved hidden-alias migration set."},
"chat group-mute": {"ambiguous":["chat-id","open-conversation-id"],"note":"Visible --conversation-id and legacy --group both remain executable outside the approved hidden-alias migration set."},
"chat group-mute-member": {"ambiguous":["chat-id","open-conversation-id"],"note":"Visible --conversation-id and legacy --group both remain executable outside the approved hidden-alias migration set."},
"chat message add-emoji": {"scoped_aliases":{"chat-id":"conversation-id"},"block":["group-id","group-ids","conversation-ids","open-conversation-ids"],"ambiguous":["open-message-id"],"note":"Native --chat/--group/--id/--conversation-id/--open-conversation-id and visible --message-id/--msg-id stay executable; numeric/list spellings are rejected."},
"chat message add-text-emotion": {"scoped_aliases":{"chat-id":"conversation-id"},"block":["group-id","group-ids","conversation-ids","open-conversation-ids"],"ambiguous":["open-message-id"],"note":"Native --chat/--group/--id/--conversation-id/--open-conversation-id and visible --message-id/--msg-id stay executable; numeric/list spellings are rejected."},
"chat message list-mentions": {"ambiguous":["chat-id","open-conversation-id"],"note":"Visible --conversation-id and legacy --group both remain executable outside the approved hidden-alias migration set."},
"chat message recall-by-bot": {"ambiguous":["chat-id","open-conversation-id"],"note":"Visible --conversation-id and legacy --group both remain executable outside the approved hidden-alias migration set."},
"chat message remove-emoji": {"scoped_aliases":{"chat-id":"conversation-id"},"block":["group-id","group-ids","conversation-ids","open-conversation-ids"],"ambiguous":["open-message-id"],"note":"Native --chat/--group/--id/--conversation-id/--open-conversation-id and visible --message-id/--msg-id stay executable; numeric/list spellings are rejected."},
"chat message remove-text-emotion": {"scoped_aliases":{"chat-id":"conversation-id"},"block":["group-id","group-ids","conversation-ids","open-conversation-ids"],"ambiguous":["open-message-id"],"note":"Native --chat/--group/--id/--conversation-id/--open-conversation-id and visible --message-id/--msg-id stay executable; numeric/list spellings are rejected."},
"chat message search": {"ambiguous":["chat-id","open-conversation-id"],"note":"Visible --conversation-id and legacy --group both remain executable outside the approved hidden-alias migration set."},
"chat mute": {"scoped_aliases":{"chat-id":"conversation-id"},"block":["group-id","group-ids","conversation-ids","open-conversation-ids"],"note":"Native --conversation-id and hidden compatibility --group/--id/--chat/--open-conversation-id remain unchanged; reviewed chat-id reduces to --conversation-id."},
"drive list": {"ambiguous":["root-id","space"],"note":"Numeric --space-id and knowledge-base --workspace are distinct routes; bare --space/--root-id cannot select a domain or folder.","scoped_aliases":{"document-id":"node","dentry-uuid":"node","directory-id":"folder","order-field":"order-by","sort-by":"order-by","sort-field":"order-by"},"scope_strict":true,"block":["dentry-id"]},
"drive upload": {"ambiguous":["destination-id","space","target-id"],"note":"Local file, display name, MIME, overwrite node, folder, storage space, and knowledge-base workspace remain distinct roles.","scoped_aliases":{"dentry-uuid":"node","directory-id":"folder","overwrite-node-id":"node","target-folder-id":"folder","target-workspace-id":"workspace","source-file":"file","content-type":"mime-type","filename":"file-name","name":"file-name","display-name":"file-name","upload-name":"file-name"},"block":["dentry-id","document-url","output-path"],"scope_strict":true},
"ding +receiver-status": {"scoped_aliases":{"id":"ding-id"},"note":"The only identifier role is one openDingId. Generic id and open-ding-id reduce to ding-id; other resource and request IDs stop before dispatch.","block":["message-id","task-id","uuid","request-id"],"scope_strict":true},
"ding message receiver-status": {"scoped_aliases":{"id":"ding-id"}},
"contact user profile get": {"scoped_aliases":{"id":"staff-id","ids":"staff-id","field-codes":"fields","roster-fields":"fields","profile-fields":"fields","field-code-list":"fields"},"note":"user-id is reduced by the user_id concept; generic id/ids bound explicitly Former single/local-role concept contact_roster_fields is intentionally command-scoped. The leaf-local --fields denotes roster field codes and shadows the root output-projection flag when placed after the leaf path.","bind":{"staff-id":"user_id"},"block":["output-fields","staff-ids","user-ids"],"scope_strict":true},
"mail folder update": {"bind":{"id":"folder_id"},"note":"this command's --id is the folder id; --folder-id reduces to --id"},
"mail message search": {"scoped_aliases":{"subject":"query"},"scope_strict":true,"note":"never globalize: mail template create has a real and different --subject"},
"calendar event list": {"scoped_aliases":{"date":"start"},"note":"reviewed against ParseISOTimeToMillis and final list_calendar_events payload; --date is normalized centrally while the command's existing hidden compatibility flags remain native fallbacks"},
"calendar +agenda": {"block":["id"],"note":"calendarId aliases stay role-specific; bare --id could be an eventId and must not be silently treated as a calendarId. On this exact command, --to is an unchanged ISO end timestamp and normalizes to --end.","scoped_aliases":{"to":"end"},"scope_strict":true},
"calendar +attendee-list": {"ambiguous":["id"],"note":"This command carries both an eventId and an optional calendarId; bare --id cannot safely choose the role."},
"calendar +book": {"block":["user","user-id","user-ids","users","attendees","participants","open-dingtalk-ids","calendar-id","rooms","room-id","room-ids","date","time","start-date","end-date","time-min","time-max"],"note":"--with carries names resolved by the shortcut; identifier spellings and room booking inputs cannot be supplied by name-only normalization. Only explicit event-time spellings are mapped; range-bound or date-only spellings remain blocked.","scoped_aliases":{"from":"start","begin":"start","start-time":"start","to":"end","end-time":"end"},"scope_strict":true},
"calendar +book-search": {"scoped_aliases":{"search":"query","name":"query"},"scope_strict":true,"note":"On this exact calendar-book search, --search, --name, and --query carry the same calendar-name keyword."},
"calendar +cancel-event": {"scoped_aliases":{"id":"event"},"block":["calendar-id","calendar-book-id","acl-id","room-id"],"scope_strict":true,"note":"The only identifier role is the eventId to cancel; other calendar resource IDs are rejected."},
"calendar +conflicts": {"scoped_aliases":{"day-offset":"in-days","days-from-today":"in-days"},"block":["days","duration","start","end","from","to"],"scope_strict":true,"note":"--in-days is an integer offset from today. Exact day-offset spellings preserve the value; generic duration and absolute/range time names are different roles."},
"calendar +free": {"block":["user","user-id","user-ids","users","with"],"note":"--who carries one person name for runtime resolution, so exact name/person spellings are command-scoped while stable user identifiers stay blocked. On this exact command, --to is an unchanged ISO end timestamp and normalizes to --end.","scoped_aliases":{"to":"end","name":"who","person":"who","person-name":"who"},"scope_strict":true},
"calendar +free-slots": {"scoped_aliases":{"start-hour":"from","end-hour":"to","day-offset":"in-days","days-from-today":"in-days"},"block":["start","end","start-time","end-time","time-min","time-max","days","duration"],"scope_strict":true,"note":"--from/--to are integer hours and --in-days is a relative day offset; exact unit-preserving spellings are command-scoped while ISO timestamp and generic duration names stay blocked."},
"calendar +freebusy": {"block":["who","with","name","names","attendee-names","participant-names","room-name","group-id"],"note":"This shortcut accepts stable userId/roomId lists; singular --room-id is one list element and normalizes safely, while names and room-search filters require different commands. On this exact command, --to is an unchanged ISO end timestamp and normalizes to --end.","scoped_aliases":{"to":"end"},"scope_strict":true},
"calendar +invite": {"scoped_aliases":{"id":"event"},"block":["user","user-id","user-ids","users","attendees","participants","open-dingtalk-ids","calendar-id"],"scope_strict":true,"note":"--with is a name list resolved by the shortcut; stable person identifiers are not renamed into names."},
"calendar +reschedule": {"scoped_aliases":{"id":"event","from":"start","begin":"start","start-time":"start","to":"end","end-time":"end"},"block":["calendar-id","calendar-book-id","acl-id","date","time","start-date","end-date","time-min","time-max"],"scope_strict":true,"note":"The only identifier role is the eventId being rescheduled. Only explicit new-event-time spellings are mapped; range-bound or date-only spellings remain blocked."},
"calendar +room-groups": {"scoped_aliases":{"page-index":"page"},"block":["cursor","page-token"],"scope_strict":true,"note":"This endpoint uses a zero-based pageIndex; cursor pagination cannot be converted to it."},
"calendar +room-search": {"scoped_aliases":{"query":"room-name","name":"room-name"},"block":["room","room-id","room-ids","rooms","group-id","location"],"scope_strict":true,"note":"This shortcut accepts a room display-name keyword and returns roomId; identifier/location inputs are different roles."},
"calendar +suggest-time": {"block":["user","user-id","user-ids","users","attendees","participants","open-dingtalk-ids"],"note":"--with carries names resolved by the shortcut; stable identifier lists belong to event suggest/freebusy. On this exact command, --to is an unchanged ISO end timestamp and normalizes to --end.","scoped_aliases":{"to":"end"},"scope_strict":true},
"calendar acl delete": {"block":["calendar-id","calendar-book-id","event","event-id","room-id","user-id"],"note":"--acl-id identifies one access-control grant, not a calendar, event, room, or user."},
"calendar attachment add": {"block":["file","file-id","file-ids","attachments"],"note":"--files requires <fileId>:<name> elements; a bare file identifier cannot be wrapped or named by the alias layer."},
"calendar attendee add": {"block":["attendee-name","attendee-names","participant-name","participant-names","with","who","open-dingtalk-ids"],"note":"--attendees carries a userId list; names require a resolver shortcut and openDingTalkIds are a distinct value domain."},
"calendar attendee delete": {"block":["attendee-name","attendee-names","participant-name","participant-names","with","who","open-dingtalk-ids"],"note":"--attendees carries a userId list; names require a resolver shortcut and openDingTalkIds are a distinct value domain."},
"calendar busy search": {"block":["who","with","name","names","attendee-name","attendee-names","participant-names","room-name"],"note":"--users/--rooms are stable ID lists; singular --room-id safely denotes one list element, the existing hidden --room-ids compatibility stays native, and names require a resolver or room search."},
"calendar event create": {"scoped_aliases":{"reminder-minutes":"remind-minutes","reminder-offset-minutes":"remind-minutes"},"block":["attendee-name","attendee-names","participant-name","participant-names","with","who","room-name","group-id","reminder-time","remind-at","at","due","duration"],"scope_strict":true,"note":"Creation accepts stable attendee/room identifiers and minute offsets; singular --room-id safely denotes one list element and the existing hidden --room-ids compatibility stays native. Reminder aliases are exact to this command; names, room search criteria, absolute reminder times, and generic duration need separate resolution or value transforms."},
"calendar event respond": {"scoped_aliases":{"response-status":"status","response":"status"},"block":["state","done","free-busy","availability"],"scope_strict":true,"note":"The response/status flag-name aliases are exact to this command. --status still uses this leaf's own attendee-response enum; values are not translated, and busy/free state or boolean completion names stay blocked."},
"calendar event suggest": {"block":["who","with","name","names","attendee-name","attendee-names","participant-names","open-dingtalk-ids"],"note":"--users carries stable userIds; name resolution belongs to +suggest-time."},
"calendar event update": {"block":["attendees","participants","rooms","room-id","room-ids","room-name","group-id","remind-minutes","reminder-minutes"],"note":"The command's existing hidden --freebusy compatibility flag remains native. Attendee, room, and reminder changes require dedicated commands or are unsupported by update."},
"calendar room add": {"block":["room","room-name","group-id","location"],"note":"--rooms is a roomId list returned by room search; singular --room-id safely denotes one list element and the existing hidden --room-ids compatibility stays native, while generic room, name, group, and location roles are not promoted automatically."},
"calendar room delete": {"block":["room","room-name","group-id","location"],"note":"--rooms is a roomId list returned by room search; singular --room-id safely denotes one list element and the existing hidden --room-ids compatibility stays native, while generic room, name, group, and location roles are not promoted automatically."},
"calendar room search": {"scoped_aliases":{"room-group-id":"group-id","group":"group-id"},"block":["room","room-id","room-ids","rooms","location"],"scope_strict":true,"note":"On this exact command, room-group-id/group denote the meeting-room group filter; search consumes room name/group/time filters and returns roomId, while existing room identifiers and free-text event location are different roles."},
"calendar +my-free": {"scoped_aliases":{"to":"end"},"scope_strict":true,"note":"On this exact command, --to is an unchanged ISO end timestamp and normalizes to --end."},
"calendar +create": {"scoped_aliases":{"from":"start","begin":"start","start-time":"start","to":"end","end-time":"end","freebusy":"free-busy","user-ids":"attendees","users":"attendees","attendee-ids":"attendees"},"block":["id","event","event-id","who","with","attendee-name","attendee-names","participant-name","participant-names","open-dingtalk-ids","room-name","group-id","rich-text-desc","date","time","start-date","end-date","time-min","time-max"],"scope_strict":true,"note":"The shortcut accepts stable attendee userId and roomId lists plus one calendarId; singular --room-id is one list element and normalizes safely. Names, openDingTalkIds, event identifiers, room-search filters, and HTML rich text are different roles; --to and --freebusy are exact value-preserving spellings on this command."},
"calendar +get": {"ambiguous":["id"],"note":"The command carries one required eventId and one optional calendarId, so bare --id cannot safely select a role."},
"calendar +room-find": {"scoped_aliases":{"to":"end","page-index":"page","room-group-id":"group-id","group":"group-id","query":"room-name","name":"room-name"},"block":["cursor","page-token","next-cursor","room","room-id","room-ids","rooms","location"],"scope_strict":true,"note":"This shortcut combines ISO time bounds, a zero-based pageIndex, and room-name/group filters. Cursor pagination and existing room identifiers cannot be converted to these filter roles."},
"calendar +rsvp": {"scoped_aliases":{"response-status":"status","response":"status"},"ambiguous":["id"],"block":["state","done","free-busy","availability"],"scope_strict":true,"note":"The command carries eventId and calendarId together; bare --id is ambiguous. Response/status aliases are exact to this leaf, but --status still uses +rsvp's own enum values; values are never translated, and busy/free state names stay blocked."},
"calendar +search-event": {"scoped_aliases":{"to":"end","search":"query"},"block":["id","event","event-id","page","page-index","offset"],"scope_strict":true,"note":"The query searches title, description, and location within one calendar page. This route uses cursor pagination; event identifiers and page-index/offset models are different roles."},
"calendar +suggestion": {"scoped_aliases":{"to":"end"},"block":["who","with","name","names","attendee-name","attendee-names","participant-name","participant-names","open-dingtalk-ids","room-name","room-id","room-ids","rooms"],"scope_strict":true,"note":"This shortcut accepts stable userId values. Person names belong to +suggest-time, openDingTalkIds are a different value domain, and room availability is a different query."},
"calendar +update": {"scoped_aliases":{"from":"start","begin":"start","start-time":"start","to":"end","end-time":"end","freebusy":"free-busy","add-users":"add-attendees","add-user-ids":"add-attendees","remove-users":"remove-attendees","remove-user-ids":"remove-attendees"},"ambiguous":["id","attendees","users","user-ids"],"block":["who","with","attendee-name","attendee-names","participant-name","participant-names","open-dingtalk-ids","rooms","room-id","room-ids","room-name","group-id","rich-text-desc","remind-minutes","reminder-minutes","date","time","start-date","end-date","time-min","time-max"],"scope_strict":true,"note":"Bare --id cannot choose eventId versus calendarId, and a generic attendee list cannot choose add versus remove. Directional userId aliases are safe; names, openDingTalkIds, room changes, rich text, and reminders require different commands or capabilities."},
"chat +bot-find": {"scoped_aliases":{"name":"query"},"scope_strict":true,"note":"On this exact bot-search shortcut, --name and --query denote the same search keyword; --name must not become a global search alias."},
"chat +chat-messages": {"scoped_aliases":{"chat":"group"},"scope_strict":true,"note":"Evaluation compatibility: --chat carries one stable openConversationId and normalizes to the existing --group identifier route."},
"chat +search-msg": {"scoped_aliases":{"chat":"group"},"scope_strict":true,"note":"Evaluation compatibility: scalar --chat carries one stable openConversationId and normalizes to the existing scalar --group filter."},
"chat bot find": {"scoped_aliases":{"name":"query"},"scope_strict":true,"note":"On this exact bot-search command, --name and --query denote the same search keyword; --name must not become a global search alias."},
"chat +bot-search": {"scoped_aliases":{"query":"name","current-page":"page"},"block":["cursor"],"scope_strict":true,"note":"Only the reviewed bot keyword and page-number spellings are accepted; cursor pagination cannot be converted to a page number."},
"chat bot search": {"scoped_aliases":{"query":"name","current-page":"page"},"block":["cursor"],"scope_strict":true,"note":"Only the reviewed bot keyword and page-number spellings are accepted; cursor pagination cannot be converted to a page number."},
"chat message list-favorites": {"scoped_aliases":{"limit":"size"},"scope_strict":true,"note":"On this exact command, both names denote the same bounded result count; the numeric value is unchanged."},
"chat +messages-list-unread-conversations": {"scoped_aliases":{"limit":"count","size":"count"},"scope_strict":true,"note":"On this exact command, limit and size both denote the returned unread-conversation count."},
"chat +unread-chats": {"scoped_aliases":{"limit":"count","size":"count"},"scope_strict":true,"note":"On this exact command, limit and size both denote the returned unread-conversation count."},
"chat message list-unread-conversations": {"scoped_aliases":{"limit":"count","size":"count"},"scope_strict":true,"note":"On this exact command, limit and size both denote the returned unread-conversation count."},
"chat +messages-list-direct": {"scoped_aliases":{"start":"time"},"block":["end"],"scope_strict":true,"note":"This exact command accepts one start boundary in yyyy-MM-dd HH:mm:ss; an end-only input cannot be represented."},
"chat message list": {"scoped_aliases":{"start":"time"},"block":["end"],"ambiguous":["chat-id","open-conversation-id"],"scope_strict":true,"note":"This exact command accepts one start boundary in yyyy-MM-dd HH:mm:ss; an end-only input cannot be represented. Visible --conversation-id and legacy --group both remain executable outside the approved hidden-alias migration set."},
"chat message list-by-sender": {"scoped_aliases":{"user-id":"sender-user-id","open-dingtalk-id":"sender-open-dingtalk-id"},"block":["time"],"scope_strict":true,"note":"Only same-role sender identifiers are mapped; --time cannot supply the required RFC3339 start/end range."},
"contact +resolve-dept": {"bind":{"name":"search_query"},"note":"The real --name is a department-name search keyword and carries the search_query concept on this shortcut."},
"contact +list-sub-depts": {"block":["name","query"],"note":"--dept is an integer department id; names and search queries require a separate resolution command"},
"contact +dept-members": {"bind":{"dept":"search_query"},"scoped_aliases":{"name":"dept"},"note":"The real --dept is a department-name search keyword; search spellings come from search_query, while --name remains command-scoped."},
"chat message send": {"scoped_aliases":{"to-user":"user"},"ambiguous":["chat-id","open-conversation-id"],"note":"The recipient alias remains exact to this command. --file is the visible Primary and --file-path remains a command-owned typed compatibility alias; obsolete file metadata flags remain unsupported. Visible --conversation-id and legacy --group both remain executable outside the approved hidden-alias migration set."},
"chat +group-members": {"bind":{"group":"group_name"},"note":"The real --group is a group-name search keyword on this shortcut, not an identifier."},
"chat +category-create": {"scoped_aliases":{"name":"title"},"scope_strict":true,"note":"The reviewed name/title mapping preserves the category display-name value on this exact shortcut."},
"chat category create": {"scoped_aliases":{"name":"title"},"scope_strict":true,"note":"The reviewed name/title mapping preserves the category display-name value on this exact command."},
"chat +category-rename": {"scoped_aliases":{"name":"title"},"block":["category-ids"],"scope_strict":true,"note":"The display-name alias is exact; a category-id list is not accepted where one category is required."},
"chat category rename": {"scoped_aliases":{"name":"title"},"block":["category-ids"],"scope_strict":true,"note":"The display-name alias is exact; a category-id list is not accepted where one category is required."},
"chat +category-delete": {"block":["category-ids"],"note":"This command requires one category id; list cardinality is not reduced automatically."},
"chat category delete": {"block":["category-ids"],"note":"This command requires one category id; list cardinality is not reduced automatically."},
"chat category list-conversations": {"block":["category-ids"],"note":"This command requires one category id; list cardinality is not reduced automatically."},
"chat category add-conv": {"block":["category-id"],"ambiguous":["chat","chat-id","open-conversation-id"],"note":"This command requires a category-id list; one id is not promoted into a batch input. Visible --conversation-id and legacy --group both remain executable outside the approved hidden-alias migration set."},
"chat category remove-conv": {"block":["category-id"],"ambiguous":["chat","chat-id","open-conversation-id"],"note":"This command requires a category-id list; one id is not promoted into a batch input. Visible --conversation-id and legacy --group both remain executable outside the approved hidden-alias migration set."},
"chat +chat-role-update": {"block":["role-ids"],"note":"This command requires one role id; list cardinality is not reduced automatically."},
"chat group-role remove": {"block":["role-ids"],"note":"This command requires one role id; list cardinality is not reduced automatically."},
"chat group-role update": {"block":["role-ids"],"note":"This command requires one role id; list cardinality is not reduced automatically."},
"chat +chat-role-set-user": {"block":["role-id"],"note":"This command requires a role-id list; one id is not promoted into a batch input."},
"chat group-role remove-user": {"block":["role-id"],"note":"This command requires a role-id list; one id is not promoted into a batch input."},
"chat +messages-send-by-webhook": {"scoped_aliases":{"at-user-ids":"at-users"},"scope_strict":true,"note":"Both names denote the same userId list used for @ mentions on this exact shortcut."},
"chat message send-by-webhook": {"scoped_aliases":{"at-user-ids":"at-users"},"scope_strict":true,"note":"Both names denote the same userId list used for @ mentions on this exact command."},
"doc block insert": {"block":["before-block-id"],"note":"Parent and reference roles remain distinct. --before-block-id needs both --ref-block and --where before, while role-free --block-id cannot choose parent versus reference.","scoped_aliases":{"parent-block-id":"parent-block","ref-block-id":"ref-block","reference-block-id":"ref-block"},"ambiguous":["block-id"],"scope_strict":true},
"chat message send-by-bot": {"scoped_aliases":{"at-users":"at-user-ids"},"block":["user-id","to-user-id"],"ambiguous":["at-ids","chat-id","open-conversation-id"],"note":"The reviewed @ userId-list alias is exact; singular recipients are not promoted, and bare --at-ids cannot choose an identifier domain. Visible --conversation-id and legacy --group both remain executable outside the approved hidden-alias migration set."},
"doc +export-get": {"block":["doc-id","document-id","file-id","node","node-id","task-id","url"],"note":"This command queries one export jobId. Document node identifiers and import taskId spellings are different entities and are rejected.","scoped_aliases":{"export-job-id":"job-id"},"scope_strict":true},
"doc block delete": {"block":["index"],"note":"index (position) vs node (node id) are different"},
"doc +copy": {"scoped_aliases":{"folder-id":"folder","parent-folder":"folder","parent-folder-id":"folder","parent-node-id":"folder","space":"workspace","space-id":"workspace"},"block":["parent-id"],"scope_strict":true,"note":"This exact Doc command expects a Doc folder nodeId/dentryUuid/URL. Reviewed folder spellings preserve that value; generic --parent-id stays blocked because it may carry a numeric Drive dentryId. The command-scoped --space/--space-id aliases preserve the compatibility published before workspace and numeric DingDrive storage-space concepts were split; they do not make those value domains globally equivalent."},
"doc +list": {"scoped_aliases":{"folder-id":"folder","parent-folder":"folder","parent-folder-id":"folder","parent-node-id":"folder","space":"workspace","space-id":"workspace"},"block":["parent-id"],"scope_strict":true,"note":"This exact Doc command expects a Doc folder nodeId/dentryUuid/URL. Reviewed folder spellings preserve that value; generic --parent-id stays blocked because it may carry a numeric Drive dentryId. The command-scoped --space/--space-id aliases preserve the compatibility published before workspace and numeric DingDrive storage-space concepts were split; they do not make those value domains globally equivalent."},
"doc +move": {"scoped_aliases":{"folder-id":"folder","parent-folder":"folder","parent-folder-id":"folder","parent-node-id":"folder","space":"workspace","space-id":"workspace"},"block":["parent-id"],"scope_strict":true,"note":"This exact Doc command expects a Doc folder nodeId/dentryUuid/URL. Reviewed folder spellings preserve that value; generic --parent-id stays blocked because it may carry a numeric Drive dentryId. The command-scoped --space/--space-id aliases preserve the compatibility published before workspace and numeric DingDrive storage-space concepts were split; they do not make those value domains globally equivalent."},
"doc comment create": {"scoped_aliases":{"mentioned-open-conversation-ids":"mentioned-open-conversation-id","open-conversation-id":"mentioned-open-conversation-id","open-conversation-ids":"mentioned-open-conversation-id"},"block":["chat-id","chat-ids","conversation-id","conversation-ids","group-id","group-ids"],"scope_strict":true,"note":"The target is a list of mentioned openConversationIds. Explicit open-conversation spellings preserve the list value; numeric groupId and role-free conversation spellings are rejected."},
"doc comment reply": {"scoped_aliases":{"mentioned-open-conversation-ids":"mentioned-open-conversation-id","open-conversation-id":"mentioned-open-conversation-id","open-conversation-ids":"mentioned-open-conversation-id"},"block":["chat-id","chat-ids","conversation-id","conversation-ids","group-id","group-ids"],"scope_strict":true,"note":"The target is a list of mentioned openConversationIds. Explicit open-conversation spellings preserve the list value; numeric groupId and role-free conversation spellings are rejected."},
"doc comment update": {"scoped_aliases":{"mentioned-open-conversation-ids":"mentioned-open-conversation-id","open-conversation-id":"mentioned-open-conversation-id","open-conversation-ids":"mentioned-open-conversation-id"},"block":["chat-id","chat-ids","conversation-id","conversation-ids","group-id","group-ids"],"scope_strict":true,"note":"The target is a list of mentioned openConversationIds. Explicit open-conversation spellings preserve the list value; numeric groupId and role-free conversation spellings are rejected."},
"doc +comment-create": {"block":["chat-id","chat-ids","conversation-id","conversation-ids","group-id","group-ids","mentioned-open-conversation-id","mentioned-open-conversation-ids","open-conversation-id","open-conversation-ids"],"note":"This shortcut has no group-mention flag or payload field. Group-conversation spellings are blocked instead of inventing unsupported capability; route to the stable doc comment command when group mentions are required."},
"doc +comment-reply": {"block":["chat-id","chat-ids","conversation-id","conversation-ids","group-id","group-ids","mentioned-open-conversation-id","mentioned-open-conversation-ids","open-conversation-id","open-conversation-ids"],"note":"This shortcut has no group-mention flag or payload field. Group-conversation spellings are blocked instead of inventing unsupported capability; route to the stable doc comment command when group mentions are required."},
"doc media insert": {"scoped_aliases":{"ref-block-id":"ref-block","reference-block-id":"ref-block"},"block":["before-block-id","parent-block","parent-block-id"],"ambiguous":["block-id"],"scope_strict":true,"note":"Media insertion supports a reference block but no parent-block role. --before-block-id additionally needs --where before; role-free --block-id is left ambiguous."},
"doc read": {"block":["before-block-id","parent-block-id","ref-block-id","reference-block-id"],"ambiguous":["block-id"],"note":"A section read requires --scope section plus a start/end boundary. A role-free --block-id cannot be reduced to one flag without inventing the missing scope/boundary role."},
"doc export get": {"scoped_aliases":{"export-job-id":"job-id"},"block":["doc-id","document-id","file-id","node","node-id","url"],"scope_strict":true,"note":"This command queries one export jobId. Document node identifiers are rejected; native hidden --task-id remains the command's reviewed add-only compatibility alias for --job-id."},
"doc import get": {"scoped_aliases":{"import-task-id":"task-id"},"block":["doc-id","document-id","file-id","job-id","node","node-id","url"],"scope_strict":true,"note":"This command queries one import taskId. Document node identifiers and export jobId spellings are different entities and are rejected."},
"doc +share-doc": {"block":["doc","doc-id","document-id","file-id","id","node","node-id"],"note":"The real --url requires a shareable document link. Name-only normalization cannot turn a document nodeId into a URL, so identifier spellings are rejected with guidance to provide --url."},
"doc update": {"block":["stdin","version","version-no","version-number"],"note":"--revision is an optimistic-concurrency revision, not a historical document version number. Version spellings must not reduce to --revision. --stdin is not a real switch: stdin input is expressed as --content -, which requires a value-form transformation outside central name aliases."},
"report outbox list": {"block":["template-type"],"note":"type vs name are different fields"},
"chat group members add-bot": {"bind":{"id":"open_conversation_id"}},
"chat group members list-by-ids": {"bind":{"id":"open_conversation_id","users":"open_dingtalk_ids"},"block":["user-id","user-ids"],"note":"This command's --id carries openConversationId, while --users carries an openDingTalkId list."},
"chat group members remove-bot": {"bind":{"id":"open_conversation_id"}},
"chat +send-to-group": {"bind":{"group":"group_name"},"note":"The real --group is a group-name search keyword on this shortcut, not an identifier."},
"chat group share-invite": {"scoped_aliases":{"source-conversation-id":"source","target-conversation-id":"target"},"block":["group-id","group-ids","user","user-id","userid","uid","staff-id"],"ambiguous":["conversation-id","open-conversation-id","group","chat","chat-id","id"],"note":"A role-free conversation identifier cannot choose between source and target; --receiver requires openDingTalkId and must not accept userId spellings."},
"chat message combine-forward": {"scoped_aliases":{"src-open-cid":"src-conversation-id","dest-open-cid":"dest-conversation-id","source-conversation-id":"src-conversation-id","target-conversation-id":"dest-conversation-id","destination-conversation-id":"dest-conversation-id"},"block":["group-id","group-ids"],"ambiguous":["conversation-id","open-conversation-id","group","chat","chat-id","id"],"note":"Source and destination conversation roles are preserved; a role-free identifier is ambiguous."},
"chat message forward": {"scoped_aliases":{"src-open-cid":"src-conversation-id","dest-open-cid":"dest-conversation-id","source-conversation-id":"src-conversation-id","target-conversation-id":"dest-conversation-id","destination-conversation-id":"dest-conversation-id"},"block":["group-id","group-ids"],"ambiguous":["conversation-id","open-conversation-id","group","chat","chat-id","id"],"note":"Source and destination conversation roles are preserved; a role-free identifier is ambiguous."},
"chat message forward-topic": {"scoped_aliases":{"src-open-conversation-id":"src-conversation-id","dest-open-conversation-id":"dest-conversation-id","source-conversation-id":"src-conversation-id","target-conversation-id":"dest-conversation-id","destination-conversation-id":"dest-conversation-id","src-open-message-id":"src-msg-id","source-message-id":"src-msg-id"},"block":["group-id","group-ids","msg-id","message-id","open-message-id"],"ambiguous":["conversation-id","open-conversation-id","group","chat","chat-id","id"],"note":"Conversation and message source/destination roles are preserved; role-free identifiers are rejected."},
"chat +conversation-info": {"block":["user","user-id","userid","uid","staff-id"],"note":"This shortcut accepts --open-dingtalk-id, not userId; use stable chat conversation-info when userId resolution is needed."},
"chat group create": {"block":["user-id","open-dingtalk-id"],"note":"The real --users is a list and may contain mixed identifier domains."},
"chat +chat-set-admin": {"block":["user-id","open-dingtalk-id"],"note":"The real --users is a mixed userId/openDingTalkId list."},
"chat +messages-read-status": {"block":["user-id","open-dingtalk-id"],"note":"The real --users is a mixed userId/openDingTalkId list."},
"chat category create-smart": {"bind":{"members":"open_dingtalk_ids"},"scoped_aliases":{"title":"name"},"note":"The real --members is an openDingTalkId list; the reviewed title/name alias is exact to the category display name."},
"chat group audit-join-validation": {"ambiguous":["user","user-id","userid","uid","staff-id"],"note":"A role-free user identifier cannot choose between the required --applicant and --inviter roles."},
"chat message reply": {"block":["user","user-id","userid","uid","staff-id"],"note":"The required --ref-sender is a role-specific openDingTalkId and must not accept generic userId spellings."},
"chat message send-card": {"block":["user","user-id","userid","uid","staff-id"],"ambiguous":["chat","chat-id","open-conversation-id"],"note":"The real --receiver is a role-specific openDingTalkId and must not accept generic userId spellings. Visible --conversation-id and legacy --group both remain executable outside the approved hidden-alias migration set."},
"chat +category-add-conversation": {"block":["category-id"],"note":"The real --category-ids is a list; a singular category ID is not promoted automatically."},
"chat +category-list-conversations": {"block":["category-ids"],"note":"The real --category-id is singular; list cardinality is not reduced automatically."},
"chat +category-remove-conversation": {"block":["category-id"],"note":"The real --category-ids is a list; a singular category ID is not promoted automatically."},
"chat +chat-add-bot": {"bind":{"id":"open_conversation_id"},"note":"The real --id is the group's openConversationId; robotCode and openBotId remain different domains."},
"chat +chat-audit-join": {"scoped_aliases":{"applicant-user-id":"applicant","inviter-user-id":"inviter"},"ambiguous":["user","user-id","userid","uid","staff-id"],"scope_strict":true,"note":"A role-free user identifier cannot choose between applicant and inviter."},
"chat +chat-create": {"block":["user-id","open-dingtalk-id"],"note":"The real --users field is a list and may contain mixed identifier domains; a singular value is not promoted."},
"chat +chat-get-by-id": {"block":["group","conversation-id","chat","chat-id","open-conversation-id","conversation-ids","open-conversation-ids","group-name","name","id"],"note":"The real --group-id is numeric groupId; no CID or group-name spelling can be value-preservingly converted."},
"chat +chat-members-get": {"bind":{"id":"open_conversation_id","users":"open_dingtalk_ids"},"block":["group","group-name","user-id","user-ids"],"note":"The real --id is openConversationId and --users is an openDingTalkId list. The observed --group spelling carried a natural group name and is blocked; explicit CID spellings and --chat remain value-preserving aliases."},
"chat +chat-members-list": {"scoped_aliases":{"chat-id":"conversation-id","id":"conversation-id"},"block":["query","keyword","group-id","group-ids","conversation-ids","open-conversation-ids"],"scope_strict":true,"note":"Native --chat/--open-conversation-id stay native; member filtering by query is unsupported and group-name resolution stays on --group/--chat-query."},
"chat +chat-mute-member": {"scoped_aliases":{"user-ids":"users","open-dingtalk-ids":"users"},"block":["user","user-id","open-dingtalk-id"],"scope_strict":true,"note":"The target accepts a mixed identifier list; list spellings preserve values, but singular inputs are not promoted."},
"chat +chat-remove-bot": {"bind":{"id":"open_conversation_id"},"note":"The real --id is openConversationId; --bot-id is separately governed by open_bot_id."},
"chat +chat-role-remove": {"block":["role-ids"],"note":"The command removes one role ID; list cardinality is not reduced."},
"chat +chat-role-remove-user": {"scoped_aliases":{"user-id":"user","open-dingtalk-id":"user"},"block":["role-id"],"scope_strict":true,"note":"The single --user accepts either identifier domain; --role-ids remains a list."},
"chat +chat-transfer-owner": {"scoped_aliases":{"user-id":"new-owner","open-dingtalk-id":"new-owner"},"scope_strict":true,"note":"The only user role is the new owner, and the target accepts either userId or openDingTalkId without changing the value."},
"chat +chat-update": {"scoped_aliases":{"conversation-id":"group","open-conversation-id":"group","chat-id":"group","title":"name","new-title":"name"},"block":["id","group-id","group-ids","conversation-ids","open-conversation-ids"],"scope_strict":true,"note":"--group accepts a name or CID, so only explicit CID spellings are mapped; generic --id is blocked."},
"chat +conversation-set-top": {"scoped_aliases":{"open-conversation-id":"conversation-id","chat-id":"conversation-id","open-conversation-ids":"conversation-ids","chat-ids":"conversation-ids"},"block":["group","groups","group-id","group-ids","top","set-top"],"scope_strict":true,"note":"Singular/list cardinality stays explicit; top/set-top cannot be rewritten to the inverse --off switch."},
"chat +feed-group-query-item": {"scoped_aliases":{"open-conversation-ids":"conversation-ids","chat-ids":"conversation-ids"},"block":["group","groups","group-id","group-ids","conversation-id","open-conversation-id"],"scope_strict":true,"note":"The real field is an openConversationId list; group names and singular IDs are not converted."},
"chat +flag-list": {"scoped_aliases":{"limit":"page-size"},"block":["max","max-results","max-size","count","page","per-page"],"scope_strict":true,"note":"Native --page-size is the canonical page bound, native --size is its command-owned compatibility alias, and --limit is reviewed as value-preservingly equivalent to --page-size; total-count and page-number spellings are not equivalent."},
"chat +messages-batch-recall-by-bot": {"block":["msg-id","message-id","open-message-id","msg-ids","message-ids","open-message-ids"],"note":"--keys carries processQueryKey values returned by bot sending; it is not an openMessageId field."},
"chat +messages-combine-forward": {"scoped_aliases":{"src-open-cid":"src-conversation-id","src-open-conversation-id":"src-conversation-id","source-conversation-id":"src-conversation-id","dest-open-cid":"dest-conversation-id","dest-open-conversation-id":"dest-conversation-id","target-conversation-id":"dest-conversation-id","destination-conversation-id":"dest-conversation-id"},"block":["group-id","group-ids"],"ambiguous":["conversation-id","open-conversation-id","group","chat","chat-id","id"],"scope_strict":true,"note":"Source and destination conversation roles remain explicit; role-free CID spellings cannot choose a side."},
"chat +messages-forward": {"scoped_aliases":{"src-open-cid":"src-conversation-id","src-open-conversation-id":"src-conversation-id","source-conversation-id":"src-conversation-id","dest-open-cid":"dest-conversation-id","dest-open-conversation-id":"dest-conversation-id","target-conversation-id":"dest-conversation-id","destination-conversation-id":"dest-conversation-id","src-open-message-id":"msg-id","source-message-id":"msg-id"},"block":["group-id","group-ids"],"ambiguous":["conversation-id","open-conversation-id","group","chat","chat-id","id"],"scope_strict":true,"note":"The message role is uniquely the source message, but source/destination conversation roles cannot be inferred from a generic CID."},
"chat +messages-forward-topic": {"scoped_aliases":{"src-open-conversation-id":"src-conversation-id","source-conversation-id":"src-conversation-id","dest-open-conversation-id":"dest-conversation-id","target-conversation-id":"dest-conversation-id","destination-conversation-id":"dest-conversation-id","src-open-message-id":"src-msg-id","source-message-id":"src-msg-id"},"block":["group-id","group-ids","msg-id","message-id","open-message-id","msg-ids","message-ids","open-message-ids"],"ambiguous":["conversation-id","open-conversation-id","group","chat","chat-id","id"],"scope_strict":true,"note":"Source and destination conversation roles and the source-message role remain explicit; role-free message IDs and list cardinality are not inferred."},
"chat +messages-list": {"scoped_aliases":{"start":"time"},"block":["before","before-time","end","direction","page-all","count","max","max-results","max-size","page-size"],"scope_strict":true,"note":"start preserves the same boundary value; before/direction require multi-parameter or value transforms and page-all requires iteration. Native --conversation-id/--id/--size remain native."},
"chat +messages-recall-by-bot": {"block":["msg-id","message-id","open-message-id","msg-ids","message-ids","open-message-ids"],"note":"--keys carries processQueryKey values, not openMessageId values."},
"chat +messages-reply": {"scoped_aliases":{"msg-id":"ref-msg-id","open-message-id":"ref-msg-id"},"block":["msg-ids","message-ids","open-message-ids"],"scope_strict":true,"note":"The visible --group carries the openConversationId; --conversation-id remains its command-owned typed compatibility alias, while the reviewed command-scoped concept preserves --chat/--chat-id/--open-conversation-id compatibility. The only message role is the referenced message, plural IDs are not accepted, and native --message-id stays native."},
"chat +messages-resource-download": {"block":["download-dir"],"note":"--output may be a file or directory under workspace safety rules; a download directory cannot be assumed equivalent."},
"doc +access-change": {"scoped_aliases":{"space":"workspace","space-id":"workspace"},"scope_strict":true,"note":"Command-scoped compatibility published before the workspace/storage-space concept split: these spellings keep passing their value unchanged to this Doc command's --workspace flag and do not establish global equivalence with a numeric DingDrive storage space."},
"doc +access-grant": {"scoped_aliases":{"space":"workspace","space-id":"workspace"},"block":["target-user-id","target-user-ids","user-id","user-ids"],"ambiguous":["target-user","user","users"],"scope_strict":true,"note":"The real --to accepts collaborator names and resolves them before granting access. Explicit ID spellings cannot be passed through unchanged, while role-free user spellings do not prove whether their values are names or IDs. The command-scoped --space/--space-id aliases preserve previously published Doc workspace compatibility without making workspace and numeric DingDrive storage-space values globally equivalent."},
"doc +access-revoke": {"scoped_aliases":{"space":"workspace","space-id":"workspace"},"scope_strict":true,"note":"Command-scoped compatibility published before the workspace/storage-space concept split: these spellings keep passing their value unchanged to this Doc command's --workspace flag and do not establish global equivalence with a numeric DingDrive storage space."},
"doc +create": {"scoped_aliases":{"folder-id":"folder","parent-folder":"folder","parent-folder-id":"folder","parent-node-id":"folder","space":"workspace","space-id":"workspace"},"block":["content-file","parent-id"],"scope_strict":true,"note":"--content-format is value-preservingly normalized to --doc-format. A raw --content-file path cannot become --content without adding the required @file transform, so it is blocked with guidance to use @relative-path or stable doc create. The command-scoped --space/--space-id aliases preserve previously published Doc workspace compatibility without making workspace and numeric DingDrive storage-space values globally equivalent."},
"doc +create-from-template": {"scoped_aliases":{"folder-id":"folder","parent-folder":"folder","parent-folder-id":"folder","parent-node-id":"folder","space":"workspace","space-id":"workspace"},"block":["parent-id"],"scope_strict":true,"note":"This exact Doc command expects a Doc folder nodeId/dentryUuid/URL. Reviewed folder spellings preserve that value; generic --parent-id stays blocked because it may carry a numeric Drive dentryId. The command-scoped --space/--space-id aliases preserve previously published Doc workspace compatibility without making workspace and numeric DingDrive storage-space values globally equivalent."},
"doc +import": {"scoped_aliases":{"folder-id":"folder","parent-folder":"folder","parent-folder-id":"folder","parent-node-id":"folder","space":"workspace","space-id":"workspace"},"block":["parent-id"],"scope_strict":true,"note":"This exact Doc command expects a Doc folder nodeId/dentryUuid/URL. Reviewed folder spellings preserve that value; generic --parent-id stays blocked because it may carry a numeric Drive dentryId. The command-scoped --space/--space-id aliases preserve previously published Doc workspace compatibility without making workspace and numeric DingDrive storage-space values globally equivalent."},
"doc create": {"scoped_aliases":{"space":"workspace","space-id":"workspace"},"scope_strict":true,"note":"Command-scoped compatibility published before the workspace/storage-space concept split: these spellings keep passing their value unchanged to this Doc command's --workspace flag and do not establish global equivalence with a numeric DingDrive storage space."},
"doc file create": {"scoped_aliases":{"space":"workspace","space-id":"workspace"},"scope_strict":true,"note":"Command-scoped compatibility published before the workspace/storage-space concept split: these spellings keep passing their value unchanged to this Doc command's --workspace flag and do not establish global equivalence with a numeric DingDrive storage space."},
"doc import": {"scoped_aliases":{"space":"workspace","space-id":"workspace"},"scope_strict":true,"note":"Command-scoped compatibility published before the workspace/storage-space concept split: these spellings keep passing their value unchanged to this Doc command's --workspace flag and do not establish global equivalence with a numeric DingDrive storage space."},
"doc template apply": {"scoped_aliases":{"space":"workspace","space-id":"workspace"},"scope_strict":true,"note":"Command-scoped compatibility published before the workspace/storage-space concept split: these spellings keep passing their value unchanged to this Doc command's --workspace flag and do not establish global equivalence with a numeric DingDrive storage space."},
"doc +update": {"scoped_aliases":{"mode":"command","doc-id":"node","document-id":"node","file-id":"node","node-id":"node","url":"node"},"block":["content-file"],"ambiguous":["element"],"scope_strict":true,"note":"--mode append/overwrite is the same operation selector subset as --command and preserves its value. --content-file is blocked because +update requires @relative-path or stdin and central aliases cannot read/transform a file value. --element cannot choose between document content, a block target, or an insertion reference."},
"doc +inspect": {"scoped_aliases":{"include-access":"include-permissions","include-member":"include-permissions","include-members":"include-permissions","include-versions":"include-history"},"block":["include","include-blocks","include-content","include-info","include-meta","include-metadata"],"scope_strict":true,"note":"Access/member spellings denote the same optional permission list, and versions/history denote the same history section. Generic --include needs value-dependent expansion; base metadata is already returned; block/content reads belong to +fetch, so those spellings stop before fuzzy correction or dispatch."},
"doc +fetch": {"scoped_aliases":{"start-block":"start-block-id","end-block":"end-block-id"},"block":["content-format","doc-format","range"],"ambiguous":["block-id"],"scope_strict":true,"note":"Start/end block roles are preserved. A role-free --block-id cannot choose a range/section boundary. --range is an invented composite argument observed alongside --scope range and cannot be split into block IDs by name-only normalization; content-format spellings do not map to the independent --detail contract."},
"doc +export": {"block":["wait"],"scope_strict":true,"note":"The shortcut already submits, polls, and downloads in one workflow. A generic --wait value cannot be converted into the distinct integer --max-polls contract by parameter-name normalization."},
"doc +media-download": {"scoped_aliases":{"doc":"node","doc-id":"node","document-id":"node","node-id":"node"},"ambiguous":["file-id","url"],"scope_strict":true,"note":"This command has both document-node and attachment-resource roles. Strong document spellings map to --node; --file-id and --url cannot safely choose between document and media identities."},
"doc +media-insert": {"scoped_aliases":{"doc":"node","doc-id":"node","document-id":"node","node-id":"node"},"block":["after-block-id","before-block-id"],"ambiguous":["file-id","url"],"scope_strict":true,"note":"This command has both document-node and local-media roles. Strong document spellings map to --node; --file-id and --url cannot safely choose a role. Before/after block spellings each require expansion into both --ref-block and --where, which name-only normalization cannot perform."},
"doc +media-list": {"scoped_aliases":{"doc":"node","doc-id":"node","document-id":"node","node-id":"node"},"ambiguous":["file-id","url"],"scope_strict":true,"note":"The command lists media inside one document, so only strong document spellings map to --node. File and URL spellings remain role-ambiguous."},
"doc +media-preview": {"scoped_aliases":{"doc":"node","doc-id":"node","document-id":"node","node-id":"node"},"ambiguous":["file-id","url"],"scope_strict":true,"note":"This command has both document-node and attachment-resource roles. Strong document spellings map to --node; --file-id and --url cannot safely choose a role."},
"doc +resource-delete": {"scoped_aliases":{"doc":"node","doc-id":"node","document-id":"node","node-id":"node"},"ambiguous":["file-id","url"],"scope_strict":true,"note":"This command removes a document resource while targeting the document by --node. File and URL spellings do not uniquely identify that document role."},
"doc +resource-download": {"scoped_aliases":{"doc":"node","doc-id":"node","document-id":"node","node-id":"node"},"ambiguous":["file-id","url"],"scope_strict":true,"note":"This command downloads a document resource while targeting the document by --node. File and URL spellings do not uniquely identify that document role."},
"doc +resource-update": {"scoped_aliases":{"doc":"node","doc-id":"node","document-id":"node","node-id":"node"},"ambiguous":["file-id","url"],"scope_strict":true,"note":"This command has document-node, local-file, and HTTPS image URL roles. Only strong document spellings map to --node; --file-id and --url must stop as ambiguous."},
"doc +share": {"block":["doc","doc-id","document-id","file-id","id","node","node-id"],"note":"The real --url requires a shareable document link. Name-only normalization cannot turn a node identifier into a URL, so identifier spellings are rejected with guidance to provide --url."},
"doc +grant-and-share": {"scoped_aliases":{"doc":"node","doc-id":"node","document-id":"node","file-id":"node","node-id":"node","space":"workspace","space-id":"workspace"},"scope_strict":true,"note":"This workflow has two different real URL roles: --node selects the document for access control and --url is the shareable link sent to recipients. Explicit document-ID spellings map only to --node; --url remains native. The command-scoped --space/--space-id aliases preserve previously published Doc workspace compatibility without making workspace and numeric DingDrive storage-space values globally equivalent."},
"doc +version-save": {"block":["message","title"],"scope_strict":true,"note":"The current snapshot API accepts only the document target. Version title/message metadata are unsupported and cannot be represented by another existing flag."},
"drive copy": {"scoped_aliases":{"document-id":"node","dentry-uuid":"node","directory-id":"folder","source-node-id":"node","source-file-id":"node","target-folder-id":"folder","destination-folder-id":"folder","target-workspace-id":"workspace","destination-workspace-id":"workspace"},"scope_strict":true,"note":"Source node and destination folder/workspace are different roles; role-free target IDs stop before write dispatch. --name is not a rename field on this command and must not be fuzzy-corrected to --node.","block":["dentry-id","destination-node-id","dingdrive-space-id","drive-space-id","name","source-folder-id","space-id","storage-space-id"],"ambiguous":["destination-id","target-id"]},
"drive cover": {"scoped_aliases":{"document-id":"node","dentry-uuid":"node"},"scope_strict":true,"note":"The command accepts a Drive node ID or URL; native file-id/node-id/doc-id/url aliases stay native and are not duplicated centrally.","block":["dentry-id"]},
"drive download-version": {"scoped_aliases":{"document-id":"node","dentry-uuid":"node","chunk-size":"part-size","concurrency":"parallel","parallelism":"parallel"},"scope_strict":true,"note":"Output path, chunk size, and concurrency names preserve values; local input and remote folder roles remain blocked.","block":["dentry-id","file","file-path","folder","folder-id"]},
"drive move": {"scoped_aliases":{"document-id":"node","dentry-uuid":"node","directory-id":"folder","source-node-id":"node","source-file-id":"node","target-folder-id":"folder","destination-folder-id":"folder","target-workspace-id":"workspace","destination-workspace-id":"workspace"},"scope_strict":true,"note":"Source node and destination folder/workspace are different roles; role-free target IDs stop before write dispatch. --name is not a rename field on this command and must not be fuzzy-corrected to --node.","block":["dentry-id","destination-node-id","dingdrive-space-id","drive-space-id","name","source-folder-id","space-id","storage-space-id"],"ambiguous":["destination-id","target-id"]},
"drive permission add": {"scoped_aliases":{"document-id":"node","dentry-uuid":"node","member-user-ids":"users","collaborator-ids":"users","target-user-ids":"users","target-node-id":"node"},"scope_strict":true,"note":"The user list denotes target collaborators on this exact node permission command; the native singular compatibility spellings remain native.","block":["dentry-id","dingdrive-space-id","drive-space-id","space-id","storage-space-id"]},
"drive permission apply": {"scoped_aliases":{"document-id":"node","dentry-uuid":"node","approver-user-ids":"users","approver-ids":"users","target-node-id":"node","apply-reason":"reason","notification-mode":"notify-mode"},"scope_strict":true,"note":"The user list denotes approvers, not target collaborators; values and notification enum are passed unchanged.","block":["dentry-id"]},
"drive permission apply-info": {"scoped_aliases":{"document-id":"node","dentry-uuid":"node"},"scope_strict":true,"note":"The command accepts a Drive node ID or URL; native file-id/node-id/doc-id/url aliases stay native and are not duplicated centrally.","block":["dentry-id"]},
"drive permission list": {"scoped_aliases":{"document-id":"node","dentry-uuid":"node","role-filter":"filter-role","permission-role-filter":"filter-role","target-node-id":"node"},"scope_strict":true,"note":"Filtering by a role is not the same as granting/updating a role.","block":["dentry-id","dingdrive-space-id","drive-space-id","permission","role","space-id","storage-space-id"]},
"drive permission remove": {"scoped_aliases":{"document-id":"node","dentry-uuid":"node","member-user-ids":"users","collaborator-ids":"users","target-user-ids":"users","target-node-id":"node"},"scope_strict":true,"note":"The user list denotes target collaborators on this exact node permission command; the native singular compatibility spellings remain native.","block":["dentry-id","dingdrive-space-id","drive-space-id","space-id","storage-space-id"]},
"drive permission transfer-owner": {"scoped_aliases":{"document-id":"node","dentry-uuid":"node","target-node-id":"node","target-workspace-id":"workspace","old-owner-role":"reserve-role","keep-role":"reserve-role","new-owner-id":"new-owner","new-owner-user-id":"new-owner"},"scope_strict":true,"note":"Node/workspace target and new/old owner roles are distinct on this irreversible command; role-free names stop before dispatch.","block":["current-owner","dentry-id","dingdrive-space-id","drive-space-id","space-id","storage-space-id","user-ids","users"],"ambiguous":["owner","owner-user-id","target-id","user-id"]},
"drive permission update": {"scoped_aliases":{"document-id":"node","dentry-uuid":"node","member-user-ids":"users","collaborator-ids":"users","target-user-ids":"users","target-node-id":"node"},"scope_strict":true,"note":"The user list denotes target collaborators on this exact node permission command; the native singular compatibility spellings remain native.","block":["dentry-id","dingdrive-space-id","drive-space-id","space-id","storage-space-id"]},
"drive publish get": {"scoped_aliases":{"document-id":"node","dentry-uuid":"node"},"scope_strict":true,"note":"The command accepts a Drive node ID or URL; native file-id/node-id/doc-id/url aliases stay native and are not duplicated centrally.","block":["dentry-id"]},
"drive publish set": {"scoped_aliases":{"document-id":"node","dentry-uuid":"node","public-permission":"permission","public-role":"permission"},"scope_strict":true,"note":"Internet-public permission is not the same as a direct collaborator role.","block":["access-role","dentry-id","permission-role","role"]},
"drive publish unset": {"scoped_aliases":{"document-id":"node","dentry-uuid":"node"},"scope_strict":true,"note":"The command accepts a Drive node ID or URL; native file-id/node-id/doc-id/url aliases stay native and are not duplicated centrally.","block":["dentry-id"]},
"drive rename": {"scoped_aliases":{"document-id":"node","dentry-uuid":"node","file-name":"name","display-name":"name","new-name":"name"},"scope_strict":true,"note":"The name is this exact folder/node display name; search query and local path are different roles.","block":["dentry-id"]},
"drive revert": {"scoped_aliases":{"document-id":"node","dentry-uuid":"node"},"scope_strict":true,"note":"The command accepts a Drive node ID or URL; native file-id/node-id/doc-id/url aliases stay native and are not duplicated centrally.","block":["dentry-id"]},
"drive shortcut": {"scoped_aliases":{"document-id":"node","dentry-uuid":"node","directory-id":"folder","source-node-id":"node","source-file-id":"node","target-folder-id":"folder","destination-folder-id":"folder","target-workspace-id":"workspace","destination-workspace-id":"workspace"},"scope_strict":true,"note":"Source node and destination folder/workspace are different roles; role-free target IDs stop before write dispatch. --name is not a rename field on this command and must not be fuzzy-corrected to --node.","block":["dentry-id","destination-node-id","dingdrive-space-id","drive-space-id","name","source-folder-id","space-id","storage-space-id"],"ambiguous":["destination-id","target-id"]},
"drive star add": {"scoped_aliases":{"document-id":"node","dentry-uuid":"node"},"scope_strict":true,"note":"The command accepts a Drive node ID or URL; native file-id/node-id/doc-id/url aliases stay native and are not duplicated centrally.","block":["dentry-id"]},
"drive star remove": {"scoped_aliases":{"document-id":"node","dentry-uuid":"node"},"scope_strict":true,"note":"The command accepts a Drive node ID or URL; native file-id/node-id/doc-id/url aliases stay native and are not duplicated centrally.","block":["dentry-id"]},
"drive stats": {"scoped_aliases":{"document-id":"node","dentry-uuid":"node"},"scope_strict":true,"note":"The command accepts a Drive node ID or URL; native file-id/node-id/doc-id/url aliases stay native and are not duplicated centrally.","block":["dentry-id"]},
"drive +cover": {"scoped_aliases":{"dentry-uuid":"node","file-id":"node","node-id":"node","doc-id":"node","document-id":"node","url":"node","document-url":"node","id":"node"},"block":["dentry-id","doc","folder","folder-id","name"],"scope_strict":true,"note":"This shortcut calls the same get_cover nodeId interface as drive cover, so its reviewed ID/URL aliases are preserved unchanged. Numeric dentryId, folder-role spellings and --name remain protected."},
"drive +copy": {"scoped_aliases":{"dentry-uuid":"node","directory-id":"folder","source-node-id":"node","source-file-id":"node","target-folder-id":"folder","destination-folder-id":"folder","target-workspace-id":"workspace","destination-workspace-id":"workspace"},"block":["dentry-id","destination-node-id","dingdrive-space-id","document-url","drive-space-id","name","source-folder-id","space-id","storage-space-id"],"scope_strict":true,"note":"Source node and destination folder/workspace are different roles; role-free target IDs stop before write dispatch. --name is not a rename field on this command and must not be fuzzy-corrected to --node.","ambiguous":["destination-id","target-id"]},
"drive +create-folder": {"scoped_aliases":{"directory-id":"folder","parent-directory-id":"folder","parent-folder-id":"folder","folder-name":"name","display-name":"name","new-name":"name"},"block":["dentry-id","parent-id","knowledge-base-id","wiki-workspace-id","workspace","workspace-id"],"scope_strict":true,"note":"The new shortcut creates a numeric DingDrive-space folder. Folder display name, parent dentryUuid and numeric storage space are separate roles; knowledge-base workspace spellings are not accepted."},
"drive +create-shortcut": {"scoped_aliases":{"dentry-uuid":"node","file-id":"node","node-id":"node","doc-id":"node","document-id":"node","url":"node","document-url":"node","directory-id":"folder","source-node-id":"node","source-file-id":"node","target-folder-id":"folder","destination-folder-id":"folder","target-workspace-id":"workspace","destination-workspace-id":"workspace"},"block":["dentry-id","destination-node-id","dingdrive-space-id","doc","drive-space-id","name","source-folder-id","space-id","storage-space-id"],"scope_strict":true,"note":"Source node and destination folder/workspace are different roles. The source ID/URL aliases match drive shortcut and pass through unchanged; generic target/id spellings remain ambiguous, and storage-space IDs are not knowledge-base workspace IDs.","ambiguous":["destination-id","id","target-id"]},
"drive +delete": {"scoped_aliases":{"dentry-uuid":"node","file-id":"node","node-id":"node","folder":"node","folder-id":"node"},"block":["dentry-id","doc","doc-id","document-id","document-url","id","name","url"],"scope_strict":true,"note":"Delete targets one already confirmed Drive file or folder dentryUuid. Folder spellings are the same single target role; numeric dentryId, unreviewed Doc URL spellings and --name stop before confirmation or write dispatch."},
"drive +download": {"scoped_aliases":{"dentry-uuid":"node","file-id":"node","node-id":"node"},"block":["dentry-id","doc","doc-id","document-id","document-url","file","file-path","folder","folder-id","id","knowledge-base-id","name","url","wiki-workspace-id","workspace","workspace-id"],"scope_strict":true,"note":"The remote ordinary-file node and local output path are different roles. Node-ID spelling is accepted, while Doc URLs, local input paths, folders, knowledge-base workspaces and numeric dentryId values are not interchangeable."},
"drive +info": {"scoped_aliases":{"dentry-uuid":"node"},"block":["dentry-id","document-url","knowledge-base-id","wiki-workspace-id","workspace","workspace-id"],"scope_strict":true,"note":"This command has only a numeric DingDrive space target; knowledge-base workspace spellings are a different value domain."},
"drive +inspect": {"scoped_aliases":{"dentry-uuid":"node","file-id":"node","node-id":"node","doc-id":"node","document-id":"node","folder":"node","folder-id":"node","include-statistics":"include-stats","include-publish-status":"include-publish","include-public-status":"include-publish","include-thumbnail":"include-cover"},"block":["dentry-id","doc","document-url","id","include","include-content","include-history","include-permissions","name","url"],"scope_strict":true,"note":"Drive inspect accepts one file, folder or document node ID and can aggregate only stats, public-publish status and cover. URL spellings, Doc inspect section names and a generic --include remain protected because this shortcut does not declare URL input or value splitting."},
"drive +list": {"ambiguous":["root-id","space"],"scoped_aliases":{"directory-id":"folder","parent-folder-id":"folder","order-field":"order-by","sort-by":"order-by","sort-field":"order-by"},"block":["dentry-id","knowledge-base-id","wiki-workspace-id","workspace","workspace-id"],"scope_strict":true,"note":"This shortcut accepts one numeric DingDrive space and an optional parent dentryUuid; it does not accept a knowledge-base workspace. Sort field and direction remain separate roles."},
"drive +move": {"scoped_aliases":{"dentry-uuid":"node","directory-id":"folder","source-node-id":"node","source-file-id":"node","target-folder-id":"folder","destination-folder-id":"folder","target-workspace-id":"workspace","destination-workspace-id":"workspace"},"block":["dentry-id","destination-node-id","dingdrive-space-id","document-url","drive-space-id","name","source-folder-id","space-id","storage-space-id"],"scope_strict":true,"note":"Source node and destination folder/workspace are different roles; role-free target IDs stop before write dispatch. --name is not a rename field on this command and must not be fuzzy-corrected to --node.","ambiguous":["destination-id","target-id"]},
"drive +publish-get": {"scoped_aliases":{"dentry-uuid":"node","file-id":"node","node-id":"node","doc-id":"node","document-id":"node","url":"node","document-url":"node","id":"node"},"block":["dentry-id","doc","folder","folder-id","name"],"scope_strict":true,"note":"The shortcut calls the same publication-status fileId interface as drive publish get, so its reviewed ID/URL aliases are preserved unchanged. Numeric dentryId and folder/name roles remain protected."},
"drive +publish-unset": {"scoped_aliases":{"dentry-uuid":"node","file-id":"node","node-id":"node","doc-id":"node","document-id":"node","url":"node","document-url":"node","id":"node"},"block":["dentry-id","doc","folder","folder-id","name"],"scope_strict":true,"note":"The shortcut calls the same set_file_publish fileId interface as drive publish unset, so its reviewed ID/URL aliases are preserved unchanged. Numeric dentryId and folder/name roles remain protected before confirmation."},
"drive +recycle-restore": {"bind":{"id":"drive_recycle_item_id"},"block":["file-id","folder-id","node","node-id","space-id","workspace-id"],"scope_strict":true,"note":"The real --id is a recycleItemId returned by drive +recycle-list, not a normal Drive node ID."},
"drive +rename": {"scoped_aliases":{"dentry-uuid":"node","file-id":"node","node-id":"node","doc-id":"node","document-id":"node","url":"node","document-url":"node","id":"node","folder":"node","folder-id":"node","file-name":"name","display-name":"name","new-name":"name"},"block":["dentry-id"],"scope_strict":true,"note":"The existing document, file or folder node and the requested new display name are separate required roles. Node ID/URL aliases match drive rename and pass through unchanged; numeric dentryId remains protected."},
"drive delete": {"scoped_aliases":{"dentry-uuid":"node"},"block":["dentry-id","document-url"],"scope_strict":true,"note":"This command publicly accepts an ID-only Drive node; dentry spellings preserve the value and URL-specific spellings remain protected."},
"drive download": {"scoped_aliases":{"dentry-uuid":"node","chunk-size":"part-size","concurrency":"parallel","parallelism":"parallel"},"block":["dentry-id","document-url","file","file-path","folder","folder-id","knowledge-base-id","wiki-workspace-id","workspace","workspace-id"],"scope_strict":true,"note":"Output path, chunk size, and concurrency names preserve values; local input and remote folder roles remain blocked."},
"drive info": {"scoped_aliases":{"dentry-uuid":"node","space":"space-id","workspace":"space-id","workspace-id":"space-id"},"block":["dentry-id","document-url","knowledge-base-id","wiki-workspace-id"],"scope_strict":true,"note":"This command has only a numeric DingDrive space target. Its command-scoped --space/--workspace/--workspace-id aliases preserve compatibility published before the workspace/storage-space concept split and pass the value unchanged to --space-id; new commands must not infer that knowledge-base workspace IDs and numeric storage-space IDs are globally interchangeable."},
"drive commit": {"scoped_aliases":{"directory-id":"folder","parent-directory-id":"folder","upload-session-id":"upload-id","size-bytes":"file-size","name":"file-name","display-name":"file-name","filename":"file-name","upload-name":"file-name"},"scope_strict":true,"note":"Upload session, file name, file size in bytes, parent folder, and storage space remain separate roles.","block":["knowledge-base-id","wiki-workspace-id","workspace","workspace-id"]},
"drive mkdir": {"scoped_aliases":{"directory-id":"folder","parent-directory-id":"folder","folder-name":"name","display-name":"name","new-name":"name"},"scope_strict":true,"note":"The name is this exact folder/node display name; search query and local path are different roles.","block":["knowledge-base-id","wiki-workspace-id","workspace","workspace-id"]},
"drive upload-info": {"scoped_aliases":{"directory-id":"folder","parent-directory-id":"folder","content-type":"mime-type","size-bytes":"file-size","name":"file-name","display-name":"file-name","filename":"file-name","upload-name":"file-name"},"scope_strict":true,"note":"File metadata aliases preserve MIME and byte units; file path and upload session are different stages.","block":["knowledge-base-id","wiki-workspace-id","workspace","workspace-id"]},
"drive recycle list": {"block":["knowledge-base-id","wiki-workspace-id","workspace","workspace-id"],"scope_strict":true,"note":"This command has only a numeric DingDrive space target; knowledge-base workspace spellings are a different value domain."},
"drive search": {"ambiguous":["end","from","start","time-from","time-to","to","types"],"block":["offset","page"],"scope_strict":true,"note":"Created/modified ranges and file/content type arrays are separate roles; generic time/type names are not guessed."},
"drive +search": {"ambiguous":["end","from","start","time-from","time-to","to","types"],"block":["offset","page"],"scope_strict":true,"note":"Created/modified ranges and file/content type arrays are separate roles; generic time/type names are not guessed."},
"drive +star-add": {"scoped_aliases":{"dentry-uuid":"node","file-id":"node","node-id":"node","doc-id":"node","document-id":"node","url":"node","document-url":"node","id":"node"},"block":["dentry-id","doc","folder","folder-id","name"],"scope_strict":true,"note":"The shortcut calls the same mark_star nodeId interface as drive star add, so its reviewed document/node ID and URL aliases are preserved unchanged. Numeric dentryId and folder/name roles remain protected."},
"drive +star-remove": {"scoped_aliases":{"dentry-uuid":"node","file-id":"node","node-id":"node","doc-id":"node","document-id":"node","url":"node","document-url":"node","id":"node"},"block":["dentry-id","doc","folder","folder-id","name"],"scope_strict":true,"note":"The shortcut calls the same unmark_star nodeId interface as drive star remove, so its reviewed document/node ID and URL aliases are preserved unchanged. Numeric dentryId and folder/name roles remain protected."},
"drive +stats": {"scoped_aliases":{"dentry-uuid":"node","file-id":"node","node-id":"node","doc-id":"node","document-id":"node","url":"node","document-url":"node","id":"node"},"block":["dentry-id","doc","folder","folder-id","name"],"scope_strict":true,"note":"The shortcut calls the same get_node_stats nodeId interface as drive stats, so its reviewed ID/URL aliases are preserved unchanged. Numeric dentryId and folder/name roles remain protected."},
"drive +version-download": {"scoped_aliases":{"dentry-uuid":"node","file-id":"node","node-id":"node"},"block":["dentry-id","doc","doc-id","document-id","document-url","file","file-path","folder","folder-id","id","name","url"],"scope_strict":true,"note":"Ordinary-file node, positive historical version number and local output path are three distinct roles; revision and Doc URL spellings must not be guessed."},
"drive +version-get": {"scoped_aliases":{"dentry-uuid":"node","file-id":"node","node-id":"node"},"block":["dentry-id","doc","doc-id","document-id","document-url","folder","folder-id","id","name","url"],"scope_strict":true,"note":"This command reads one ordinary-file historical version by node ID and positive version number; document revision and URL roles are different."},
"drive +version-history": {"scoped_aliases":{"dentry-uuid":"node","file-id":"node","node-id":"node"},"block":["dentry-id","doc","doc-id","document-id","document-url","folder","folder-id","id","name","url"],"scope_strict":true,"note":"This command pages versions for one ordinary-file Drive node; document URLs and numeric dentryId are not accepted."},
"drive +version-revert": {"scoped_aliases":{"dentry-uuid":"node","file-id":"node","node-id":"node"},"block":["dentry-id","doc","doc-id","document-id","document-url","folder","folder-id","id","name","url"],"scope_strict":true,"note":"The high-risk revert targets one ordinary-file Drive node and a positive historical version number. Doc revisions and URLs must stop before confirmation or write dispatch."},
"drive recycle restore": {"bind":{"id":"drive_recycle_item_id"},"block":["file-id","folder-id","node","node-id","space-id","workspace-id"],"scope_strict":true,"note":"The real --id is a recycle-item ID from recycle list, not a normal Drive node ID."},
"drive star list": {"ambiguous":["type","types"],"scope_strict":true,"note":"Content types and resource types are separate arrays; a generic type list cannot choose one.","scoped_aliases":{"order-field":"order-by","sort-by":"order-by","sort-field":"order-by"}},
"drive recent": {"ambiguous":["type","types"],"scope_strict":true,"note":"Creator type, operation type, and file type filters are distinct and keep their enum/list forms."},
"drive +recent": {"ambiguous":["type","types"],"scope_strict":true,"note":"Creator type, operation type, and file type filters are distinct and keep their enum/list forms."},
"drive +star-list": {"ambiguous":["type","types"],"scope_strict":true,"note":"The shortcut exposes only the API contentTypes filter. Generic type spellings may denote file extensions or node/resource types, so the current name-only layer must not guess the value domain."},
"drive +upload": {"ambiguous":["destination-id","space","target-id"],"scoped_aliases":{"dentry-uuid":"node","file-id":"node","node-id":"node","overwrite-node-id":"node","directory-id":"folder","parent-directory-id":"folder","parent-folder-id":"folder","target-folder-id":"folder","source-file":"file","local-file":"file","file-path":"file","content-type":"mime-type","filename":"file-name","name":"file-name","display-name":"file-name","upload-name":"file-name"},"block":["dentry-id","document-url","knowledge-base-id","wiki-workspace-id","workspace","workspace-id","output-path"],"scope_strict":true,"note":"Local source path, remote display name, MIME type, parent folder, numeric storage space and optional overwrite node are distinct roles. ID-suffixed file/node spellings denote the overwrite target; the shortcut does not expose a knowledge-base workspace route."},
"aitable +export-data": {"scoped_aliases":{"export-format":"format"},"scope_strict":true,"note":"The shortcut's local --format is the export file format, unlike the root output-format flag; only the explicit --export-format spelling is mapped here."},
"aitable attachment upload": {"scoped_aliases":{"file-size":"size"},"scope_strict":true,"note":"On this upload command --size is the local file size in bytes; the mapping is command-local because size is a pagination synonym elsewhere."},
"aitable +attachment-upload": {"scoped_aliases":{"file-size":"size"},"scope_strict":true,"note":"On this upload command --size is the local file size in bytes; the mapping is command-local because size is a pagination synonym elsewhere."},
"aitable import upload": {"scoped_aliases":{"size":"file-size"},"scope_strict":true,"note":"On this import-upload command --file-size is the local file size in bytes; the mapping is command-local because size is a pagination synonym elsewhere."},
"aitable +import-upload": {"scoped_aliases":{"size":"file-size"},"scope_strict":true,"note":"On this import-upload command --file-size is the local file size in bytes; the mapping is command-local because size is a pagination synonym elsewhere."},
"aitable +table-copy": {"scoped_aliases":{"table-id":"source-table-id"},"ambiguous":["base","base-id","base-token"],"scope_strict":true,"note":"The only existing table role is the source table, while an unqualified Base spelling cannot choose between source-base-id and target-base-id."},
"aitable workflow run": {"block":["record-id"],"note":"The command accepts a list of one to five record IDs. A singular --record-id is deliberately blocked instead of relying on edit-distance correction; --table-id and --record-ids must remain paired for record-triggered workflows."},
"aitable workflow history": {"scoped_aliases":{"start-time":"after-time","end-time":"before-time","page-index":"page"},"block":["cursor","offset","page-token","next-cursor","next-token","page-no","page-number","current-page"],"scope_strict":true,"note":"This endpoint uses a zero-based page plus per-page size, not cursor/offset pagination. Time-bound aliases preserve the required Unix-millisecond value unchanged."},
"minutes +share": {"bind":{"member-uids":"user_ids","id":"minutes_task_uuid"},"block":["user","user-id","userid","uid","staff-id","union-id","open-dingtalk-id","policy"],"note":"--member-uids is a DingTalk userId list; singular inputs and staffId/unionId/openDingTalkId value domains are not promoted. Semantic permission names and numeric policy values require value conversion and are intentionally blocked across surfaces. The broad real --id is explicitly bound to the Minutes taskUuid concept."},
"minutes +unshare": {"bind":{"member-uids":"user_ids","id":"minutes_task_uuid"},"block":["user","user-id","userid","uid","staff-id","union-id","open-dingtalk-id"],"note":"--member-uids is a DingTalk userId list; singular inputs and staffId/unionId/openDingTalkId value domains are not promoted. The broad real --id is explicitly bound to the Minutes taskUuid concept."},
"minutes permission add": {"bind":{"member-uids":"user_ids","ids":"minutes_task_uuids"},"block":["id","task-uuid","uuid","user","user-id","userid","uid","staff-id","union-id","open-dingtalk-id","permission"],"note":"--ids is a taskUuid list and --member-uids is a DingTalk userId list. Singular task IDs, singular member IDs, staffId/unionId/openDingTalkId domains, and semantic permission names are not promoted into these list/numeric roles."},
"minutes permission remove": {"bind":{"member-uids":"user_ids","ids":"minutes_task_uuids"},"block":["id","task-uuid","uuid","user","user-id","userid","uid","staff-id","union-id","open-dingtalk-id"],"note":"--ids is a taskUuid list and --member-uids is a DingTalk userId list. Singular task/member inputs and staffId/unionId/openDingTalkId domains are not promoted."},
"minutes speaker replace": {"scoped_aliases":{"user-id":"target-uid","userid":"target-uid","uid":"target-uid","old-speaker":"from","source-speaker":"from","new-speaker":"to","target-speaker":"to"},"block":["target-uids","user","staff-id","union-id","open-dingtalk-id"],"scope_strict":true,"note":"--id is taskUuid, --from/--to are speaker-label roles, and singular --target-uid requires one stable DingTalk userId. Plural target IDs and other user identity domains are not promoted. The broad real --id is explicitly bound to the Minutes taskUuid concept.","bind":{"id":"minutes_task_uuid"}},
"minutes +speaker-replace": {"scoped_aliases":{"user-id":"target-uid","userid":"target-uid","uid":"target-uid","old-speaker":"from","source-speaker":"from","new-speaker":"to","target-speaker":"to"},"block":["target-uids","user","staff-id","union-id","open-dingtalk-id"],"scope_strict":true,"note":"--id is taskUuid, --from/--to are speaker-label roles, and singular --target-uid requires one stable DingTalk userId. Plural target IDs and other user identity domains are not promoted. The broad real --id is explicitly bound to the Minutes taskUuid concept.","bind":{"id":"minutes_task_uuid"}},
"minutes audio-memo list": {"scoped_aliases":{"limit":"max","page-size":"max","max-results":"max","next-cursor":"cursor"},"block":["next-token","page-token","next-page-token"],"scope_strict":true,"note":"This command uses --max for the count bound and an integer cursor; opaque pagination tokens cannot be renamed into that integer domain."},
"minutes tag query": {"scoped_aliases":{"id":"tag-id"},"block":["tag-ids","group-id","group-name"],"scope_strict":true,"note":"The generic identifier on this exact command is one Minutes tag ID, not a taskUuid, tag list, or group identifier."},
"minutes replace-text": {"scoped_aliases":{"find":"search","original-text":"search","new-text":"replace","replacement-text":"replace"},"block":["text","content","body"],"scope_strict":true,"note":"Search and replacement are two distinct required roles; role-free text spellings cannot safely choose one side. The broad real --id is explicitly bound to the Minutes taskUuid concept.","bind":{"id":"minutes_task_uuid"}},
"minutes +replace-batch": {"scoped_aliases":{"pairs":"pair"},"block":["search","replace","original-text","replacement-text"],"scope_strict":true,"note":"The repeatable --pair value is encoded as source=>replacement; name normalization cannot compose it from two separate values. The broad real --id is explicitly bound to the Minutes taskUuid concept.","bind":{"id":"minutes_task_uuid"}},
"minutes +download": {"ambiguous":["destination","path","save-path"],"note":"The destination role depends on singular --output versus batch --output-dir and cannot be selected from a generic path name. The broad real --id is explicitly bound to the Minutes taskUuid concept.","bind":{"id":"minutes_task_uuid"}},
"minutes list all": {"block":["date-range"],"note":"A date range must be represented by both --start and --end; name-only normalization cannot split one value into two flags."},
"minutes list mine": {"block":["date-range"],"note":"A date range must be represented by both --start and --end; name-only normalization cannot split one value into two flags."},
"minutes list shared": {"block":["date-range"],"note":"A date range must be represented by both --start and --end; name-only normalization cannot split one value into two flags."},
"minutes +search": {"block":["date-range"],"note":"A date range must be represented by both --start and --end; name-only normalization cannot split one value into two flags."},
"minutes +apply-permission": {"block":["policy"],"note":"Semantic permission names and numeric policy values require value conversion and cannot be passed through by renaming. The broad real --id is explicitly bound to the Minutes taskUuid concept.","bind":{"id":"minutes_task_uuid"}},
"minutes permission apply": {"block":["ids","task-uuids","uuids","permission"],"note":"This leaf accepts one taskUuid and a numeric policy. Task lists and semantic permission names require cardinality/value conversion and cannot be passed through by renaming."},
"minutes get info": {"block":["ids","task-uuids","uuids"],"note":"This leaf accepts exactly one taskUuid; list spellings must stop before the hidden singular aliases or trailing-id tolerance can consume a comma-separated value."},
"minutes get summary": {"block":["ids","task-uuids","uuids"],"note":"This leaf accepts exactly one taskUuid; list spellings must stop before the hidden singular aliases or trailing-id tolerance can consume a comma-separated value."},
"minutes get keywords": {"block":["ids","task-uuids","uuids"],"note":"This leaf accepts exactly one taskUuid; list spellings must stop before the hidden singular aliases or trailing-id tolerance can consume a comma-separated value."},
"minutes get transcription": {"block":["ids","task-uuids","uuids"],"note":"This leaf accepts exactly one taskUuid; list spellings must stop before the hidden singular aliases or trailing-id tolerance can consume a comma-separated value."},
"minutes get todos": {"block":["ids","task-uuids","uuids"],"note":"This leaf accepts exactly one taskUuid; list spellings must stop before the hidden singular aliases or trailing-id tolerance can consume a comma-separated value."},
"minutes get audio": {"block":["ids","task-uuids","uuids"],"note":"This leaf accepts exactly one taskUuid; list spellings must stop before the hidden singular aliases or trailing-id tolerance can consume a comma-separated value."},
"minutes mind-graph create": {"block":["ids","task-uuids","uuids"],"note":"This leaf creates a mind graph for exactly one taskUuid; a task list cannot be renamed into the singular role."},
"minutes mind-graph status": {"block":["ids","task-uuids","uuids"],"note":"This leaf queries the mind graph for exactly one taskUuid; a task list cannot be renamed into the singular role."},
"minutes upload create": {"block":["file","file-path","path","template-ids"],"note":"The atomic create command requires file-name, byte-sized file-size, and at most one template ID. A local path needs stat/upload orchestration, and a template list cannot be renamed into the singular role."},
"minutes upload complete": {"block":["session-ids","upload-session-ids","upload-ids"],"note":"The command completes exactly one upload session; plural session spellings cannot be renamed into its singular sessionId."},
"minutes upload cancel": {"block":["session-ids","upload-session-ids","upload-ids"],"note":"The command cancels exactly one upload session; plural session spellings cannot be renamed into its singular sessionId."},
"minutes +upload": {"block":["file-name","file-size","size-bytes","template-ids"],"note":"The Shortcut requires a local --file path, computes file metadata, and accepts at most one template ID; atomic metadata or template lists cannot be renamed into those roles."},
"minutes record start": {"block":["session-ids","upload-session-id","upload-session-ids","upload-id","upload-ids"],"note":"The optional recording assistant session is singular, and recording/upload session IDs are different business entities. Plural or upload-session spellings are blocked."},
"minutes record pause": {"block":["session-ids","upload-session-id","upload-session-ids","upload-id","upload-ids"],"note":"The optional recording assistant session is singular, and recording/upload session IDs are different business entities. The broad real --id is explicitly bound to the Minutes taskUuid concept.","bind":{"id":"minutes_task_uuid"}},
"minutes record resume": {"block":["session-ids","upload-session-id","upload-session-ids","upload-id","upload-ids"],"note":"The optional recording assistant session is singular, and recording/upload session IDs are different business entities. The broad real --id is explicitly bound to the Minutes taskUuid concept.","bind":{"id":"minutes_task_uuid"}},
"minutes record stop": {"block":["session-ids","upload-session-id","upload-session-ids","upload-id","upload-ids"],"note":"The optional recording assistant session is singular, and recording/upload session IDs are different business entities. The broad real --id is explicitly bound to the Minutes taskUuid concept.","bind":{"id":"minutes_task_uuid"}},
"minutes +record-start": {"block":["session-ids","upload-session-id","upload-session-ids","upload-id","upload-ids"],"note":"The optional recording assistant session is singular, and recording/upload session IDs are different business entities. Plural or upload-session spellings are blocked."},
"minutes +record-pause": {"block":["session-ids","upload-session-id","upload-session-ids","upload-id","upload-ids"],"note":"The optional recording assistant session is singular, and recording/upload session IDs are different business entities. The broad real --id is explicitly bound to the Minutes taskUuid concept.","bind":{"id":"minutes_task_uuid"}},
"minutes +record-resume": {"block":["session-ids","upload-session-id","upload-session-ids","upload-id","upload-ids"],"note":"The optional recording assistant session is singular, and recording/upload session IDs are different business entities. The broad real --id is explicitly bound to the Minutes taskUuid concept.","bind":{"id":"minutes_task_uuid"}},
"minutes +record-stop": {"block":["session-ids","upload-session-id","upload-session-ids","upload-id","upload-ids"],"note":"The optional recording assistant session is singular, and recording/upload session IDs are different business entities. The broad real --id is explicitly bound to the Minutes taskUuid concept.","bind":{"id":"minutes_task_uuid"}},
"minutes +speaker-insights": {"block":["task-ids"],"note":"--id is one Minutes taskUuid while optional --task-id is one asynchronous recovery handle; neither role accepts a list. The broad real --id is explicitly bound to the single Minutes taskUuid concept.","bind":{"id":"minutes_task_uuid"}},
"minutes +upload-and-analyze": {"scoped_aliases":{"task-uuid":"resume-id","uuid":"resume-id"},"block":["file-name","file-size","size-bytes","id","resume-ids","template-ids"],"scope_strict":true,"note":"--resume-id is one already-created taskUuid and --template-id is singular. Explicit taskUuid spellings may resume one task, while generic --id, list spellings, and atomic file metadata remain blocked against route/cardinality confusion."},
"minutes +action-items": {"bind":{"id":"minutes_task_uuid"},"note":"The broad real --id is explicitly bound to the single Minutes taskUuid concept."},
"minutes +detail": {"bind":{"id":"minutes_task_uuid"},"note":"The broad real --id is explicitly bound to the single Minutes taskUuid concept."},
"minutes +export-pack": {"bind":{"id":"minutes_task_uuid"},"note":"The broad real --id is explicitly bound to the single Minutes taskUuid concept."},
"minutes +mindmap": {"bind":{"id":"minutes_task_uuid"},"note":"The broad real --id is explicitly bound to the single Minutes taskUuid concept."},
"minutes +record-wrap-up": {"bind":{"id":"minutes_task_uuid"},"note":"The broad real --id is explicitly bound to the single Minutes taskUuid concept."},
"minutes +summary": {"bind":{"id":"minutes_task_uuid"},"note":"The broad real --id is explicitly bound to the single Minutes taskUuid concept."},
"minutes +transcript": {"bind":{"id":"minutes_task_uuid"},"note":"The broad real --id is explicitly bound to the single Minutes taskUuid concept."},
"minutes +update": {"bind":{"id":"minutes_task_uuid"},"note":"The broad real --id is explicitly bound to the single Minutes taskUuid concept."},
"minutes update summary": {"bind":{"id":"minutes_task_uuid"},"note":"The broad real --id is explicitly bound to the single Minutes taskUuid concept."},
"minutes update title": {"bind":{"id":"minutes_task_uuid"},"note":"The broad real --id is explicitly bound to the single Minutes taskUuid concept."},
"todo task create-sub": {"bind":{"parent-id":"todo_task_id"},"scoped_aliases":{"parent-task-id":"parent-id"},"ambiguous":["task"],"scope_strict":true,"note":"This command has a parent taskId and a new child title. Reviewed task-id/todo-id spellings reduce to --parent-id, while role-free --task cannot choose between the parent target and child title and must stop before execution."},
"todo task update": {"ambiguous":["task"],"note":"This command has both --task-id and --title. Role-free --task cannot safely choose the existing target identifier or replacement title."},
"todo +update": {"ambiguous":["task"],"note":"This shortcut has both --task-id and --title. Role-free --task cannot safely choose the existing target identifier or replacement title."},
"todo +todo-done": {"scoped_aliases":{"query":"task","keyword":"task","title":"task"},"block":["task-id","todo-id"],"scope_strict":true,"note":"The real --task is a title substring query, not taskId. Query/title spellings preserve the search text; stable IDs must use todo task done."},
"todo task create": {"scoped_aliases":{"task":"title"},"note":"This creation command has one task-title role, so the exact --task spelling can preserve the title text without competing with an existing target taskId."},
"todo +create": {"scoped_aliases":{"task":"title"},"note":"This creation shortcut has one task-title role, so the exact --task spelling can preserve the title text without competing with an existing target taskId."},
"todo +assign": {"scoped_aliases":{"assignee-name":"to","title":"task"},"block":["executor-id","executor-ids","executors","user-id","user-ids"],"note":"This shortcut resolves one human name from --to and creates one title from --task. Exact name/title spellings preserve those roles; stable userId spellings must not be renamed into a name-resolution input."},
"todo +assign-multi": {"scoped_aliases":{"assignee-names":"to","title":"task"},"block":["executor-id","executor-ids","executors","user-id","user-ids"],"note":"This shortcut resolves a comma-separated list of human names from --to and creates one title from --task. Exact name/title spellings preserve those roles; stable userId spellings must not be renamed into a name-resolution input."},
"todo +remind": {"scoped_aliases":{"deadline":"at","due":"at","due-time":"at","title":"task"},"block":["remind-at","reminder-at","reminder-rules","reminder-time","reminder-time-stamp"],"scope_strict":true,"note":"This shortcut has one title role and its real --at writes the task deadline dueTime. Exact title/deadline spellings preserve those values; independent reminder spellings are rejected and must route to todo +reminder or todo task add-reminder/reset-reminder."},
"todo +search": {"scoped_aliases":{"subject":"query","title":"query","task":"query"},"block":["limit","max-result","max-results","page","page-size","per-page","size","take","top"],"note":"This shortcut searches the task card subject/title substring across complete traversal. Subject/title/task spellings preserve query text; result-count and page-size names are not aliases for the real --max-pages safety cap."},
"todo +complete": {"block":["done","is-done","status","todo-status"],"note":"The target state is fixed by the +complete command. A status flag would falsely imply caller-selectable state; use +reopen or todo task done for the opposite state."},
"todo +reopen": {"block":["done","is-done","status","todo-status"],"note":"The target state is fixed by the +reopen command. A status flag would falsely imply caller-selectable state; use +complete or todo task done for the opposite state."},
"todo +reminder": {"scoped_aliases":{"remind-at":"at","reminder-at":"at","reminder-time":"at","reminder-time-stamp":"at"},"block":["deadline","due","due-time","reminder-rules"],"note":"The real --at is the ISO-8601 customTime reminder timestamp. Reminder-time spellings preserve that value; task deadlines and a JSON reminder-rules array are different roles or structures."},
"todo task add-reminder": {"scoped_aliases":{"at":"reminder-time-stamp","reminder-at":"reminder-time-stamp","reminder-time":"reminder-time-stamp"},"block":["deadline","due","due-time","reminder-rules"],"note":"This command writes one independent reminder rule. --at is the same ISO-8601 customTime value as --reminder-time-stamp; a task deadline or JSON rules array cannot be reduced to one atomic reminder field. The inherited real --remind-at remains command-owned and cannot be intercepted by PreParse."},
"todo task reset-reminder": {"block":["at","base-time","deadline","due","due-date-offset","due-time","reminder-time-stamp"],"note":"This command accepts one --reminder-rules JSON array. Atomic reminder fields or task deadlines require value construction and are not name-only aliases. The inherited real --remind-at cannot be blocked by PreParse."},
"todo task list": {"scoped_aliases":{"limit":"size","max-results":"size","page-number":"page","priorities":"priority"},"block":["plan-finish-end","plan-finish-start","priority-id","priority-name"],"scope_strict":true,"note":"Here --size is the total returned-item target and auto-pages beyond 20, so only total-limit spellings are mapped. --page-number preserves the one-based page value. The list-only --priorities spelling preserves the unchanged 10/20/30/40 filter values without claiming a global priority concept. The sibling shortcut's plan-finish-start/end use Unix milliseconds and are blocked because this command requires ISO-8601 date strings."},
"todo +get-my-tasks": {"scoped_aliases":{"page-number":"page","page-size":"size","per-page":"size","priorities":"priority"},"block":["limit","max-result","max-results","plan-finish-date-end","plan-finish-date-start","priority-id","priority-name","take","top"],"note":"This shortcut's --size is per-page, and --all ignores pageSize; only explicit per-page spellings are aliases. Total-limit spellings are blocked. The list-only --priorities spelling preserves the unchanged 10/20/30/40 filter values without claiming a global priority concept. The command requires Unix millisecond plan-finish-start/end values, so the stable command's date-named ISO-8601 flags cannot be converted by name-only normalization."},
"todo +list-comment": {"scoped_aliases":{"page-number":"page"},"note":"The explicit page-number spelling preserves the one-based page value; page-size remains handled by the reviewed pagination-size concept."},
"todo comment list": {"scoped_aliases":{"page-number":"page"},"note":"The explicit page-number spelling preserves the one-based page value; page-size remains handled by the reviewed pagination-size concept."},
"todo +get-related-tasks": {"scoped_aliases":{"todo-status":"status"},"block":["done","is-done"],"note":"This shortcut accepts the service enum status value such as TODO, not a boolean completion flag. The product-qualified spelling is safe; boolean spellings are rejected."},
"todo tag add": {"block":["tag-ids","tag-names","tags"],"note":"The command requires existing tag code values. Generic tags may be names or IDs and are not safely equivalent to --tag-codes."},
"todo tag delete": {"block":["tag-ids","tag-names","tags"],"note":"The command deletes tag definitions by existing tag code. Generic tags may be names or IDs and are not safely equivalent to --tag-codes."},
"todo tag update": {"block":["tag-codes","tag-ids","tag-names","tags"],"note":"The real --user-tags is a JSON array of tag objects. A flat list of codes, names, or IDs cannot be renamed into that structure."},
"wiki +resolve-space": {"bind":{"name":"search_query"},"scoped_aliases":{"knowledge-base-name":"name","space-name":"name","wiki-name":"name","workspace-name":"name"},"block":["id","knowledge-base-id","space-id","wiki-workspace-id","workspace","workspace-id"],"scope_strict":true,"note":"--name is a knowledge-space name search string, not workspaceId. Search spellings preserve the unchanged text; ID spellings stop before lookup."},
"wiki +wiki-new-doc": {"scoped_aliases":{"doc-title":"title","document-title":"title","knowledge-base-name":"space","space-name":"space","wiki-name":"space","workspace-name":"space"},"ambiguous":["name"],"block":["id","knowledge-base-id","space-id","wiki-workspace-id","workspace","workspace-id"],"scope_strict":true,"note":"--space is a knowledge-space name search string and --title is the new document title. Role-free --name cannot choose between them, and workspace/storage IDs are not accepted by this name-resolving shortcut."},
"wiki +node-get": {"scoped_aliases":{"doc-id":"node","document-id":"node","document-url":"node","id":"node","node-id":"node","url":"node","wiki-node-id":"node"},"block":["dentry-id","folder","folder-id","knowledge-base-id","space-id","workspace","workspace-id"],"scope_strict":true,"note":"This exact shortcut has one Wiki node target and explicitly accepts nodeId or URL. Numeric dentryId, folder and workspace identifiers are different roles."},
"wiki +node-copy": {"scoped_aliases":{"destination-folder-id":"folder","document-id":"node","folder-id":"folder","node-id":"node","source-document-id":"node","source-node-id":"node","target-folder-id":"folder","wiki-node-id":"node"},"ambiguous":["destination-id","id","target-id"],"block":["dentry-id","source-folder-id","space-id"],"scope_strict":true,"note":"Source node, destination workspace and destination folder are separate ID roles. --node-id and explicit source/target spellings preserve values; role-free target IDs stop before copy."},
"wiki +move": {"scoped_aliases":{"destination-folder-id":"folder","document-id":"node","folder-id":"folder","node-id":"node","source-document-id":"node","source-node-id":"node","target-folder-id":"folder","wiki-node-id":"node"},"ambiguous":["destination-id","id","target-id"],"block":["dentry-id","source-folder-id","space-id"],"scope_strict":true,"note":"Source node, destination workspace and destination folder are separate ID roles. --node-id and explicit source/target spellings preserve values; role-free target IDs stop before move."},
"wiki +move-to-drive": {"scoped_aliases":{"destination-folder-id":"folder","document-id":"node","folder-id":"folder","node-id":"node","source-document-id":"node","source-node-id":"node","target-folder-id":"folder","wiki-node-id":"node"},"ambiguous":["destination-id","id","target-id"],"block":["dentry-id","knowledge-base-id","space-id","wiki-workspace-id","workspace","workspace-id"],"scope_strict":true,"note":"The source is one Wiki node while --folder is a Drive destination folder. --node-id preserves the source value; workspace and storage-space identifiers are not substitutes for either role."},
"wiki +node-delete": {"scoped_aliases":{"document-id":"node","node-id":"node","target-node-id":"node","wiki-node-id":"node"},"ambiguous":["id"],"block":["dentry-id","folder-id","space-id"],"scope_strict":true,"note":"The destructive target node and the workspace confirmation scope are distinct required IDs. --node-id is explicit and value-preserving; generic --id cannot choose one and must stop before confirmation."},
"wiki node copy": {"scoped_aliases":{"destination-folder-id":"folder","document-id":"node","source-document-id":"node","source-node-id":"node","target-folder-id":"folder","wiki-node-id":"node"},"ambiguous":["destination-id","id","target-id"],"block":["dentry-id","source-folder-id","space-id"],"scope_strict":true,"note":"Native hidden node/folder/workspace compatibility flags remain native. These additional role-qualified spellings preserve the same values; generic target IDs remain ambiguous."},
"wiki node move": {"scoped_aliases":{"destination-folder-id":"folder","document-id":"node","source-document-id":"node","source-node-id":"node","target-folder-id":"folder","wiki-node-id":"node"},"ambiguous":["destination-id","id","target-id"],"block":["dentry-id","source-folder-id","space-id"],"scope_strict":true,"note":"Native hidden node/folder/workspace compatibility flags remain native. These additional role-qualified spellings preserve the same values; generic target IDs remain ambiguous."},
"wiki node delete": {"scoped_aliases":{"document-id":"node","target-node-id":"node","wiki-node-id":"node"},"ambiguous":["id"],"block":["dentry-id","folder-id","space-id"],"scope_strict":true,"note":"The node target and workspace authorization scope are distinct IDs. Native hidden node/workspace aliases remain native; generic --id must stop before deletion."},
"wiki +node-list": {"scoped_aliases":{"directory-id":"folder","folder-id":"folder","next-cursor":"cursor","next-page-token":"cursor","next-token":"cursor","page-size":"limit","parent-folder-id":"folder","parent-node-id":"folder","per-page":"limit"},"ambiguous":["id","max-result","max-results","size","take","top"],"block":["dentry-id","node-id","offset","page","space-id"],"scope_strict":true,"note":"Workspace and optional parent folder are separate IDs. Per-page --limit and aggregate --max-items are separate limits; generic maximum spellings cannot choose one."},
"wiki +node-create": {"scoped_aliases":{"directory-id":"folder","display-name":"name","folder-id":"folder","node-name":"name","parent-folder-id":"folder","parent-node-id":"folder","node-type":"type"},"ambiguous":["id"],"block":["dentry-id","node-id","query","space-id","space-type","wiki-space-type"],"scope_strict":true,"note":"Workspace, parent folder, node display name and node type are distinct roles. Node-type aliases stay local; search and space-type spellings are rejected."},
"wiki node list": {"scoped_aliases":{"directory-id":"folder","folder-id":"folder"},"ambiguous":["id"],"block":["dentry-id","max-items","node-id","offset","page","page-all","page-delay","page-limit","space-id"],"scope_strict":true,"note":"Native hidden parent/pagination/workspace aliases remain native. This leaf is single-page; Shortcut auto-page controls must not be accepted on the native command."},
"wiki node create": {"scoped_aliases":{"directory-id":"folder","display-name":"name","folder-id":"folder","node-name":"name","node-type":"type"},"ambiguous":["id"],"block":["dentry-id","node-id","query","space-id","space-type","wiki-space-type"],"scope_strict":true,"note":"Native hidden parent/workspace aliases remain native. Workspace, parent folder, display name and node type remain distinct roles."},
"wiki +node-search": {"scoped_aliases":{"node-name":"query"},"block":["id","name","node-id","offset","page","space-id"],"scope_strict":true,"note":"The command searches within one workspace by unchanged keyword text. A node ID or role-free name is not a workspace-scoped search parameter."},
"wiki node search": {"scoped_aliases":{"node-name":"query"},"block":["id","name","node-id","offset","page","space-id"],"scope_strict":true,"note":"Native hidden query/pagination/workspace aliases remain native. Search text, workspace and node identifiers are distinct roles."},
"wiki +space-create": {"scoped_aliases":{"display-name":"name","knowledge-base-name":"name","space-name":"name","wiki-name":"name","workspace-name":"name"},"block":["node-name","query","title","workspace","workspace-id"],"scope_strict":true,"note":"This creates a new knowledge-base container. Name and plain description aliases preserve text; existing workspace IDs, search queries and node titles are different roles."},
"wiki space create": {"scoped_aliases":{"display-name":"name","knowledge-base-name":"name","space-name":"name","wiki-name":"name","workspace-name":"name"},"block":["node-name","query","title","workspace","workspace-id"],"scope_strict":true,"note":"Native hidden --description remains native. This command creates a container; existing workspace IDs, search queries and node titles are not creation names."},
"wiki +space-list": {"scoped_aliases":{"next-cursor":"cursor","next-page-token":"cursor","next-token":"cursor","page-size":"limit","per-page":"limit","space-type":"type","wiki-space-type":"type"},"ambiguous":["max-result","max-results","size","take","top"],"block":["id","knowledge-base-id","node-type","offset","page","space","space-id","storage-space-id","wiki-workspace-id","workspace","workspace-id"],"scope_strict":true,"note":"This Shortcut lists only orgWikiSpace/myWikiSpace and has separate per-page and aggregate limits. Drive storage types belong to native wiki space list."},
"wiki space list": {"scoped_aliases":{"space-type":"type"},"block":["id","knowledge-base-id","max-items","node-type","offset","page","page-all","page-delay","page-limit","space","space-id","wiki-workspace-id","workspace","workspace-id"],"scope_strict":true,"note":"This composite native leaf can list Wiki or Drive storage spaces by --type but is single-page. A target workspace ID and Shortcut auto-page controls are not accepted."},
"wiki +space-search": {"scoped_aliases":{"knowledge-base-name":"query","space-name":"query","wiki-name":"query","workspace-name":"query"},"block":["id","knowledge-base-id","space-id","space-type","type","wiki-space-type","wiki-workspace-id","workspace","workspace-id"],"scope_strict":true,"note":"This Shortcut searches organization knowledge bases by keyword and does not expose native --type myWikiSpace routing. IDs and type selectors must not be rewritten into query text."},
"wiki space search": {"scoped_aliases":{"knowledge-base-name":"query","space-name":"query","space-type":"type","wiki-name":"query","wiki-space-type":"type","workspace-name":"query"},"block":["id","knowledge-base-id","space-id","wiki-workspace-id","workspace","workspace-id"],"scope_strict":true,"note":"Native hidden query/pagination aliases remain native. Name spellings are unchanged search text, while --type myWikiSpace is a distinct route selector."},
"wiki +space-get": {"scoped_aliases":{"id":"workspace"},"block":["folder-id","node-id","space-id","storage-space-id"],"scope_strict":true,"note":"This exact command has one knowledge-base workspace target, so role-free --id is safe locally. Drive storage-space, node and folder IDs remain separate domains."},
"wiki space get": {"scoped_aliases":{"id":"workspace"},"block":["folder-id","node-id","space-id","storage-space-id"],"scope_strict":true,"note":"Native --workspace-id remains a hidden compatibility flag. This exact leaf has one knowledge-base workspace target; other ID domains are blocked."},
"wiki +delete-space": {"scoped_aliases":{"id":"workspace"},"block":["folder-id","node-id","space-id","storage-space-id"],"scope_strict":true,"note":"The destructive command has one confirmed knowledge-base workspace target. Drive storage-space, node and folder IDs must stop before confirmation."},
"wiki space delete": {"scoped_aliases":{"id":"workspace"},"block":["folder-id","node-id","space-id","storage-space-id"],"scope_strict":true,"note":"Native --workspace-id remains a hidden compatibility flag. The destructive target is one knowledge-base workspace, not a Drive space or child node."},
"wiki +feed-list": {"scoped_aliases":{"page-size":"limit","per-page":"limit"},"ambiguous":["max-result","max-results","size","take","top"],"block":["id","node-id","offset","page","space-id"],"scope_strict":true,"note":"Per-page --limit and aggregate --max-items are separate bounds. Feed scope is one workspace; node and storage-space IDs are different roles."},
"wiki feed list": {"scoped_aliases":{"id":"workspace"},"block":["max-items","node-id","offset","page","page-all","page-delay","page-limit","space-id"],"scope_strict":true,"note":"Native hidden workspace/pagination aliases remain native. This leaf is single-page, and Shortcut auto-page controls are not accepted."},
"wiki +member-add": {"scoped_aliases":{"uid":"user","user-id":"user"},"ambiguous":["id"],"block":["name","open-dingtalk-id","open-dingtalk-ids","staff-id"],"scope_strict":true,"note":"Workspace and a 1-30 item userId list are separate ID roles. --user-id/--uid value-preservingly normalize to the real repeatable --user alias; openDingTalkId and staffId spellings remain blocked."},
"wiki member add": {"ambiguous":["id"],"block":["name","open-dingtalk-id","open-dingtalk-ids","staff-id"],"scope_strict":true,"note":"Only canonical --users and the manually wired hidden --user are runtime-consumed. Auto-registered real hidden --user-id/--uid/--user-ids/--user-list/--user-id-list bypass central rewriting but are not read by collectUserIDs; use --users until command-owned wiring is fixed."},
"wiki +member-update": {"scoped_aliases":{"uid":"user","user-id":"user"},"ambiguous":["id"],"block":["name","open-dingtalk-id","open-dingtalk-ids","staff-id"],"scope_strict":true,"note":"Workspace and a 1-30 item userId list are separate ID roles. --user-id/--uid value-preservingly normalize to the real repeatable --user alias; openDingTalkId and staffId spellings remain blocked."},
"wiki member update": {"ambiguous":["id"],"block":["name","open-dingtalk-id","open-dingtalk-ids","staff-id"],"scope_strict":true,"note":"Only canonical --users and the manually wired hidden --user are runtime-consumed. Auto-registered real hidden --user-id/--uid/--user-ids/--user-list/--user-id-list bypass central rewriting but are not read by collectUserIDs; use --users until command-owned wiring is fixed."},
"wiki +member-remove": {"scoped_aliases":{"uid":"user","user-id":"user"},"ambiguous":["id"],"block":["name","open-dingtalk-id","open-dingtalk-ids","staff-id"],"scope_strict":true,"note":"Workspace and a 1-30 item userId list are separate ID roles. --user-id/--uid value-preservingly normalize to the real repeatable --user alias; openDingTalkId and staffId spellings remain blocked."},
"wiki member remove": {"ambiguous":["id"],"block":["name","open-dingtalk-id","open-dingtalk-ids","staff-id"],"scope_strict":true,"note":"Only canonical --users and the manually wired hidden --user are runtime-consumed. Auto-registered real hidden --user-id/--uid/--user-ids/--user-list/--user-id-list bypass central rewriting but are not read by collectUserIDs; use --users until command-owned wiring is fixed."},
"wiki +member-list": {"scoped_aliases":{"filter-roles":"filter-role","role-filter":"filter-role","roles":"filter-role"},"ambiguous":["id"],"block":["cursor","name","open-dingtalk-id","page-all","role","user-id","user-ids","users"],"scope_strict":true,"note":"This command lists members and can filter by a role list. It does not accept user filters or cursor auto-pagination, and workspace/user IDs must not be conflated."},
"wiki member list": {"scoped_aliases":{"filter-roles":"filter-role","role-filter":"filter-role","roles":"filter-role"},"ambiguous":["id"],"block":["name","open-dingtalk-id","page-all","role","user-id","user-ids","users"],"scope_strict":true,"note":"Native hidden workspace aliases remain native. Pagination is now cursor-based via the real --next-token (auto-aliased --cursor/--page-token) with pageSize max 50; user filters are still unsupported."},
"attendance +check-record": {"scoped_aliases":{"until":"end","to":"end","target-user-ids":"users","staff-ids":"users","user-id-list":"users"},"scope_strict":true,"note":"These spellings all denote this command's userId list; singular user spellings remain protected by the user_ids concept."},
"attendance +check-result": {"scoped_aliases":{"until":"end","to":"end","target-user-ids":"users","staff-ids":"users","user-id-list":"users"},"scope_strict":true,"note":"These spellings all denote this command's userId list; singular user spellings remain protected by the user_ids concept. Offset is a command-local pagination role; page-token remains explicitly blocked.","block":["page-token"]},
"attendance +get-adjustment-rule": {"scoped_aliases":{"rule-id":"adjustment-id","adjustment-rule-id":"adjustment-id"},"scope_strict":true,"note":"On this exact command --rule-id denotes one adjustment-rule ID. The former two-command adjustment-rule concept is represented locally by this exact alias and guard set.","block":["overtime-id","class-id","group-id","plan-id","result-id","id"]},
"attendance +get-approve-template": {"scoped_aliases":{"approval-type":"type","biz-type":"type"},"block":["approval-types","biz-types","types"],"scope_strict":true,"note":"This command accepts one approval type; list spellings are not collapsed into one value."},
"attendance +get-checkin-record": {"scoped_aliases":{"until":"end","to":"end","operator-user-id":"operator-staff-id","operator-id":"operator-staff-id","corp-id":"operator-corp-id","operator-company-id":"operator-corp-id","target-user-ids":"staff-ids","user-id-list":"staff-ids"},"block":["name","to-user"],"ambiguous":["user","user-id","userid","uid","staff-id"],"scope_strict":true,"note":"The command has distinct operator-single-user and target-user-list roles. Only role-qualified operator aliases and list-qualified target aliases are accepted; generic singular user spellings stay ambiguous, while unrelated name/to-user spellings stay blocked.","bind":{"staff-ids":"user_ids"}},
"attendance +get-leave-records": {"scoped_aliases":{"until":"end","to":"end"},"scope_strict":true,"note":"On this exact attendance range command, --to/--until denote the existing end boundary; the value format is preserved."},
"attendance +get-overtime-rule": {"scoped_aliases":{"rule-id":"overtime-id","overtime-rule-id":"overtime-id"},"scope_strict":true,"note":"On this exact command --rule-id denotes one overtime-rule ID. The former two-command overtime-rule concept is represented locally by this exact alias and guard set.","block":["adjustment-id","class-id","group-id","plan-id","result-id","id"]},
"attendance +get-schedule": {"scoped_aliases":{"until":"end","to":"end","target-user-ids":"users","staff-ids":"users","user-id-list":"users","work-date-begin":"start","work-date-end":"end"},"scope_strict":true,"note":"Compatibility for old RPC spellings on the Shortcut; the stable schedule get command already keeps these spellings as native hidden flags."},
"attendance +get-self-setting": {"ambiguous":[],"scope_strict":true,"note":"The latest main leaf publishes --setting-scene and --user. Only scene is a value-preserving spelling; setting type/item names do not prove one of the six accepted scene enum values.","scoped_aliases":{"scene":"setting-scene"},"block":["setting-type","setting-item"]},
"attendance +get-summary": {"scoped_aliases":{"summary-type":"stats-type","statistics-type":"stats-type","period":"stats-type"},"scope_strict":true,"note":"These aliases preserve the week/month statistics selector value."},
"attendance +list-approve": {"scoped_aliases":{"until":"end","to":"end","target-user-ids":"users","staff-ids":"users","user-id-list":"users","approval-types":"types","biz-types":"types"},"scope_strict":true,"note":"Former single/local-role concept attendance_approval_types is intentionally command-scoped. These spellings all denote this command's userId list; singular user spellings remain protected by the user_ids concept."},
"attendance +query-report-data": {"scoped_aliases":{"until":"end","to":"end","target-user-ids":"users","staff-ids":"users","user-id-list":"users","report-column-ids":"columns"},"scope_strict":true,"note":"These spellings all denote this command's userId list; singular user spellings remain protected by the user_ids concept. Report columns are a command-local field-ID list, so its alias and guards stay on these exact commands.","block":["column-names","leave-names"]},
"attendance +search-class": {"scoped_aliases":{"class-filter-type":"filter-type","class-scope":"filter-type"},"scope_strict":true,"note":"These aliases denote the existing ALL/MINE_OWN class ownership filter."},
"attendance +search-group": {"scoped_aliases":{"group-type":"type","attendance-group-type":"type","include-ble":"query-ble","include-position":"query-position"},"scope_strict":true,"note":"The type and optional projection switches are exact to attendance-group search."},
"mail +folder-list": {"scoped_aliases":{"folder-id":"folder"},"block":["name","calendar-id","node-id"],"scope_strict":true,"note":"The real --folder is an optional parent mail folderId. Names and other product folder domains are not converted."},
"mail +message": {"scoped_aliases":{"message-id":"id","mail-id":"id"},"block":["thread-id","conversation-id","attachment-id","internet-message-id"],"scope_strict":true,"note":"The real --id is one internal mail messageId; thread and Internet Message-ID values are different domains."},
"mail +messages": {"scoped_aliases":{"message-ids":"ids","mail-ids":"ids"},"block":["message-id","mail-id","thread-id","thread-ids","conversation-id","conversation-ids"],"scope_strict":true,"note":"This command requires a comma-separated mail messageId list; singular IDs and thread IDs are rejected."},
"mail +recent-mail": {"scoped_aliases":{"folder-id":"folder"},"block":["name","calendar-id","node-id"],"scope_strict":true,"note":"The real --folder is a mail folderId used by the shortcut's KQL query."},
"mail +search-mail": {"block":["subject","sender","from","from-address","to-address","date","folder","folder-id","has-attachments"],"scope_strict":true,"note":"This shortcut also requires a complete KQL --query value. Separate condition flags cannot be converted without rewriting values."},
"mail +thread": {"scoped_aliases":{"conversation-id":"id","thread-id":"id"},"block":["message-id","mail-id","message-ids","mail-ids"],"scope_strict":true,"note":"The real --id is a conversationId/threadId, never a mail messageId."},
"mail +thread-list": {"scoped_aliases":{"folder-id":"folder"},"block":["name","calendar-id","node-id"],"scope_strict":true,"note":"The real --folder is a required mail folderId. Names require a prior folder lookup."},
"mail +triage": {"block":["subject","sender","from","from-address","to-address","date","folder","folder-id","has-attachments"],"scope_strict":true,"note":"Triage accepts one complete KQL expression in --query. Field fragments are not flags and cannot be assembled by value-preserving argv normalization; pagination aliases remain independent."},
"mail +unread-mail": {"block":["query","keyword","subject","sender"],"note":"This shortcut has a fixed isRead:false query. Additional search conditions require mail +search-mail or mail message search."},
"oa +list-executed": {"block":["count"],"scope_strict":true,"note":"The shortcut no longer exposes a limit/take pagination alias; count remains a different parameter and must fail closed."},
"oa +list-pending": {"block":["cursor","offset","page-token"],"scope_strict":true,"note":"Pending lists use one-based page/limit with an ISO-8601 range, not cursor pagination."},
"ding +list": {"scoped_aliases":{"message-type":"type","next-cursor":"cursor"},"block":["remind-type","status","page","page-token","next-token","offset"],"scope_strict":true,"note":"List type uses ALL/UNREAD/SEND/NEW_COMMENT/DELETED and cursor is an integer. Reminder enums, status guesses, page indexes and opaque tokens are different domains."},
"ding +recall-personal": {"bind":{"id":"ding_id"},"block":["robot-code","robot","message-id","task-id","uuid","request-id"],"scope_strict":true,"note":"Personal recall needs one openDingId and must not acquire a robot identity or another message/request identifier."},
"ding +send-personal": {"bind":{"users":"open_dingtalk_ids"},"scoped_aliases":{"receiver-open-dingtalk-ids":"users","recipient-open-dingtalk-ids":"users","remind-type":"type","message-content":"content","idempotency-key":"uuid","request-id":"uuid"},"block":["robot-code","robot","user-id","user-ids","receiver-user-ids","recipient-user-ids","staff-id","staff-ids","open-dingtalk-id","message-type","status","id","ding-id","open-ding-id"],"scope_strict":true,"note":"Personal DING recipients are an openDingTalkId list. UserId/staffId and singular inputs are not promoted; reminder enum, content and idempotency aliases preserve their values, while output DING identifiers stop before send."},
"report +inbox-list": {"scoped_aliases":{"sender-staff-ids":"sender-user-ids","from-staff-ids":"sender-user-ids"},"block":["date","sender-id","sender-user-id","sender-staff-id","user-id","user-ids","staff-id","staff-ids"],"scope_strict":true,"note":"The filter is a list of sender staffIds. Explicit plural sender-staff spellings pass through unchanged; date-only inputs, singular IDs and role-free user/staff spellings are not promoted."},
"report +outbox-list": {"scoped_aliases":{"report-template-name":"template-name","name":"template-name","updated-start":"modified-start","update-start":"modified-start","modified-from":"modified-start","updated-end":"modified-end","update-end":"modified-end","modified-to":"modified-end"},"block":["template-type","template-id","report-template-id","date"],"ambiguous":["template"],"scope_strict":true,"note":"Template name, creation bounds and modification bounds are separate roles. Exact role-preserving spellings map; template IDs/types and date-only inputs stop before dispatch."},
"report +report-latest": {"scoped_aliases":{"template-name":"keyword","report-template-name":"keyword","name":"keyword"},"block":["template-id","report-template-id","date","modified-start","modified-end"],"ambiguous":["template"],"scope_strict":true,"note":"Latest filters by an exact report template display name and an ISO-8601 creation window. Template IDs, modified-time bounds and date-only values are different contracts."},
"report +template-search": {"block":["template-id","report-template-id"],"ambiguous":["template","name"],"scope_strict":true,"note":"Template search accepts a free-text name query. Stable template IDs are outputs/lookup inputs elsewhere, while role-free template/name spellings do not prove search intent."},
"markdown create": {"bind":{"content":"content_text","file":"markdown_local_file_path","name":"markdown_file_name","folder":"folder_id","workspace":"workspace_id","space-id":"drive_storage_space_id"},"scoped_aliases":{"markdown-content":"content","plan-only":"dry-run","preview-only":"dry-run","source-file":"file"},"block":["node","node-id","doc-id","file-id","document-id","url","output-path","version","version2","pattern","regex","replacement"],"ambiguous":["id","path","space","content-file","destination"],"scope_strict":true,"note":"Create needs exactly one content transport: inline/@file/stdin through --content or one local .md through --file. The filename, parent folder, document workspace, and numeric DingDrive space keep separate roles; an existing node target belongs to overwrite."},
"markdown diff": {"bind":{"version":"doc_version_number","file":"markdown_local_file_path"},"scoped_aliases":{"dentry-uuid":"node","left-version":"version","base-version":"version","from-version":"version","right-version":"version2","target-version":"version2","to-version":"version2","context-lines":"context","diff-context":"context","surrounding-lines":"context","plan-only":"dry-run","preview-only":"dry-run","source-file":"file"},"block":["version-id","revision","content","body","pattern","regex","output-path","workspace","workspace-id","space-id","folder","name"],"ambiguous":["path","left","right","destination"],"scope_strict":true,"note":"Diff compares remote version(s) or one remote side with a local .md. --version and --version2 are positive history numbers; --file is a local path and is mutually exclusive with --version2. Context-line spellings are local aliases for the one diff-only integer option. Hidden node aliases remain executable compatibility assertions."},
"markdown fetch": {"bind":{"workspace":"workspace_id","space-id":"drive_storage_space_id","output":"local_output_path"},"scoped_aliases":{"document-id":"node","dentry-uuid":"node","save-to":"output","download-to":"output","output-file":"output"},"block":["url","content","file","file-path","folder","parent-id","name","version","version2","pattern","regex"],"ambiguous":["path","space","destination"],"scope_strict":true,"note":"Fetch reads one remote native .md node and may save to one local output path. Workspace IDs, numeric DingDrive space IDs, remote node IDs, local destinations, and content/upload inputs remain distinct. Hidden --id compatibility remains executable but is not promoted as a reviewed alias."},
"markdown overwrite": {"bind":{"content":"content_text","file":"markdown_local_file_path","name":"markdown_file_name","workspace":"workspace_id","space-id":"drive_storage_space_id"},"scoped_aliases":{"document-id":"node","dentry-uuid":"node","markdown-content":"content","show-diff":"dry-run","preview-only":"dry-run","no-write":"dry-run","source-file":"file"},"block":["url","folder","folder-id","parent-id","output-path","version","version2","pattern","regex","replacement","content-file"],"ambiguous":["id","path","space","destination"],"scope_strict":true,"note":"Overwrite is destructive and needs one explicit remote node plus exactly one content transport. Local file paths, inline content, display name, workspace/space route, and command-level diff preview are not interchangeable."},
"markdown patch": {"bind":{"workspace":"workspace_id","space-id":"drive_storage_space_id"},"scoped_aliases":{"document-id":"node","dentry-uuid":"node","match-pattern":"pattern","find-text":"pattern","old-text":"pattern","search-pattern":"pattern","regexp":"regex","use-regex":"regex","regular-expression":"regex","replacement":"content","replace-with":"content","new-text":"content","replacement-text":"content","show-diff":"dry-run","preview-only":"dry-run","no-write":"dry-run"},"block":["url","file","file-path","content-file","replacement-file","name","folder","folder-id","parent-id","output-path","version","version2","query"],"ambiguous":["id","path","space","text","body","value","destination"],"scope_strict":true,"note":"Patch downloads and reuploads one remote .md. Pattern and regex spellings are local aliases for this leaf; the match pattern and literal replacement remain distinct, and --regex changes only pattern interpretation, never replacement expansion. File-based replacement and role-free text/path inputs are not inferred."},
"aisearch": {"bind":{"dimension":"aisearch_person_dimension"},"scoped_aliases":{"search-term":"query","person-query":"query","person-name":"query"},"block":["queries","types","search-types","time-range","behavior-type","action-type","direction","chat-scope","user-id","open-dingtalk-id","mobile","phone-number","job-number","employee-number","department-id"],"ambiguous":["target","id","phone","employee","department","position","duty","scope"],"scope_strict":true,"note":"The runnable compatibility root is person search only when a person query is present. Enterprise/behavior slots, exact IDs, full-mobile lookup, and role-free dimension names must not be interpreted as a person query. Native keyword/name/q/text/type compatibility remains unchanged."},
"aisearch person": {"bind":{"dimension":"aisearch_person_dimension"},"scoped_aliases":{"search-term":"query","person-query":"query","person-name":"query"},"block":["queries","types","search-types","time-range","behavior-type","action-type","direction","chat-scope","user-id","open-dingtalk-id","ids","mobile","phone-number","job-number","employee-number","department-id","position-id"],"ambiguous":["target","id","phone","employee","department","position","duty","scope"],"scope_strict":true,"note":"Person search requires a complete target string plus an explicit dimension when the user provides one. Full mobile lookup and known user IDs belong to contact; the alias layer cannot set dimension values or turn a role flag into query+dimension. Native keyword/name/q/text/type flags and command aliases remain original compatibility paths."},
"aisearch enterprise": {"bind":{"queries":"aisearch_content_queries","types":"aisearch_content_types","time-range":"aisearch_time_range"},"block":["dimension","dimensions","behavior-type","action-type","direction","from","to","sender","receiver","chat-scope","group-name","user-id","open-dingtalk-id","node-id","file-id","document-id","write","update"],"ambiguous":["type","category","source","range","date","time","scope","question","natural-language"],"scope_strict":true,"note":"Enterprise search expects already separated topic queries, content type enums, and an explicit time phrase. It finds content but does not read or write a selected resource. Behavior/direction/person slots and generalized natural-language or type/range flags are not inferred. Native query/keyword/search-types/searchTypes/timeRange compatibility remains original."},
"aisearch behavior": {"bind":{"queries":"aisearch_content_queries","types":"aisearch_content_types","time-range":"aisearch_time_range"},"scoped_aliases":{"action-type":"behavior-type","behavior-action":"behavior-type","activity-type":"behavior-type","group-name":"chat-scope","chat-name":"chat-scope","conversation-name":"chat-scope","im-scope":"chat-scope","interaction-direction":"direction","interaction-flow":"direction","message-flow":"direction"},"block":["dimension","dimensions","user-id","open-dingtalk-id","node-id","file-id","document-id","from","to","sender","receiver","chat-id","group-id","conversation-id","open-conversation-id","write","update"],"ambiguous":["type","category","scope","chat","group","conversation","action","actor","target","range","date","time","source","destination"],"scope_strict":true,"note":"Enterprise behavior search keeps reusable query/type/time concepts. Behavior enum, chat-name scope, and direction are leaf-local roles, so their reviewed synonyms are command-scoped instead of becoming single-command global concepts. Stable IDs and split sender/receiver fields are never converted."},
"aisearch +search-person": {"bind":{"dimensions":"aisearch_person_dimension"},"scoped_aliases":{"search-term":"query","person-query":"query","person-name":"query"},"block":["queries","types","search-types","time-range","behavior-type","action-type","direction","chat-scope","user-id","open-dingtalk-id","ids","mobile","phone-number","job-number","employee-number","department-id","position-id"],"ambiguous":["target","id","phone","employee","department","position","duty","scope"],"scope_strict":true,"note":"The available shortcut accepts one nonblank person query and an optional validated dimension list. Person-name spellings preserve the query value; full mobile, employee IDs, content/behavior slots, and role-free words are stopped rather than guessed."},
"contact +lookup": {"scoped_aliases":{"employee-name":"name","staff-name":"name","person-name":"name","user-name":"name","flower-name":"name"},"block":["department-id","dept","dept-id","org-name","role-name"],"scope_strict":true,"note":"Former single/local-role concept contact_person_name_query is intentionally command-scoped. The real --name is a person/flower-name lookup string; department, organization, and role names are different entities."},
"contact +org": {"scoped_aliases":{"employee-name":"name","staff-name":"name","person-name":"name","user-name":"name","flower-name":"name"},"block":["department-id","dept","dept-id","org-name","role-name"],"scope_strict":true,"note":"Former single/local-role concept contact_person_name_query is intentionally command-scoped. The real --name is a person/flower-name lookup string; department, organization, and role names are different entities."},
"contact +team": {"scoped_aliases":{"employee-name":"name","staff-name":"name","person-name":"name","user-name":"name","flower-name":"name"},"block":["department-id","dept","dept-id","org-name","role-name"],"scope_strict":true,"note":"Former single/local-role concept contact_person_name_query is intentionally command-scoped. The real --name is a person/flower-name lookup string; department, organization, and role names are different entities."},
"contact user dismission search": {"bind":{"depts":"dept_ids"},"scoped_aliases":{"employee-name":"name","staff-name":"name","person-name":"name","user-name":"name","flower-name":"name"},"block":["cursor","department-id","department-memberships-json","dept","dept-id","dept-list-json","offset"],"scope_strict":true,"note":"Former single/local-role concept contact_person_name_query is intentionally command-scoped. This command uses CSV department IDs, a date range, and one-based page/limit; JSON memberships and cursor/offset pagination are different protocols."},
"contact +list-role-members": {"block":["dept","dept-id","ids","names","staff-id","user-id"],"scope_strict":true,"note":"Former single/local-role concept contact_role_id is intentionally command-scoped. The real --id is one label/role ID, not a department ID, userId, or list.","scoped_aliases":{"role-id":"id","label-id":"id"}},
"contact label get": {"block":["dept-id","id","label-id","role-id","user-id"],"scope_strict":true,"note":"Former single/local-role concept contact_role_names is intentionally command-scoped. The real --names is a comma-separated exact role-name list; native name/query/keyword spellings remain compatibility behavior.","scoped_aliases":{"role-names":"names","label-names":"names"}},
"contact user update-ownness": {"bind":{"user-id":"user_id"},"scope_strict":true,"note":"Former single/local-role concept contact_status_text is intentionally command-scoped. Target userId and the personal status text are separate roles; status values are passed unchanged.","scoped_aliases":{"status-text":"ownness-text","personal-status":"ownness-text","status":"ownness-text"}},
"contact org create": {"ambiguous":["name"],"block":["login-id","user-id"],"scope_strict":true,"note":"Former single/local-role concept contact_organization_name is intentionally command-scoped. Former single/local-role concept contact_creator_name is intentionally command-scoped. Organization name and creator display name are distinct write roles; a generic name cannot choose one.","scoped_aliases":{"organization-name":"org-name","company-name":"org-name","corp-name":"org-name","creator-name":"creator-username","founder-name":"creator-username"}},
"contact account create": {"bind":{"dept-ids":"dept_ids"},"scoped_aliases":{"employee-name":"org-user-name","staff-name":"org-user-name","account-login-id":"login-id","login-account":"login-id","email-address":"email","mail-address":"email"},"block":["department-id","department-memberships-json","dept","dept-id","depts-json","staff-id","user-id"],"scope_strict":true,"note":"Former single/local-role concept contact_login_id is intentionally command-scoped. Former single/local-role concept contact_email_address is intentionally command-scoped. Department IDs are a CSV list here; login-id, userId, email, and mobile are distinct account identifiers."},
"contact user invite": {"bind":{"depts":"contact_dept_json_assignments"},"scoped_aliases":{"employee-name":"org-user-name","staff-name":"org-user-name"},"block":["department-id","department-ids","dept","dept-id","dept-ids","parent","parent-id"],"scope_strict":true,"note":"The real --depts value is a JSON membership array; scalar or CSV department IDs must not be renamed into it."},
"contact user update": {"bind":{"depts":"contact_dept_json_assignments","user-id":"user_id"},"scoped_aliases":{"employee-name":"org-user-name","staff-name":"org-user-name"},"block":["department-id","department-ids","dept","dept-id","dept-ids","parent","parent-id"],"scope_strict":true,"note":"The employee being changed and the employee's direct manager are distinct userId roles.","ambiguous":["manager","owner-id"]},
"contact account update": {"bind":{"depts":"contact_dept_json_assignments","user-id":"user_id"},"scoped_aliases":{"employee-name":"org-user-name","staff-name":"org-user-name","profile-image-file-id":"avatar-file-id"},"block":["department-id","department-ids","dept","dept-id","dept-ids","parent","parent-id","ownness-text","file","node-id"],"scope_strict":true,"note":"The employee being changed and the employee's direct manager are distinct userId roles. Nickname and manager are local flag roles, not reusable central concepts. Avatar file synonyms are command-scoped because both avatar commands already share the native --avatar-file-id canonical flag.","ambiguous":["manager","owner-id"]},
"contact dept update": {"scoped_aliases":{"target-dept-id":"dept","target-department-id":"dept","parent-dept-id":"parent","parent-department-id":"parent","new-parent-dept-id":"parent"},"ambiguous":["department","target-id"],"block":["department-ids","depts"],"scope_strict":true,"note":"The department being updated and its new parent are separate single-department roles."},
"contact dept get-info": {"scoped_aliases":{"department-id":"dept"},"block":["department","department-ids","depts","parent","parent-id"],"scope_strict":true,"note":"The real target is one department ID. Native dept-id/dept-ids/id/ids spellings remain native compatibility; parent-role names are not rewritten."},
"contact dept create": {"scoped_aliases":{"parent-dept-id":"parent","parent-department-id":"parent","new-parent-dept-id":"parent"},"block":["department-ids","dept","dept-id","dept-ids","depts"],"scope_strict":true,"note":"Only a parent department is accepted; there is no target department ID on create."},
"contact user get": {"bind":{"ids":"user_ids"},"scoped_aliases":{"staff-ids":"ids","member-user-ids":"ids"},"block":["staff-id","uid"],"scope_strict":true,"note":"The target is a userId list; native user-id/userid compatibility remains native and can represent a one-item list."},
"contact label list-members": {"block":["dept","dept-id","ids","names","staff-id","user-id"],"scope_strict":true,"note":"The real --id is one label/role ID, not a department ID, userId, or list."},
"contact user update-self": {"block":["name","org-user-name","ownness-text","file","node-id","user-id"],"scope_strict":true,"note":"Nickname is local to self-update; employee-name and ownership-text spellings remain guarded. Avatar file synonyms are command-scoped because both avatar commands already share the native --avatar-file-id canonical flag.","scoped_aliases":{"profile-image-file-id":"avatar-file-id"}},
"contact +list-followings": {"scoped_aliases":{"open-dingtalk-id":"open-id","open-dingtalkid":"open-id"},"block":["user-id","userid","staff-id","mobile","phone","email","name","query","open-dingtalk-ids"],"ambiguous":["id","user","person"],"scope_strict":true,"note":"The optional --open-id is one openDingTalkId used only to filter the current user's followings. It is a single-command role, so it intentionally remains scoped and must not be conflated with userId, staffId, mobile, or a list."},
"live stream list": {"block":["page","size","limit","cursor","offset","page-token","page-size","status","state","query","keyword","sort","order","live-id","stream-id","room-id","anchor-id","user-id","creator-id","start","end","start-time","end-time","from","to","title","cover-url","group-id","conversation-id","record","playback","create","start-live","end-live"],"ambiguous":["id","type","time","date","user","owner"],"scope_strict":true,"note":"The frozen Live surface has one read-only get_my_lives leaf and no business parameters. It always queries the current user's live list. Pagination, filters, live/stream/user IDs, time ranges, and create/control/playback fields are not accepted inputs. They must stop before MCP dispatch rather than being guessed from returned list fields or other live-management APIs. Global output, profile, timeout, mock, dry-run, and credential flags remain native."},
"devdoc article search": {"scoped_aliases":{"search-term":"query","query-text":"query","results-per-page":"size","page-number":"page"},"block":["offset","cursor","page-index","page-token","next-token","next-cursor","count","total","doc-id","document-id","file-id","node-id","space-id","workspace-id","request-id","trace-id","error-code","error-message","context"],"ambiguous":["id","type"],"scope_strict":true,"note":"Devdoc search accepts one unchanged query string plus one-based page and per-page size. The raw leaf also owns a positional keyword and hidden native --keyword compatibility flag; both remain native. Cursor/offset/index pagination, document identifiers, diagnostic fields, and fields that require query composition must stop before dispatch."},
"hrbrain talent-pool list": {"scoped_aliases":{"label-list":"labels"},"block":["pool-code","pool-id","talent-pool-id","employee-id","work-no","staff-ids","user-id"],"ambiguous":["id","type","user","code","creator-id","label-name","pool"],"scope_strict":true,"note":"Talent-pool list accepts a name keyword, pool type, creator value, labels, one-based page, and page-size. Search and pagination aliases preserve values. Unproven creator-id/label-name value domains, pool identifiers, employee identifiers, and generic id/type/code spellings are not promoted."},
"hrbrain talent-pool detail": {"block":["page","page-size","query","keyword","creator","labels","employee-id","work-no","staff-ids"],"ambiguous":["id","code","name","type","pool"],"scope_strict":true,"note":"Talent-pool detail requires exactly one stable poolCode. Only explicit talent-pool-code preserves that value. Bare pool/id/code/name spellings and list filters cannot prove the same value domain."},
"hrbrain talent-pool employees": {"block":["query","keyword","dept-name","position-name","job-level","creator","labels","employee-id","work-no","staff-ids"],"ambiguous":["id","code","name","status","pool"],"scope_strict":true,"note":"Pool employee listing requires one poolCode plus one-based page and page-size. It does not expose free search, department/job filters, work-number selectors, or status filtering; bare pool/id/code cannot prove poolCode."},
"hrbrain profile metadata": {"block":["data-queries","model-code","module","section","employee-id","staff-id","user-id","staff-ids"],"ambiguous":["id","user","employee","name","field"],"scope_strict":true,"note":"Profile metadata accepts one employee work number and returns module/field metadata. Data queries, identifiers from other domains, list cardinality, and returned field roles are not request aliases."},
"hrbrain profile query": {"scoped_aliases":{"profile-queries":"data-queries","module-queries":"data-queries"},"block":["data-query","model-code","module","section","employee-id","staff-id","user-id","staff-ids"],"ambiguous":["id","user","employee","name","field","query"],"scope_strict":true,"note":"Profile query requires one work number and one non-empty JSON array in data-queries. Reviewed plural query aliases preserve the whole JSON value; singular or nested members cannot be expanded into that structure."},
"hrbrain profile labels": {"scoped_aliases":{"all-labels":"all-label"},"block":["work-no","employee-no","staff-no","employee-ids","user-ids","employee-id","staff-id","user-id"],"ambiguous":["id","user","employee","name","label","tag"],"scope_strict":true,"note":"Profile labels requires a list of employee work numbers. Plural work-number spellings preserve list encoding and all-labels preserves boolean polarity. Singular values and platform user/staff identifiers differ in cardinality or value domain."},
"hrbrain profile career": {"block":["start","end","start-date","end-date","year","position","job-level","employee-id","staff-id","user-id","staff-ids"],"ambiguous":["id","user","employee","name","time","date"],"scope_strict":true,"note":"Career accepts one employee work number and returns full company career history. Date, position, and level are return fields rather than request filters."},
"hrbrain profile performance": {"block":["start","end","start-date","end-date","year","cycle","rating","score","employee-id","staff-id","user-id","staff-ids"],"ambiguous":["id","user","employee","name","time","date","level"],"scope_strict":true,"note":"Performance accepts one employee work number and exposes no cycle/date/rating/score filter. Those returned record roles and other identifier domains must stop before dispatch."},
"hrbrain search employees": {"scoped_aliases":{"department-name":"dept-name","job-title":"position-name","position-level":"job-level"},"block":["dept-id","department-id","employee-id","staff-id","user-id","work-no","staff-ids","origin-json","data-queries","order-by"],"ambiguous":["id","code","name","department","level","grade","title","user","position","pool"],"scope_strict":true,"note":"Simple employee search accepts unchanged keyword, department name, position name, job level, poolCode, page, and page-size values. Explicit name/level aliases preserve roles; ids, work numbers, structured JSON, bare position/pool, and generic level/title names are not promoted."},
"hrbrain search employees-structured": {"scoped_aliases":{"filter-json":"origin-json","criteria-json":"origin-json","search-json":"origin-json","return-fields-json":"fields","result-fields-json":"fields","sort-by":"order-by","sort-fields":"order-by"},"block":["keyword","query","dept-name","department-name","position-name","job-level","pool-code","work-no","staff-ids","field-name","operator","operators"],"ambiguous":["id","name","type","filter","criteria","field","sort","order"],"scope_strict":true,"note":"Structured search requires a JSON object in origin-json, a non-empty JSON array in the local business fields flag, and optional order-by values. Reviewed aliases preserve each encoding; simple-search flags and nested members cannot become peers."},
"hrbrain search fields": {"block":["query","keyword","origin-json","order-by","page","page-size","dept-name","position-name","job-level","pool-code","work-no","staff-ids","field-name","operator","operators"],"ambiguous":["id","name","type","field","filter","criteria"],"scope_strict":true,"note":"Search fields has no business inputs and returns the current operator's allowed structured-search fields/operators. Search criteria, pagination, employee filters, and returned field/operator roles are not request parameters."},
"pat chmod": {"scoped_aliases":{"product-code":"product","product-codes":"products","domain-code":"domain","domain-codes":"domains","grant-mode":"grant-type","authorization-mode":"grant-type","pat-session-id":"session-id","authorization-session-id":"session-id","recommended":"recommend"},"block":["scope","scopes","permission","permissions","permission-scope","permission-scopes","all","all-scopes","force","confirm","confirmed","app-id","app-key","app-secret","oauth-scope","api-scope","open-browser","browser-enabled","allow-browser","disable-browser","browser-policy"],"ambiguous":["agent","agent-id","type","mode","session","id","service","services","resource","action"],"scope_strict":true,"note":"PAT chmod accepts scopes only as positional argv or through reviewed product/domain/recommend plan selectors. Aliases preserve selector cardinality, grant enum values, and session ids. Scope flags cannot become positionals; app permission, browser policy, generic ids, force/confirm, and all-scope spellings must not be promoted."},
"pat browser-policy": {"scoped_aliases":{"open-browser":"enabled","browser-enabled":"enabled","allow-browser":"enabled"},"block":["disable-browser","browser-disabled","deny-browser","block-browser","scope","scopes","permission","permissions","product","products","domain","domains","grant-type","grant-mode","session-id","recommend","recommended","app-id","app-key","app-secret","oauth-scope","api-scope"],"ambiguous":["agent","agent-id","policy","browser","state","value","mode"],"scope_strict":true,"note":"Browser policy requires one explicit positive-polarity boolean and optionally one explicit agent code. Positive browser spellings preserve the boolean unchanged. Disable/deny names require inversion; authorization scopes, app permissions, and generic policy/agent/value names are different roles."},
"pat +browser-policy": {"scoped_aliases":{"open-browser":"enabled","browser-enabled":"enabled","allow-browser":"enabled"},"block":["disable-browser","browser-disabled","deny-browser","block-browser","scope","scopes","permission","permissions","product","products","domain","domains","grant-type","grant-mode","session-id","recommend","recommended","app-id","app-key","app-secret","oauth-scope","api-scope"],"ambiguous":["agent","agent-id","policy","browser","state","value","mode"],"scope_strict":true,"note":"Browser policy requires one explicit positive-polarity boolean and optionally one explicit agent code. Positive browser spellings preserve the boolean unchanged. Disable/deny names require inversion; authorization scopes, app permissions, and generic policy/agent/value names are different roles."},
"agoal strategy detail": {"scoped_aliases":{"strategy-id":"profile-id","strategy-profile-id":"profile-id"},"block":["user-profile-id","user-id","corp-id"],"ambiguous":["id"],"scope_strict":true,"note":"The API calls the strategy decoding identifier profile-id; it is not an account profile or user ID."},
"agoal strategy update": {"scoped_aliases":{"strategy-id":"profile-id","strategy-profile-id":"profile-id"},"block":["user-profile-id","user-id","corp-id","payload","data","json"],"ambiguous":["id"],"scope_strict":true,"note":"The strategy ID may be renamed locally; content remains the complete overwrite JSON array and is never synthesized from a payload alias."},
"agoal contract detail": {"scoped_aliases":{"business-contract-id":"contract-id","goal-contract-id":"contract-id"},"block":["agreement-id"],"ambiguous":["id","contract"],"scope_strict":true,"note":"Only role-complete Agoal contract identifiers are promoted."},
"agoal contract update": {"scoped_aliases":{"business-contract-id":"contract-id","goal-contract-id":"contract-id","dimensions-json":"dimensions","audit-config-json":"audit-config","objective-template-json":"objective-template"},"block":["agreement-id","payload","data","json"],"ambiguous":["id","contract"],"scope_strict":true,"note":"JSON suffixes only rename the exact native JSON fields; generic envelopes are blocked because update is full overwrite."},
"agoal scorecard detail": {"scoped_aliases":{"department-id":"dept-id","period-start-time":"selected-time"},"ambiguous":["id","time","date"],"scope_strict":true,"note":"selected-time is the ISO-8601 period start, not an arbitrary date or timestamp."},
"agoal scorecard entity-detail": {"scoped_aliases":{"scorecard-id":"sc-id","scorecard-entity-id":"entity-id"},"ambiguous":["id","entity"],"scope_strict":true,"note":"Scorecard and entity identifiers remain separate roles."},
"agoal scorecard update": {"scoped_aliases":{"department-id":"dept-id","period-start-time":"selected-time","scorecard-id":"id","scorecard-content":"content"},"block":["entity-id","payload","data","json"],"ambiguous":["time","date"],"scope_strict":true,"note":"The native role-free id is the scorecard ID on this leaf; entity IDs and generic JSON envelopes must not be substituted."},
"agoal user rules": {"bind":{"user-id":"user_id"},"block":["open-id","union-id","staff-no"],"ambiguous":["id"],"scope_strict":true,"note":"This leaf accepts one DingTalk user ID; other identifier namespaces are blocked."},
"agoal user objectives": {"bind":{"user-id":"user_id"},"scoped_aliases":{"goal-rule-id":"rule-id","rule-period-ids":"period-ids"},"block":["open-id","union-id","period-id"],"ambiguous":["id","ids"],"scope_strict":true,"note":"User, rule and period-list identifiers are different roles; period-ids remains a comma-separated list."},
"agoal obj-template list": {"bind":{"keyword":"search_query","page":"page_number","page-size":"pagination_size"},"block":["cursor","offset","page-token"],"ambiguous":["id","template"],"scope_strict":true,"note":"This endpoint uses numbered pagination, never cursors or offsets."},
"agoal obj-template create-or-update": {"scoped_aliases":{"objective-template-id":"template-id","dimensions-json":"dimensions"},"block":["payload","data","json"],"ambiguous":["id","template"],"scope_strict":true,"note":"Only exact template and dimensions roles are renamed; generic JSON envelopes cannot preserve overwrite semantics."},
"agoal report list-statistics": {"bind":{"keyword":"search_query"},"block":["name","title","subject"],"scope_strict":true,"note":"keyword searches report-rule text; semantic name/title/subject fields are not interchangeable."},
"agoal report submit-detail": {"bind":{"keyword":"search_query","page":"page_number","page-size":"pagination_size"},"scoped_aliases":{"report-template-id":"template-id","report-date":"query-date"},"block":["cursor","offset","page-token","start-date","end-date"],"ambiguous":["id","date","state"],"scope_strict":true,"note":"The leaf uses one query date, one report template ID and numbered pagination; it cannot accept ranges or cursor semantics."},
"audit tail": {"scoped_aliases":{"limit":"lines","count":"lines","max-results":"lines","tail-lines":"lines"},"block":["file","file-path","audit-file","directory","dir","audit-dir","page","page-size","cursor","offset","export-format"],"scope_strict":true,"note":"Tail reads the latest local audit file and returns its last N records. The reviewed count spellings preserve the positive integer unchanged; file selection, directory selection, pagination, and export formatting are different capabilities."},
"audit export": {"scoped_aliases":{"start-date":"since","from-date":"since","end-date":"until","to-date":"until","export-format":"format"},"block":["start","from","start-time","time-min","end","to","end-time","time-max","date","file","file-path","directory","dir","audit-dir","output-format"],"scope_strict":true,"note":"Export accepts optional YYYY-MM-DD inclusive date bounds and writes jsonl/csv to stdout. Only date-explicit bound spellings and export-format are value-preserving; timestamps, a single date, destination paths, directories, and the root output-format role are not equivalent."},
"audit verify": {"scoped_aliases":{"audit-file":"file","audit-log-file":"file","input-file":"file","file-path":"file"},"block":["files","directory","dir","audit-dir","export-format"],"ambiguous":["path","log","audit-log","target"],"scope_strict":true,"note":"Verify accepts one local audit JSONL file path or defaults to the latest file. Explicit input-file spellings preserve the path unchanged; lists, directories, output destinations, and generic path/log/target names are not promoted automatically."},
"dev app robot result": {"scoped_aliases":{"robot-task-id":"task-id","creation-task-id":"task-id"},"scope_strict":true,"note":"Former single/local-role concept dev_robot_task_id is intentionally command-scoped."},
"dev app robot submit": {"bind":{"robot-name":"dev_robot_name","desc":"plain_description"},"ambiguous":["display-name","id","media-id","preview-id"],"scope_strict":true,"note":"Agent application name, client-visible robot name, icon mediaId, preview mediaId and taskId are distinct roles. Only role-complete, same-domain spellings are rewritten; fileId is not assumed to be mediaId and preview-id remains ambiguous.","scoped_aliases":{"robot-task-id":"task-id","creation-task-id":"task-id","agent-name":"name","intelligent-agent-name":"name","description-text":"desc"},"block":["preview-file-id","file-id","app-id"]},
"dev app version publish": {"bind":{"version-id":"dev_version_id"},"scoped_aliases":{"user-id":"approver-user-id","reviewer-user-id":"approver-user-id","approval-user-id":"approver-user-id"},"block":["task-id","user-ids","version"],"scope_strict":true,"note":"Former single/local-role concept dev_approver_user_id is intentionally command-scoped. The only user role is one selected approver; confirmed-sensitive remains an explicit safety boolean and receives no alias."},
"dev app permission list": {"ambiguous":["scope","status","type","permission-scope","scope-filter"],"block":["event-codes","scope-values"],"scope_strict":true,"note":"api-status/auth-status and scope-type/scope-value are separate filters. Generic status, scope, permission-scope and scope-filter cannot prove whether the caller means a scope type or an exact scopeValue."},
"dev app create": {"bind":{"name":"dev_app_name"},"scope_strict":true,"note":"Application description text is an exact command-local spelling. The real name flag denotes the application name on this exact command; robot and agent names are different roles.","scoped_aliases":{"description-text":"desc"},"block":["preview-media-id","file-id","app-id"]},
"dev app robot config": {"bind":{"name":"dev_robot_name","desc":"plain_description"},"ambiguous":["callback-url","localized-text","url","summary"],"scope_strict":true,"note":"Plain description, brief, three i18n JSON fields, icon, skills, mode and two callback URL roles are distinct. summary cannot safely choose brief versus desc; JSON and plain text are never converted.","scoped_aliases":{"description-text":"desc","short-description":"brief","robot-mode":"mode","transport-mode":"mode","skill-list":"skills","skill-names":"skills","localized-name-json":"i18n-name","name-i18n-json":"i18n-name","localized-brief-json":"i18n-brief","brief-i18n-json":"i18n-brief","localized-description-json":"i18n-description","description-i18n-json":"i18n-description","event-url":"event-callback-url","event-hook-url":"event-callback-url","message-callback-url":"outgoing-url","message-hook-url":"outgoing-url"},"block":["preview-media-id","file-id"]},
"dev app update": {"bind":{"name":"dev_app_name"},"scope_strict":true,"note":"Application description text is an exact command-local spelling. The real name flag denotes the application name on this exact command; robot and agent names are different roles.","scoped_aliases":{"description-text":"desc"},"block":["preview-media-id","file-id"]},
"dev app version create": {"block":["task-id","version-id"],"scope_strict":true,"note":"Application description text is an exact command-local spelling. Former single/local-role concept dev_version_label is intentionally command-scoped. The optional version string is a human-authored label, not the server-assigned version-id used by get/status/publish.","scoped_aliases":{"description-text":"desc","app-version-name":"version","version-label":"version","release-label":"version"}},
"dev app list": {"bind":{"name":"dev_app_name","robot-name":"dev_robot_name","app-key":"dev_app_key"},"scoped_aliases":{"order-direction":"sort-order","sort-field":"sort-type","creator-name":"creator","created-by-name":"creator"},"ambiguous":["id","query","sort","type"],"scope_strict":true,"note":"Former single/local-role concept dev_creator_name_query is intentionally command-scoped. Application name, robot name, creator, appKey and sort roles are separate filters; the native hidden keyword flag remains native."},
"dev app webapp config": {"ambiguous":["home-url","url"],"scope_strict":true,"note":"Former single/local-role concept dev_homepage_url is intentionally command-scoped. Former single/local-role concept dev_pc_homepage_url is intentionally command-scoped. Former single/local-role concept dev_omp_url is intentionally command-scoped. Mobile/H5, PC and OMP URL roles are distinct and generic url cannot choose one.","scoped_aliases":{"mobile-homepage-url":"homepage-url","h5-homepage-url":"homepage-url","desktop-homepage-url":"pc-homepage-url","pc-url":"pc-homepage-url","open-micro-app-url":"omp-url"}},
"dev app security config": {"ambiguous":["allow-list","url","urls"],"scope_strict":true,"note":"Former single/local-role concept dev_redirect_urls is intentionally command-scoped. Former single/local-role concept dev_sso_urls is intentionally command-scoped. Former single/local-role concept dev_ip_whitelist is intentionally command-scoped. OAuth redirect URLs, SSO URLs and IP whitelist use different value domains and list roles.","scoped_aliases":{"redirect-url-list":"redirect-urls","oauth-redirect-urls":"redirect-urls","sso-url-list":"sso-urls","login-urls":"sso-urls","allowed-ips":"ip-whitelist","ip-allow-list":"ip-whitelist"}},
"dev app get": {"bind":{"unified-app-id":"app_id","app-key":"dev_app_key"},"ambiguous":["application","id"],"scope_strict":true,"note":"unifiedAppId and appKey/clientId are distinct lookup keys; generic id cannot choose one."},
"dev app delete": {"scoped_aliases":{"confirm-app-name":"confirm-name","confirmation-name":"confirm-name"},"block":["app-name","application-name","name"],"scope_strict":true,"note":"The destructive confirmation barrier requires an explicitly confirmation-shaped flag name; ordinary app-name aliases are not promoted to confirm-name."},
"dev app member add": {"bind":{"user-ids":"user_ids"},"block":["scope-values","staff-id","user","user-id","scope-type","develop-type","sort-type"],"scope_strict":true,"note":"Member IDs are a list and member-type is an enum; the native hidden member-user-ids compatibility flag remains native. Member role spelling is local to Dev/DevApp membership commands.","scoped_aliases":{"member-role":"member-type"}},
"dev app member remove": {"bind":{"user-ids":"user_ids"},"block":["scope-values","staff-id","user","user-id","scope-type","develop-type","sort-type"],"scope_strict":true,"note":"Member IDs are a list and member-type is an enum; the native hidden member-user-ids compatibility flag remains native. Member role spelling is local to Dev/DevApp membership commands.","scoped_aliases":{"member-role":"member-type"}},
"dev app permission add": {"bind":{"scope-values":"dev_permission_scope_values"},"block":["scope-type","scope-value","user-ids"],"scope_strict":true,"note":"Permission mutation consumes a list of exact scopeValue strings; singular filters and user lists are different protocols."},
"dev app permission remove": {"bind":{"scope-values":"dev_permission_scope_values"},"block":["scope-type","scope-value","user-ids"],"scope_strict":true,"note":"Permission mutation consumes a list of exact scopeValue strings; singular filters and user lists are different protocols."},
"dev connect restart": {"bind":{"unified-app-id":"app_id","robot-client-id":"dev_robot_client_id"},"ambiguous":["connection-id","id"],"block":["app-key","robot-client-secret"],"scope_strict":true,"note":"Connector lookup may use unifiedAppId or robot clientId; generic id cannot select one and secrets are never treated as IDs."},
"dev connect status": {"bind":{"unified-app-id":"app_id","robot-client-id":"dev_robot_client_id"},"ambiguous":["connection-id","id"],"block":["app-key","robot-client-secret"],"scope_strict":true,"note":"Connector lookup may use unifiedAppId or robot clientId; generic id cannot select one and secrets are never treated as IDs."},
"dev connect stop": {"bind":{"unified-app-id":"app_id","robot-client-id":"dev_robot_client_id"},"ambiguous":["connection-id","id"],"block":["app-key","robot-client-secret"],"scope_strict":true,"note":"Connector lookup may use unifiedAppId or robot clientId; generic id cannot select one and secrets are never treated as IDs."},
"dev doc search": {"block":["cursor","offset","page-token"],"scope_strict":true,"note":"This compatibility leaf uses page/size plus a search query; runtime tool availability is separate from parameter-name normalization."},
"devapp +list": {"bind":{"name":"dev_app_name"},"scoped_aliases":{"application-group-id":"app-group-id","creator-name":"creator","development-type":"develop-type","cool-app-only":"filter-cool-app","order-direction":"sort-order","sort-field":"sort-type","application-key":"app-key","ding-app-key":"app-key","application-client-id":"app-key","bot-name":"robot-name","display-robot-name":"robot-name"},"ambiguous":["id","query","sort","type"],"scope_strict":true,"note":"Former single/local-role concept devapp_app_key is intentionally command-scoped. Former single/local-role concept devapp_robot_name is intentionally command-scoped. Application name, robot name, creator, appKey, group and sort roles are separate filters; generic id/query/sort/type cannot choose one."},
"devapp +create": {"bind":{"name":"dev_app_name","desc":"plain_description"},"scope_strict":true,"note":"Application description text is an exact command-local spelling. The real name/desc/icon flags denote the application fields on this exact command.","scoped_aliases":{"description-text":"desc"},"block":["preview-media-id","file-id","app-id"]},
"devapp +update": {"bind":{"name":"dev_app_name","desc":"plain_description"},"scope_strict":true,"note":"Application description text is an exact command-local spelling. The real name/desc/icon flags denote the application fields on this exact command.","scoped_aliases":{"description-text":"desc"},"block":["preview-media-id","file-id"]},
"devapp +permission-list": {"scoped_aliases":{"api-permission-status":"api-status","authorization-status":"auth-status","permission-scope-type":"scope-type"},"ambiguous":["scope","status","type","permission-scope","scope-filter"],"block":["event-codes","scope-values"],"scope_strict":true,"note":"api-status/auth-status and scope-type/scope-value are separate filters. Generic status, scope, permission-scope and scope-filter cannot prove whether the caller means a scope type or an exact scopeValue."},
"devapp +webapp-config": {"scoped_aliases":{"mobile-page-type":"h5-page-type","mobile-homepage-url":"homepage-url","h5-homepage-url":"homepage-url","desktop-homepage-url":"pc-homepage-url","pc-url":"pc-homepage-url","open-micro-app-url":"omp-url"},"ambiguous":["home-url","page-type","url"],"scope_strict":true,"note":"Former single/local-role concept devapp_homepage_url is intentionally command-scoped. Former single/local-role concept devapp_pc_homepage_url is intentionally command-scoped. Former single/local-role concept devapp_omp_url is intentionally command-scoped. Mobile/H5, PC and OMP URL roles are distinct and generic url cannot choose one."},
"devapp +member-add": {"bind":{"user-ids":"user_ids"},"block":["scope-values","staff-id","user","user-id","scope-type","develop-type","sort-type"],"scope_strict":true,"note":"Member IDs are a list and member-type is an enum; single user IDs are not expanded automatically. Member role spelling is local to Dev/DevApp membership commands.","scoped_aliases":{"member-role":"member-type"}},
"devapp +member-remove": {"bind":{"user-ids":"user_ids"},"block":["scope-values","staff-id","user","user-id","scope-type","develop-type","sort-type"],"scope_strict":true,"note":"Member IDs are a list and member-type is an enum; single user IDs are not expanded automatically. Member role spelling is local to Dev/DevApp membership commands.","scoped_aliases":{"member-role":"member-type"}},
"event +listen-im": {"bind":{"user":"user_id","chat-id":"open_conversation_id","query":"search_query","max-events":"event_max_events"},"scoped_aliases":{"open-dingtalkid":"open-dingtalk-id","listen-kind":"kind","intent-kind":"kind","event-kinds":"events","event-types":"events","sender-query":"user-query","sender-name":"user-query","user-name":"user-query","group-query":"chat-query","group-name":"chat-query","chat-name":"chat-query","message-query":"query","message-keywords":"query","run-duration":"duration","listen-duration":"duration","runtime-duration":"duration"},"block":["event-key","event-keys","subscribe-id","subscription-id","filter","filter-json","rule","rule-json","ttl","subscription-ttl","group-id","open-conversation-ids","user-ids","open-dingtalk-ids","status","output-dir","route"],"ambiguous":["target","target-id","target-name","name","id","peer-open-dingtalk-id","sender-open-dingtalk-id"],"scope_strict":true,"note":"The IM facade compiles kind/events plus exactly one typed target. Raw EventKeys, subscription control, Filter DSL, output routing, list-valued IDs, role-qualified openDingTalkId spellings, and role-free targets are not aliases for this intent layer."},
"event consume": {"bind":{"user":"user_id","group":"open_conversation_id","query":"search_query","max-events":"event_max_events","subscribe-id":"event_subscription_id"},"scoped_aliases":{"open-dingtalkid":"open-dingtalk-id","subscription-name":"name","event-output-dir":"output-dir","events-dir":"output-dir","event-type-regex":"filter","filter-regex":"filter","filter-dsl-json":"filter-json","rule-json":"filter-json","local-event-types":"event-types","message-query":"query","message-keywords":"query","subscription-ttl":"ttl","flat":"flatten","flattened":"flatten","subscription-rule":"rule","personal-stream-source-id":"stream-source-id","control-base-url":"personal-event-base-url","ticket-mode":"stream-ticket-mode","run-duration":"duration","listen-duration":"duration","runtime-duration":"duration"},"block":["event","event-key","event-keys","events","user-query","sender-query","sender-name","user-name","chat-query","group-query","group-name","chat-name","group-id","open-conversation-ids","user-ids","open-dingtalk-ids","subscribe-ids","subscription-ids","output-file","filter-file","filter-object","query-json","duration-seconds"],"ambiguous":["target","target-id","id","source-id","url","mode","where","directory","event-type","peer-open-dingtalk-id","sender-open-dingtalk-id"],"scope_strict":true,"note":"EventKeys are variadic positionals, while --event-types is only a local bus delivery filter. User/openDingTalkId/group targets, message query, regex filter, Filter DSL JSON, runtime duration, subscription TTL, output directory, and control URLs remain distinct roles; role-qualified openDingTalkId spellings are not rewritten without their required target context."},
"event list": {"scoped_aliases":{"event-category":"category","only-enabled":"enabled-only","show-pending":"include-pending"},"block":["event","event-key","event-types","status","subscribe-id","subscription-id"],"ambiguous":["type","state"],"scope_strict":true,"note":"This leaf lists the built-in catalog. EventKey, subscription status, and event delivery filters belong to schema/status/consume instead."},
"event schema": {"scoped_aliases":{"flat":"flatten","flattened":"flatten"},"block":["event","event-key","event-type","id","subscribe-id","subscription-id"],"scope_strict":true,"note":"The event_key is a required positional. Flag-like EventKey spellings must stop and point to the positional syntax; --flatten only changes the displayed payload projection."},
"event status": {"bind":{"subscribe-id":"event_subscription_id"},"scoped_aliases":{"event-key":"event","subscription-status":"status","state":"status","personal-stream-source-id":"stream-source-id","control-base-url":"personal-event-base-url"},"block":["active-only","event-types","user","user-id","open-dingtalk-id","group","conversation-id","query","filter","filter-json","subscribe-ids","subscription-ids"],"ambiguous":["id","source-id","url"],"scope_strict":true,"note":"Status filters one EventKey, one subscription ID, and one subscription state. Boolean --all is not a status selector; use --status all. Target and delivery-filter flags belong to consume."},
"event stop": {"scoped_aliases":{"all-subscriptions":"all","personal-stream-source-id":"stream-source-id","control-base-url":"personal-event-base-url"},"block":["subscribe-id","subscription-id","event-subscription-id","subscribe-ids","subscription-ids","event","event-key","status","user","user-id","open-dingtalk-id","group","query","filter","filter-json","all-events"],"ambiguous":["id","target","source-id","url"],"scope_strict":true,"note":"One subscribe_id is a positional and is mutually exclusive with --all. The alias table cannot rewrite a flag into a positional, so flag-shaped subscription IDs stop before the destructive command."},
"mcp url get": {"block":["mcp-id","server-id","service-id","app-id","plugin-id","tool-id","marketplace-id","url","mcp-url","endpoint","base-url","server-url","transport","protocol","headers","authorization","credential","credentials","api-key","access-token","secret","query","keyword","page","limit","cursor","sort","scope","corp-id","org-id","user-id"],"ambiguous":["id","server","service","app","tool","plugin","name","type","key","user","org"],"scope_strict":true,"note":"The frozen MCP surface has one read-only helper leaf. It accepts exactly one required positional MCP marketplace mcpId and no business flags. Flag spellings for that positional cannot be converted safely by the flag-only PreParse dictionary. Returned connection URL, transport, header, token, and credential fields are sensitive output, not request parameters. Alternate object IDs, search/list fields, and explicit user or organization selectors must stop before dispatch. Native global output, profile, timeout, mock, dry-run, and OAuth override flags remain unchanged."},
"recruit job list": {"bind":{"keyword":"search_query","size":"pagination_size","cursor":"page_cursor","creator-user-ids":"creator_user_ids"},"scoped_aliases":{"position-ids":"job-ids","recruit-job-ids":"job-ids","modified-after":"start-modified-time","modified-before":"end-modified-time","job-status":"status"},"block":["job-id","position-id","recruit-job-id","creator-user-id","user-id","page","offset","start","end","from","to","employment-type","education"],"ambiguous":["id","ids","time","type"],"scope_strict":true,"note":"Recruit list keeps job IDs and creator user IDs plural, uses opaque cursor pagination, and does not translate enum values or time formats."},
"recruit job get": {"scoped_aliases":{"position-id":"job-id","recruit-job-id":"job-id"},"block":["job-ids","position-ids","recruit-job-ids","id"],"scope_strict":true,"note":"One exact recruiting job ID is required; plural lists and role-free id are not promoted."},
"recruit job create": {"scoped_aliases":{"file":"from","file-path":"from","input-file":"from","job-file":"from","job-json-file":"from"},"block":["job-json","ats-add-job-param","corp-id","biz-code","op-user-id","creator-user-id","owner-user-ids"],"ambiguous":["json","data","payload","request"],"scope_strict":true,"note":"--from is a local UTF-8 JSON file. Raw JSON, connector envelope fields and nested identity fields cannot be converted by argv aliasing."},
"devapp +member-list": {"bind":{"user-id":"user_id"},"block":["user-ids","users","member-type","member-role"],"ambiguous":["id","member"],"scope_strict":true,"note":"The optional filter is one exact DingTalk userId, while unified-app-id selects the application. User lists and member-role filters are not accepted."}
},
"validation_fixture": {
"cases": [
{"command":"oa +search-forms","emitted":"keyword","expect":"query","via":"concept:search_query","occ":28},
{"command":"aitable +list-tables","emitted":"base-id","expect":"base","via":"concept:base_id+morph","occ":26},
{"command":"mail +find-mail-user","emitted":"keyword","expect":"query","via":"concept:search_query","occ":18},
{"command":"aitable +field-get","emitted":"base","expect":"base-id","via":"concept:base_id+morph","occ":8},
{"command":"aitable +record-query","emitted":"base","expect":"base-id","via":"concept:base_id+morph","occ":8},
{"command":"aitable +table-get","emitted":"base","expect":"base-id","via":"concept:base_id+morph","occ":8},
{"command":"doc block update","emitted":"text","expect":"content","via":"native:reviewed-compatibility-alias","occ":6},
{"command":"contact +resolve-dept","emitted":"query","expect":"name","via":"concept:search_query+bind","occ":4},
{"command":"devdoc article search","emitted":"limit","expect":"size","via":"concept:pagination_size","occ":2},
{"command":"devdoc article search","emitted":"page-size","expect":"size","via":"concept:pagination_size","occ":2},
{"command":"devdoc article search","emitted":"current-page","expect":"page","via":"concept:page_number","occ":2},
{"command":"mail message search","emitted":"subject","expect":"query","via":"override:scoped_strict","occ":4},
{"command":"aitable +record-share-url","emitted":"base","expect":"base-id","via":"concept:base_id+morph","occ":3},
{"command":"aitable record query","emitted":"max-results","expect":"limit","via":"concept:pagination_size","occ":2},
{"command":"calendar event list","emitted":"date","expect":"start","via":"override:scoped(reviewed+payload)","occ":2},
{"command":"calendar event list","emitted":"start-time","expect":"start","via":"native:reviewed-compatibility-fallback","occ":2},
{"command":"calendar event list","emitted":"min-time","expect":"start","via":"native:reviewed-compatibility-fallback","occ":2},
{"command":"calendar event list","emitted":"time-min","expect":"start","via":"native:reviewed-compatibility-fallback","occ":2},
{"command":"calendar event list","emitted":"end-time","expect":"end","via":"native:reviewed-compatibility-fallback","occ":2},
{"command":"calendar event list","emitted":"time-max","expect":"end","via":"native:reviewed-compatibility-fallback","occ":2},
{"command":"calendar event list","emitted":"max-results","expect":"limit","via":"native:reviewed-compatibility-fallback","occ":2},
{"command":"calendar event list","emitted":"next-cursor","expect":"cursor","via":"native:reviewed-compatibility-fallback","occ":2},
{"command":"calendar event list","emitted":"calendar","expect":"calendar-id","via":"native:reviewed-compatibility-fallback","occ":2},
{"command":"chat message list","emitted":"max-results","expect":"limit","via":"concept:pagination_size","occ":2},
{"command":"chat message list-by-sender","emitted":"time","expect":"did-you-mean:blocked","via":"guard:time-format-boundary","occ":2},
{"command":"doc +template-search","emitted":"keyword","expect":"query","via":"concept:search_query","occ":2},
{"command":"doc block insert","emitted":"text","expect":"content","via":"native:reviewed-compatibility-alias","occ":2},
{"command":"drive list","emitted":"folder-id","expect":"folder","via":"concept:folder_id+morph","occ":2},
{"command":"mail thread list","emitted":"max-results","expect":"limit","via":"concept:pagination_size","occ":2},
{"command":"mail user search","emitted":"query","expect":"keyword","via":"concept:search_query","occ":2},
{"command":"oa approval search-forms","emitted":"keyword","expect":"query","via":"concept:search_query","occ":2},
{"command":"report list","emitted":"from-date","expect":"start","via":"concept:time_start","occ":2},
{"command":"aitable +base-search","emitted":"keyword","expect":"query","via":"concept:search_query","occ":1},
{"command":"contact +search-user","emitted":"keyword","expect":"query","via":"concept:search_query","occ":1},
{"command":"chat group rename","emitted":"group","expect":"id","via":"override:bind(open_conversation_id)","occ":31},
{"command":"ding +receiver-status","emitted":"id","expect":"ding-id","via":"override:scoped(ding_id)","occ":24},
{"command":"chat group members","emitted":"group","expect":"id","via":"override:bind(open_conversation_id)","occ":8},
{"command":"contact +list-sub-depts","emitted":"dept-id","expect":"dept","via":"concept:dept_id+morph","occ":4},
{"command":"contact +list-sub-depts","emitted":"name","expect":"did-you-mean:blocked","via":"guard:name-vs-id","occ":2},
{"command":"contact +list-sub-depts","emitted":"query","expect":"did-you-mean:blocked","via":"guard:query-vs-id","occ":2},
{"command":"contact user profile get","emitted":"user-id","expect":"staff-id","via":"concept:user_id","occ":2},
{"command":"contact user profile get","emitted":"id","expect":"staff-id","via":"override:scoped","occ":2},
{"command":"contact user profile get","emitted":"ids","expect":"staff-id","via":"override:scoped","occ":2},
{"command":"chat message send-by-bot","emitted":"user-id","expect":"did-you-mean:blocked","via":"guard:single-vs-list","occ":4},
{"command":"chat message send-by-bot","emitted":"to-user-id","expect":"did-you-mean:blocked","via":"guard:single-vs-list","occ":1},
{"command":"dev app get","emitted":"app-id","expect":"unified-app-id","via":"concept:app_id","occ":5},
{"command":"chat message list-all","emitted":"from","expect":"start","via":"concept:time_start","occ":2},
{"command":"chat message list-all","emitted":"start-time","expect":"start","via":"concept:time_start","occ":2},
{"command":"chat message search-advanced","emitted":"group","expect":"conversation-ids","via":"native:reviewed-single-to-list","occ":4},
{"command":"chat message send","emitted":"to-user","expect":"user","via":"override:scoped(reviewed+payload)","occ":4},
{"command":"contact +dept-members","emitted":"name","expect":"dept","via":"override:scoped(reviewed)","occ":2},
{"command":"contact +dept-members","emitted":"query","expect":"dept","via":"concept:search_query+bind","occ":2},
{"command":"contact dept list-children","emitted":"parent-id","expect":"dept","via":"concept:dept_id","occ":2},
{"command":"contact dept list-children","emitted":"parent","expect":"dept","via":"concept:dept_id","occ":2},
{"command":"ding message receiver-status","emitted":"id","expect":"ding-id","via":"override:scoped(ding_id)","occ":2},
{"command":"ding message receiver-status","emitted":"open-ding-id","expect":"ding-id","via":"concept:ding_id","occ":2},
{"command":"chat group members add","emitted":"group","expect":"id","via":"override:bind(open_conversation_id)","occ":3},
{"command":"attendance +check-result","emitted":"user-id","expect":"did-you-mean:blocked","via":"concept:user_ids+exclude","occ":2},
{"command":"attendance check result","emitted":"user-ids","expect":"users","via":"concept:user_ids","occ":2},
{"command":"chat group members remove","emitted":"group","expect":"id","via":"override:bind(open_conversation_id)","occ":2},
{"command":"chat group set-admin","emitted":"user-id","expect":"user","via":"native:reviewed-compatibility-alias","occ":2},
{"command":"ding message send","emitted":"robot","expect":"robot-code","via":"concept:robot_code","occ":2},
{"command":"doc +export-get","emitted":"node","expect":"did-you-mean:blocked","via":"override:block","occ":2},
{"command":"doc block delete","emitted":"index","expect":"did-you-mean:blocked","via":"override:block","occ":2},
{"command":"doc block insert","emitted":"before-block-id","expect":"did-you-mean:blocked","via":"guard:requires-multi-parameter-transform","occ":2},
{"command":"drive info","emitted":"workspace","expect":"space-id","via":"override:published-storage-space-compatibility","occ":2},
{"command":"mail folder update","emitted":"folder-id","expect":"id","via":"override:bind(folder_id)","occ":2},
{"command":"report outbox list","emitted":"template-type","expect":"did-you-mean:blocked","via":"override:block","occ":2},
{"command":"chat +group-members","emitted":"group-name","expect":"group","via":"concept:group_name+bind"},
{"command":"chat group get-by-group-id","emitted":"conversation-id","expect":"did-you-mean:blocked","via":"guard:open-conversation-id-vs-group-id"},
{"command":"chat group get-by-group-id","emitted":"id","expect":"did-you-mean:blocked","via":"guard:generic-id-vs-group-id"},
{"command":"chat group rename","emitted":"conversation-id","expect":"id","via":"concept:open_conversation_id+bind"},
{"command":"chat group rename","emitted":"group-id","expect":"did-you-mean:blocked","via":"guard:group-id-vs-open-conversation-id"},
{"command":"chat message send","emitted":"conversation-id","expect":"group","via":"concept:open_conversation_id"},
{"command":"chat message add-emoji","emitted":"open-conversation-id","expect":"conversation-id","via":"concept:open_conversation_id"},
{"command":"chat message add-emoji","emitted":"group-id","expect":"did-you-mean:blocked","via":"guard:group-id-vs-open-conversation-id"},
{"command":"chat +group-members","emitted":"conversation-id","expect":"did-you-mean:blocked","via":"guard:group-name-vs-open-conversation-id"},
{"command":"chat +send-to-group","emitted":"group-name","expect":"group","via":"concept:group_name+bind"},
{"command":"chat message search-advanced","emitted":"open-conversation-ids","expect":"conversation-ids","via":"concept:open_conversation_ids"},
{"command":"chat message search-advanced","emitted":"group-ids","expect":"did-you-mean:blocked","via":"guard:group-id-list-vs-open-conversation-id-list"},
{"command":"chat message recall","emitted":"message-id","expect":"msg-id","via":"concept:open_message_id"},
{"command":"chat message add-favorite","emitted":"msg-id","expect":"open-message-id","via":"concept:open_message_id"},
{"command":"chat message list-by-ids","emitted":"message-ids","expect":"msg-ids","via":"concept:open_message_ids"},
{"command":"chat message list-by-ids","emitted":"message-id","expect":"did-you-mean:blocked","via":"guard:single-vs-list"},
{"command":"chat message reply","emitted":"ref-message-id","expect":"ref-msg-id","via":"concept:referenced_open_message_id"},
{"command":"chat message reply","emitted":"message-id","expect":"did-you-mean:blocked","via":"guard:message-role"},
{"command":"chat message forward-topic","emitted":"src-open-message-id","expect":"src-msg-id","via":"override:scoped-role"},
{"command":"chat message forward-topic","emitted":"message-id","expect":"did-you-mean:blocked","via":"guard:message-role"},
{"command":"chat message combine-forward","emitted":"src-open-cid","expect":"src-conversation-id","via":"override:scoped-role"},
{"command":"chat message forward-topic","emitted":"dest-open-conversation-id","expect":"dest-conversation-id","via":"override:scoped-role"},
{"command":"chat message forward","emitted":"conversation-id","expect":"did-you-mean:ambiguous","via":"guard:source-vs-destination-role"},
{"command":"chat group share-invite","emitted":"conversation-id","expect":"did-you-mean:ambiguous","via":"guard:source-vs-target-role"},
{"command":"chat message send","emitted":"user-id","expect":"user","via":"concept:user_id"},
{"command":"chat message list","emitted":"user-id","expect":"user","via":"concept:user_id"},
{"command":"chat +messages-list-direct","emitted":"user-id","expect":"user","via":"concept:user_id"},
{"command":"attendance +check-result","emitted":"user-ids","expect":"users","via":"concept:user_ids"},
{"command":"contact +list-sub-depts","emitted":"parent-id","expect":"dept","via":"concept:dept_id"},
{"command":"chat +conversation-info","emitted":"user-id","expect":"did-you-mean:blocked","via":"guard:user-id-vs-open-dingtalk-id"},
{"command":"chat group members remove","emitted":"user-ids","expect":"users","via":"concept:user_ids"},
{"command":"chat group members remove","emitted":"user-id","expect":"did-you-mean:blocked","via":"guard:single-vs-list"},
{"command":"chat group create","emitted":"user-id","expect":"did-you-mean:blocked","via":"guard:single-vs-list"},
{"command":"chat +chat-set-admin","emitted":"user-id","expect":"did-you-mean:blocked","via":"guard:single-vs-list"},
{"command":"chat +messages-read-status","emitted":"user-id","expect":"did-you-mean:blocked","via":"guard:single-vs-list"},
{"command":"chat group members list-by-ids","emitted":"open-dingtalk-ids","expect":"users","via":"concept:open_dingtalk_ids+bind"},
{"command":"chat group members remove-bot","emitted":"open-bot-id","expect":"bot-id","via":"concept:open_bot_id"},
{"command":"chat group members remove-bot","emitted":"robot-code","expect":"did-you-mean:blocked","via":"guard:robot-code-vs-open-bot-id"},
{"command":"chat group members add-bot","emitted":"robot","expect":"robot-code","via":"concept:robot_code"},
{"command":"chat +bot-find","emitted":"name","expect":"query","via":"override:scoped"},
{"command":"chat bot find","emitted":"name","expect":"query","via":"override:scoped"},
{"command":"chat +bot-search","emitted":"query","expect":"name","via":"override:scoped"},
{"command":"chat bot search","emitted":"query","expect":"name","via":"override:scoped"},
{"command":"chat message list-favorites","emitted":"limit","expect":"size","via":"override:scoped"},
{"command":"chat bot search","emitted":"current-page","expect":"page","via":"override:scoped"},
{"command":"chat bot search","emitted":"cursor","expect":"did-you-mean:blocked","via":"guard:page-number-vs-cursor"},
{"command":"chat message list-unread-conversations","emitted":"limit","expect":"count","via":"override:scoped"},
{"command":"chat +messages-list-unread-conversations","emitted":"size","expect":"count","via":"override:scoped"},
{"command":"chat message list","emitted":"start","expect":"time","via":"override:scoped"},
{"command":"chat message list","emitted":"end","expect":"did-you-mean:blocked","via":"guard:single-time-vs-range"},
{"command":"chat message list-all","emitted":"time","expect":"did-you-mean:blocked","via":"guard:time-range-required"},
{"command":"chat message list-by-sender","emitted":"user-id","expect":"sender-user-id","via":"override:scoped-role"},
{"command":"chat message list-by-sender","emitted":"open-dingtalk-id","expect":"sender-open-dingtalk-id","via":"override:scoped-role"},
{"command":"chat category create-smart","emitted":"title","expect":"name","via":"override:scoped"},
{"command":"chat category create","emitted":"name","expect":"title","via":"override:scoped"},
{"command":"chat message send","emitted":"file-path","expect":"file","via":"native:reviewed-compatibility-alias"},
{"command":"chat category add-conv","emitted":"category-id","expect":"did-you-mean:blocked","via":"override:block-cardinality"},
{"command":"chat category rename","emitted":"category-ids","expect":"did-you-mean:blocked","via":"override:block-cardinality"},
{"command":"chat group-role update","emitted":"role-ids","expect":"did-you-mean:blocked","via":"override:block-cardinality"},
{"command":"chat message send-by-webhook","emitted":"at-user-ids","expect":"at-users","via":"override:scoped-role"},
{"command":"chat message send-by-bot","emitted":"at-users","expect":"at-user-ids","via":"override:scoped-role"},
{"command":"chat message send-by-bot","emitted":"at-ids","expect":"did-you-mean:ambiguous","via":"guard:user-id-vs-open-dingtalk-id"},
{"command":"chat +bot-search","emitted":"current-page","expect":"page","via":"override:scoped"},
{"command":"chat +category-create","emitted":"name","expect":"title","via":"override:scoped"},
{"command":"chat +category-rename","emitted":"name","expect":"title","via":"override:scoped"},
{"command":"chat +messages-list-direct","emitted":"start","expect":"time","via":"override:scoped"},
{"command":"chat +messages-list-unread-conversations","emitted":"limit","expect":"count","via":"override:scoped"},
{"command":"chat +messages-send-by-webhook","emitted":"at-user-ids","expect":"at-users","via":"override:scoped-role"},
{"command":"chat +unread-chats","emitted":"limit","expect":"count","via":"override:scoped"},
{"command":"chat +unread-chats","emitted":"size","expect":"count","via":"override:scoped"},
{"command":"chat category rename","emitted":"name","expect":"title","via":"override:scoped"},
{"command":"chat message list-unread-conversations","emitted":"size","expect":"count","via":"override:scoped"},
{"command":"doc +comment-create","emitted":"node-id","expect":"node","via":"concept:doc_node_id"},
{"command":"doc +doc-append","emitted":"node","expect":"doc","via":"concept:doc_node_id"},
{"command":"doc +find-doc","emitted":"keyword","expect":"query","via":"concept:search_query"},
{"command":"doc +search","emitted":"q","expect":"query","via":"concept:search_query"},
{"command":"doc +comment-list","emitted":"max-results","expect":"limit","via":"concept:pagination_size"},
{"command":"doc +list","emitted":"page-token","expect":"cursor","via":"concept:page_cursor"},
{"command":"doc +copy","emitted":"workspace-id","expect":"workspace","via":"concept:workspace_id"},
{"command":"doc +copy","emitted":"parent-folder-id","expect":"folder","via":"override:scoped-doc-folder"},
{"command":"doc +copy","emitted":"parent-id","expect":"did-you-mean:blocked","via":"guard:doc-folder-value-domain"},
{"command":"doc +comment-reply","emitted":"comment-id","expect":"comment-key","via":"concept:doc_comment_key"},
{"command":"doc comment reply","emitted":"mentioned-open-conversation-ids","expect":"mentioned-open-conversation-id","via":"override:scoped-role-list"},
{"command":"doc comment reply","emitted":"group-id","expect":"did-you-mean:blocked","via":"guard:numeric-group-id-vs-open-conversation-id"},
{"command":"doc +comment-create","emitted":"mentioned-open-conversation-id","expect":"did-you-mean:blocked","via":"guard:shortcut-missing-capability"},
{"command":"doc block insert","emitted":"parent-block-id","expect":"parent-block","via":"override:scoped-block-role"},
{"command":"doc block insert","emitted":"block-id","expect":"did-you-mean:ambiguous","via":"guard:parent-vs-reference-block-role"},
{"command":"doc media insert","emitted":"before-block-id","expect":"did-you-mean:blocked","via":"guard:requires-ref-block-plus-where"},
{"command":"doc read","emitted":"block-id","expect":"did-you-mean:ambiguous","via":"guard:requires-scope-and-boundary-role"},
{"command":"doc export get","emitted":"node","expect":"did-you-mean:blocked","via":"guard:document-node-vs-export-job"},
{"command":"doc import get","emitted":"job-id","expect":"did-you-mean:blocked","via":"guard:export-job-vs-import-task"},
{"command":"doc +version-revert","emitted":"version-number","expect":"version","via":"concept:doc_version_number"},
{"command":"doc +version-revert","emitted":"revision","expect":"did-you-mean:blocked","via":"concept:doc_version_number+exclude"},
{"command":"doc update","emitted":"version","expect":"did-you-mean:blocked","via":"guard:historical-version-vs-edit-revision"},
{"command":"doc +share-doc","emitted":"node-id","expect":"did-you-mean:blocked","via":"guard:node-id-needs-url-conversion"},
{"command":"doc +comment-create","emitted":"body","expect":"content","via":"concept:content_text"},
{"command":"doc +doc-append","emitted":"text","expect":"content","via":"native:reviewed-compatibility-alias"},
{"command":"doc +export-submit","emitted":"doc-id","expect":"node","via":"concept:doc_node_id"},
{"command":"doc +move","emitted":"parent-folder-id","expect":"folder","via":"override:scoped-doc-folder"},
{"command":"doc +template-list","emitted":"next-token","expect":"cursor","via":"concept:page_cursor"},
{"command":"doc +version-list","emitted":"page-size","expect":"limit","via":"concept:pagination_size"},
{"command":"doc +version-save","emitted":"file-id","expect":"node","via":"concept:doc_node_id"},
{"command":"doc comment create","emitted":"text","expect":"content","via":"concept:content_text"},
{"command":"doc comment create-inline","emitted":"body","expect":"content","via":"concept:content_text"},
{"command":"doc comment delete","emitted":"comment-id","expect":"comment-key","via":"concept:doc_comment_key"},
{"command":"doc comment update","emitted":"comment-id","expect":"comment-key","via":"concept:doc_comment_key"},
{"command":"doc version revert","emitted":"version-no","expect":"version","via":"concept:doc_version_number"},
{"command":"chat +chat-messages","emitted":"chat","expect":"group","via":"override:scoped-eval"},
{"command":"chat +search-msg","emitted":"chat","expect":"group","via":"override:scoped-eval"},
{"command":"chat +chat-update","emitted":"chat-id","expect":"group","via":"override:scoped-explicit-cid"},
{"command":"chat +chat-update","emitted":"conversation-id","expect":"group","via":"override:scoped-explicit-cid"},
{"command":"chat +chat-update","emitted":"open-conversation-id","expect":"group","via":"override:scoped-explicit-cid"},
{"command":"chat +chat-update","emitted":"id","expect":"did-you-mean:blocked","via":"guard:generic-id-value-domain"},
{"command":"chat +chat-update","emitted":"title","expect":"name","via":"override:scoped-group-title"},
{"command":"chat +chat-update","emitted":"new-title","expect":"name","via":"override:scoped-group-title"},
{"command":"chat +flag-list","emitted":"limit","expect":"page-size","via":"override:scoped-page-bound"},
{"command":"chat +flag-list","emitted":"max","expect":"did-you-mean:blocked","via":"guard:page-size-vs-total-count"},
{"command":"chat +flag-list","emitted":"max-results","expect":"did-you-mean:blocked","via":"guard:page-size-vs-total-count"},
{"command":"chat +flag-list","emitted":"max-size","expect":"did-you-mean:blocked","via":"guard:page-size-vs-total-count"},
{"command":"chat +chat-members-list","emitted":"chat-id","expect":"conversation-id","via":"override:scoped-explicit-cid"},
{"command":"chat +chat-members-list","emitted":"id","expect":"conversation-id","via":"override:scoped-explicit-cid"},
{"command":"chat +chat-members-list","emitted":"query","expect":"did-you-mean:blocked","via":"guard:unsupported-member-filter"},
{"command":"chat +conversation-set-top","emitted":"open-conversation-id","expect":"conversation-id","via":"override:scoped-explicit-cid"},
{"command":"chat +conversation-set-top","emitted":"chat-ids","expect":"conversation-ids","via":"override:scoped-explicit-cid-list"},
{"command":"chat +conversation-set-top","emitted":"groups","expect":"did-you-mean:blocked","via":"guard:group-name-or-list-ambiguity"},
{"command":"chat +conversation-set-top","emitted":"top","expect":"did-you-mean:blocked","via":"guard:inverse-boolean-semantics"},
{"command":"chat +chat-members-get","emitted":"conversation-id","expect":"id","via":"concept:open_conversation_id+bind"},
{"command":"chat +chat-members-get","emitted":"open-dingtalk-ids","expect":"users","via":"concept:open_dingtalk_ids+bind"},
{"command":"chat +chat-members-get","emitted":"group","expect":"did-you-mean:blocked","via":"guard:group-name-vs-open-conversation-id"},
{"command":"chat +chat-members-get","emitted":"chat","expect":"id","via":"concept:open_conversation_id+bind"},
{"command":"chat +chat-get-by-id","emitted":"group","expect":"did-you-mean:blocked","via":"guard:open-conversation-id-vs-numeric-group-id"},
{"command":"chat +messages-list","emitted":"start","expect":"time","via":"override:scoped-time-boundary"},
{"command":"chat +messages-list","emitted":"count","expect":"did-you-mean:blocked","via":"guard:page-size-vs-total-count"},
{"command":"chat +messages-list","emitted":"max-results","expect":"did-you-mean:blocked","via":"guard:page-size-vs-total-count"},
{"command":"chat +messages-list","emitted":"page-all","expect":"did-you-mean:blocked","via":"guard:requires-pagination-loop"},
{"command":"chat +messages-reply","emitted":"msg-id","expect":"ref-msg-id","via":"override:scoped-reference-message"},
{"command":"chat +messages-reply","emitted":"conversation-id","expect":"group","via":"native:reviewed-compatibility-alias"},
{"command":"chat +messages-reply","emitted":"chat","expect":"group","via":"concept:open_conversation_id"},
{"command":"chat +messages-reply","emitted":"open-conversation-id","expect":"group","via":"concept:open_conversation_id"},
{"command":"chat +flag-cancel","emitted":"group","expect":"conversation-id","via":"concept:open_conversation_id"},
{"command":"chat +flag-cancel","emitted":"chat","expect":"conversation-id","via":"concept:open_conversation_id"},
{"command":"chat +flag-create","emitted":"group","expect":"conversation-id","via":"concept:open_conversation_id"},
{"command":"chat +chat-add-bot","emitted":"conversation-id","expect":"id","via":"concept:open_conversation_id+bind"},
{"command":"chat +chat-add-bot","emitted":"robot","expect":"robot-code","via":"concept:robot_code"},
{"command":"chat group audit-join-validation","emitted":"user","expect":"did-you-mean:ambiguous","via":"guard:applicant-vs-inviter-role"},
{"command":"chat +chat-audit-join","emitted":"applicant-user-id","expect":"applicant","via":"override:scoped-user-role"},
{"command":"chat +chat-audit-join","emitted":"user-id","expect":"did-you-mean:ambiguous","via":"guard:applicant-vs-inviter-role"},
{"command":"chat +chat-create","emitted":"user-id","expect":"did-you-mean:blocked","via":"guard:single-vs-list"},
{"command":"chat +chat-mute-member","emitted":"user-ids","expect":"users","via":"override:scoped-mixed-id-list"},
{"command":"chat +chat-mute-member","emitted":"user-id","expect":"did-you-mean:blocked","via":"guard:single-vs-list"},
{"command":"chat +chat-remove-bot","emitted":"open-bot-id","expect":"bot-id","via":"concept:open_bot_id"},
{"command":"chat +chat-role-remove","emitted":"role-ids","expect":"did-you-mean:blocked","via":"guard:list-vs-single"},
{"command":"chat +chat-role-remove-user","emitted":"open-dingtalk-id","expect":"user","via":"override:scoped-mixed-id"},
{"command":"chat +chat-transfer-owner","emitted":"user-id","expect":"new-owner","via":"override:scoped-owner-role"},
{"command":"chat +feed-group-query-item","emitted":"chat-ids","expect":"conversation-ids","via":"override:scoped-explicit-cid-list"},
{"command":"chat +feed-group-query-item","emitted":"conversation-id","expect":"did-you-mean:blocked","via":"guard:single-vs-list"},
{"command":"chat +messages-batch-recall-by-bot","emitted":"message-id","expect":"did-you-mean:blocked","via":"guard:process-query-key-vs-open-message-id"},
{"command":"chat +messages-combine-forward","emitted":"src-open-cid","expect":"src-conversation-id","via":"override:scoped-source-role"},
{"command":"chat +messages-combine-forward","emitted":"conversation-id","expect":"did-you-mean:ambiguous","via":"guard:source-vs-destination-role"},
{"command":"chat +messages-forward","emitted":"source-message-id","expect":"msg-id","via":"override:scoped-source-role"},
{"command":"chat +messages-forward","emitted":"conversation-id","expect":"did-you-mean:ambiguous","via":"guard:source-vs-destination-role"},
{"command":"chat +messages-forward-topic","emitted":"src-open-message-id","expect":"src-msg-id","via":"override:scoped-source-role"},
{"command":"chat +messages-forward-topic","emitted":"message-id","expect":"did-you-mean:blocked","via":"guard:message-source-role"},
{"command":"chat +messages-recall-by-bot","emitted":"message-id","expect":"did-you-mean:blocked","via":"guard:process-query-key-vs-open-message-id"},
{"command":"chat +messages-resource-download","emitted":"conversation-id","expect":"open-conversation-id","via":"concept:open_conversation_id"},
{"command":"chat +messages-resource-download","emitted":"download-dir","expect":"did-you-mean:blocked","via":"guard:output-file-or-directory-contract"},
{"command":"chat +messages-set-pin","emitted":"conversation-id","expect":"open-conversation-id","via":"concept:open_conversation_id"},
{"command":"doc +create","emitted":"content-format","expect":"doc-format","via":"concept:doc_content_format"},
{"command":"doc +create","emitted":"content-file","expect":"did-you-mean:blocked","via":"guard:requires-file-read-transform"},
{"command":"doc +inspect","emitted":"include-versions","expect":"include-history","via":"override:scoped-section"},
{"command":"doc +inspect","emitted":"include","expect":"did-you-mean:blocked","via":"guard:requires-value-dependent-flag-expansion","occ":1},
{"command":"doc +inspect","emitted":"include-info","expect":"did-you-mean:blocked","via":"guard:base-info-always-returned","occ":1},
{"command":"doc +update","emitted":"mode","expect":"command","via":"override:scoped-operation","occ":5},
{"command":"doc +update","emitted":"revision","expect":"expected-revision","via":"concept:doc_edit_revision"},
{"command":"doc +update","emitted":"version","expect":"did-you-mean:blocked","via":"guard:historical-version-vs-edit-revision"},
{"command":"doc +fetch","emitted":"start-block","expect":"start-block-id","via":"override:scoped-boundary-role"},
{"command":"doc +fetch","emitted":"block-id","expect":"did-you-mean:ambiguous","via":"guard:start-vs-end-boundary-role"},
{"command":"doc +access-grant","emitted":"doc-id","expect":"node","via":"concept:doc_node_id"},
{"command":"doc +history-revert","emitted":"version-number","expect":"version","via":"concept:doc_version_number"},
{"command":"doc +create-from-template","emitted":"keyword","expect":"query","via":"concept:search_query"},
{"command":"doc +create-from-template","emitted":"workspace-id","expect":"workspace","via":"concept:workspace_id"},
{"command":"doc +create-from-template","emitted":"parent-folder-id","expect":"folder","via":"override:scoped-doc-folder"},
{"command":"doc +media-download","emitted":"file-id","expect":"did-you-mean:ambiguous","via":"guard:document-node-vs-attachment-resource-role"},
{"command":"doc +resource-update","emitted":"url","expect":"did-you-mean:ambiguous","via":"guard:document-url-vs-image-url-role"},
{"command":"doc +share","emitted":"node-id","expect":"did-you-mean:blocked","via":"guard:node-id-needs-url-conversion"},
{"command":"doc +copy","emitted":"dentry-uuid","expect":"node","via":"concept:doc_node_id"},
{"command":"doc info","emitted":"dentry-id","expect":"did-you-mean:blocked","via":"guard:dentry-id-vs-dentry-uuid"},
{"command":"doc create","emitted":"knowledge-base-id","expect":"workspace","via":"concept:workspace_id"},
{"command":"doc create","emitted":"space-id","expect":"workspace","via":"override:published-workspace-compatibility"},
{"command":"drive list","emitted":"knowledge-base-id","expect":"workspace","via":"concept:workspace_id"},
{"command":"drive list","emitted":"order-field","expect":"order-by","via":"override:scoped-sort-field"},
{"command":"drive info","emitted":"dentry-uuid","expect":"node","via":"override:scoped-node-id"},
{"command":"drive info","emitted":"dentry-id","expect":"did-you-mean:blocked","via":"guard:dentry-id-vs-dentry-uuid"},
{"command":"drive copy","emitted":"target-folder-id","expect":"folder","via":"override:scoped-destination-folder"},
{"command":"drive copy","emitted":"target-id","expect":"did-you-mean:ambiguous","via":"guard:destination-role-required"},
{"command":"drive search","emitted":"created-after","expect":"created-from","via":"concept:created_time_start"},
{"command":"drive search","emitted":"created-before","expect":"created-to","via":"concept:created_time_end"},
{"command":"drive search","emitted":"modified-after","expect":"modified-from","via":"concept:drive_modified_time_start"},
{"command":"drive search","emitted":"modified-before","expect":"modified-to","via":"concept:drive_modified_time_end"},
{"command":"drive search","emitted":"creator-user-ids","expect":"creator-uids","via":"concept:creator_user_ids"},
{"command":"drive permission add","emitted":"permission-role","expect":"role","via":"concept:document_permission_role"},
{"command":"drive permission list","emitted":"role","expect":"did-you-mean:blocked","via":"guard:permission-role-vs-filter-role"},
{"command":"drive upload","emitted":"source-file","expect":"file","via":"override:scoped-local-file"},
{"command":"doc +search","emitted":"created-after","expect":"created-from","via":"concept:created_time_start"},
{"command":"doc +search","emitted":"create-time-start","expect":"created-from","via":"concept:created_time_start","occ":1},
{"command":"doc +search","emitted":"create-time-end","expect":"created-to","via":"concept:created_time_end","occ":1},
{"command":"doc +search","emitted":"creator-user-ids","expect":"creator-uids","via":"concept:creator_user_ids"},
{"command":"doc +access-grant","emitted":"permission-role","expect":"role","via":"concept:document_permission_role"},
{"command":"doc +export","emitted":"output-path","expect":"output","via":"concept:local_output_path"},
{"command":"drive download","emitted":"destination-path","expect":"output","via":"concept:local_output_path"},
{"command":"drive download","emitted":"version-number","expect":"version","via":"concept:doc_version_number"},
{"command":"drive recycle restore","emitted":"recycle-item-id","expect":"id","via":"concept:drive_recycle_item_id"},
{"command":"drive upload-info","emitted":"size-bytes","expect":"file-size","via":"concept:drive_file_size_bytes"},
{"command":"drive +info","emitted":"drive-space-id","expect":"space-id","via":"concept:drive_storage_space_id"},
{"command":"drive commit","emitted":"storage-space-id","expect":"space-id","via":"concept:drive_storage_space_id"},
{"command":"drive download","emitted":"dingdrive-space-id","expect":"space-id","via":"concept:drive_storage_space_id"},
{"command":"drive info","emitted":"drive-space-id","expect":"space-id","via":"concept:drive_storage_space_id"},
{"command":"drive list","emitted":"storage-space-id","expect":"space-id","via":"concept:drive_storage_space_id"},
{"command":"drive list","emitted":"sort-direction","expect":"order","via":"concept:drive_sort_direction"},
{"command":"drive mkdir","emitted":"dingdrive-space-id","expect":"space-id","via":"concept:drive_storage_space_id"},
{"command":"drive recycle list","emitted":"drive-space-id","expect":"space-id","via":"concept:drive_storage_space_id"},
{"command":"drive upload","emitted":"storage-space-id","expect":"space-id","via":"concept:drive_storage_space_id"},
{"command":"drive upload-info","emitted":"dingdrive-space-id","expect":"space-id","via":"concept:drive_storage_space_id"},
{"command":"doc +access-grant","emitted":"user","expect":"did-you-mean:ambiguous","via":"guard:collaborator-name-vs-id-value-domain","occ":6},
{"command":"doc +access-grant","emitted":"target-user","expect":"did-you-mean:ambiguous","via":"guard:collaborator-name-vs-id-value-domain","occ":1},
{"command":"doc +access-grant","emitted":"user-id","expect":"did-you-mean:blocked","via":"guard:user-id-cannot-feed-name-resolver","occ":1},
{"command":"doc +access-grant","emitted":"user-ids","expect":"did-you-mean:blocked","via":"guard:user-id-cannot-feed-name-resolver","occ":1},
{"command":"doc +access-grant","emitted":"target-user-id","expect":"did-you-mean:blocked","via":"guard:user-id-cannot-feed-name-resolver"},
{"command":"doc +access-grant","emitted":"target-user-ids","expect":"did-you-mean:blocked","via":"guard:user-id-cannot-feed-name-resolver"},
{"command":"doc +fetch","emitted":"content-format","expect":"did-you-mean:blocked","via":"guard:content-format-vs-detail-contract","occ":3},
{"command":"doc +fetch","emitted":"doc-format","expect":"did-you-mean:blocked","via":"guard:content-format-vs-detail-contract","occ":1},
{"command":"doc +fetch","emitted":"range","expect":"did-you-mean:blocked","via":"guard:composite-range-needs-block-ids","occ":1},
{"command":"doc +inspect","emitted":"include-access","expect":"include-permissions","via":"override:scoped-permission-section","occ":3},
{"command":"doc +inspect","emitted":"include-member","expect":"include-permissions","via":"override:scoped-permission-section","occ":1},
{"command":"doc +inspect","emitted":"include-members","expect":"include-permissions","via":"override:scoped-permission-section","occ":2},
{"command":"doc +inspect","emitted":"include-meta","expect":"did-you-mean:blocked","via":"guard:base-metadata-already-returned","occ":2},
{"command":"doc +inspect","emitted":"include-metadata","expect":"did-you-mean:blocked","via":"guard:base-metadata-already-returned","occ":1},
{"command":"doc +inspect","emitted":"include-blocks","expect":"did-you-mean:blocked","via":"guard:content-read-belongs-to-fetch","occ":1},
{"command":"doc +inspect","emitted":"include-content","expect":"did-you-mean:blocked","via":"guard:content-read-belongs-to-fetch","occ":1},
{"command":"doc +inspect","emitted":"role","expect":"did-you-mean:blocked","via":"guard:permission-role-vs-document-node","occ":1},
{"command":"doc +copy","emitted":"name","expect":"did-you-mean:blocked","via":"guard:fuzzy-name-vs-node-role","occ":2},
{"command":"doc +export","emitted":"wait","expect":"did-you-mean:blocked","via":"guard:workflow-wait-vs-max-polls","occ":1},
{"command":"doc +media-insert","emitted":"after-block-id","expect":"did-you-mean:blocked","via":"guard:requires-ref-block-and-where-expansion","occ":1},
{"command":"doc +media-insert","emitted":"before-block-id","expect":"did-you-mean:blocked","via":"guard:requires-ref-block-and-where-expansion"},
{"command":"doc +update","emitted":"content-file","expect":"did-you-mean:blocked","via":"guard:requires-file-read-transform","occ":1},
{"command":"doc +update","emitted":"element","expect":"did-you-mean:ambiguous","via":"guard:content-vs-block-vs-reference-role","occ":1},
{"command":"doc update","emitted":"stdin","expect":"did-you-mean:blocked","via":"guard:stdin-requires-content-dash-transform","occ":1},
{"command":"doc +version-save","emitted":"title","expect":"did-you-mean:blocked","via":"guard:unsupported-version-metadata","occ":1},
{"command":"doc +version-save","emitted":"message","expect":"did-you-mean:blocked","via":"guard:unsupported-version-metadata","occ":1},
{"command":"drive +search","emitted":"keyword","expect":"query","via":"concept:search_query","occ":1},
{"command":"contact +search-user","emitted":"name","expect":"did-you-mean:blocked","via":"guard:person-name-vs-search-query","occ":1},
{"command":"drive copy","emitted":"name","expect":"did-you-mean:blocked","via":"guard:fuzzy-name-vs-node-role"},
{"command":"drive +copy","emitted":"name","expect":"did-you-mean:blocked","via":"guard:fuzzy-name-vs-node-role"},
{"command":"drive move","emitted":"name","expect":"did-you-mean:blocked","via":"guard:fuzzy-name-vs-node-role"},
{"command":"drive +move","emitted":"name","expect":"did-you-mean:blocked","via":"guard:fuzzy-name-vs-node-role"},
{"command":"drive shortcut","emitted":"name","expect":"did-you-mean:blocked","via":"guard:fuzzy-name-vs-node-role"},
{"command":"drive +cover","emitted":"dentry-uuid","expect":"node","via":"override:scoped-drive-node"},
{"command":"drive +cover","emitted":"name","expect":"did-you-mean:blocked","via":"guard:fuzzy-name-vs-drive-node"},
{"command":"drive +create-folder","emitted":"folder-name","expect":"name","via":"override:scoped-folder-name"},
{"command":"drive +create-folder","emitted":"storage-space-id","expect":"space-id","via":"concept:drive_storage_space_id"},
{"command":"drive +create-shortcut","emitted":"source-file-id","expect":"node","via":"override:scoped-source-node"},
{"command":"drive +create-shortcut","emitted":"target-folder-id","expect":"folder","via":"override:scoped-target-folder"},
{"command":"drive +create-shortcut","emitted":"target-workspace-id","expect":"workspace","via":"override:scoped-target-workspace"},
{"command":"drive +create-shortcut","emitted":"name","expect":"did-you-mean:blocked","via":"guard:fuzzy-name-vs-drive-node"},
{"command":"drive +delete","emitted":"file-id","expect":"node","via":"override:scoped-drive-node"},
{"command":"drive +delete","emitted":"dentry-id","expect":"did-you-mean:blocked","via":"guard:dentry-id-vs-node-id"},
{"command":"drive +download","emitted":"dentry-uuid","expect":"node","via":"override:scoped-drive-node"},
{"command":"drive +download","emitted":"destination-path","expect":"output","via":"concept:local_output_path"},
{"command":"drive +inspect","emitted":"include-statistics","expect":"include-stats","via":"override:scoped-inspect-section"},
{"command":"drive +inspect","emitted":"include-history","expect":"did-you-mean:blocked","via":"guard:doc-inspect-section"},
{"command":"drive +list","emitted":"folder-id","expect":"folder","via":"concept:folder_id"},
{"command":"drive +list","emitted":"page-size","expect":"limit","via":"concept:pagination_size"},
{"command":"drive +list","emitted":"next-token","expect":"cursor","via":"concept:page_cursor"},
{"command":"drive +list","emitted":"sort-direction","expect":"order","via":"concept:drive_sort_direction"},
{"command":"drive +list","emitted":"sort-by","expect":"order-by","via":"override:scoped-sort-field"},
{"command":"drive +publish-get","emitted":"dentry-uuid","expect":"node","via":"override:scoped-drive-node"},
{"command":"drive +publish-unset","emitted":"file-id","expect":"node","via":"override:scoped-drive-node"},
{"command":"drive +recycle-list","emitted":"storage-space-id","expect":"space-id","via":"concept:drive_storage_space_id"},
{"command":"drive +recycle-list","emitted":"page-token","expect":"cursor","via":"concept:page_cursor"},
{"command":"drive +recycle-restore","emitted":"recycle-item-id","expect":"id","via":"override:bind(drive_recycle_item_id)"},
{"command":"drive +recycle-restore","emitted":"node-id","expect":"did-you-mean:blocked","via":"guard:recycle-item-vs-node-id"},
{"command":"drive +rename","emitted":"file-id","expect":"node","via":"override:scoped-drive-node"},
{"command":"drive +rename","emitted":"new-name","expect":"name","via":"override:scoped-display-name"},
{"command":"drive +star-add","emitted":"dentry-uuid","expect":"node","via":"override:scoped-drive-node"},
{"command":"drive +star-list","emitted":"max-results","expect":"limit","via":"concept:pagination_size"},
{"command":"drive +star-list","emitted":"types","expect":"did-you-mean:ambiguous","via":"guard:content-type-value-domain"},
{"command":"drive +star-remove","emitted":"file-id","expect":"node","via":"override:scoped-drive-node"},
{"command":"drive +stats","emitted":"dentry-uuid","expect":"node","via":"override:scoped-drive-node"},
{"command":"drive +upload","emitted":"source-file","expect":"file","via":"override:scoped-local-file"},
{"command":"drive +upload","emitted":"name","expect":"file-name","via":"override:scoped-remote-name"},
{"command":"drive +upload","emitted":"overwrite-node-id","expect":"node","via":"override:scoped-overwrite-node"},
{"command":"drive +upload","emitted":"workspace-id","expect":"did-you-mean:blocked","via":"guard:unsupported-workspace-route"},
{"command":"drive +version-download","emitted":"version-number","expect":"version","via":"concept:doc_version_number"},
{"command":"drive +version-download","emitted":"save-path","expect":"output","via":"concept:local_output_path"},
{"command":"drive +version-get","emitted":"version-no","expect":"version","via":"concept:doc_version_number"},
{"command":"drive +version-history","emitted":"next-cursor","expect":"cursor","via":"concept:page_cursor"},
{"command":"drive +version-history","emitted":"page-size","expect":"limit","via":"concept:pagination_size"},
{"command":"drive +version-revert","emitted":"version-number","expect":"version","via":"concept:doc_version_number"},
{"command":"drive +version-revert","emitted":"revision","expect":"did-you-mean:blocked","via":"guard:document-revision-vs-file-version"},
{"command":"drive +cover","emitted":"node-id","expect":"node","via":"override:node-id-parity"},
{"command":"drive +create-shortcut","emitted":"node-id","expect":"node","via":"override:node-id-parity"},
{"command":"drive +delete","emitted":"node-id","expect":"node","via":"override:node-id-parity"},
{"command":"drive +download","emitted":"node-id","expect":"node","via":"override:node-id-parity"},
{"command":"drive +inspect","emitted":"node-id","expect":"node","via":"override:node-id-parity"},
{"command":"drive +publish-get","emitted":"node-id","expect":"node","via":"override:node-id-parity"},
{"command":"drive +publish-unset","emitted":"node-id","expect":"node","via":"override:node-id-parity"},
{"command":"drive +rename","emitted":"node-id","expect":"node","via":"override:node-id-parity"},
{"command":"drive +star-add","emitted":"node-id","expect":"node","via":"override:node-id-parity"},
{"command":"drive +star-remove","emitted":"node-id","expect":"node","via":"override:node-id-parity"},
{"command":"drive +stats","emitted":"node-id","expect":"node","via":"override:node-id-parity"},
{"command":"drive +upload","emitted":"node-id","expect":"node","via":"override:node-id-parity"},
{"command":"drive +version-download","emitted":"node-id","expect":"node","via":"override:node-id-parity"},
{"command":"drive +version-get","emitted":"node-id","expect":"node","via":"override:node-id-parity"},
{"command":"drive +version-history","emitted":"node-id","expect":"node","via":"override:node-id-parity"},
{"command":"drive +version-revert","emitted":"node-id","expect":"node","via":"override:node-id-parity"},
{"command":"drive +cover","emitted":"url","expect":"node","via":"override:existing-command-parity"},
{"command":"drive +create-shortcut","emitted":"document-id","expect":"node","via":"override:existing-command-parity"},
{"command":"drive +delete","emitted":"folder-id","expect":"node","via":"override:single-folder-node-role"},
{"command":"drive +inspect","emitted":"document-id","expect":"node","via":"override:document-node-id"},
{"command":"drive +inspect","emitted":"folder-id","expect":"node","via":"override:single-folder-node-role"},
{"command":"drive +publish-get","emitted":"url","expect":"node","via":"override:existing-command-parity"},
{"command":"drive +publish-unset","emitted":"document-url","expect":"node","via":"override:existing-command-parity"},
{"command":"drive +rename","emitted":"document-id","expect":"node","via":"override:existing-command-parity"},
{"command":"drive +rename","emitted":"folder-id","expect":"node","via":"override:single-folder-node-role"},
{"command":"drive +star-add","emitted":"url","expect":"node","via":"override:existing-command-parity"},
{"command":"drive +star-remove","emitted":"doc-id","expect":"node","via":"override:existing-command-parity"},
{"command":"drive +stats","emitted":"document-url","expect":"node","via":"override:existing-command-parity"},
{"command":"drive +upload","emitted":"file-id","expect":"node","via":"override:overwrite-node-id-role"},
{"command":"aitable +find-record","emitted":"base-id","expect":"base","via":"concept:base_id"},
{"command":"aitable record query","emitted":"base-token","expect":"base-id","via":"concept:base_id"},
{"command":"aitable +find-record","emitted":"table-id","expect":"table","via":"concept:table_id"},
{"command":"aitable +record-share-links","emitted":"base-id","expect":"base","via":"concept:base_id+experiment"},
{"command":"aitable +record-share-links","emitted":"table-id","expect":"table","via":"concept:table_id+experiment"},
{"command":"aitable record query","emitted":"table","expect":"table-id","via":"concept:table_id"},
{"command":"aitable field search-options","emitted":"query","expect":"keyword","via":"concept:search_query"},
{"command":"aitable +workflow-list","emitted":"max-results","expect":"limit","via":"concept:pagination_size"},
{"command":"aitable base list","emitted":"next-cursor","expect":"cursor","via":"concept:page_cursor"},
{"command":"aitable base update","emitted":"description","expect":"desc","via":"concept:plain_description"},
{"command":"aitable attachment upload","emitted":"file-size","expect":"size","via":"override:scoped(file-size-bytes)"},
{"command":"aitable workflow get","emitted":"flow-id","expect":"workflow-id","via":"concept:workflow_id"},
{"command":"aitable +export-data","emitted":"export-format","expect":"format","via":"override:scoped"},
{"command":"aitable +table-copy","emitted":"base-id","expect":"did-you-mean:ambiguous","via":"guard:source-vs-target-base"},
{"command":"aitable workflow run","emitted":"base-token","expect":"base-id","via":"concept:base_id"},
{"command":"aitable workflow run","emitted":"flow-id","expect":"workflow-id","via":"concept:workflow_id"},
{"command":"aitable workflow run","emitted":"table","expect":"table-id","via":"concept:table_id"},
{"command":"aitable workflow run","emitted":"record-id","expect":"did-you-mean:blocked","via":"guard:single-vs-list"},
{"command":"aitable workflow run","emitted":"id","expect":"did-you-mean:blocked","via":"guard:generic-id-multiple-roles"},
{"command":"aitable workflow history","emitted":"base-token","expect":"base-id","via":"concept:base_id"},
{"command":"aitable workflow history","emitted":"flow-id","expect":"workflow-id","via":"concept:workflow_id"},
{"command":"aitable workflow history","emitted":"page-size","expect":"size","via":"concept:pagination_size"},
{"command":"aitable workflow history","emitted":"start-time","expect":"after-time","via":"override:scoped-time-bound"},
{"command":"aitable workflow history","emitted":"end-time","expect":"before-time","via":"override:scoped-time-bound"},
{"command":"aitable workflow history","emitted":"page-index","expect":"page","via":"override:scoped-zero-based-page"},
{"command":"aitable workflow history","emitted":"cursor","expect":"did-you-mean:blocked","via":"guard:page-vs-cursor-model"},
{"command":"aitable workflow history","emitted":"offset","expect":"did-you-mean:blocked","via":"guard:page-vs-offset-model"},
{"command":"aitable workflow history","emitted":"page-number","expect":"did-you-mean:blocked","via":"guard:zero-vs-one-based-page"},
{"command":"calendar +agenda","emitted":"from","expect":"start","via":"concept:time_start"},
{"command":"calendar +agenda","emitted":"to","expect":"end","via":"override:scoped_strict"},
{"command":"calendar +agenda","emitted":"max-results","expect":"limit","via":"concept:pagination_size"},
{"command":"calendar +agenda","emitted":"next-cursor","expect":"cursor","via":"concept:page_cursor"},
{"command":"calendar +agenda","emitted":"calendar-book-id","expect":"calendar-id","via":"concept:calendar_book_id"},
{"command":"calendar +agenda","emitted":"id","expect":"did-you-mean:blocked","via":"guard:calendar-id-vs-event-id"},
{"command":"calendar +attendee-list","emitted":"event-id","expect":"event","via":"concept:calendar_event_id"},
{"command":"calendar +attendee-list","emitted":"calendar-book-id","expect":"calendar-id","via":"concept:calendar_book_id"},
{"command":"calendar +attendee-list","emitted":"id","expect":"did-you-mean:ambiguous","via":"guard:event-id-vs-calendar-id"},
{"command":"calendar +book","emitted":"summary","expect":"title","via":"concept:calendar_event_title"},
{"command":"calendar +book","emitted":"attendee-names","expect":"with","via":"concept:calendar_person_name_list"},
{"command":"calendar +book","emitted":"user-ids","expect":"did-you-mean:blocked","via":"guard:name-vs-user-id"},
{"command":"calendar +book-search","emitted":"keyword","expect":"query","via":"concept:search_query"},
{"command":"calendar +book-search","emitted":"search","expect":"query","via":"override:scoped_strict"},
{"command":"calendar +book-search","emitted":"name","expect":"query","via":"override:scoped_strict"},
{"command":"calendar +cancel-event","emitted":"event-id","expect":"event","via":"concept:calendar_event_id"},
{"command":"calendar +cancel-event","emitted":"id","expect":"event","via":"override:scoped_strict"},
{"command":"calendar +cancel-event","emitted":"calendar-id","expect":"did-you-mean:blocked","via":"guard:event-id-vs-calendar-id"},
{"command":"calendar +free","emitted":"name","expect":"who","via":"override:scoped_strict"},
{"command":"calendar +free","emitted":"user-id","expect":"did-you-mean:blocked","via":"guard:name-vs-user-id"},
{"command":"calendar +free-slots","emitted":"start-hour","expect":"from","via":"override:scoped_strict"},
{"command":"calendar +free-slots","emitted":"end-hour","expect":"to","via":"override:scoped_strict"},
{"command":"calendar +free-slots","emitted":"day-offset","expect":"in-days","via":"override:scoped_strict"},
{"command":"calendar +free-slots","emitted":"start","expect":"did-you-mean:blocked","via":"guard:hour-vs-iso-time"},
{"command":"calendar +freebusy","emitted":"user-ids","expect":"users","via":"concept:user_ids"},
{"command":"calendar +freebusy","emitted":"room-ids","expect":"rooms","via":"concept:calendar_room_ids"},
{"command":"calendar +freebusy","emitted":"room-id","expect":"rooms","via":"concept:calendar_room_ids"},
{"command":"calendar +freebusy","emitted":"with","expect":"did-you-mean:blocked","via":"guard:id-list-vs-name-list"},
{"command":"calendar +my-free","emitted":"from","expect":"start","via":"concept:time_start"},
{"command":"calendar +my-free","emitted":"to","expect":"end","via":"override:scoped_strict"},
{"command":"calendar +invite","emitted":"id","expect":"event","via":"override:scoped_strict"},
{"command":"calendar +invite","emitted":"participant-names","expect":"with","via":"concept:calendar_person_name_list"},
{"command":"calendar +invite","emitted":"user-ids","expect":"did-you-mean:blocked","via":"guard:name-vs-user-id"},
{"command":"calendar +reschedule","emitted":"id","expect":"event","via":"override:scoped_strict"},
{"command":"calendar +reschedule","emitted":"from","expect":"start","via":"override:scoped_strict"},
{"command":"calendar +reschedule","emitted":"to","expect":"end","via":"override:scoped_strict"},
{"command":"calendar +room-groups","emitted":"page-size","expect":"limit","via":"concept:pagination_size"},
{"command":"calendar +room-groups","emitted":"page-index","expect":"page","via":"override:scoped_strict"},
{"command":"calendar +room-groups","emitted":"cursor","expect":"did-you-mean:blocked","via":"guard:cursor-vs-page-index"},
{"command":"calendar +room-search","emitted":"query","expect":"room-name","via":"override:scoped_strict"},
{"command":"calendar +room-search","emitted":"room-id","expect":"did-you-mean:blocked","via":"guard:room-name-vs-room-id"},
{"command":"calendar +suggest-time","emitted":"duration-minutes","expect":"duration","via":"concept:calendar_duration_minutes"},
{"command":"calendar +suggest-time","emitted":"attendee-names","expect":"with","via":"concept:calendar_person_name_list"},
{"command":"calendar +suggest-time","emitted":"user-ids","expect":"did-you-mean:blocked","via":"guard:name-vs-user-id"},
{"command":"calendar +conflicts","emitted":"day-offset","expect":"in-days","via":"override:scoped_strict"},
{"command":"calendar attachment add","emitted":"file-id","expect":"did-you-mean:blocked","via":"guard:structured-file-list"},
{"command":"calendar attendee add","emitted":"attendee-name","expect":"did-you-mean:blocked","via":"guard:name-vs-user-id"},
{"command":"calendar busy search","emitted":"room-id","expect":"rooms","via":"concept:calendar_room_ids"},
{"command":"calendar busy search","emitted":"room-name","expect":"did-you-mean:blocked","via":"guard:room-name-vs-room-id"},
{"command":"calendar event create","emitted":"reminder-minutes","expect":"remind-minutes","via":"override:scoped_strict"},
{"command":"calendar event create","emitted":"tz","expect":"timezone","via":"concept:calendar_timezone"},
{"command":"calendar event create","emitted":"room-id","expect":"rooms","via":"concept:calendar_room_ids"},
{"command":"calendar event create","emitted":"room-name","expect":"did-you-mean:blocked","via":"guard:room-name-vs-room-id"},
{"command":"calendar event respond","emitted":"response-status","expect":"status","via":"override:scoped_strict"},
{"command":"calendar event respond","emitted":"free-busy","expect":"did-you-mean:blocked","via":"guard:response-vs-busy-state"},
{"command":"calendar event suggest","emitted":"duration-minutes","expect":"duration","via":"concept:calendar_duration_minutes"},
{"command":"calendar event suggest","emitted":"attendee-names","expect":"did-you-mean:blocked","via":"guard:name-vs-user-id"},
{"command":"calendar event update","emitted":"tz","expect":"timezone","via":"concept:calendar_timezone"},
{"command":"calendar event update","emitted":"rooms","expect":"did-you-mean:blocked","via":"guard:dedicated-room-command"},
{"command":"calendar room add","emitted":"room-id","expect":"rooms","via":"concept:calendar_room_ids"},
{"command":"calendar room delete","emitted":"room-id","expect":"rooms","via":"concept:calendar_room_ids"},
{"command":"calendar room search","emitted":"room-group-id","expect":"group-id","via":"override:scoped_strict"},
{"command":"calendar room search","emitted":"room-id","expect":"did-you-mean:blocked","via":"guard:room-filter-vs-room-id"},
{"command":"calendar acl delete","emitted":"calendar-id","expect":"did-you-mean:blocked","via":"guard:acl-id-vs-calendar-id"},
{"command":"calendar +create","emitted":"summary","expect":"title","via":"concept:calendar_event_title"},
{"command":"calendar +create","emitted":"description","expect":"desc","via":"concept:plain_description"},
{"command":"calendar +create","emitted":"user-ids","expect":"attendees","via":"override:scoped_strict"},
{"command":"calendar +create","emitted":"room-ids","expect":"rooms","via":"concept:calendar_room_ids"},
{"command":"calendar +create","emitted":"room-id","expect":"rooms","via":"concept:calendar_room_ids"},
{"command":"calendar +create","emitted":"calendar-book-id","expect":"calendar-id","via":"concept:calendar_book_id"},
{"command":"calendar +create","emitted":"to","expect":"end","via":"override:scoped_strict"},
{"command":"calendar +create","emitted":"from","expect":"start","via":"override:scoped_strict"},
{"command":"calendar +create","emitted":"attendee-names","expect":"did-you-mean:blocked","via":"guard:name-vs-user-id"},
{"command":"calendar +get","emitted":"event-id","expect":"event","via":"concept:calendar_event_id"},
{"command":"calendar +get","emitted":"calendar-book-id","expect":"calendar-id","via":"concept:calendar_book_id"},
{"command":"calendar +get","emitted":"id","expect":"did-you-mean:ambiguous","via":"guard:event-id-vs-calendar-id"},
{"command":"calendar +room-find","emitted":"from","expect":"start","via":"concept:time_start"},
{"command":"calendar +room-find","emitted":"to","expect":"end","via":"override:scoped_strict"},
{"command":"calendar +room-find","emitted":"page-size","expect":"limit","via":"concept:pagination_size"},
{"command":"calendar +room-find","emitted":"page-index","expect":"page","via":"override:scoped_strict"},
{"command":"calendar +room-find","emitted":"room-group-id","expect":"group-id","via":"override:scoped_strict"},
{"command":"calendar +room-find","emitted":"query","expect":"room-name","via":"override:scoped_strict"},
{"command":"calendar +room-find","emitted":"cursor","expect":"did-you-mean:blocked","via":"guard:page-index-vs-cursor"},
{"command":"calendar +rsvp","emitted":"event-id","expect":"event","via":"concept:calendar_event_id"},
{"command":"calendar +rsvp","emitted":"response-status","expect":"status","via":"override:scoped_strict"},
{"command":"calendar +rsvp","emitted":"id","expect":"did-you-mean:ambiguous","via":"guard:event-id-vs-calendar-id"},
{"command":"calendar +rsvp","emitted":"free-busy","expect":"did-you-mean:blocked","via":"guard:response-vs-busy-state"},
{"command":"calendar +search-event","emitted":"keyword","expect":"query","via":"concept:search_query"},
{"command":"calendar +search-event","emitted":"from","expect":"start","via":"concept:time_start"},
{"command":"calendar +search-event","emitted":"to","expect":"end","via":"override:scoped_strict"},
{"command":"calendar +search-event","emitted":"next-cursor","expect":"cursor","via":"concept:page_cursor"},
{"command":"calendar +search-event","emitted":"max-results","expect":"limit","via":"concept:pagination_size"},
{"command":"calendar +search-event","emitted":"page","expect":"did-you-mean:blocked","via":"guard:cursor-vs-page-index"},
{"command":"calendar +suggestion","emitted":"user-ids","expect":"users","via":"concept:user_ids"},
{"command":"calendar +suggestion","emitted":"duration-minutes","expect":"duration","via":"concept:calendar_duration_minutes"},
{"command":"calendar +suggestion","emitted":"from","expect":"start","via":"concept:time_start"},
{"command":"calendar +suggestion","emitted":"to","expect":"end","via":"override:scoped_strict"},
{"command":"calendar +suggestion","emitted":"tz","expect":"timezone","via":"concept:calendar_timezone"},
{"command":"calendar +suggestion","emitted":"attendee-names","expect":"did-you-mean:blocked","via":"guard:name-vs-user-id"},
{"command":"calendar +update","emitted":"event-id","expect":"event","via":"concept:calendar_event_id"},
{"command":"calendar +update","emitted":"from","expect":"start","via":"override:scoped_strict"},
{"command":"calendar +update","emitted":"summary","expect":"title","via":"concept:calendar_event_title"},
{"command":"calendar +update","emitted":"description","expect":"desc","via":"concept:plain_description"},
{"command":"calendar +update","emitted":"add-user-ids","expect":"add-attendees","via":"override:scoped_strict"},
{"command":"calendar +update","emitted":"remove-user-ids","expect":"remove-attendees","via":"override:scoped_strict"},
{"command":"calendar +update","emitted":"id","expect":"did-you-mean:ambiguous","via":"guard:event-id-vs-calendar-id"},
{"command":"calendar +update","emitted":"attendees","expect":"did-you-mean:ambiguous","via":"guard:add-vs-remove-role"},
{"command":"calendar +update","emitted":"room-ids","expect":"did-you-mean:blocked","via":"guard:dedicated-room-command"},
{"command":"minutes update title","emitted":"task-uuid","expect":"id","via":"concept:minutes_task_uuid"},
{"command":"minutes +record-pause","emitted":"uuid","expect":"id","via":"concept:minutes_task_uuid"},
{"command":"minutes +latest","emitted":"query","expect":"keyword","via":"concept:search_query"},
{"command":"minutes +transcript","emitted":"query","expect":"keyword","via":"concept:search_query+mutually-exclusive-id"},
{"command":"minutes +detail","emitted":"task-uuids","expect":"ids","via":"concept:minutes_task_uuids"},
{"command":"minutes get batch","emitted":"uuids","expect":"ids","via":"concept:minutes_task_uuids"},
{"command":"minutes +list-all","emitted":"page-size","expect":"limit","via":"concept:pagination_size"},
{"command":"minutes +search","emitted":"next-token","expect":"cursor","via":"concept:page_cursor"},
{"command":"minutes list mine","emitted":"start-time","expect":"start","via":"concept:time_start"},
{"command":"minutes list all","emitted":"end-time","expect":"end","via":"concept:time_end"},
{"command":"minutes +summary","emitted":"text","expect":"content","via":"concept:content_text"},
{"command":"minutes hot-word add","emitted":"hot-words","expect":"words","via":"concept:minutes_hot_words"},
{"command":"minutes upload complete","emitted":"upload-id","expect":"session-id","via":"concept:minutes_upload_session_id"},
{"command":"minutes +share","emitted":"user-ids","expect":"member-uids","via":"override:bind-user-id-list"},
{"command":"minutes +share","emitted":"user-id","expect":"did-you-mean:blocked","via":"guard:member-list-cardinality"},
{"command":"minutes +speaker-replace","emitted":"user-id","expect":"target-uid","via":"override:bind-target-user"},
{"command":"minutes +speaker-replace","emitted":"staff-id","expect":"did-you-mean:blocked","via":"guard:user-id-value-domain"},
{"command":"minutes audio-memo list","emitted":"limit","expect":"max","via":"override:scoped-page-size"},
{"command":"minutes audio-memo list","emitted":"next-token","expect":"did-you-mean:blocked","via":"guard:integer-cursor-vs-token"},
{"command":"minutes tag query","emitted":"id","expect":"tag-id","via":"override:scoped-tag-id"},
{"command":"minutes replace-text","emitted":"original-text","expect":"search","via":"override:scoped-search-role"},
{"command":"minutes replace-text","emitted":"text","expect":"did-you-mean:blocked","via":"guard:search-vs-replacement-role"},
{"command":"minutes +replace-batch","emitted":"pairs","expect":"pair","via":"override:scoped-pair-cardinality"},
{"command":"minutes +replace-batch","emitted":"search","expect":"did-you-mean:blocked","via":"guard:requires-pair-value-composition"},
{"command":"minutes +download","emitted":"destination","expect":"did-you-mean:ambiguous","via":"guard:output-role"},
{"command":"minutes +detail","emitted":"url","expect":"did-you-mean:blocked","via":"guard:url-needs-value-extraction"},
{"command":"minutes +apply-permission","emitted":"policy","expect":"did-you-mean:blocked","via":"guard:permission-value-conversion"},
{"command":"minutes permission apply","emitted":"permission","expect":"did-you-mean:blocked","via":"guard:permission-value-conversion"},
{"command":"minutes upload create","emitted":"file","expect":"did-you-mean:blocked","via":"guard:file-path-needs-orchestration"},
{"command":"minutes +upload","emitted":"file-size","expect":"did-you-mean:blocked","via":"guard:file-metadata-vs-path"},
{"command":"minutes record start","emitted":"upload-id","expect":"did-you-mean:blocked","via":"guard:session-value-domain"},
{"command":"minutes +upload-and-analyze","emitted":"task-uuid","expect":"resume-id","via":"override:resume-task-uuid"},
{"command":"minutes get info","emitted":"ids","expect":"did-you-mean:blocked","via":"guard:single-vs-list-task-uuid"},
{"command":"minutes get summary","emitted":"ids","expect":"did-you-mean:blocked","via":"guard:single-vs-list-task-uuid"},
{"command":"minutes get keywords","emitted":"ids","expect":"did-you-mean:blocked","via":"guard:single-vs-list-task-uuid"},
{"command":"minutes get transcription","emitted":"ids","expect":"did-you-mean:blocked","via":"guard:single-vs-list-task-uuid"},
{"command":"minutes get todos","emitted":"ids","expect":"did-you-mean:blocked","via":"guard:single-vs-list-task-uuid"},
{"command":"minutes get audio","emitted":"ids","expect":"did-you-mean:blocked","via":"guard:single-vs-list-task-uuid"},
{"command":"minutes mind-graph create","emitted":"ids","expect":"did-you-mean:blocked","via":"guard:single-vs-list-task-uuid"},
{"command":"minutes mind-graph status","emitted":"ids","expect":"did-you-mean:blocked","via":"guard:single-vs-list-task-uuid"},
{"command":"minutes permission apply","emitted":"ids","expect":"did-you-mean:blocked","via":"guard:single-vs-list-task-uuid"},
{"command":"minutes permission add","emitted":"id","expect":"did-you-mean:blocked","via":"guard:list-vs-single-task-uuid"},
{"command":"minutes permission remove","emitted":"id","expect":"did-you-mean:blocked","via":"guard:list-vs-single-task-uuid"},
{"command":"minutes upload complete","emitted":"session-ids","expect":"did-you-mean:blocked","via":"guard:single-upload-session"},
{"command":"minutes upload cancel","emitted":"session-ids","expect":"did-you-mean:blocked","via":"guard:single-upload-session"},
{"command":"minutes record start","emitted":"session-ids","expect":"did-you-mean:blocked","via":"guard:single-recording-session"},
{"command":"minutes record pause","emitted":"session-ids","expect":"did-you-mean:blocked","via":"guard:single-recording-session"},
{"command":"minutes record resume","emitted":"session-ids","expect":"did-you-mean:blocked","via":"guard:single-recording-session"},
{"command":"minutes record stop","emitted":"session-ids","expect":"did-you-mean:blocked","via":"guard:single-recording-session"},
{"command":"minutes +record-start","emitted":"session-ids","expect":"did-you-mean:blocked","via":"guard:single-recording-session"},
{"command":"minutes +record-pause","emitted":"session-ids","expect":"did-you-mean:blocked","via":"guard:single-recording-session"},
{"command":"minutes +record-resume","emitted":"session-ids","expect":"did-you-mean:blocked","via":"guard:single-recording-session"},
{"command":"minutes +record-stop","emitted":"session-ids","expect":"did-you-mean:blocked","via":"guard:single-recording-session"},
{"command":"minutes speaker replace","emitted":"target-uids","expect":"did-you-mean:blocked","via":"guard:single-target-user"},
{"command":"minutes +speaker-replace","emitted":"target-uids","expect":"did-you-mean:blocked","via":"guard:single-target-user"},
{"command":"minutes tag query","emitted":"tag-ids","expect":"did-you-mean:blocked","via":"guard:single-tag"},
{"command":"minutes +speaker-insights","emitted":"task-ids","expect":"did-you-mean:blocked","via":"guard:single-async-task"},
{"command":"minutes +upload-and-analyze","emitted":"resume-ids","expect":"did-you-mean:blocked","via":"guard:single-resume-task"},
{"command":"minutes upload create","emitted":"template-ids","expect":"did-you-mean:blocked","via":"guard:single-template"},
{"command":"minutes +upload","emitted":"template-ids","expect":"did-you-mean:blocked","via":"guard:single-template"},
{"command":"minutes +upload-and-analyze","emitted":"template-ids","expect":"did-you-mean:blocked","via":"guard:single-template"},
{"command":"todo task get","emitted":"todo-id","expect":"task-id","via":"concept:todo_task_id"},
{"command":"todo task get","emitted":"ids","expect":"did-you-mean:blocked","via":"guard:single-vs-list-task-id"},
{"command":"todo task get","emitted":"task-ids","expect":"did-you-mean:blocked","via":"guard:single-vs-list-task-id"},
{"command":"todo task get","emitted":"todo-ids","expect":"did-you-mean:blocked","via":"guard:single-vs-list-task-id"},
{"command":"todo task create-sub","emitted":"task-id","expect":"parent-id","via":"concept:todo_task_id+bind"},
{"command":"todo task create-sub","emitted":"task-ids","expect":"did-you-mean:blocked","via":"guard:single-vs-list-parent-task-id"},
{"command":"todo task create-sub","emitted":"parent-task-id","expect":"parent-id","via":"override:parent-task-id"},
{"command":"todo task create-sub","emitted":"task","expect":"did-you-mean:ambiguous","via":"guard:parent-target-vs-child-title"},
{"command":"todo task create","emitted":"task","expect":"title","via":"override:creation-title"},
{"command":"todo +create","emitted":"task","expect":"title","via":"override:creation-title"},
{"command":"todo +assign","emitted":"title","expect":"task","via":"override:creation-title"},
{"command":"todo +assign-multi","emitted":"title","expect":"task","via":"override:creation-title"},
{"command":"todo +assign","emitted":"assignee-name","expect":"to","via":"override:human-name"},
{"command":"todo +assign-multi","emitted":"assignee-names","expect":"to","via":"override:human-name-list"},
{"command":"todo +update","emitted":"task","expect":"did-you-mean:ambiguous","via":"guard:target-id-vs-title"},
{"command":"todo task update","emitted":"task","expect":"did-you-mean:ambiguous","via":"guard:target-id-vs-title"},
{"command":"todo +remind","emitted":"due","expect":"at","via":"override:deadline-to-at"},
{"command":"todo +remind","emitted":"title","expect":"task","via":"override:creation-title"},
{"command":"todo task create","emitted":"deadline","expect":"due","via":"concept:todo_due_time"},
{"command":"todo +create","emitted":"deadline","expect":"due","via":"concept:todo_due_time"},
{"command":"todo task add-executor","emitted":"executor-ids","expect":"executors","via":"concept:todo_executor_ids"},
{"command":"todo task add-executor","emitted":"executor-id","expect":"did-you-mean:blocked","via":"guard:single-vs-list-executor"},
{"command":"todo task add-executor","emitted":"participant-id","expect":"did-you-mean:blocked","via":"guard:executor-vs-participant-role"},
{"command":"todo +create","emitted":"executor-ids","expect":"executors","via":"concept:todo_executor_ids"},
{"command":"todo task add-participant","emitted":"participant-ids","expect":"participants","via":"concept:todo_participant_ids"},
{"command":"todo task add-participant","emitted":"participant-id","expect":"did-you-mean:blocked","via":"guard:single-vs-list-participant"},
{"command":"todo task add-participant","emitted":"executor-id","expect":"did-you-mean:blocked","via":"guard:participant-vs-executor-role"},
{"command":"todo task update","emitted":"status","expect":"done","via":"concept:todo_completion_state"},
{"command":"todo task update","emitted":"is-done","expect":"done","via":"concept:todo_completion_state"},
{"command":"todo task done","emitted":"done","expect":"status","via":"concept:todo_completion_state"},
{"command":"todo +search","emitted":"done","expect":"status","via":"concept:todo_completion_state"},
{"command":"todo +search","emitted":"todo-status","expect":"status","via":"concept:todo_completion_state"},
{"command":"todo +get-related-tasks","emitted":"todo-status","expect":"status","via":"override:enum-status"},
{"command":"todo +get-related-tasks","emitted":"done","expect":"did-you-mean:blocked","via":"guard:boolean-vs-enum-status"},
{"command":"todo +due-today","emitted":"roles","expect":"role-types","via":"concept:todo_role_types"},
{"command":"todo +get-my-tasks","emitted":"roles","expect":"role-types","via":"concept:todo_role_types"},
{"command":"todo +get-related-tasks","emitted":"roles","expect":"role-types","via":"concept:todo_role_types"},
{"command":"todo task list","emitted":"roles","expect":"role-types","via":"concept:todo_role_types"},
{"command":"todo +get-my-tasks","emitted":"priorities","expect":"priority","via":"override:priority-list"},
{"command":"todo comment add","emitted":"text","expect":"content","via":"concept:content_text"},
{"command":"todo +comment","emitted":"body","expect":"content","via":"concept:content_text"},
{"command":"todo comment list","emitted":"page-size","expect":"size","via":"concept:pagination_size"},
{"command":"todo +get-my-tasks","emitted":"current-page","expect":"page","via":"concept:page_number"},
{"command":"todo +get-my-tasks","emitted":"page-number","expect":"page","via":"override:page-number"},
{"command":"todo +get-my-tasks","emitted":"page-size","expect":"size","via":"override:per-page-size"},
{"command":"todo +get-my-tasks","emitted":"max-results","expect":"did-you-mean:blocked","via":"guard:total-vs-per-page"},
{"command":"todo +list-comment","emitted":"page-number","expect":"page","via":"override:page-number"},
{"command":"todo comment list","emitted":"page-number","expect":"page","via":"override:page-number"},
{"command":"todo task list","emitted":"limit","expect":"size","via":"override:limit"},
{"command":"todo task list","emitted":"page-number","expect":"page","via":"override:page-number"},
{"command":"todo +todo-done","emitted":"query","expect":"task","via":"override:query"},
{"command":"todo +search","emitted":"keyword","expect":"query","via":"concept:search_query"},
{"command":"todo +search","emitted":"title","expect":"query","via":"override:title-query"},
{"command":"todo +search","emitted":"subject","expect":"query","via":"override:subject-query"},
{"command":"todo +reminder","emitted":"reminder-time-stamp","expect":"at","via":"override:custom-reminder-time"},
{"command":"todo task add-reminder","emitted":"at","expect":"reminder-time-stamp","via":"override:custom-reminder-time"},
{"command":"todo +update","emitted":"todo-id","expect":"task-id","via":"concept:todo_task_id"},
{"command":"todo +complete","emitted":"todo-id","expect":"task-id","via":"concept:todo_task_id"},
{"command":"todo +reopen","emitted":"todo-id","expect":"task-id","via":"concept:todo_task_id"},
{"command":"todo +reminder","emitted":"todo-id","expect":"task-id","via":"concept:todo_task_id"},
{"command":"todo +todo-done","emitted":"task-id","expect":"did-you-mean:blocked","via":"guard:title-query-vs-task-id"},
{"command":"todo task list","emitted":"plan-finish-start","expect":"did-you-mean:blocked","via":"guard:iso-vs-unix-millis"},
{"command":"todo +get-my-tasks","emitted":"plan-finish-date-start","expect":"did-you-mean:blocked","via":"guard:unix-millis-vs-iso"},
{"command":"todo +remind","emitted":"reminder-time-stamp","expect":"did-you-mean:blocked","via":"guard:deadline-vs-reminder"},
{"command":"todo +reminder","emitted":"deadline","expect":"did-you-mean:blocked","via":"guard:deadline-vs-reminder"},
{"command":"todo task reset-reminder","emitted":"due-date-offset","expect":"did-you-mean:blocked","via":"guard:atomic-vs-json-rules"},
{"command":"todo tag update","emitted":"tag-codes","expect":"did-you-mean:blocked","via":"guard:flat-list-vs-json"},
{"command":"todo +search","emitted":"page-size","expect":"did-you-mean:blocked","via":"guard:max-pages-vs-page-size"},
{"command":"todo +complete","emitted":"status","expect":"did-you-mean:blocked","via":"guard:fixed-target-state"},
{"command":"todo +complete","emitted":"is-done","expect":"did-you-mean:blocked","via":"guard:fixed-target-state"},
{"command":"todo +reopen","emitted":"done","expect":"did-you-mean:blocked","via":"guard:fixed-target-state"},
{"command":"todo +reopen","emitted":"todo-status","expect":"did-you-mean:blocked","via":"guard:fixed-target-state"},
{"command":"wiki +node-copy","emitted":"node-id","expect":"node","via":"override:scoped_strict"},
{"command":"wiki +move","emitted":"node-id","expect":"node","via":"override:scoped_strict"},
{"command":"wiki +move-to-drive","emitted":"node-id","expect":"node","via":"override:scoped_strict"},
{"command":"wiki +node-delete","emitted":"node-id","expect":"node","via":"override:scoped_strict"},
{"command":"wiki +member-add","emitted":"user-id","expect":"user","via":"override:scoped_strict"},
{"command":"wiki +member-add","emitted":"uid","expect":"user","via":"override:scoped_strict"},
{"command":"wiki +member-update","emitted":"user-id","expect":"user","via":"override:scoped_strict"},
{"command":"wiki +member-update","emitted":"uid","expect":"user","via":"override:scoped_strict"},
{"command":"wiki +member-remove","emitted":"user-id","expect":"user","via":"override:scoped_strict"},
{"command":"wiki +member-remove","emitted":"uid","expect":"user","via":"override:scoped_strict"},
{"command":"attendance +check-record","emitted":"at-user-ids","expect":"did-you-mean:blocked","via":"full-product-review:guard"},
{"command":"attendance +check-record","emitted":"target-user-ids","expect":"users","via":"full-product-review:alias"},
{"command":"attendance +check-result","emitted":"count","expect":"did-you-mean:blocked","via":"full-product-review:guard"},
{"command":"attendance +check-result","emitted":"target-user-ids","expect":"users","via":"full-product-review:alias"},
{"command":"attendance +get-adjustment-rule","emitted":"adjustment-rule-id","expect":"adjustment-id","via":"full-product-review:alias"},
{"command":"attendance +get-adjustment-rule","emitted":"class-id","expect":"did-you-mean:blocked","via":"full-product-review:guard"},
{"command":"attendance +get-approve-template","emitted":"approval-type","expect":"type","via":"full-product-review:alias"},
{"command":"attendance +get-approve-template","emitted":"approval-types","expect":"did-you-mean:blocked","via":"full-product-review:guard"},
{"command":"attendance +get-checkin-record","emitted":"at-user-ids","expect":"did-you-mean:blocked","via":"full-product-review:guard"},
{"command":"attendance +get-checkin-record","emitted":"operator-company-id","expect":"operator-corp-id","via":"full-product-review:alias"},
{"command":"attendance +get-checkin-record","emitted":"operator-user-id","expect":"operator-staff-id","via":"full-product-review:alias"},
{"command":"attendance +get-checkin-record","emitted":"user-id","expect":"did-you-mean:ambiguous","via":"full-product-review:guard"},
{"command":"attendance +get-leave-records","emitted":"at-user-ids","expect":"did-you-mean:blocked","via":"full-product-review:guard"},
{"command":"attendance +get-leave-records","emitted":"vacation-type-code","expect":"leave-code","via":"full-product-review:alias"},
{"command":"attendance +get-overtime-rule","emitted":"adjustment-id","expect":"did-you-mean:blocked","via":"full-product-review:guard"},
{"command":"attendance +get-overtime-rule","emitted":"overtime-rule-id","expect":"overtime-id","via":"full-product-review:alias"},
{"command":"attendance +get-schedule","emitted":"at-user-ids","expect":"did-you-mean:blocked","via":"full-product-review:guard"},
{"command":"attendance +get-schedule","emitted":"target-user-ids","expect":"users","via":"full-product-review:alias"},
{"command":"attendance +get-schedule","emitted":"work-date-begin","expect":"start","via":"full-product-review:alias"},
{"command":"attendance +get-self-setting","emitted":"scene","expect":"setting-scene","via":"override:latest-main-setting-scene"},
{"command":"attendance +get-self-setting","emitted":"setting-type","expect":"did-you-mean:blocked","via":"guard:setting-type-vs-scene"},
{"command":"attendance +get-self-setting","emitted":"staff-id","expect":"user","via":"full-product-review:alias"},
{"command":"attendance +get-summary","emitted":"at-user-ids","expect":"did-you-mean:blocked","via":"full-product-review:guard"},
{"command":"attendance +get-summary","emitted":"attendance-date","expect":"date","via":"full-product-review:alias"},
{"command":"attendance +get-summary","emitted":"statistics-type","expect":"stats-type","via":"full-product-review:alias"},
{"command":"attendance +list-approve","emitted":"at-user-ids","expect":"did-you-mean:blocked","via":"full-product-review:guard"},
{"command":"attendance +list-approve","emitted":"target-user-ids","expect":"users","via":"full-product-review:alias"},
{"command":"attendance +query-report-data","emitted":"at-user-ids","expect":"did-you-mean:blocked","via":"full-product-review:guard"},
{"command":"attendance +query-report-data","emitted":"report-column-ids","expect":"columns","via":"full-product-review:alias"},
{"command":"attendance +search-adjustment-rule","emitted":"count","expect":"did-you-mean:blocked","via":"full-product-review:guard"},
{"command":"attendance +search-adjustment-rule","emitted":"current-page","expect":"page","via":"full-product-review:alias"},
{"command":"attendance +search-class","emitted":"class-filter-type","expect":"filter-type","via":"full-product-review:alias"},
{"command":"attendance +search-class","emitted":"count","expect":"did-you-mean:blocked","via":"full-product-review:guard"},
{"command":"attendance +search-group","emitted":"attendance-group-type","expect":"type","via":"full-product-review:alias"},
{"command":"attendance +search-group","emitted":"count","expect":"did-you-mean:blocked","via":"full-product-review:guard"},
{"command":"attendance +search-overtime-rule","emitted":"count","expect":"did-you-mean:blocked","via":"full-product-review:guard"},
{"command":"attendance +search-overtime-rule","emitted":"current-page","expect":"page","via":"full-product-review:alias"},
{"command":"mail +contact-list","emitted":"count","expect":"did-you-mean:blocked","via":"full-product-review:guard"},
{"command":"mail +contact-list","emitted":"next-page-token","expect":"cursor","via":"full-product-review:alias"},
{"command":"mail +find-mail-user","emitted":"count","expect":"did-you-mean:blocked","via":"full-product-review:guard"},
{"command":"mail +find-mail-user","emitted":"max-results","expect":"limit","via":"full-product-review:alias"},
{"command":"mail +find-mail-user","emitted":"next-cursor","expect":"cursor","via":"concept:page_cursor"},
{"command":"mail +folder-list","emitted":"calendar-id","expect":"did-you-mean:blocked","via":"full-product-review:guard"},
{"command":"mail +folder-list","emitted":"folder-id","expect":"folder","via":"full-product-review:alias"},
{"command":"mail +message","emitted":"attachment-id","expect":"did-you-mean:blocked","via":"full-product-review:guard"},
{"command":"mail +message","emitted":"message-id","expect":"id","via":"full-product-review:alias"},
{"command":"mail +messages","emitted":"conversation-id","expect":"did-you-mean:blocked","via":"full-product-review:guard"},
{"command":"mail +messages","emitted":"message-ids","expect":"ids","via":"full-product-review:alias"},
{"command":"mail +recent-mail","emitted":"calendar-id","expect":"did-you-mean:blocked","via":"full-product-review:guard"},
{"command":"mail +recent-mail","emitted":"max-results","expect":"limit","via":"full-product-review:alias"},
{"command":"mail +recent-mail","emitted":"next-cursor","expect":"cursor","via":"concept:page_cursor"},
{"command":"mail +search-mail","emitted":"count","expect":"did-you-mean:blocked","via":"full-product-review:guard"},
{"command":"mail +search-mail","emitted":"max-results","expect":"size","via":"full-product-review:alias"},
{"command":"mail +search-mail","emitted":"next-cursor","expect":"cursor","via":"concept:page_cursor"},
{"command":"mail +template-list","emitted":"count","expect":"did-you-mean:blocked","via":"full-product-review:guard"},
{"command":"mail +template-list","emitted":"next-page-token","expect":"cursor","via":"full-product-review:alias"},
{"command":"mail +thread","emitted":"conversation-id","expect":"id","via":"full-product-review:alias"},
{"command":"mail +thread","emitted":"mail-id","expect":"did-you-mean:blocked","via":"full-product-review:guard"},
{"command":"mail +thread-list","emitted":"calendar-id","expect":"did-you-mean:blocked","via":"full-product-review:guard"},
{"command":"mail +thread-list","emitted":"next-page-token","expect":"cursor","via":"full-product-review:alias"},
{"command":"mail +triage","emitted":"next-cursor","expect":"cursor","via":"concept:page_cursor"},
{"command":"mail +triage","emitted":"page-size","expect":"limit","via":"concept:pagination_size"},
{"command":"mail +triage","emitted":"subject","expect":"did-you-mean:blocked","via":"guard:kql-field-not-flag"},
{"command":"mail +unread-mail","emitted":"count","expect":"did-you-mean:blocked","via":"full-product-review:guard"},
{"command":"mail +unread-mail","emitted":"max-results","expect":"size","via":"full-product-review:alias"},
{"command":"mail +unread-mail","emitted":"next-cursor","expect":"cursor","via":"concept:page_cursor"},
{"command":"mail +user-search","emitted":"count","expect":"did-you-mean:blocked","via":"full-product-review:guard"},
{"command":"mail +user-search","emitted":"next-page-token","expect":"cursor","via":"full-product-review:alias"},
{"command":"oa +list-cc","emitted":"count","expect":"did-you-mean:blocked","via":"full-product-review:guard"},
{"command":"oa +list-cc","emitted":"current-page","expect":"page","via":"full-product-review:alias"},
{"command":"oa +list-executed","emitted":"count","expect":"did-you-mean:blocked","via":"full-product-review:guard"},
{"command":"oa +list-executed","emitted":"current-page","expect":"page","via":"full-product-review:alias"},
{"command":"oa +list-forms","emitted":"count","expect":"did-you-mean:blocked","via":"full-product-review:guard"},
{"command":"oa +list-forms","emitted":"next-page-token","expect":"cursor","via":"full-product-review:alias"},
{"command":"oa +list-pending","emitted":"count","expect":"did-you-mean:blocked","via":"full-product-review:guard"},
{"command":"oa +list-pending","emitted":"current-page","expect":"page","via":"full-product-review:alias"},
{"command":"oa +list-submitted","emitted":"count","expect":"did-you-mean:blocked","via":"full-product-review:guard"},
{"command":"oa +list-submitted","emitted":"current-page","expect":"page","via":"full-product-review:alias"},
{"command":"oa +my-initiated","emitted":"count","expect":"did-you-mean:blocked","via":"full-product-review:guard"},
{"command":"oa +my-initiated","emitted":"current-page","expect":"page","via":"full-product-review:alias"},
{"command":"ding +list","emitted":"message-type","expect":"type","via":"override:scoped_strict"},
{"command":"ding +list","emitted":"next-cursor","expect":"cursor","via":"override:scoped_strict"},
{"command":"ding +list","emitted":"page-token","expect":"did-you-mean:blocked","via":"guard:integer-cursor-vs-token"},
{"command":"ding +list","emitted":"remind-type","expect":"did-you-mean:blocked","via":"guard:list-enum-vs-reminder-enum"},
{"command":"ding +recall-personal","emitted":"ding-id","expect":"id","via":"concept:ding_id+bind"},
{"command":"ding +send-personal","emitted":"open-dingtalk-ids","expect":"users","via":"concept:open_dingtalk_ids+bind"},
{"command":"ding +send-personal","emitted":"user-ids","expect":"did-you-mean:blocked","via":"guard:open-dingtalk-id-vs-user-id"},
{"command":"report +outbox-list","emitted":"page-size","expect":"size","via":"concept:pagination_size"},
{"command":"report +report-latest","emitted":"end-time","expect":"end","via":"concept:time_end"},
{"command":"report +report-latest","emitted":"start-time","expect":"start","via":"concept:time_start"},
{"command":"report +report-latest","emitted":"template-id","expect":"did-you-mean:blocked","via":"guard:template-id-vs-name"},
{"command":"report +report-latest","emitted":"template-name","expect":"keyword","via":"override:template-name"},
{"command":"report +template-search","emitted":"keyword","expect":"query","via":"concept:search_query"},
{"command":"report +template-search","emitted":"template-id","expect":"did-you-mean:blocked","via":"guard:template-id-vs-search-query"},
{"command":"sheet +list-sheets","emitted":"block-id","expect":"did-you-mean:blocked","via":"full-product-review:guard"},
{"command":"sheet +list-sheets","emitted":"dentry-uuid","expect":"node","via":"full-product-review:alias"},
{"command":"sheet +list-sheets","emitted":"document-id","expect":"node","via":"full-product-review:alias"},
{"command":"sheet +read","emitted":"a1-ranges","expect":"did-you-mean:blocked","via":"full-product-review:guard"},
{"command":"sheet +read","emitted":"worksheet-id","expect":"sheet-id","via":"full-product-review:alias"},
{"command":"markdown create","emitted":"body","expect":"content","via":"concept:content_text"},
{"command":"markdown create","emitted":"content-file","expect":"did-you-mean:ambiguous","via":"guard:content-source-transport"},
{"command":"markdown create","emitted":"drive-space-id","expect":"space-id","via":"concept:drive_storage_space_id"},
{"command":"markdown create","emitted":"filename","expect":"name","via":"concept:markdown_file_name"},
{"command":"markdown create","emitted":"local-file","expect":"file","via":"concept:markdown_local_file_path"},
{"command":"markdown create","emitted":"node-id","expect":"did-you-mean:blocked","via":"guard:create-vs-overwrite"},
{"command":"markdown create","emitted":"source-file","expect":"file","via":"override:source-file"},
{"command":"markdown diff","emitted":"context-lines","expect":"context","via":"override:diff-context-lines"},
{"command":"markdown diff","emitted":"from-version","expect":"version","via":"override:left-version-role"},
{"command":"markdown diff","emitted":"local-file","expect":"file","via":"concept:markdown_local_file_path"},
{"command":"markdown diff","emitted":"path","expect":"did-you-mean:ambiguous","via":"guard:node-vs-local-file"},
{"command":"markdown diff","emitted":"source-file","expect":"file","via":"override:source-file"},
{"command":"markdown diff","emitted":"to-version","expect":"version2","via":"override:right-version-role"},
{"command":"markdown diff","emitted":"version-id","expect":"did-you-mean:blocked","via":"guard:version-number-vs-id"},
{"command":"markdown diff","emitted":"version-no","expect":"version","via":"concept:doc_version_number"},
{"command":"markdown fetch","emitted":"path","expect":"did-you-mean:ambiguous","via":"guard:remote-node-vs-local-output"},
{"command":"markdown fetch","emitted":"save-path","expect":"output","via":"concept:local_output_path"},
{"command":"markdown fetch","emitted":"storage-space-id","expect":"space-id","via":"concept:drive_storage_space_id"},
{"command":"markdown fetch","emitted":"url","expect":"did-you-mean:blocked","via":"guard:node-id-vs-url"},
{"command":"markdown overwrite","emitted":"document-id","expect":"node","via":"override:remote-node-id"},
{"command":"markdown overwrite","emitted":"file-name","expect":"name","via":"concept:markdown_file_name"},
{"command":"markdown overwrite","emitted":"folder-id","expect":"did-you-mean:blocked","via":"guard:existing-node-vs-parent-folder"},
{"command":"markdown overwrite","emitted":"id","expect":"did-you-mean:ambiguous","via":"guard:destructive-node-target"},
{"command":"markdown overwrite","emitted":"preview-only","expect":"dry-run","via":"override:preview-safety"},
{"command":"markdown overwrite","emitted":"source-file","expect":"file","via":"override:source-file"},
{"command":"markdown overwrite","emitted":"text","expect":"content","via":"concept:content_text"},
{"command":"markdown patch","emitted":"file","expect":"did-you-mean:blocked","via":"guard:no-file-replacement"},
{"command":"markdown patch","emitted":"find-text","expect":"pattern","via":"override:patch-pattern"},
{"command":"markdown patch","emitted":"id","expect":"did-you-mean:ambiguous","via":"guard:destructive-node-target"},
{"command":"markdown patch","emitted":"preview-only","expect":"dry-run","via":"override:preview-safety"},
{"command":"markdown patch","emitted":"regexp","expect":"regex","via":"override:patch-regex"},
{"command":"markdown patch","emitted":"replacement","expect":"content","via":"override:replacement-role"},
{"command":"markdown patch","emitted":"text","expect":"did-you-mean:ambiguous","via":"guard:pattern-vs-replacement"},
{"command":"aisearch","emitted":"search-term","expect":"query","via":"override:person-target"},
{"command":"aisearch","emitted":"dimensions","expect":"dimension","via":"concept:aisearch_person_dimension"},
{"command":"aisearch","emitted":"types","expect":"did-you-mean:blocked","via":"guard:compat-root-is-person-only"},
{"command":"aisearch","emitted":"target","expect":"did-you-mean:ambiguous","via":"guard:target-vs-dimension-role"},
{"command":"aisearch person","emitted":"person-name","expect":"query","via":"override:person-target"},
{"command":"aisearch person","emitted":"search-by","expect":"dimension","via":"concept:aisearch_person_dimension"},
{"command":"aisearch person","emitted":"queries","expect":"did-you-mean:blocked","via":"guard:person-vs-content-query-list"},
{"command":"aisearch person","emitted":"mobile","expect":"did-you-mean:blocked","via":"guard:full-mobile-routes-to-contact"},
{"command":"aisearch person","emitted":"job-number","expect":"did-you-mean:blocked","via":"guard:requires-query-plus-dimension"},
{"command":"aisearch person","emitted":"target","expect":"did-you-mean:ambiguous","via":"guard:target-vs-dimension-role"},
{"command":"aisearch enterprise","emitted":"topics","expect":"queries","via":"concept:aisearch_content_queries"},
{"command":"aisearch enterprise","emitted":"content-types","expect":"types","via":"concept:aisearch_content_types"},
{"command":"aisearch enterprise","emitted":"time-window","expect":"time-range","via":"concept:aisearch_time_range"},
{"command":"aisearch enterprise","emitted":"behavior-type","expect":"did-you-mean:blocked","via":"guard:content-vs-behavior"},
{"command":"aisearch enterprise","emitted":"direction","expect":"did-you-mean:blocked","via":"guard:no-behavior-flow"},
{"command":"aisearch enterprise","emitted":"node-id","expect":"did-you-mean:blocked","via":"guard:search-vs-resource-read"},
{"command":"aisearch enterprise","emitted":"type","expect":"did-you-mean:ambiguous","via":"guard:content-type-list-role"},
{"command":"aisearch enterprise","emitted":"question","expect":"did-you-mean:ambiguous","via":"guard:no-natural-language-slotting"},
{"command":"aisearch behavior","emitted":"topics","expect":"queries","via":"concept:aisearch_content_queries"},
{"command":"aisearch behavior","emitted":"resource-types","expect":"types","via":"concept:aisearch_content_types"},
{"command":"aisearch behavior","emitted":"period","expect":"time-range","via":"concept:aisearch_time_range"},
{"command":"aisearch behavior","emitted":"action-type","expect":"behavior-type","via":"override:behavior-role"},
{"command":"aisearch behavior","emitted":"group-name","expect":"chat-scope","via":"override:chat-scope-role"},
{"command":"aisearch behavior","emitted":"interaction-flow","expect":"direction","via":"override:direction-role"},
{"command":"aisearch behavior","emitted":"dimension","expect":"did-you-mean:blocked","via":"guard:behavior-vs-person"},
{"command":"aisearch behavior","emitted":"from","expect":"did-you-mean:blocked","via":"guard:cannot-construct-direction"},
{"command":"aisearch behavior","emitted":"chat-id","expect":"did-you-mean:blocked","via":"guard:chat-scope-expects-name"},
{"command":"aisearch behavior","emitted":"type","expect":"did-you-mean:ambiguous","via":"guard:content-type-list-role"},
{"command":"aisearch behavior","emitted":"action","expect":"did-you-mean:ambiguous","via":"guard:behavior-enum-role"},
{"command":"aisearch behavior","emitted":"target","expect":"did-you-mean:ambiguous","via":"guard:actor-direction-target"},
{"command":"aisearch +search-person","emitted":"keyword","expect":"query","via":"concept:search_query"},
{"command":"aisearch +search-person","emitted":"person-name","expect":"query","via":"override:person-target"},
{"command":"aisearch +search-person","emitted":"search-by","expect":"dimensions","via":"concept:aisearch_person_dimension+bind"},
{"command":"aisearch +search-person","emitted":"mobile","expect":"did-you-mean:blocked","via":"guard:full-mobile-routes-to-contact"},
{"command":"aisearch +search-person","emitted":"target","expect":"did-you-mean:ambiguous","via":"guard:target-vs-dimension-role"},
{"command":"contact +by-mobile","emitted":"org-user-mobile","expect":"mobile","via":"full-product-review:alias"},
{"command":"contact +by-mobile","emitted":"email","expect":"did-you-mean:blocked","via":"full-product-review:guard"},
{"command":"contact +list-role-members","emitted":"label-id","expect":"id","via":"full-product-review:alias"},
{"command":"contact +list-role-members","emitted":"dept","expect":"did-you-mean:blocked","via":"full-product-review:guard"},
{"command":"contact +lookup","emitted":"employee-name","expect":"name","via":"full-product-review:alias"},
{"command":"contact +lookup","emitted":"department-id","expect":"did-you-mean:blocked","via":"full-product-review:guard"},
{"command":"contact +org","emitted":"employee-name","expect":"name","via":"full-product-review:alias"},
{"command":"contact +org","emitted":"department-id","expect":"did-you-mean:blocked","via":"full-product-review:guard"},
{"command":"contact +search-mobile","emitted":"org-user-mobile","expect":"mobile","via":"full-product-review:alias"},
{"command":"contact +search-mobile","emitted":"email","expect":"did-you-mean:blocked","via":"full-product-review:guard"},
{"command":"contact +team","emitted":"employee-name","expect":"name","via":"full-product-review:alias"},
{"command":"contact +team","emitted":"department-id","expect":"did-you-mean:blocked","via":"full-product-review:guard"},
{"command":"contact account create","emitted":"organization-user-name","expect":"org-user-name","via":"full-product-review:alias"},
{"command":"contact account create","emitted":"creator-username","expect":"did-you-mean:blocked","via":"full-product-review:guard"},
{"command":"contact account update","emitted":"department-assignments-json","expect":"depts","via":"full-product-review:alias"},
{"command":"contact account update","emitted":"department-memberships-json","expect":"depts","via":"full-product-review:alias"},
{"command":"contact account update","emitted":"manager","expect":"did-you-mean:ambiguous","via":"full-product-review:guard"},
{"command":"contact dept create","emitted":"parent-department-id","expect":"parent","via":"full-product-review:alias"},
{"command":"contact dept create","emitted":"department-ids","expect":"did-you-mean:blocked","via":"full-product-review:guard"},
{"command":"contact dept get-info","emitted":"department-id","expect":"dept","via":"full-product-review:alias"},
{"command":"contact dept get-info","emitted":"department","expect":"did-you-mean:blocked","via":"full-product-review:guard"},
{"command":"contact dept list-members","emitted":"department-ids","expect":"depts","via":"full-product-review:alias"},
{"command":"contact dept list-members","emitted":"department-id","expect":"did-you-mean:blocked","via":"full-product-review:guard"},
{"command":"contact dept search","emitted":"search-word","expect":"query","via":"full-product-review:alias"},
{"command":"contact dept search","emitted":"subject","expect":"did-you-mean:blocked","via":"full-product-review:guard"},
{"command":"contact dept update","emitted":"parent-department-id","expect":"parent","via":"full-product-review:alias"},
{"command":"contact dept update","emitted":"target-department-id","expect":"dept","via":"full-product-review:alias"},
{"command":"contact dept update","emitted":"department","expect":"did-you-mean:ambiguous","via":"full-product-review:guard"},
{"command":"contact label get","emitted":"label-names","expect":"names","via":"full-product-review:alias"},
{"command":"contact label get","emitted":"dept-id","expect":"did-you-mean:blocked","via":"full-product-review:guard"},
{"command":"contact label list-members","emitted":"dept","expect":"did-you-mean:blocked","via":"full-product-review:guard"},
{"command":"contact org create","emitted":"organization-name","expect":"org-name","via":"full-product-review:alias"},
{"command":"contact org create","emitted":"name","expect":"did-you-mean:ambiguous","via":"full-product-review:guard"},
{"command":"contact user dismission search","emitted":"department-ids","expect":"depts","via":"full-product-review:alias"},
{"command":"contact user dismission search","emitted":"count","expect":"did-you-mean:blocked","via":"full-product-review:guard"},
{"command":"contact user get","emitted":"member-user-ids","expect":"ids","via":"full-product-review:alias"},
{"command":"contact user get","emitted":"at-user-ids","expect":"did-you-mean:blocked","via":"full-product-review:guard"},
{"command":"contact user invite","emitted":"department-assignments-json","expect":"depts","via":"full-product-review:alias"},
{"command":"contact user invite","emitted":"department-memberships-json","expect":"depts","via":"full-product-review:alias"},
{"command":"contact user invite","emitted":"creator-username","expect":"did-you-mean:blocked","via":"full-product-review:guard"},
{"command":"contact user profile get","emitted":"field-code-list","expect":"fields","via":"full-product-review:alias"},
{"command":"contact user profile get","emitted":"output-fields","expect":"did-you-mean:blocked","via":"full-product-review:guard"},
{"command":"contact user search","emitted":"search-word","expect":"query","via":"full-product-review:alias"},
{"command":"contact user search","emitted":"subject","expect":"did-you-mean:blocked","via":"full-product-review:guard"},
{"command":"contact user search-mobile","emitted":"org-user-mobile","expect":"mobile","via":"full-product-review:alias"},
{"command":"contact user search-mobile","emitted":"email","expect":"did-you-mean:blocked","via":"full-product-review:guard"},
{"command":"contact user update","emitted":"department-assignments-json","expect":"depts","via":"full-product-review:alias"},
{"command":"contact user update","emitted":"department-memberships-json","expect":"depts","via":"full-product-review:alias"},
{"command":"contact user update","emitted":"manager","expect":"did-you-mean:ambiguous","via":"full-product-review:guard"},
{"command":"contact user update-ownness","emitted":"personal-status","expect":"ownness-text","via":"full-product-review:alias"},
{"command":"contact user update-ownness","emitted":"at-user-ids","expect":"did-you-mean:blocked","via":"full-product-review:guard"},
{"command":"contact user update-self","emitted":"profile-image-file-id","expect":"avatar-file-id","via":"full-product-review:alias"},
{"command":"contact user update-self","emitted":"file","expect":"did-you-mean:blocked","via":"full-product-review:guard"},
{"command":"contact +list-followings","emitted":"open-dingtalk-id","expect":"open-id","via":"override:exact-open-id-role"},
{"command":"contact +list-followings","emitted":"user-id","expect":"did-you-mean:blocked","via":"guard:open-dingtalk-id-vs-user-id"},
{"command":"contact +list-followings","emitted":"id","expect":"did-you-mean:ambiguous","via":"guard:unspecified-identifier"},
{"command":"contact +list-dept-members","emitted":"department-ids","expect":"depts","via":"concept:dept_ids"},
{"command":"contact +list-dept-members","emitted":"dept-id","expect":"did-you-mean:blocked","via":"guard:single-vs-list"},
{"command":"contact account update","emitted":"profile-image-file-id","expect":"avatar-file-id","via":"override:avatar-file-role"},
{"command":"live stream list","emitted":"page","expect":"did-you-mean:blocked","via":"guard:no-pagination-input"},
{"command":"live stream list","emitted":"limit","expect":"did-you-mean:blocked","via":"guard:no-pagination-input"},
{"command":"live stream list","emitted":"cursor","expect":"did-you-mean:blocked","via":"guard:no-pagination-input"},
{"command":"live stream list","emitted":"status","expect":"did-you-mean:blocked","via":"guard:return-field-not-filter"},
{"command":"live stream list","emitted":"query","expect":"did-you-mean:blocked","via":"guard:no-search-input"},
{"command":"live stream list","emitted":"live-id","expect":"did-you-mean:blocked","via":"guard:list-vs-single-live"},
{"command":"live stream list","emitted":"anchor-id","expect":"did-you-mean:blocked","via":"guard:implicit-current-user"},
{"command":"live stream list","emitted":"start-time","expect":"did-you-mean:blocked","via":"guard:no-time-range"},
{"command":"live stream list","emitted":"title","expect":"did-you-mean:blocked","via":"guard:list-vs-create"},
{"command":"live stream list","emitted":"group-id","expect":"did-you-mean:blocked","via":"guard:no-audience-control"},
{"command":"live stream list","emitted":"playback","expect":"did-you-mean:blocked","via":"guard:no-playback-control"},
{"command":"live stream list","emitted":"start-live","expect":"did-you-mean:blocked","via":"guard:no-live-control"},
{"command":"live stream list","emitted":"id","expect":"did-you-mean:ambiguous","via":"guard:unspecified-live-or-user-id"},
{"command":"live stream list","emitted":"type","expect":"did-you-mean:ambiguous","via":"guard:no-type-filter"},
{"command":"live stream list","emitted":"time","expect":"did-you-mean:ambiguous","via":"guard:no-time-filter"},
{"command":"live stream list","emitted":"user","expect":"did-you-mean:ambiguous","via":"guard:implicit-current-user"},
{"command":"devdoc article search","emitted":"q","expect":"query","via":"concept:search_query"},
{"command":"devdoc article search","emitted":"keywords","expect":"query","via":"concept:search_query"},
{"command":"devdoc article search","emitted":"search-word","expect":"query","via":"concept:search_query"},
{"command":"devdoc article search","emitted":"search-term","expect":"query","via":"override:scoped-query"},
{"command":"devdoc article search","emitted":"query-text","expect":"query","via":"override:scoped-query"},
{"command":"devdoc article search","emitted":"results-per-page","expect":"size","via":"override:scoped-page-size"},
{"command":"devdoc article search","emitted":"page-number","expect":"page","via":"override:scoped-page-number"},
{"command":"devdoc article search","emitted":"offset","expect":"did-you-mean:blocked","via":"guard:page-vs-offset"},
{"command":"devdoc article search","emitted":"cursor","expect":"did-you-mean:blocked","via":"guard:page-vs-cursor"},
{"command":"devdoc article search","emitted":"page-index","expect":"did-you-mean:blocked","via":"guard:one-based-vs-index"},
{"command":"devdoc article search","emitted":"doc-id","expect":"did-you-mean:blocked","via":"guard:search-vs-object-id"},
{"command":"devdoc article search","emitted":"error-code","expect":"did-you-mean:blocked","via":"guard:diagnostic-field-needs-query"},
{"command":"devdoc article search","emitted":"context","expect":"did-you-mean:blocked","via":"guard:requires-query-composition"},
{"command":"devdoc article search","emitted":"id","expect":"did-you-mean:ambiguous","via":"guard:unspecified-id-role"},
{"command":"devdoc article search","emitted":"type","expect":"did-you-mean:ambiguous","via":"guard:unspecified-type-role"},
{"command":"hrbrain talent-pool list","emitted":"q","expect":"keyword","via":"concept:search_query"},
{"command":"hrbrain talent-pool list","emitted":"limit","expect":"page-size","via":"concept:pagination_size"},
{"command":"hrbrain talent-pool list","emitted":"current-page","expect":"page","via":"concept:page_number"},
{"command":"hrbrain talent-pool list","emitted":"label-list","expect":"labels","via":"override:labels"},
{"command":"hrbrain talent-pool list","emitted":"pool-code","expect":"did-you-mean:blocked","via":"guard:list-vs-detail"},
{"command":"hrbrain talent-pool list","emitted":"creator-id","expect":"did-you-mean:ambiguous","via":"guard:unproven-creator-domain"},
{"command":"hrbrain talent-pool detail","emitted":"talent-pool-code","expect":"pool-code","via":"concept:hrbrain_pool_code"},
{"command":"hrbrain talent-pool detail","emitted":"page","expect":"did-you-mean:blocked","via":"guard:detail-vs-list"},
{"command":"hrbrain talent-pool detail","emitted":"pool","expect":"did-you-mean:ambiguous","via":"guard:pool-name-vs-code"},
{"command":"hrbrain talent-pool employees","emitted":"talent-pool-code","expect":"pool-code","via":"concept:hrbrain_pool_code"},
{"command":"hrbrain talent-pool employees","emitted":"limit","expect":"page-size","via":"concept:pagination_size"},
{"command":"hrbrain talent-pool employees","emitted":"page-no","expect":"page","via":"concept:page_number"},
{"command":"hrbrain talent-pool employees","emitted":"keyword","expect":"did-you-mean:blocked","via":"guard:list-vs-search"},
{"command":"hrbrain talent-pool employees","emitted":"pool","expect":"did-you-mean:ambiguous","via":"guard:pool-name-vs-code"},
{"command":"hrbrain profile metadata","emitted":"employee-no","expect":"work-no","via":"concept:hrbrain_work_no"},
{"command":"hrbrain profile metadata","emitted":"data-queries","expect":"did-you-mean:blocked","via":"guard:metadata-vs-query"},
{"command":"hrbrain profile metadata","emitted":"id","expect":"did-you-mean:ambiguous","via":"guard:work-number-vs-id"},
{"command":"hrbrain profile query","emitted":"employee-number","expect":"work-no","via":"concept:hrbrain_work_no"},
{"command":"hrbrain profile query","emitted":"profile-queries","expect":"data-queries","via":"override:json-array"},
{"command":"hrbrain profile query","emitted":"module-queries","expect":"data-queries","via":"override:json-array"},
{"command":"hrbrain profile query","emitted":"data-query","expect":"did-you-mean:blocked","via":"guard:singular-vs-json-array"},
{"command":"hrbrain profile query","emitted":"query","expect":"did-you-mean:ambiguous","via":"guard:search-vs-profile-query"},
{"command":"hrbrain profile labels","emitted":"work-nos","expect":"staff-ids","via":"concept:hrbrain_work_nos"},
{"command":"hrbrain profile labels","emitted":"employee-nos","expect":"staff-ids","via":"concept:hrbrain_work_nos"},
{"command":"hrbrain profile labels","emitted":"all-labels","expect":"all-label","via":"override:plural-boolean"},
{"command":"hrbrain profile labels","emitted":"work-no","expect":"did-you-mean:blocked","via":"guard:single-vs-list"},
{"command":"hrbrain profile labels","emitted":"user-ids","expect":"did-you-mean:blocked","via":"guard:work-number-vs-user-id"},
{"command":"hrbrain profile labels","emitted":"id","expect":"did-you-mean:ambiguous","via":"guard:unspecified-id"},
{"command":"hrbrain profile career","emitted":"staff-no","expect":"work-no","via":"concept:hrbrain_work_no"},
{"command":"hrbrain profile career","emitted":"start-date","expect":"did-you-mean:blocked","via":"guard:return-history-not-filter"},
{"command":"hrbrain profile career","emitted":"id","expect":"did-you-mean:ambiguous","via":"guard:work-number-vs-id"},
{"command":"hrbrain profile performance","emitted":"employee-no","expect":"work-no","via":"concept:hrbrain_work_no"},
{"command":"hrbrain profile performance","emitted":"rating","expect":"did-you-mean:blocked","via":"guard:return-record-not-filter"},
{"command":"hrbrain profile performance","emitted":"id","expect":"did-you-mean:ambiguous","via":"guard:work-number-vs-id"},
{"command":"hrbrain search employees","emitted":"q","expect":"keyword","via":"concept:search_query"},
{"command":"hrbrain search employees","emitted":"limit","expect":"page-size","via":"concept:pagination_size"},
{"command":"hrbrain search employees","emitted":"current-page","expect":"page","via":"concept:page_number"},
{"command":"hrbrain search employees","emitted":"talent-pool-code","expect":"pool-code","via":"concept:hrbrain_pool_code"},
{"command":"hrbrain search employees","emitted":"department-name","expect":"dept-name","via":"override:department-name"},
{"command":"hrbrain search employees","emitted":"job-title","expect":"position-name","via":"override:position-name"},
{"command":"hrbrain search employees","emitted":"position-level","expect":"job-level","via":"override:job-level"},
{"command":"hrbrain search employees","emitted":"dept-id","expect":"did-you-mean:blocked","via":"guard:department-name-vs-id"},
{"command":"hrbrain search employees","emitted":"origin-json","expect":"did-you-mean:blocked","via":"guard:simple-vs-structured"},
{"command":"hrbrain search employees","emitted":"pool","expect":"did-you-mean:ambiguous","via":"guard:pool-name-vs-code"},
{"command":"hrbrain search employees-structured","emitted":"limit","expect":"page-size","via":"concept:pagination_size"},
{"command":"hrbrain search employees-structured","emitted":"page-num","expect":"page","via":"concept:page_number"},
{"command":"hrbrain search employees-structured","emitted":"filter-json","expect":"origin-json","via":"override:json-object"},
{"command":"hrbrain search employees-structured","emitted":"criteria-json","expect":"origin-json","via":"override:json-object"},
{"command":"hrbrain search employees-structured","emitted":"return-fields-json","expect":"fields","via":"override:json-array"},
{"command":"hrbrain search employees-structured","emitted":"sort-by","expect":"order-by","via":"override:order-list"},
{"command":"hrbrain search employees-structured","emitted":"keyword","expect":"did-you-mean:blocked","via":"guard:simple-filter-belongs-in-origin-json"},
{"command":"hrbrain search employees-structured","emitted":"operator","expect":"did-you-mean:blocked","via":"guard:nested-json-member"},
{"command":"hrbrain search employees-structured","emitted":"field","expect":"did-you-mean:ambiguous","via":"guard:local-fields-vs-nested-field"},
{"command":"hrbrain search fields","emitted":"query","expect":"did-you-mean:blocked","via":"guard:no-search-input"},
{"command":"hrbrain search fields","emitted":"origin-json","expect":"did-you-mean:blocked","via":"guard:fields-vs-execution"},
{"command":"hrbrain search fields","emitted":"operator","expect":"did-you-mean:blocked","via":"guard:return-field-not-input"},
{"command":"hrbrain search fields","emitted":"field","expect":"did-you-mean:ambiguous","via":"guard:returned-field-role"},
{"command":"pat chmod","emitted":"product-code","expect":"product","via":"override:scoped-product"},
{"command":"pat chmod","emitted":"product-codes","expect":"products","via":"override:scoped-products"},
{"command":"pat chmod","emitted":"domain-code","expect":"domain","via":"override:scoped-domain"},
{"command":"pat chmod","emitted":"domain-codes","expect":"domains","via":"override:scoped-domains"},
{"command":"pat chmod","emitted":"grant-mode","expect":"grant-type","via":"override:scoped-grant-mode"},
{"command":"pat chmod","emitted":"authorization-mode","expect":"grant-type","via":"override:scoped-grant-mode"},
{"command":"pat chmod","emitted":"pat-session-id","expect":"session-id","via":"override:scoped-session"},
{"command":"pat chmod","emitted":"authorization-session-id","expect":"session-id","via":"override:scoped-session"},
{"command":"pat chmod","emitted":"recommended","expect":"recommend","via":"override:scoped-recommend"},
{"command":"pat chmod","emitted":"scope","expect":"did-you-mean:blocked","via":"guard:flag-vs-positional"},
{"command":"pat chmod","emitted":"all-scopes","expect":"did-you-mean:blocked","via":"guard:no-unbounded-expansion"},
{"command":"pat chmod","emitted":"force","expect":"did-you-mean:blocked","via":"guard:no-confirmation-alias"},
{"command":"pat chmod","emitted":"app-id","expect":"did-you-mean:blocked","via":"guard:pat-vs-app-permission"},
{"command":"pat chmod","emitted":"open-browser","expect":"did-you-mean:blocked","via":"guard:authorization-vs-browser-policy"},
{"command":"pat chmod","emitted":"agent-id","expect":"did-you-mean:ambiguous","via":"guard:agent-id-vs-agent-code"},
{"command":"pat chmod","emitted":"session","expect":"did-you-mean:ambiguous","via":"guard:grant-type-vs-session-id"},
{"command":"pat browser-policy","emitted":"open-browser","expect":"enabled","via":"override:positive-boolean"},
{"command":"pat browser-policy","emitted":"browser-enabled","expect":"enabled","via":"override:positive-boolean"},
{"command":"pat browser-policy","emitted":"allow-browser","expect":"enabled","via":"override:positive-boolean"},
{"command":"pat browser-policy","emitted":"disable-browser","expect":"did-you-mean:blocked","via":"guard:requires-boolean-inversion"},
{"command":"pat browser-policy","emitted":"scope","expect":"did-you-mean:blocked","via":"guard:policy-vs-authorization"},
{"command":"pat browser-policy","emitted":"products","expect":"did-you-mean:blocked","via":"guard:policy-vs-plan"},
{"command":"pat browser-policy","emitted":"app-id","expect":"did-you-mean:blocked","via":"guard:pat-vs-app-permission"},
{"command":"pat browser-policy","emitted":"agent-id","expect":"did-you-mean:ambiguous","via":"guard:agent-id-vs-agent-code"},
{"command":"pat browser-policy","emitted":"policy","expect":"did-you-mean:ambiguous","via":"guard:missing-boolean-role"},
{"command":"pat +browser-policy","emitted":"open-browser","expect":"enabled","via":"override:positive-boolean"},
{"command":"pat +browser-policy","emitted":"browser-enabled","expect":"enabled","via":"override:positive-boolean"},
{"command":"pat +browser-policy","emitted":"allow-browser","expect":"enabled","via":"override:positive-boolean"},
{"command":"pat +browser-policy","emitted":"disable-browser","expect":"did-you-mean:blocked","via":"guard:requires-boolean-inversion"},
{"command":"pat +browser-policy","emitted":"scope","expect":"did-you-mean:blocked","via":"guard:policy-vs-authorization"},
{"command":"pat +browser-policy","emitted":"products","expect":"did-you-mean:blocked","via":"guard:policy-vs-plan"},
{"command":"pat +browser-policy","emitted":"app-id","expect":"did-you-mean:blocked","via":"guard:pat-vs-app-permission"},
{"command":"pat +browser-policy","emitted":"agent-id","expect":"did-you-mean:ambiguous","via":"guard:agent-id-vs-agent-code"},
{"command":"pat +browser-policy","emitted":"policy","expect":"did-you-mean:ambiguous","via":"guard:missing-boolean-role"},
{"command":"agoal strategy detail","emitted":"strategy-id","expect":"profile-id","via":"override:strategy-id-role"},
{"command":"agoal strategy update","emitted":"payload","expect":"did-you-mean:blocked","via":"guard:overwrite-envelope"},
{"command":"agoal contract detail","emitted":"business-contract-id","expect":"contract-id","via":"override:contract-id-role"},
{"command":"agoal contract update","emitted":"dimensions-json","expect":"dimensions","via":"override:exact-json-field"},
{"command":"agoal scorecard detail","emitted":"period-start-time","expect":"selected-time","via":"override:period-start-role"},
{"command":"agoal scorecard entity-detail","emitted":"scorecard-id","expect":"sc-id","via":"override:scorecard-id-role"},
{"command":"agoal scorecard update","emitted":"entity-id","expect":"did-you-mean:blocked","via":"guard:scorecard-vs-entity"},
{"command":"agoal user rules","emitted":"uid","expect":"user-id","via":"concept:user_id+bind"},
{"command":"agoal user objectives","emitted":"rule-period-ids","expect":"period-ids","via":"override:period-list-role"},
{"command":"agoal obj-template list","emitted":"q","expect":"keyword","via":"concept:search_query+bind"},
{"command":"agoal obj-template list","emitted":"current-page","expect":"page","via":"concept:page_number+bind"},
{"command":"agoal obj-template list","emitted":"per-page","expect":"page-size","via":"concept:pagination_size+bind"},
{"command":"agoal obj-template create-or-update","emitted":"objective-template-id","expect":"template-id","via":"override:template-id-role"},
{"command":"agoal report list-statistics","emitted":"q","expect":"keyword","via":"concept:search_query+bind"},
{"command":"agoal report submit-detail","emitted":"report-date","expect":"query-date","via":"override:query-date-role"},
{"command":"agoal report submit-detail","emitted":"cursor","expect":"did-you-mean:blocked","via":"guard:numbered-pagination"},
{"command":"audit tail","emitted":"limit","expect":"lines","via":"override:scoped-count"},
{"command":"audit tail","emitted":"count","expect":"lines","via":"override:scoped-count"},
{"command":"audit tail","emitted":"max-results","expect":"lines","via":"override:scoped-count"},
{"command":"audit tail","emitted":"tail-lines","expect":"lines","via":"override:scoped-count"},
{"command":"audit tail","emitted":"output-path","expect":"output","via":"concept:local_output_path"},
{"command":"audit tail","emitted":"file","expect":"did-you-mean:blocked","via":"guard:latest-file-only"},
{"command":"audit tail","emitted":"page-size","expect":"did-you-mean:blocked","via":"guard:tail-count-not-pagination"},
{"command":"audit tail","emitted":"audit-dir","expect":"did-you-mean:blocked","via":"guard:no-directory-flag"},
{"command":"audit export","emitted":"start-date","expect":"since","via":"override:scoped-date-bound"},
{"command":"audit export","emitted":"from-date","expect":"since","via":"override:scoped-date-bound"},
{"command":"audit export","emitted":"end-date","expect":"until","via":"override:scoped-date-bound"},
{"command":"audit export","emitted":"to-date","expect":"until","via":"override:scoped-date-bound"},
{"command":"audit export","emitted":"export-format","expect":"format","via":"override:scoped-export-format"},
{"command":"audit export","emitted":"destination-path","expect":"output","via":"concept:local_output_path"},
{"command":"audit export","emitted":"start-time","expect":"did-you-mean:blocked","via":"guard:date-vs-timestamp"},
{"command":"audit export","emitted":"date","expect":"did-you-mean:blocked","via":"guard:lower-vs-upper-bound"},
{"command":"audit export","emitted":"file-path","expect":"did-you-mean:blocked","via":"guard:input-vs-output-path"},
{"command":"audit export","emitted":"output-format","expect":"did-you-mean:blocked","via":"guard:export-vs-cli-output-format"},
{"command":"audit export","emitted":"audit-dir","expect":"did-you-mean:blocked","via":"guard:no-directory-flag"},
{"command":"audit verify","emitted":"audit-file","expect":"file","via":"override:scoped-audit-file"},
{"command":"audit verify","emitted":"audit-log-file","expect":"file","via":"override:scoped-audit-file"},
{"command":"audit verify","emitted":"input-file","expect":"file","via":"override:scoped-audit-file"},
{"command":"audit verify","emitted":"file-path","expect":"file","via":"override:scoped-audit-file"},
{"command":"audit verify","emitted":"output-path","expect":"output","via":"concept:local_output_path"},
{"command":"audit verify","emitted":"files","expect":"did-you-mean:blocked","via":"guard:single-file-only"},
{"command":"audit verify","emitted":"audit-dir","expect":"did-you-mean:blocked","via":"guard:file-vs-directory"},
{"command":"audit verify","emitted":"directory","expect":"did-you-mean:blocked","via":"guard:file-vs-directory"},
{"command":"audit verify","emitted":"path","expect":"did-you-mean:ambiguous","via":"guard:generic-path-role"},
{"command":"dev app create","emitted":"application-name","expect":"name","via":"full-product-review:alias"},
{"command":"dev app create","emitted":"description-text","expect":"desc","via":"full-product-review:alias"},
{"command":"dev app create","emitted":"agent-name","expect":"did-you-mean:blocked","via":"full-product-review:guard"},
{"command":"dev app credentials get","emitted":"application-id","expect":"unified-app-id","via":"full-product-review:alias"},
{"command":"dev app credentials get","emitted":"agent-id","expect":"did-you-mean:blocked","via":"full-product-review:guard"},
{"command":"dev app delete","emitted":"confirmation-name","expect":"confirm-name","via":"full-product-review:alias"},
{"command":"dev app delete","emitted":"agent-id","expect":"did-you-mean:blocked","via":"full-product-review:guard"},
{"command":"dev app disable","emitted":"application-id","expect":"unified-app-id","via":"full-product-review:alias"},
{"command":"dev app disable","emitted":"agent-id","expect":"did-you-mean:blocked","via":"full-product-review:guard"},
{"command":"dev app enable","emitted":"application-id","expect":"unified-app-id","via":"full-product-review:alias"},
{"command":"dev app enable","emitted":"agent-id","expect":"did-you-mean:blocked","via":"full-product-review:guard"},
{"command":"dev app event list","emitted":"next-page-token","expect":"cursor","via":"full-product-review:alias"},
{"command":"dev app event list","emitted":"agent-id","expect":"did-you-mean:blocked","via":"full-product-review:guard"},
{"command":"dev app event subscribe","emitted":"event-code-list","expect":"event-codes","via":"full-product-review:alias"},
{"command":"dev app event subscribe","emitted":"agent-id","expect":"did-you-mean:blocked","via":"full-product-review:guard"},
{"command":"dev app event unsubscribe","emitted":"event-code-list","expect":"event-codes","via":"full-product-review:alias"},
{"command":"dev app event unsubscribe","emitted":"agent-id","expect":"did-you-mean:blocked","via":"full-product-review:guard"},
{"command":"dev app get","emitted":"application-key","expect":"app-key","via":"full-product-review:alias"},
{"command":"dev app get","emitted":"application","expect":"did-you-mean:ambiguous","via":"full-product-review:guard"},
{"command":"dev app list","emitted":"display-robot-name","expect":"robot-name","via":"full-product-review:alias"},
{"command":"dev app list","emitted":"id","expect":"did-you-mean:ambiguous","via":"full-product-review:guard"},
{"command":"dev app member add","emitted":"application-id","expect":"unified-app-id","via":"full-product-review:alias"},
{"command":"dev app member add","emitted":"agent-id","expect":"did-you-mean:blocked","via":"full-product-review:guard"},
{"command":"dev app member list","emitted":"application-id","expect":"unified-app-id","via":"full-product-review:alias"},
{"command":"dev app member list","emitted":"agent-id","expect":"did-you-mean:blocked","via":"full-product-review:guard"},
{"command":"dev app member remove","emitted":"application-id","expect":"unified-app-id","via":"full-product-review:alias"},
{"command":"dev app member remove","emitted":"agent-id","expect":"did-you-mean:blocked","via":"full-product-review:guard"},
{"command":"dev app permission add","emitted":"permission-scopes","expect":"scope-values","via":"full-product-review:alias"},
{"command":"dev app permission add","emitted":"agent-id","expect":"did-you-mean:blocked","via":"full-product-review:guard"},
{"command":"dev app permission list","emitted":"scope","expect":"did-you-mean:ambiguous","via":"full-product-review:guard"},
{"command":"dev app permission remove","emitted":"permission-scopes","expect":"scope-values","via":"full-product-review:alias"},
{"command":"dev app permission remove","emitted":"agent-id","expect":"did-you-mean:blocked","via":"full-product-review:guard"},
{"command":"dev app robot config","emitted":"localized-description-json","expect":"i18n-description","via":"full-product-review:alias"},
{"command":"dev app robot config","emitted":"callback-url","expect":"did-you-mean:ambiguous","via":"full-product-review:guard"},
{"command":"dev app robot disable","emitted":"application-id","expect":"unified-app-id","via":"full-product-review:alias"},
{"command":"dev app robot disable","emitted":"agent-id","expect":"did-you-mean:blocked","via":"full-product-review:guard"},
{"command":"dev app robot enable","emitted":"application-id","expect":"unified-app-id","via":"full-product-review:alias"},
{"command":"dev app robot enable","emitted":"agent-id","expect":"did-you-mean:blocked","via":"full-product-review:guard"},
{"command":"dev app robot get","emitted":"application-id","expect":"unified-app-id","via":"full-product-review:alias"},
{"command":"dev app robot get","emitted":"agent-id","expect":"did-you-mean:blocked","via":"full-product-review:guard"},
{"command":"dev app robot result","emitted":"creation-task-id","expect":"task-id","via":"full-product-review:alias"},
{"command":"dev app robot submit","emitted":"intelligent-agent-name","expect":"name","via":"full-product-review:alias"},
{"command":"dev app robot submit","emitted":"display-name","expect":"did-you-mean:ambiguous","via":"full-product-review:guard"},
{"command":"dev app security config","emitted":"oauth-redirect-urls","expect":"redirect-urls","via":"full-product-review:alias"},
{"command":"dev app security config","emitted":"allow-list","expect":"did-you-mean:ambiguous","via":"full-product-review:guard"},
{"command":"dev app update","emitted":"application-name","expect":"name","via":"full-product-review:alias"},
{"command":"dev app update","emitted":"description-text","expect":"desc","via":"full-product-review:alias"},
{"command":"dev app update","emitted":"agent-id","expect":"did-you-mean:blocked","via":"full-product-review:guard"},
{"command":"dev app version check-approval","emitted":"release-version-id","expect":"version-id","via":"full-product-review:alias"},
{"command":"dev app version check-approval","emitted":"agent-id","expect":"did-you-mean:blocked","via":"full-product-review:guard"},
{"command":"dev app version create","emitted":"app-version-name","expect":"version","via":"full-product-review:alias"},
{"command":"dev app version create","emitted":"description-text","expect":"desc","via":"full-product-review:alias"},
{"command":"dev app version create","emitted":"agent-id","expect":"did-you-mean:blocked","via":"full-product-review:guard"},
{"command":"dev app version get","emitted":"release-version-id","expect":"version-id","via":"full-product-review:alias"},
{"command":"dev app version get","emitted":"agent-id","expect":"did-you-mean:blocked","via":"full-product-review:guard"},
{"command":"dev app version list","emitted":"next-page-token","expect":"cursor","via":"full-product-review:alias"},
{"command":"dev app version list","emitted":"agent-id","expect":"did-you-mean:blocked","via":"full-product-review:guard"},
{"command":"dev app version publish","emitted":"release-version-id","expect":"version-id","via":"full-product-review:alias"},
{"command":"dev app version publish","emitted":"agent-id","expect":"did-you-mean:blocked","via":"full-product-review:guard"},
{"command":"dev app version status","emitted":"release-version-id","expect":"version-id","via":"full-product-review:alias"},
{"command":"dev app version status","emitted":"agent-id","expect":"did-you-mean:blocked","via":"full-product-review:guard"},
{"command":"dev app webapp config","emitted":"desktop-homepage-url","expect":"pc-homepage-url","via":"full-product-review:alias"},
{"command":"dev app webapp config","emitted":"home-url","expect":"did-you-mean:ambiguous","via":"full-product-review:guard"},
{"command":"dev app webapp get","emitted":"application-id","expect":"unified-app-id","via":"full-product-review:alias"},
{"command":"dev app webapp get","emitted":"agent-id","expect":"did-you-mean:blocked","via":"full-product-review:guard"},
{"command":"dev connect restart","emitted":"connector-client-id","expect":"robot-client-id","via":"full-product-review:alias"},
{"command":"dev connect restart","emitted":"connection-id","expect":"did-you-mean:ambiguous","via":"full-product-review:guard"},
{"command":"dev connect status","emitted":"connector-client-id","expect":"robot-client-id","via":"full-product-review:alias"},
{"command":"dev connect status","emitted":"connection-id","expect":"did-you-mean:ambiguous","via":"full-product-review:guard"},
{"command":"dev connect stop","emitted":"connector-client-id","expect":"robot-client-id","via":"full-product-review:alias"},
{"command":"dev connect stop","emitted":"connection-id","expect":"did-you-mean:ambiguous","via":"full-product-review:guard"},
{"command":"dev doc search","emitted":"current-page","expect":"page","via":"full-product-review:alias"},
{"command":"dev doc search","emitted":"count","expect":"did-you-mean:blocked","via":"full-product-review:guard"},
{"command":"devapp +create","emitted":"application-name","expect":"name","via":"full-product-review:alias"},
{"command":"devapp +create","emitted":"description-text","expect":"desc","via":"full-product-review:alias"},
{"command":"devapp +create","emitted":"agent-name","expect":"did-you-mean:blocked","via":"full-product-review:guard"},
{"command":"devapp +delete","emitted":"application-id","expect":"unified-app-id","via":"full-product-review:alias"},
{"command":"devapp +delete","emitted":"agent-id","expect":"did-you-mean:blocked","via":"full-product-review:guard"},
{"command":"devapp +disable","emitted":"application-id","expect":"unified-app-id","via":"full-product-review:alias"},
{"command":"devapp +disable","emitted":"agent-id","expect":"did-you-mean:blocked","via":"full-product-review:guard"},
{"command":"devapp +enable","emitted":"application-id","expect":"unified-app-id","via":"full-product-review:alias"},
{"command":"devapp +enable","emitted":"agent-id","expect":"did-you-mean:blocked","via":"full-product-review:guard"},
{"command":"devapp +event-list","emitted":"next-page-token","expect":"cursor","via":"full-product-review:alias"},
{"command":"devapp +event-list","emitted":"agent-id","expect":"did-you-mean:blocked","via":"full-product-review:guard"},
{"command":"devapp +get","emitted":"application-id","expect":"unified-app-id","via":"full-product-review:alias"},
{"command":"devapp +get","emitted":"agent-id","expect":"did-you-mean:blocked","via":"full-product-review:guard"},
{"command":"devapp +list","emitted":"application-client-id","expect":"app-key","via":"full-product-review:alias"},
{"command":"devapp +list","emitted":"id","expect":"did-you-mean:ambiguous","via":"full-product-review:guard"},
{"command":"devapp +member-add","emitted":"application-id","expect":"unified-app-id","via":"full-product-review:alias"},
{"command":"devapp +member-add","emitted":"agent-id","expect":"did-you-mean:blocked","via":"full-product-review:guard"},
{"command":"devapp +member-list","emitted":"application-id","expect":"unified-app-id","via":"full-product-review:alias"},
{"command":"devapp +member-list","emitted":"agent-id","expect":"did-you-mean:blocked","via":"full-product-review:guard"},
{"command":"devapp +member-remove","emitted":"application-id","expect":"unified-app-id","via":"full-product-review:alias"},
{"command":"devapp +member-remove","emitted":"agent-id","expect":"did-you-mean:blocked","via":"full-product-review:guard"},
{"command":"devapp +permission-list","emitted":"api-permission-status","expect":"api-status","via":"full-product-review:alias"},
{"command":"devapp +permission-list","emitted":"permission-scope-type","expect":"scope-type","via":"full-product-review:alias"},
{"command":"devapp +permission-list","emitted":"scope","expect":"did-you-mean:ambiguous","via":"full-product-review:guard"},
{"command":"devapp +robot-get","emitted":"application-id","expect":"unified-app-id","via":"full-product-review:alias"},
{"command":"devapp +robot-get","emitted":"agent-id","expect":"did-you-mean:blocked","via":"full-product-review:guard"},
{"command":"devapp +update","emitted":"application-name","expect":"name","via":"full-product-review:alias"},
{"command":"devapp +update","emitted":"description-text","expect":"desc","via":"full-product-review:alias"},
{"command":"devapp +update","emitted":"agent-id","expect":"did-you-mean:blocked","via":"full-product-review:guard"},
{"command":"devapp +version-check-approval","emitted":"release-version-id","expect":"version-id","via":"full-product-review:alias"},
{"command":"devapp +version-check-approval","emitted":"agent-id","expect":"did-you-mean:blocked","via":"full-product-review:guard"},
{"command":"devapp +version-get","emitted":"release-version-id","expect":"version-id","via":"full-product-review:alias"},
{"command":"devapp +version-get","emitted":"agent-id","expect":"did-you-mean:blocked","via":"full-product-review:guard"},
{"command":"devapp +version-list","emitted":"next-page-token","expect":"cursor","via":"full-product-review:alias"},
{"command":"devapp +version-list","emitted":"agent-id","expect":"did-you-mean:blocked","via":"full-product-review:guard"},
{"command":"devapp +version-status","emitted":"release-version-id","expect":"version-id","via":"full-product-review:alias"},
{"command":"devapp +version-status","emitted":"agent-id","expect":"did-you-mean:blocked","via":"full-product-review:guard"},
{"command":"devapp +webapp-config","emitted":"desktop-homepage-url","expect":"pc-homepage-url","via":"full-product-review:alias"},
{"command":"devapp +webapp-config","emitted":"home-url","expect":"did-you-mean:ambiguous","via":"full-product-review:guard"},
{"command":"devapp +webapp-get","emitted":"application-id","expect":"unified-app-id","via":"full-product-review:alias"},
{"command":"devapp +webapp-get","emitted":"agent-id","expect":"did-you-mean:blocked","via":"full-product-review:guard"},
{"command":"event +listen-im","emitted":"user-id","expect":"user","via":"concept:user_id+bind"},
{"command":"event +listen-im","emitted":"conversation-id","expect":"chat-id","via":"concept:open_conversation_id+bind"},
{"command":"event +listen-im","emitted":"open-dingtalkid","expect":"open-dingtalk-id","via":"override:scoped-spelling"},
{"command":"event +listen-im","emitted":"sender-name","expect":"user-query","via":"override:typed-natural-target"},
{"command":"event +listen-im","emitted":"group-name","expect":"chat-query","via":"override:typed-natural-target"},
{"command":"event +listen-im","emitted":"event-types","expect":"events","via":"override:facade-event-kinds"},
{"command":"event +listen-im","emitted":"run-duration","expect":"duration","via":"override:event-runtime-duration"},
{"command":"event +listen-im","emitted":"event-limit","expect":"max-events","via":"concept:event_max_events"},
{"command":"event +listen-im","emitted":"event-key","expect":"did-you-mean:blocked","via":"guard:facade-vs-raw-event-key"},
{"command":"event +listen-im","emitted":"target","expect":"did-you-mean:ambiguous","via":"guard:typed-target-role"},
{"command":"event +listen-im","emitted":"peer-open-dingtalk-id","expect":"did-you-mean:ambiguous","via":"guard:open-dingtalk-id-role-context"},
{"command":"event +listen-im","emitted":"sender-open-dingtalk-id","expect":"did-you-mean:ambiguous","via":"guard:open-dingtalk-id-role-context"},
{"command":"event consume","emitted":"user-id","expect":"user","via":"concept:user_id+bind"},
{"command":"event consume","emitted":"open-conversation-id","expect":"group","via":"concept:open_conversation_id+bind"},
{"command":"event consume","emitted":"open-dingtalkid","expect":"open-dingtalk-id","via":"override:scoped-spelling"},
{"command":"event consume","emitted":"subscription-id","expect":"subscribe-id","via":"concept:event_subscription_id+bind"},
{"command":"event consume","emitted":"message-keywords","expect":"query","via":"override:message-query"},
{"command":"event consume","emitted":"event-output-dir","expect":"output-dir","via":"override:directory-role"},
{"command":"event consume","emitted":"filter-dsl-json","expect":"filter-json","via":"override:filter-transport"},
{"command":"event consume","emitted":"event-key","expect":"did-you-mean:blocked","via":"guard:event-key-is-positional"},
{"command":"event consume","emitted":"user-query","expect":"did-you-mean:blocked","via":"guard:no-natural-resolution-in-consume"},
{"command":"event consume","emitted":"target","expect":"did-you-mean:ambiguous","via":"guard:target-value-domain"},
{"command":"event consume","emitted":"peer-open-dingtalk-id","expect":"did-you-mean:ambiguous","via":"guard:open-dingtalk-id-role-context"},
{"command":"event consume","emitted":"sender-open-dingtalk-id","expect":"did-you-mean:ambiguous","via":"guard:open-dingtalk-id-role-context"},
{"command":"event list","emitted":"event-category","expect":"category","via":"override:catalog-category"},
{"command":"event list","emitted":"show-pending","expect":"include-pending","via":"override:boolean-spelling"},
{"command":"event schema","emitted":"flat","expect":"flatten","via":"override:projection-mode"},
{"command":"event schema","emitted":"event-key","expect":"did-you-mean:blocked","via":"guard:event-key-is-positional"},
{"command":"event status","emitted":"event-key","expect":"event","via":"override:event-key-filter"},
{"command":"event status","emitted":"subscription-id","expect":"subscribe-id","via":"concept:event_subscription_id+bind"},
{"command":"event status","emitted":"state","expect":"status","via":"override:subscription-state"},
{"command":"event stop","emitted":"all-subscriptions","expect":"all","via":"override:boolean-target"},
{"command":"event stop","emitted":"subscription-id","expect":"did-you-mean:blocked","via":"guard:subscribe-id-is-positional"},
{"command":"event stop","emitted":"id","expect":"did-you-mean:ambiguous","via":"guard:destructive-positional-target"},
{"command":"mcp url get","emitted":"mcp-id","expect":"did-you-mean:blocked","via":"guard:flag-vs-required-positional"},
{"command":"mcp url get","emitted":"server-id","expect":"did-you-mean:blocked","via":"guard:mcp-market-id-vs-server-id"},
{"command":"mcp url get","emitted":"app-id","expect":"did-you-mean:blocked","via":"guard:mcp-vs-app-identity"},
{"command":"mcp url get","emitted":"mcp-url","expect":"did-you-mean:blocked","via":"guard:sensitive-output-not-input"},
{"command":"mcp url get","emitted":"endpoint","expect":"did-you-mean:blocked","via":"guard:sensitive-output-not-input"},
{"command":"mcp url get","emitted":"transport","expect":"did-you-mean:blocked","via":"guard:returned-config-not-input"},
{"command":"mcp url get","emitted":"access-token","expect":"did-you-mean:blocked","via":"guard:sensitive-output-not-input"},
{"command":"mcp url get","emitted":"query","expect":"did-you-mean:blocked","via":"guard:get-by-id-not-search"},
{"command":"mcp url get","emitted":"page","expect":"did-you-mean:blocked","via":"guard:single-get-not-list"},
{"command":"mcp url get","emitted":"corp-id","expect":"did-you-mean:blocked","via":"guard:profile-owns-identity"},
{"command":"mcp url get","emitted":"user-id","expect":"did-you-mean:blocked","via":"guard:profile-owns-identity"},
{"command":"mcp url get","emitted":"id","expect":"did-you-mean:ambiguous","via":"guard:unspecified-id-domain"},
{"command":"mcp url get","emitted":"server","expect":"did-you-mean:ambiguous","via":"guard:server-role-unspecified"},
{"command":"mcp url get","emitted":"type","expect":"did-you-mean:ambiguous","via":"guard:no-type-selector"},
{"command":"mcp url get","emitted":"key","expect":"did-you-mean:ambiguous","via":"guard:key-could-be-id-or-credential"},
{"command":"mcp url get","emitted":"user","expect":"did-you-mean:ambiguous","via":"guard:profile-vs-business-user"},
{"command":"recruit job list","emitted":"q","expect":"keyword","via":"concept:search_query+bind"},
{"command":"recruit job list","emitted":"page-size","expect":"size","via":"concept:pagination_size+bind"},
{"command":"recruit job list","emitted":"next-cursor","expect":"cursor","via":"concept:page_cursor+bind"},
{"command":"recruit job list","emitted":"created-by-user-ids","expect":"creator-user-ids","via":"concept:creator_user_ids+bind"},
{"command":"recruit job list","emitted":"position-ids","expect":"job-ids","via":"override:job-id-list-role"},
{"command":"recruit job list","emitted":"job-id","expect":"did-you-mean:blocked","via":"guard:single-vs-list"},
{"command":"recruit job list","emitted":"id","expect":"did-you-mean:ambiguous","via":"guard:role-free-id"},
{"command":"recruit job get","emitted":"position-id","expect":"job-id","via":"override:job-id-role"},
{"command":"recruit job get","emitted":"job-ids","expect":"did-you-mean:blocked","via":"guard:list-vs-single"},
{"command":"recruit job create","emitted":"job-json-file","expect":"from","via":"override:local-json-file"},
{"command":"recruit job create","emitted":"job-json","expect":"did-you-mean:blocked","via":"guard:raw-json-vs-file"},
{"command":"recruit job create","emitted":"payload","expect":"did-you-mean:ambiguous","via":"guard:file-vs-envelope"},
{"command":"recruit job create","emitted":"data","expect":"did-you-mean:ambiguous","via":"full-product-review:guard"},
{"command":"recruit job get","emitted":"recruit-job-id","expect":"job-id","via":"full-product-review:alias"},
{"command":"recruit job get","emitted":"id","expect":"did-you-mean:blocked","via":"full-product-review:guard"},
{"command":"recruit job list","emitted":"ids","expect":"did-you-mean:ambiguous","via":"full-product-review:guard"},
{"command":"dev app permission list","emitted":"permission-scope","expect":"did-you-mean:ambiguous","via":"guard:scope-type-vs-scope-value"},
{"command":"dev app permission list","emitted":"scope-filter","expect":"did-you-mean:ambiguous","via":"guard:scope-type-vs-scope-value"},
{"command":"devapp +permission-list","emitted":"permission-scope","expect":"did-you-mean:ambiguous","via":"guard:scope-type-vs-scope-value"},
{"command":"devapp +permission-list","emitted":"scope-filter","expect":"did-you-mean:ambiguous","via":"guard:scope-type-vs-scope-value"},
{"command":"dev app robot config","emitted":"summary","expect":"did-you-mean:ambiguous","via":"guard:brief-vs-description"},
{"command":"dev app robot submit","emitted":"preview-file-id","expect":"did-you-mean:blocked","via":"guard:file-id-vs-media-id"},
{"command":"dev app robot submit","emitted":"preview-id","expect":"did-you-mean:ambiguous","via":"guard:incomplete-preview-media-role"},
{"command":"devapp +member-list","emitted":"uid","expect":"user-id","via":"concept:user_id"},
{"command":"devapp +member-list","emitted":"user-ids","expect":"did-you-mean:blocked","via":"guard:single-vs-list"},
{"command":"dev app create","emitted":"file-id","expect":"did-you-mean:blocked","via":"guard:app-icon-media-vs-file-id"},
{"command":"dev app update","emitted":"preview-media-id","expect":"did-you-mean:blocked","via":"guard:app-icon-vs-preview-media-role"},
{"command":"dev app robot config","emitted":"file-id","expect":"did-you-mean:blocked","via":"guard:robot-icon-media-vs-file-id"},
{"command":"dev app robot submit","emitted":"file-id","expect":"did-you-mean:blocked","via":"guard:robot-icon-media-vs-file-id"},
{"command":"devapp +create","emitted":"file-id","expect":"did-you-mean:blocked","via":"guard:app-icon-media-vs-file-id"},
{"command":"devapp +update","emitted":"preview-media-id","expect":"did-you-mean:blocked","via":"guard:app-icon-vs-preview-media-role"},
{"command":"dev app member add","emitted":"member-role","expect":"member-type","via":"override:scoped-member-role"},
{"command":"dev app member add","emitted":"scope-type","expect":"did-you-mean:blocked","via":"guard:member-type-vs-permission-scope-type"},
{"command":"dev app member remove","emitted":"member-role","expect":"member-type","via":"override:scoped-member-role"},
{"command":"dev app member remove","emitted":"scope-type","expect":"did-you-mean:blocked","via":"guard:member-type-vs-permission-scope-type"},
{"command":"devapp +member-add","emitted":"member-role","expect":"member-type","via":"override:scoped-member-role"},
{"command":"devapp +member-add","emitted":"scope-type","expect":"did-you-mean:blocked","via":"guard:member-type-vs-permission-scope-type"},
{"command":"devapp +member-remove","emitted":"member-role","expect":"member-type","via":"override:scoped-member-role"},
{"command":"devapp +member-remove","emitted":"scope-type","expect":"did-you-mean:blocked","via":"guard:member-type-vs-permission-scope-type"}
]
}
}