If something is at or below zero then the "isHit" function should return negative. 

If someone passes a 0 or negative ttl then many backends won't be able to store it at all and will be immediately discarded. If some *can* still cache it we can leave them the option, as there are some potential reasons for doing so, but it still has to be considered a miss according to isHit. Basically, I don't think this needs to be specified any further.