This is a class, not a function - comment should focus on what it *is*.
Why is it the responsibility of this class to keep track of its indentation within the parent?
BTW, it appears to be legal to write lists as:
- this is the first item - second item
Which is much easier/more regular to generate, because it doesn't require Document to special-case the first line.
assert that there's no trailing newlines?
"items" rather than "documents" would capture the semantics better I think
can we document that it *doesn't* render its own trailing newlines? This is a divergence from Block and more important to the implementation now