A signed-in player can take everything this project holds about them, and can delete it all. Both are per project: they cover this game only, never the player's dasmaffin.com account and never their players in other games. Offer both somewhere in your game's settings; the law gives players the right to each, and this is how they exercise it without writing to you.
GET /me/export everything held about the player, as one JSON document
DELETE /me the player and everything of theirs, for good -> 204
Authorization: Bearer mgds_...
The export has the player record, how they sign in (account is the SteamID or dasmaffin.com
account id; null for a device key, which is a secret), their sessions, every save file they own
with its contents, files they made and left, their reports with the conversation, their scores on
every version of every leaderboard, and any account link they started and did not finish.
Attachments of their reports are listed with a url they can fetch with their token:
GET /me/reports/{id}/attachments/{attachmentId}
No token, token hash or device key hash is ever in it.
Deleting removes, in this order:
| What | How |
|---|---|
| Save files | They leave every file they own. A file they were the last owner of is deleted, values and uploads included. A file others still own stays theirs, and its createdBy becomes 00000000-0000-0000-0000-000000000000 |
| Reports | Theirs are deleted, with attachments and the conversation |
| Leaderboards | Their scores on every board, every version, archives included |
| Account links | Any dasmaffin.com link they had started |
| Sign-in | Every way in (logins), every session, the player record |
It cannot be undone, so ask the player to confirm first. Their tokens stop working at once; an
idToken your own server already holds is believed until its exp, at most an hour. A deletion that
fails part way can be asked for again with the same token - the session goes last.
When a request reaches you some other way - an email - a service account with players.export or
players.delete does the same for any player (below).