Ticket #55: Expose UGC and Trove search results as JSON; normalize facets for views.