This looks mike it might later turn into runaway printing tweak options: `useTabs`, `condense`... and who knows what else? We might want to consider having an enum printing option? I'd hate to see users having to write:
`toJSON(myRoot, true, false, false, true);`...