Thus, for most scripts, we choose Unicode numbering for abstract glyphs. Most other scripts have their glyphs sufficiently well covered by the character code points. This includes Latin, Greek, Cyrillic, Hebrew, CJK, and the simpler Indic scripts. In general, abstract glyphs are unligated. It is up to the concrete shaper to perform ligation.
Line breaking Line breaking adds additional layers of complexity.
Secondly, inserting hyphens may require reshaping. Third is the line breaking algorithm itself, which may be nontrivial. It seems to me that preserving the GnomeText approach to line breaking is generally worthwhile. Finding hyphenation points and word breaks is entirely font independent. Itemize the text using the itemizer.