"Word wrapping is easy. Just count characters and split on spaces, right?"
Sure.
Until you account for Unicode grapheme clusters, terminal cell width, combining characters, ZWJ, emoji, CJK, tabs, ANSI sequences, OSC 8 hyperlinks, indentation, hard/soft breaks, unbreakable words, hyphenation, and trailing whitespace.
And then a scrollbar enters the chat.
Easy.