The smart contract managing the resource calls @code{have(address)} on this contract to check if it can be made use of at the current point in time. This also implements @ref{acl, ACL}.
When the resource is made use of, it calls @code{poke(address)} method to register when it has been made use of.
The @code{next(address)} method returns the timestamp from which the resource may be used again by the given address. The implementer is permitted to change the value at any time.