{
  "title": "First-session game analytics event map",
  "version": "draft-2026-10-26",
  "status": "Proposed provider-independent design, not a tested SDK integration. Contains no player records.",
  "cohort_definition": "Define the eligible installation or account, first-session boundary, and funnel window before collecting results.",
  "shared_fields": ["schema_version", "build_version", "platform", "session_reference", "event_reference", "occurred_at"],
  "events": [
    {"name": "menu_ready", "trigger": "Main menu is available for interaction"},
    {"name": "tutorial_begin", "trigger": "Eligible player starts the tutorial", "fields": ["tutorial_version"]},
    {"name": "tutorial_complete", "trigger": "Defined tutorial completion condition is met", "fields": ["tutorial_version", "completion_path"]},
    {"name": "level_start", "trigger": "A playable level attempt begins", "fields": ["level_id", "attempt_reference"]},
    {"name": "level_end", "trigger": "The same attempt reaches a defined end", "fields": ["level_id", "attempt_reference", "outcome"]}
  ],
  "validation_checks": ["Compare the design with the chosen SDK contract", "Test one ordinary journey", "Test retries and duplicate delivery", "Test backgrounding, cancellation, and reconnecting", "Confirm starts and ends share an attempt reference", "Document missing delivery and consent exclusions", "Keep personal text and unnecessary identifiers out of payloads"],
  "synthetic_example_only": {"menu_ready_sessions": 100, "tutorial_begin_sessions": 80, "tutorial_complete_sessions": 50, "level_start_sessions": 45, "tutorial_completion_among_starters": "50 / 80 = 62.5%; these are invented counts, not real game results"}
}
