Expand description
Source: Analysis/src/AstJsonEncoder.cpp (lines 89-210, hand-ported)
The C++ overloaded write(...) family, expressed as the Rust shape of
overloading: a WriteJson trait + a generic write(propName, value).
PROP!(emitter, node, prop) expands to emitter.write("prop", &node.prop).