`data` is either from the server or from cache