{
  "server": {
    "host": "localhost",
    "port": 6667,
    "ssl": false,
    "ssl_port": 6697,
    "nick_prefix": "StressBot",
    "auto_join_channels": ["#test", "#general"]
  },
  "log_level": "INFO",
  "scenarios": [
    {
      "name": "Basic Connection Test",
      "description": "Test basic connection and registration",
      "client_count": 10,
      "duration": 30,
      "connect_gradually": false,
      "disconnect_gradually": true,
      "disconnect_delay": 0.2,
      "delay_after": 5,
      "activities": []
    },
    {
      "name": "Mass Connection Stress",
      "description": "Stress test with many simultaneous connections",
      "client_count": 50,
      "duration": 60,
      "connect_gradually": false,
      "disconnect_gradually": false,
      "delay_after": 5,
      "activities": [
        {
          "type": "channel_flood",
          "channel": "#test",
          "message_count": 20,
          "delay": 2.0
        }
      ]
    },
    {
      "name": "Gradual Connection Test",
      "description": "Test gradual connection buildup",
      "client_count": 30,
      "duration": 45,
      "connect_gradually": true,
      "connect_delay": 0.1,
      "disconnect_gradually": true,
      "disconnect_delay": 0.1,
      "delay_after": 3,
      "activities": [
        {
          "type": "private_flood",
          "message_count": 15,
          "delay": 3.0
        }
      ]
    },
    {
      "name": "Heavy Activity Test",
      "description": "Test server under heavy message load",
      "client_count": 25,
      "duration": 90,
      "connect_gradually": false,
      "disconnect_gradually": false,
      "delay_after": 5,
      "activities": [
        {
          "type": "channel_flood",
          "channel": "#test",
          "message_count": 30,
          "delay": 1.0
        },
        {
          "type": "private_flood",
          "message_count": 20,
          "delay": 1.5
        },
        {
          "type": "join_part_spam",
          "iterations": 10,
          "channels": ["#spam1", "#spam2", "#spam3"],
          "delay": 2.0
        },
        {
          "type": "random_commands",
          "command_count": 15,
          "commands": ["WHO #test", "LIST", "VERSION", "WHOIS StressBot0001"],
          "delay": 2.5
        }
      ]
    },
    {
      "name": "Nick Change Spam",
      "description": "Test rapid nick changes",
      "client_count": 15,
      "duration": 30,
      "connect_gradually": false,
      "disconnect_gradually": false,
      "delay_after": 3,
      "activities": [
        {
          "type": "nick_change_spam",
          "iterations": 20,
          "delay": 1.0
        }
      ]
    },
    {
      "name": "Channel Chaos Test",
      "description": "Rapid JOIN/PART with message flooding",
      "client_count": 20,
      "duration": 60,
      "connect_gradually": true,
      "connect_delay": 0.05,
      "disconnect_gradually": true,
      "disconnect_delay": 0.05,
      "delay_after": 5,
      "activities": [
        {
          "type": "join_part_spam",
          "iterations": 25,
          "channels": ["#chaos1", "#chaos2", "#chaos3", "#chaos4"],
          "delay": 0.5
        },
        {
          "type": "channel_flood",
          "channel": "#chaos1",
          "message_count": 40,
          "delay": 1.0
        }
      ]
    },
    {
      "name": "Maximum Load Test",
      "description": "Push server to maximum capacity",
      "client_count": 100,
      "duration": 120,
      "connect_gradually": true,
      "connect_delay": 0.02,
      "disconnect_gradually": true,
      "disconnect_delay": 0.01,
      "delay_after": 10,
      "activities": [
        {
          "type": "channel_flood",
          "channel": "#maxload",
          "message_count": 50,
          "delay": 0.8
        },
        {
          "type": "private_flood",
          "message_count": 30,
          "delay": 1.2
        },
        {
          "type": "join_part_spam",
          "iterations": 15,
          "channels": ["#load1", "#load2", "#load3", "#load4", "#load5"],
          "delay": 1.5
        },
        {
          "type": "random_commands",
          "command_count": 25,
          "commands": ["WHO #maxload", "LIST", "VERSION", "WHOIS StressBot0050", "NAMES #load1"],
          "delay": 2.0
        }
      ]
    },
    {
      "name": "EXTREME: Mass Connection Bomb",
      "description": "BRUTAL: 200+ connections at once",
      "client_count": 200,
      "duration": 120,
      "connect_gradually": false,
      "disconnect_gradually": false,
      "delay_after": 10,
      "activities": [
        {
          "type": "channel_flood",
          "channel": "#massacre",
          "message_count": 50,
          "delay": 0.1
        },
        {
          "type": "private_flood", 
          "message_count": 30,
          "delay": 0.2
        }
      ]
    },
    {
      "name": "EXTREME: Rapid Fire Connections",
      "description": "BRUTAL: Connect 150 clients as fast as possible",
      "client_count": 150,
      "duration": 60,
      "connect_gradually": true,
      "connect_delay": 0.001,
      "disconnect_gradually": true,
      "disconnect_delay": 0.001,
      "delay_after": 5,
      "activities": [
        {
          "type": "channel_flood",
          "channel": "#rapidfire",
          "message_count": 100,
          "delay": 0.05
        }
      ]
    },
    {
      "name": "EXTREME: Message Hurricane",
      "description": "BRUTAL: Maximum message throughput test",
      "client_count": 80,
      "duration": 180,
      "connect_gradually": false,
      "disconnect_gradually": false,
      "delay_after": 10,
      "activities": [
        {
          "type": "channel_flood",
          "channel": "#hurricane",
          "message_count": 200,
          "delay": 0.01
        },
        {
          "type": "private_flood",
          "message_count": 150,
          "delay": 0.02
        },
        {
          "type": "join_part_spam",
          "iterations": 50,
          "channels": ["#chaos1", "#chaos2", "#chaos3", "#chaos4", "#chaos5"],
          "delay": 0.1
        },
        {
          "type": "random_commands",
          "command_count": 100,
          "commands": ["WHO #hurricane", "LIST", "VERSION", "TIME", "ADMIN", "INFO"],
          "delay": 0.05
        }
      ]
    },
    {
      "name": "EXTREME: Connection Chaos",
      "description": "BRUTAL: Rapid connect/disconnect cycles",
      "client_count": 100,
      "duration": 90,
      "connect_gradually": true,
      "connect_delay": 0.01,
      "disconnect_gradually": true,
      "disconnect_delay": 0.01,
      "delay_after": 5,
      "activities": [
        {
          "type": "nick_spam",
          "iterations": 20,
          "delay": 0.1
        },
        {
          "type": "channel_flood",
          "channel": "#chaos",
          "message_count": 75,
          "delay": 0.1
        }
      ]
    },
    {
      "name": "EXTREME: The Nuclear Option",
      "description": "ULTIMATE BRUTAL: Everything at maximum intensity",
      "client_count": 300,
      "duration": 300,
      "connect_gradually": true,
      "connect_delay": 0.002,
      "disconnect_gradually": false,
      "delay_after": 15,
      "activities": [
        {
          "type": "channel_flood",
          "channel": "#nuclear",
          "message_count": 500,
          "delay": 0.005
        },
        {
          "type": "private_flood",
          "message_count": 300,
          "delay": 0.01
        },
        {
          "type": "join_part_spam",
          "iterations": 100,
          "channels": ["#nuke1", "#nuke2", "#nuke3", "#nuke4", "#nuke5", "#nuke6", "#nuke7", "#nuke8"],
          "delay": 0.02
        },
        {
          "type": "nick_spam",
          "iterations": 50,
          "delay": 0.03
        },
        {
          "type": "random_commands",
          "command_count": 200,
          "commands": ["WHO #nuclear", "LIST", "VERSION", "TIME", "ADMIN", "INFO", "LUSERS"],
          "delay": 0.01
        }
      ]
    }
  ]
}
