pub fn farm_key(tree_json: &str, phrase_json: &str) -> StringExpand description
The content address of (tree_json, phrase_json) without rendering it —
what a caller asks the persistent cache about before paying for a render.
Returns "" if either argument fails to parse, which the caller should
treat as a miss rather than an error: the render path validates its own
inputs and is the one place allowed to reject them.