Messages are valid JSON, see http://json.org/.
Both the request and the response are JSON objects.
The request must include a pair with the name 'version'. If the value associated
with the name 'version' is not '1.0', this response must be sent back:
{"version": "1.0", "error": "wrong-version", "result": "1.0"}
A pair with the name 'name' must also be included. The value must only contain
the characters a-z, A-Z, 0-9, _, and '.'. It must start with a-z or A-Z, and
cannot end with '.'.
A pair with the name 'params' must also be included. It is an array of JSON
values.
A response must include 'version', which must be '1.0'.
It must also contain 'error', which should be null or a string (null if the
request succeeded, an error description otherwise). Some strings are given
special interpretation, see below.
It must also include 'result', which is a JSON value.
The 'special' errors:
wrong-version -- the version of SRPC supplied was not 1.0.
Example cycles:
--> {"version": "1.0", "name": "post.view", "params": [1]}
<-- {"version": "1.0", "error": null, "result": {"author": "foo", "title":
"bar", "content": "baz"}
--> {"version": "3.0", "name": "post.view", "params": [1]}
<-- {"version": "1.0", "error": "wrong-version", "result": "1.0"}