Seems like some of the info contains data that has been json encoded from the object:
for example the kill_feed event:
{"name":"kill_feed","data":"{\r\n \"local_player_name\": \"mutschler\",\r\n \"attackerName\": \"0Mandragor0\",\r\n \"victimName\": \"Zenxss\",\r\n \"weaponName\": \"alternator\",\r\n \"action\": \"kill\"\r\n}"}
damage:
{"name":"damage","data":"{\r\n \"targetName\": \"Gibersider\",\r\n \"damageAmount\": \"11.000000\",\r\n \"armor\": \"false\",\r\n \"headshot\": \"false\"\r\n}"}
info updates as well
{"info":{"match_info":{"roster_13":"{\"name\":\"Hoxdolum\",\"isTeammate\":false}"}}
{"info":{"me":{"inventory_0":"{\"name\":\"unknown_41\",\"amount\":\"8\"}"}},"feature":"inventory"}
{"info":{"match_info":{"teammate_0":"{\"name\":\"d4rkpsych0_ttv\",\"state\":\"knockedout\"}"}},"feature":"team"}
and a few others.
Wouldn’t it make sense to send this as object as well?