I'm not sure I like the indirection from the `tree` parameter here - AFAICT we only use it in the `raw_get` path? I'd prefer to keep this setter method simple (with just the current_time and cached_until args) and leave the tree parsing in `raw_get`.