diff --git a/THIRD_PARTY_NOTICES.md b/THIRD_PARTY_NOTICES.md
index b27122f..aba0a5f 100644
--- a/THIRD_PARTY_NOTICES.md
+++ b/THIRD_PARTY_NOTICES.md
@@ -17,8 +17,14 @@
- Lucide, Lucide contributors, ISC: https://github.com/lucide-icons/lucide
- React Markdown and remark-gfm, unified contributors, MIT:
https://github.com/remarkjs/react-markdown and https://github.com/remarkjs/remark-gfm
-- DM Sans and IBM Plex Mono font packages, SIL Open Font License 1.1:
- https://fontsource.org/fonts/dm-sans and https://fontsource.org/fonts/ibm-plex-mono
+- Open Runde by Laurids Kern, a rounded Inter (The Inter Project Authors),
+ SIL Open Font License 1.1: https://github.com/lauridskern/open-runde.
+ The UI ships "AXP Runde", Open Runde with one added glyph (a hooked
+ lowercase l under `cv05`/`ss01`); the build script is
+ `scripts/fonts/build-axp-runde.py` and the license is in `ui/src/fonts`
+ and the built UI license directory.
+- IBM Plex Mono font package, SIL Open Font License 1.1:
+ https://fontsource.org/fonts/ibm-plex-mono
The UI build collects the full license texts of its bundled dependencies and
their runtime dependency graph into `dist/ui/licenses/bundled.txt`.
diff --git a/docs/design/type-specimen.html b/docs/design/type-specimen.html
new file mode 100644
index 0000000..c4a0fdc
--- /dev/null
+++ b/docs/design/type-specimen.html
@@ -0,0 +1,538 @@
+
+
+
+
+ The UI face and its signature glyph, then ten open-licensed alternatives
+ for comparison, then the monospace and handwriting shortlist. Everything
+ here is SIL OFL or similar.
+
+
+
+
+
AXP Runde · cv05 on
+
+ Open Runde (rounded Inter) plus a hooked lowercase l. This is what the
+ app ships.
+
+
Illinois lily
all the little tools
+
+ The little agent left a checkpoint. Pull the parser fix locally, then
+ let the tool finish.
+ 1lI 0O — All contributions · Illegal fallback
+
+
+ Checkpoint readyNew contributionNeeds your input
+
+
+
+
Open Runde · as published
+
+ Same outlines with the feature off. Note how l and I collide in
+ “Illinois”.
+
+
Illinois lily
all the little tools
+
+ The little agent left a checkpoint. Pull the parser fix locally, then
+ let the tool finish.
+ 1lI 0O — All contributions · Illegal fallback
+
+
+ Checkpoint readyNew contributionNeeds your input
+
+
+
+
+
+
+
+ NunitoOFL · variable 200–1000
+
+
Illinois lily, all the little tools
+
+ The little agent left a checkpoint. Pull the parser fix locally, then
+ let the tool finish. 1lI 0O
+
+
+ The Animal Crossing library’s pick. Fully rounded terminals, very
+ warm, slightly wide. The l has no tail.
+
+
+
+
+ Zen Maru GothicOFL · 5 weights
+
+
Illinois lily, all the little tools
+
+ The little agent left a checkpoint. Pull the parser fix locally, then
+ let the tool finish. 1lI 0O
+
+
+ Japanese rounded gothic with a charming Latin. The most “kawaii”
+ option; covers JP if the project ever needs it.
+
+
+
+
+ M PLUS Rounded 1cOFL · 7 weights
+
+
Illinois lily, all the little tools
+
+ The little agent left a checkpoint. Pull the parser fix locally, then
+ let the tool finish. 1lI 0O
+
+
+ Rounder and softer than Zen Maru; a bit toy-like at large sizes, fine
+ at 12–14px.
+
+
+
+
+ QuicksandOFL · variable 300–700
+
+
Illinois lily, all the little tools
+
+ The little agent left a checkpoint. Pull the parser fix locally, then
+ let the tool finish. 1lI 0O
+
+
+ Geometric rounded. Light and airy; small sizes get thin and the l/I
+ problem is worse.
+
+
+
+
+ FredokaOFL · variable 300–700
+
+
Illinois lily, all the little tools
+
+ The little agent left a checkpoint. Pull the parser fix locally, then
+ let the tool finish. 1lI 0O
+
+
+ Chunky and playful. Good for stamps and big labels, tiring as body
+ text.
+
+
+
+
+ FigtreeOFL · variable 300–900
+
+
Illinois lily, all the little tools
+
+ The little agent left a checkpoint. Pull the parser fix locally, then
+ let the tool finish. 1lI 0O
+
+
+ Friendly geometric with soft joins, not rounded terminals. Excellent
+ UI text; less personality.
+
+
+
+
+ Plus Jakarta SansOFL · variable 200–800
+
+
Illinois lily, all the little tools
+
+ The little agent left a checkpoint. Pull the parser fix locally, then
+ let the tool finish. 1lI 0O
+
+
+ Modern, slightly quirky grotesque. Reads “startup”, not “outdoors”.
+
+
+
+
LexendOFL · variable 100–900
+
Illinois lily, all the little tools
+
+ The little agent left a checkpoint. Pull the parser fix locally, then
+ let the tool finish. 1lI 0O
+
+
+ Readability-first, wide set. Distinctive but takes a lot of horizontal
+ room in dense UI.
+
+
+
+
+ Recursive (Casual)OFL · variable, CASL + MONO axes
+
+
Illinois lily, all the little tools
+
+ The little agent left a checkpoint. Pull the parser fix locally, then
+ let the tool finish. 1lI 0O
+
+
+ One family that slides from sans to mono and from linear to casual.
+ Real personality (the a, g, l). Strongest identity candidate if we
+ want a single family for UI + code.
+
+
+
+
+ Atkinson Hyperlegible NextOFL · variable 200–800
+
+
Illinois lily, all the little tools
+
+ The little agent left a checkpoint. Pull the parser fix locally, then
+ let the tool finish. 1lI 0O
+
+
+ Disambiguation is the whole design: tailed l, serifed I, slashed 0.
+ Proof the “signature glyph” idea has legs; a bit clinical for our
+ mood.
+
+
+
+
Varela RoundOFL · one weight
+
Illinois lily, all the little tools
+
+ The little agent left a checkpoint. Pull the parser fix locally, then
+ let the tool finish. 1lI 0O
+
+
+ Lovely rounded shapes but a single weight rules it out for UI
+ hierarchy.
+
+
+
+
+
+
+
+ JetBrains MonoOFL · Google Fonts
+
+
if (!input.trim()) {
+
+ throw new Error('Add a value before parsing.'); const l = 1; // l vs 1
+ vs I vs |
+
+
+ Safe, tall x-height, ligatures optional. Little personality.
+
+
+
+
+ Victor MonoOFL · Google Fonts
+
+
if (!input.trim()) {
+
+ throw new Error('Add a value before parsing.');
+ const l = 1; // cursive italics
+
+
+ Narrow, with cursive italics that suit comments and hand-written
+ margin notes.
+
+
+
+
+ Recursive Mono CasualOFL · Google Fonts
+
+
if (!input.trim()) {
+
+ throw new Error('Add a value before parsing.'); const l = 1; // casual
+ axis at 1
+
+
+ Hand-drawn feel while staying strictly monospaced. Pairs naturally
+ with the sans above.
+
+
+
+
+ Maple MonoOFL · github.com/subframe7536/maple-font
+
+
(not loaded here)
+
+ The l with the curl is the reference you mentioned. Ligatures,
+ italics, and a build service to tweak features; a strong option once
+ we decide whether code should carry the same hook as the UI face.
+
+
+ Also worth a look: Monaspace Radon (OFL, handwriting mono with texture
+ healing), Fantasque Sans Mono, Commit Mono, 0xProto, Iosevka
+ (buildable curly variants).
+
+
+
+
+