Demicode's user experience is much improved: It now pages back and forth. On Linux and macOS it only takes a keypress—take your pick: `‹left›`/`‹right›`, `b`/`f`, `p`/`n`, `‹tab›`/`‹shift-tab›`, `‹space›`/`‹delete›`—to select the next page. For now, Windows still requires you to type a letter, `backward`/`forward`, `previous`/`next` work too, and then follow the letter or command with `‹return›`. Though `‹return›` by itself continues to page forward as well.
This release has been tested with all known Unicode versions from 4.1 forward and does run with them. It also removes several unused Unicode properties that are likely to remain so and introduces several more, which will be needed for implementing grapheme cluster breaks according to the revised Unicode 15.1 algorithm.
The new `--with-ucd-extended-pictographic` command line option blots all characters that have the Extended_Pictographic property, including unassigned ones. Since that's quite the mouthful and the set of characters especially important for fixed-width rendering, the much shorter `-x` works, too. Similarly, `--with-curation` has `-q` as an alias.
Internally, this release incorporates a significant refactor of the code for loading Unicode Character Database files. Much of the clutter and boilerplate has been eliminated, since I finally found a pattern that is both simple and also flexible enough to accommodate the loading of most files: It requires two lines, one for the context manager that mirrors and opens the file and one for the parser, with a callback constructing the desired datatype. The global `UCD` singleton instance has been eliminated as well. A direct beneficiary is statistics collection with `--stats`: It now uses its own private instance and can hence print counts for both the unoptimized and optimized internal representation in one run.
There are no more features to add nor modules to refactor. At least no in the short term. Once Unicode 15.1 has been released, I'll update the grapheme cluster breaking algorithm to account for Indic syllables as well. So please consider this first beta more or less a release candidate for the big 1.0.0, too.