Screenshots and Privacy

Target reader: developers integrating the SDK, writing in-game notices, or reviewing privacy behavior.

Developer account data includes email, display name and password hash, and purpose-bound verification/reset records. Email is used for those account actions only. Passwords/codes never belong in URLs or logs. Account deletion clears identity and credentials while anonymous references, shared feedback/comments and necessary audit history remain; see Account and security.

Minimal example

Each feedback submission stores a consent snapshot:

{
  "privacy_notice_version": "v1",
  "player_confirmed_submit": true,
  "screenshot_upload": false,
  "recent_logs_upload": false,
  "contact_upload": false,
  "recent_logs_dropped": false,
  "contact_dropped": false,
  "submitted_at": "2026-06-10T01:00:02Z"
}

The only accepted consent fields are screenshot_upload, recent_logs_upload, and contact_upload. Payloads containing the removed Alpha fields include_screenshot, include_recent_logs, or include_contact are rejected.

Baseline notice

When players submit feedback, show a summary of the information that will be uploaded before the final submit action. echo-nebula uploads the description they entered and basic technical information such as game version, platform, device information, current scene, and submission time to the game developer team. The current screenshot or recent logs are uploaded only when the player selects the corresponding options. A screenshot can include visible game screen information, player-visible UI, names, chat, or other in-game content. Contact information is optional and is used only if the developer needs to follow up. Tell players how to contact the developer for deletion requests, follow-up contact changes, or privacy questions. Do not ask players to include passwords, payment information, identity documents, access tokens, or other sensitive information.

Screenshot upload is a second step after the report is accepted:

curl -X POST "http://localhost:4000/v1/feedback/reports/fbr_demo/attachments" \
  -H "X-Project-Key: enb_pk_xxx" \
  -H "Idempotency-Key: screenshot-fbr-demo" \
  -F "type=screenshot" \
  -F "file=@screenshot.png"

Only call that endpoint when the saved consent snapshot has screenshot_upload: true.

Drop-vs-reject behavior

The API rejects a report when player_confirmed_submit is not true. If a client sends contact information or inline recent_logs while contact_upload or recent_logs_upload is false, the server stores the report but drops those fields and records contact_dropped: true or recent_logs_dropped: true in the saved consent snapshot. Screenshot and recent-log attachment uploads are rejected when the matching consent flag is false.

Common mistakes

Next step

Read Offline queue.

Data lifecycle