I would expose this functionality via a static method. There's little point in requiring callers to create a `JsonPlanPrinter` object -- they can't be reused, they don't keep state, etc. Take a look at `PlanPrinter`