{
  "schemaVersion": "canon.verbs.v1",
  "limits": {
    "messageTextBytes": 4096,
    "messageMetadataJsonChars": 4096,
    "messageAttachments": 10,
    "messageIdChars": 160,
    "messageIdBytes": 256,
    "selfContextChars": 1000,
    "contactRequestNoteChars": 500,
    "groupMembers": 50,
    "inputTitleChars": 160,
    "inputPromptChars": 4000,
    "inputChoices": 12,
    "inputChoiceLabelChars": 120,
    "inputChoiceValueChars": 200,
    "inputChoiceDescriptionChars": 300,
    "inputQuestions": 12,
    "inputQuestionChars": 1000,
    "inputQuestionHeaderChars": 120,
    "inputSecretNameChars": 160,
    "inputAnswerChars": 8192,
    "toolNameChars": 128,
    "toolSummaryChars": 1000,
    "approvalDetails": 8,
    "approvalDetailLabelChars": 80,
    "approvalDetailValueChars": 500,
    "diffFiles": 100,
    "diffPathChars": 1024,
    "diffFileBytes": 24576,
    "diffTotalBytes": 98304,
    "cardEnvelopeBytes": 32768,
    "cardServerTitleChars": 200,
    "cardServerFallbackTextChars": 2000,
    "cardServerBlocks": 64,
    "cardValuesBytes": 8192,
    "cardValuesDepth": 8,
    "nativeKeys": 24,
    "nativeValueChars": 256,
    "nativeHandles": 16,
    "minTimeoutMs": 1000,
    "maxTimeoutMs": 1800000,
    "maxApprovalTimeoutMs": 259200000,
    "turnIdChars": 128,
    "reactionEmojiChars": 64,
    "groupNameChars": 100,
    "noReplyReasonChars": 500
  },
  "rateLimits": {
    "senderMessagesPer5Min": 300,
    "conversationMessagesPer5Min": 120,
    "agentPeerMessagesPerHour": 30
  },
  "idPatterns": {
    "runtimeId": "^[A-Za-z0-9_.:-]{1,160}$",
    "cardId": "^[A-Za-z0-9_.:-]{1,80}$",
    "actionId": "^[A-Za-z0-9_.:-]{1,80}$",
    "questionId": "^[A-Za-z0-9_.:-]{1,120}$",
    "sessionRuleToolPattern": "^[\\w.*:-]{1,128}$",
    "runtimeCorrelationValue": "^[A-Za-z0-9@_][A-Za-z0-9_.:@+\\-]{0,255}$",
    "runtimeMethod": "^[A-Za-z0-9_][A-Za-z0-9_./:\\-]{0,255}$",
    "runtimeHandleKey": "^[A-Za-z0-9_.:-]{1,80}$",
    "resumableUploadId": "^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-5][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}$"
  },
  "byteSemantics": {
    "send_to.text": "utf8_bytes<=messageTextBytes",
    "share_contact.text": "utf8_bytes<=messageTextBytes",
    "forward.text": "utf8_bytes<=messageTextBytes",
    "send_to.messageOptions.messageId": "utf8_bytes<=messageIdBytes",
    "share_contact.messageId": "utf8_bytes<=messageIdBytes",
    "send_to.messageOptions.metadata": "json_stringify_chars<=messageMetadataJsonChars",
    "send_card.card": "json_utf8_bytes<=cardEnvelopeBytes",
    "request_card.card": "json_utf8_bytes<=cardEnvelopeBytes"
  }
}
