TextPiece
One node of a MessageText.
The set is Telegram's, minus what a library cannot offer everyone: custom emoji are gated behind a username bought on Fragment or the bot owner's Premium, so a bot that used them would work for its author and fail for whoever copied the code.
Styled and Link nest, because Telegram's entities do — bold inside a blockquote is two overlapping ranges over the same text. Code and CodeBlock do not: Telegram ignores entities inside them, so allowing children here would be an API that quietly drops what it was given.