Parser: read_value/read_list now capture Comment nodes inside lists
when ~comments:true. Module-level _preserve_comments ref threads the
flag through the recursive descent without changing signatures.
Pretty printer: has_interior_comments (recursive) forces multi-line
when any nested list contains comments. Comment nodes inside lists
emit as indented comment lines.
Edit tools: separate_comments strips interior comments recursively
via strip_interior_comments before passing to tree-tools (paths stay
correct). extract_fragment_comments parses new source with comments,
attaches leading comments to the target position in the comment map.
sx_get_siblings: injects comments for top-level siblings.
sx_doc_gen: parses with comments, tracks preceding Comment node,
includes cleaned comment text in generated component documentation.
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>