Tellraw with combination
team prefix&suffix can contain events, so such code makes an armor_stand that "named" aaa and show bbb when hover:
team add test
team modify test prefix {"text":"aaa","hoverEvent":{"action":"show_text","value":"bbb"}}
summon minecraft:armor_stand ~ ~ ~ {CustomName:"\"\""}
team join test @e[type=minecraft:armor_stand]
say @e[type=armor_stand]