Where a document comes from when it is not in memory yet: fill puts the next piece of text in
buffer and returns how many bytes it wrote (0 at the end), and a non-empty string when the
source failed (what went wrong). data is handed to it as it is. Json does not know what the
pieces come from; Io.read_json makes one from an Io.Reader.
Json_Fill :: #type (data: *void, buffer: [] u8) -> s64, string