Starting towards a generic API so that `JsonNode` isn't exposed through the client