1# Rust list authoring
2
3`candidate/` is the page writer's output for
4`bullets_numbering_nesting_and_restarts_publish_on_a_fresh_page` in
5`crates/onestore/tests/page_lists.rs`: on a section created in Rust, the first
6paragraph gains a bullet (glyph U+25CB in Courier New, bullet index 4, 11 pt),
7then two numbered paragraphs, a nested numbered child, a numbered paragraph
8restarting at three, a nested plain paragraph and a trailing plain paragraph.
9The numbering definition is the upper-roman `##.` node copied from
10`corpus/outline-edit/tree`. Every list node is written with the model's
11identity after squash, so the reread model equals the saved one.
12
13`cold/` is a fresh OneNote 2010 read: the bullet renders (reported as bullet
14index 3 at 11 pt), the numbered paragraphs read `I.` and `II.`, the nested
15child restarts at `I.`, the restarted paragraph reads `III.`, and the plain
16paragraphs carry no list. `tools/test_list_edit.py` checks this without a VM.
17
18A list node whose compact identity would be the null identity (sequence zero
19at table index zero) fails OneNote's integrity check on open; the writer
20allocates list nodes like other new objects and renames them to the model's
21identities in squash. Regenerate with `ONESTORE_LIST_EXPORT` set to a new
22absolute directory while running the test, then cold-open it with
23`tools/native_runner.py OUTPUT COLD --expected-pages 1 --collect-notebook`.