a json input protocol