Turns out there's a ton of different text properties that Emacs understands: https://www.gnu.org/software/emacs/manual/html_node/elisp/Special-Properties.html (e.g. you can change the cursor!)