Chapters and steps
For longer books, the chaptered structure groups sections under chapters. Each section carries a chapterId, a chapterNum, and a chapterTitle; consecutive sections with the same id fall into the same chapter automatically — there is no separate tree to maintain. The reader gets a chapter rail at the top of every page that names the current chapter and lets them jump to the previous or next one. Inside a section, the optional steps array lets a page alternate prose and code in a strict rhythm — { prose, code, lang } per step. The renderer shows a paragraph, then a syntax-highlighted block, then another paragraph, in turn. Useful for tutorials and explainers where the argument moves a few lines of code at a time. Too Many Lists is the longest demonstration: dozens of chapters that build progressively more correct linked lists in Rust, each chapter a sequence of prose/code steps.