Appendix: Full Example #

Here is the final example with all match end fields populated.

{
  "requestId": 1,
  "type": "MatchLifecycleRpc.MatchEndV2Request",
  "payload": {
    "matchId" : "51a7f830-e84c-46a8-ad14-d83d99d045e4",
    "matchEnd": {
      "matchId" : "51a7f830-e84c-46a8-ad14-d83d99d045e4",
      "playerMatchEnds": [
        {
          "playerId": "<<YOUR PLAYER ID>>",
          "stats": {
            "damageDealt": 250,
            "stepsTaken": 100,
            "shotsFired": 25
          },
          "serverItemUpdates":  [
            {
              "stackable": {
                "catalogId": "coins",
                "instanceId": "<<YOUR INSTANCE ID>>",
                "amountChanged": 500
              }
            }
          ],
          "itemGrants": [{"instanced": {"catalogId": "laserSword"}}]
        }
      ]
    },
    "matchMetrics": [
      {
        "name": "matchDurationInSeconds",
        "value": 12345
      },
      {
        "name": "numPlayers",
        "value": 1
      }
    ]
  }
}