Maybe point out that the caller does not get ownership of the ds_map, and that this is actually a live map of all headers received so far (==> it could change when calling the step function if the request is not finished yet)
Or check whether the request is finished and only return the map if it is.