remote procedure call protocol encoded in JSON