Allows selective caching of certain calls, with very exact cust-key expiration

Questioning the fact we are exposing a param named $custKey in this interface.

From a generic cache perspective, it doesn't seem very obvious what's it's for. You are almost imposing the cache implementation to use it by saying you have to use it to make the key unique. But is that really the cache responsibility to know that? Shouldn't that be done internally by the cache client (i.e. TraackrApiObject.php)

If the semantic is, the $custKey is provided and the implementation can do whatever it wants with it, they shouldn't it be passed to all methods, including isCacheable()? If the read() and write() logic relies on that parameter, one can assume that maybe isCacheable() also does.