JSON error messaging

Errors happen at different levels. Therefore, a client should check for an error object in the response envelope, in each message response, and in each sub-response of a subscription.

Response envelope error

{

  "error" :
  "requests" :
       {
           "id" : "Error identifier",
           "display" : "Text description",
           "stackTrace" : "Text representing the server exception",
       }
}

Message error

{

  "responses" :
  [
     {
     "message" : "GetValue",
     "node" : "slot/Drivers/Blah/Blah",
     "data" : "hs:power",
     "Error" :
     {
          "id" : "invalidOrd",
          "display" : "Cannot resolve slot:/Drivers/Blah/Blah"
          "stackTrace" : "..."
           }
       }
  ]
}