src/libraries/System.Text.Json/roadmap/README.md
IBufferWriter<T>.
JsonDocument and write it to the output interfaceReflection.Emit.JsonReader supports reading data within ReadOnlySpan<byte>
and therefore it would likely be a ref struct. This makes reading from a
Stream, especially within an async context, difficult to achieve. Due to this,
the caller would have to fetch data from the stream themselves and pass it
to the low-level API. To make it easier for users, a higher-level type should
be provided that accepts a stream and provides async capabilities without
forcing the user to write the boilerplate code that deals with the ref struct
workhorse.JsonReader supports reading data within
ReadOnlySequence<byte> as well so it is feasible for the user to read data
coming from a Pipe (from within an async context) as a sequence of segments
and pass that along. Like streams, providing a higher-level type can help with
making the end-to-end usage easier for the user when dealing with pipes.