  Augmenting text-based programming with rich structured interactions has been
explored in many ways. Among these, projectional editors offer an enticing
combination of structure editing and domain-specific program visualization. Yet
such tools are typically bespoke and expensive to produce, leaving them
inaccessible to many DSL and application designers.
  We describe a relatively inexpensive way to build rich projectional editors
for a large class of DSLs -- namely, those defined using JSON. Given any such
JSON-based DSL, we derive a projectional editor through (i) a language-agnostic
mapping from JSON Schemas to structure-editor GUIs and (ii) an API for
application designers to implement custom views for the domain-specific types
described in a schema. We implement these ideas in a prototype, Prong, which we
illustrate with several examples including the Vega and Vega-Lite data
visualization DSLs.
