If we're adding external interactivity, we're treating each as a custom DSL format and need to evaluate them as such:
JSON Canvas:
graph primitive
easier to read, write, and reason about
harder to render
SVG: path primitive
easier to render
harder to read, write, and reason about