1.13 allowed us to do loads more things with commands, like reading & writing NBT values from/to scoreboards, which is awesome. But there are still a few major limitations in the game, like the fact that you can only store integers in scoreboards and that you cannot manipulate text at all. I think that the solution to this is fairly simple. If we allow scoreboards to store these data types, and allow the `execute store` command to store strings, we'd be able to read, change and store strings anywhere we like.
In general, I think the following data types should be allowed:
* Strings (text)
* Floating point values
* Booleans (true/false)
* Other number types like `byte` and `long` (Integers only go up to 2,147,483,647 which is not enough for UUIDs or world seeds).
It shouldn't be hard to make this change; the only difference in syntax would be a new `<type>` argument for the `scoreboard players add` command, to specify the data type of the scoreboard. Yes, this would probably break backwards compatibility, but honestly, I don't think anyone uses this command in their maps or something like that, other than to set things up. So I don't think this would be a big deal.
As for the scoreboard operations, most of them won't work for strings and booleans. The only one that would work is addition, which would be used to concatenate (connect) two strings.
P.S. If this were added, we could also have a new criteria type, which would store the last chat message or command a player typed. This would open up a lot of possibilities for mapmakers, especially adventure maps with dialogue, because then the game could easily reply to what the player typed. Maybe this would not be the best implementation, but it's just an idea.