WatchedItemQueryService::getWatchedItemsWithRecentChangeInfo() is a helper for ApiQueryWatchlist. Its interface is very specific to the API in a way that limits its applicability elsewhere. It is essentially a duplicate implementation of the queries done by ChangesListSpecialPage. Extensions like ORES that wish to extend ChangesListSpecialPage must also extend WatchedItemQueryService.
My idea is to integrate it with ChangesListQuery, thus removing the code duplication. This will make it easier to implement watchlist labels (T406843 etc.).
Also ApiQueryRecentChanges.


