# TODO ## Bookmarks and per-book progress Paragraph-level resume restores the last reading position. Add named bookmarks and a compact recent-books/progress list so readers can return to several places in a book without overwriting their normal resume point. ## Reading profiles Add selectable reading profiles for punctuation and paragraph pause lengths, long-word delay, unfamiliar-word timing, and WPM presets. Keep a plain/default profile that preserves the current cadence. ## Dialogue and character colors Add optional color rendering for dialogue and character names. The converter should detect conventional quotation marks and styled thought/dialogue spans, then attribute only high-confidence spans to a canonical entity. Store the entity identity, never a color, in a compact v3 RSVP sidecar; load a separate, editable per-book entity map that assigns each entity a hue from 30 through 330 in 30-degree HSL steps at 100% saturation and 75% lightness. Include aliases so descriptions such as "mysterious man" can later resolve to a named entity, and report unresolved or ambiguous attribution for review rather than guessing. Keep the sidecar sparse: unassigned words must have no sidecar record at all, not a record with an entity ID of zero or another null sentinel. Extend a record only when it already exists for style/timing metadata or when an entity assignment requires one. Add a persisted reader setting to toggle coloring without requiring reconversion. ## Converter preflight and safe section splitting Add a `--check` mode that reports section word counts, section and sidecar sizes, filename issues, and unsupported characters without writing output. Offer optional splitting at paragraph boundaries for sections that exceed the device's 150,000-word or 1 MiB file limits. ## Memory-limit hardware validation Stress-test the 150,000-word and 1 MiB section/sidecar limits on real hardware, record PSRAM headroom, and lower the supported limit if token indexing or sidecar metadata leaves insufficient memory for reliable reading. Include adversarial short-word and dense-sidecar inputs, not just ordinary prose. ## Reading continuity preference Keep the current default of pausing on every chapter title, but add an optional auto-continue mode for readers who want uninterrupted reading across sections. ## RSVP orientation point Offer an optional focal-letter/orientation-point treatment that subtly marks a consistent letter within each displayed word. Keep the current centered plain word rendering as the default and make the feature work with italic and bold fonts. ## Library diagnostics and import validation Add a device diagnostics screen for SD-card, TOC, missing-section, sidecar, and memory-limit errors. Extend converter preflight to report the same issues, including oversized tokens, before a book is copied to the card. ## Add anti-aliased reader fonts The current reader uses TFT_eSPI's bitmap FreeSans, FreeSerif, and FreeMono fonts. They are compact and fast, but their edges remain jagged at large sizes. Use TFT_eSPI smooth-font (`.vlw`) assets for the reading view and font-setting previews. 1. Generate or obtain licensed `.vlw` files for sans-serif, serif, and monospace faces at the seven supported reader sizes: 1, 1.5, 2, 2.5, 3, 3.5, and 4. 2. Place the files in a dedicated SD-card directory, for example `/fonts/