[
  {
    "operation": "modify-overwrite-beta",
    "spec": {
      "*": {
        "key-name": "=concat(@(1,params.sslProvider),' ',@(1,params.bufferType))"
      }
    }
  },
  {
    "operation": "shift",
    "spec": {
      // pivot the data by benchmark name
      "*": {
        "key-name": {
          "*": { // match any value of name
            // go up the tree 3 levels
            // grab the whole array element and
            // write it to the output in an array
            // aka benchmark1[] or benchmark2[]
            "@(3,[&2])": "&.[]"
          }
        }
      }
    }
  },
  {
    "operation": "shift",
    "spec": {
      // now group the relevant data
      "*": { // benchmark 1 or 2
        "$": "&.name",
        "*": { // array of benchmark1 or 2
          "params": {
            "messageSize": "&3.x[]"
          },
          "primaryMetric": {
            "score": "&3.y[]",
            "scoreError": "&3.error_y.array[]"
          }
        }
      }
    }
  },
  {
    // now convert from a map to a top level list
    "operation": "shift",
    "spec": {
      // benchmark1 or benchmark2
      "*": "data.[#1]"
    }
  },
  {
    // add graph default stuff
    "operation": "modify-default-beta",
    "spec": {
      "data": {
        "*": {
          "mode": "lines+markers",
          "type": "scatter"
        }
      },
      "layout": {
        "autosize": true,
        "yaxis": {
          "type": "linear",
          "autorange": true,
          "title": "messages/sec"
        },
        "title": "SslEngineBenchmark.sendMessage",
        "showlegend": true,
        "xaxis": {
          "title": "size of message",
          "type": "category",
          "autorange": true
        }
      }
    }
  }
]