I think you are misunderstanding something here.

In this variety of open(), newspec is simply a place where you'll copy m_spec at the end (return the description of the image to the caller).  There is no point in querying newspec here, nothing will be in it but what you put.

There is a DIFFERENT signature of open(), which you may also add, that takes a second ImageSpec &config, that has "instructions from the caller". Maybe that's what you are thinking of here? 

Is the "raw:ColorSpace" and "raw:Demosaic" something found in the file, or instructions from the calling program about how to interpret the image?