Adds entityViewConfig.resolveRefs callback and standardViewTriple helper so the three source paths (own-store, witness, PDS) share a single decode shape with source-bound ref resolution.
Bean drops its bespoke witness-vs-PDS roaster lookup lambdas. Recipe collapses its 175-line standalone HandleRecipeView into a config. Oolong Brew gains the Tea resolution that was silently missing. Arabica Brew stays bespoke (bulk witness-batch is too entwined).
Net -149 LOC, 892/892 tests pass.
Co-Authored-By: Claude Opus 4.7 (1M context) noreply@anthropic.com