When making an API call, specific properties may have quality levels that the caller would like. Different APIs may also return given properties at different levels of quality. For example, an MSN search for a given image may return an image with "50%" quality, whereas a Picassa search may return an image with "90%" quality.
This would require the following:
- Modify the declaration of API methods to allow a 'quality' param per-property (default: 0)
- Modify the calling of results finder to allow 'quality' param for required property quality (default: 0)
- Modify the API callers to not change properties on a result object if the resulting object already contains a higher-quality result; e.g. if the MSN search tries to fill property 'ImageURL' with a URL of quality 50%, and it's already filled with a URL of quality 90%, revert the contents of that field to the higher-quality URL
Not sure whether to make the quality of the resultant field declarative or explicitly set in the method itself. Maybe have mechanisms for doing both?