{
  "before": {
    "name": "preview_support_request",
    "description": "Preview a support request without sending a ticket or email.",
    "inputSchema": {
      "type": "object",
      "properties": {
        "topic": {
          "type": "string",
          "enum": [
            "billing",
            "account"
          ]
        },
        "message": {
          "type": "string",
          "minLength": 8
        },
        "replyTo": {
          "type": "string",
          "minLength": 3
        }
      },
      "required": [
        "topic",
        "message"
      ],
      "additionalProperties": false
    },
    "annotations": {
      "readOnlyHint": true
    }
  },
  "after": {
    "name": "preview_support_request",
    "description": "Preview a support request without sending a ticket or email.",
    "inputSchema": {
      "type": "object",
      "properties": {
        "topic": {
          "type": "string",
          "enum": [
            "billing",
            "account",
            "technical"
          ]
        },
        "message": {
          "type": "string",
          "minLength": 8
        },
        "replyTo": {
          "type": "string",
          "minLength": 3
        }
      },
      "required": [
        "topic",
        "message",
        "replyTo"
      ],
      "additionalProperties": false
    },
    "annotations": {
      "readOnlyHint": true
    }
  },
  "cases": [
    {
      "name": "Existing account question",
      "input": {
        "topic": "account",
        "message": "Where is my export?"
      },
      "expect": "accept"
    },
    {
      "name": "Billing with reply address",
      "input": {
        "topic": "billing",
        "message": "Please explain this item.",
        "replyTo": "person@example.test"
      },
      "expect": "accept"
    },
    {
      "name": "New technical category",
      "input": {
        "topic": "technical",
        "message": "The export is empty.",
        "replyTo": "person@example.test"
      },
      "expect": "accept"
    },
    {
      "name": "Short message",
      "input": {
        "topic": "billing",
        "message": "Hi",
        "replyTo": "person@example.test"
      },
      "expect": "reject"
    },
    {
      "name": "Unexpected admin property",
      "input": {
        "topic": "account",
        "message": "Account settings question.",
        "replyTo": "person@example.test",
        "admin": true
      },
      "expect": "reject"
    },
    {
      "name": "Unknown category",
      "input": {
        "topic": "sales",
        "message": "Please send details.",
        "replyTo": "person@example.test"
      },
      "expect": "reject"
    },
    {
      "name": "Wrong value type",
      "input": {
        "topic": "account",
        "message": 42,
        "replyTo": "person@example.test"
      },
      "expect": "reject"
    }
  ]
}