I am not familiar with MINECRAFT's JSON Coding; because, I don't have a JSON IDE for my Tablet; but, I am familiar with GW-BASIC and Visual BASIC Script Coding.
The "Killed By" Message uses a Variable Name to specify the Entity (Mob or Player) or Event (Falling From A Great Height).
Mobs will have a Variable Name that is accessed by the "Kill By" Message.
MINECRAFT uses Numbers and Words for Mob IDs. These Mob IDs are accessible by the MINECRAFT Cheat Codes Feature.
I have found that using Mob ID Numbers doesn't always work with Cheat Codes.
Also, Mob ID Words can be a bit tricky as well. Sometimes you have to type [minecraft:horse] instead of [horse]. Also, with some Mobs like the Horse, there are various different kinds; and, each kind has a Specific Number; thus, the actual Coding for a Horse would be [minecraft:horse1] or [minecraft:horse_1] or [minecraft:horse-1].
It has been awhile since I last used MINECRAFT Cheat Codes; so, I am unfamiliar with the actual Wording & Spacing in the Code.
I believe that there are two different Variable Names that addresses a Mob's ID. There may be more. I don't know.
One Variable Name is for the MINECRAFT Game Code to Spawn and De-Spawn the Entity.
The other Variable Name is for In-Game Interactions with Mobs and Events and Objects.