User response JSON

The following schema describes the JSON data structure for a user response to an ISPF panel display:

{
  "PANEL":{
    "description":"User response to an ISPF panel display",
    "type":"object",
    "properties":{
      "SCREENID":{
        "description":"ISPF logical screen identifier",
        "type":"string",
        "maxLength":1,
        "required":true
      },
      "NAME":{
        "description":"Panel name",
        "type":"string",
        "maxLength":8,
        "required":true
      },
      "RESPONSE":{
        "description":"The form of the response made by the user",
        "type":"object",
        "required":true,
        "properties":{
          "TYPE":{
            "description":"The response type - CHOICE=pull-down choice,
            CMD=command from the client, KEY=function key, PS=point-and-shoot field",
            "type":"string",
            "enum":["CHOICE","CMD","KEY","PS"],
            "required":true
          },
          "ID":{
            "description":"The response qualification - pull-down choice identifier,
            command string, function key identifier, or point-and-shoot field name",
            "type":"string",
            "required":true
          }
        }
      },
      "CURSOR":{
        "description":"The location on the panel where the user has placed the cursor",
        "type":"object",
        "required":true,
        "properties":{
          "ROW":{
            "description":"The number of the panel row the cursor is on",
            "type":"integer",
            "maximum":204,
            "required":true
          },
          "COLUMN":{
            "description":"The number of the panel column the cursor is on",
            "type":"integer",
            "maximum":160,
            "required":true
          }
        }
      },
      "FIELDS":{
        "description":"The panel fields that have been modified by the user",
        "type":"array",
        "items":{
          "NAME":{
            "description":"The name associated with the field",
            "type":"string",
            "maxLength":14
          },
          "DATA":{
            "description":"The updated data for the field",
            "type":"string",
            "maxLength":32767
          }
        }
      }
    }
  }
}