# app.tempomusic.actor.defs

> Published by [lexicons.tempomusic.fan](https://lexicon.garden/identity/did:plc:pxsuqmultto34oks44m2lgxm)

✓ This is the authoritative definition for this NSID.

## Links

- [View on Lexicon Garden](https://lexicon.garden/lexicon/did:plc:pxsuqmultto34oks44m2lgxm/app.tempomusic.actor.defs)
- [Documentation](https://lexicon.garden/lexicon/did:plc:pxsuqmultto34oks44m2lgxm/app.tempomusic.actor.defs/docs)
- [Examples](https://lexicon.garden/lexicon/did:plc:pxsuqmultto34oks44m2lgxm/app.tempomusic.actor.defs/examples)

## Definitions

### `app.tempomusic.actor.defs#analyticsConsentPreferences`

**Type**: `object`

The viewer's analytics consent preferences. Private appview data — never written to the public PDS repo. Business fields only: the last-write-wins clock travels as a sibling `updatedAtMicros` field on the get/put envelopes, never inside this document.

| Property | Type | Required | Description |
|----------|------|----------|-------------|
| `careMode` | `boolean` | Yes | The iCARE switch. OFF means the user does not want consent prompts: analytics are collected silently. ON enables per-category consent capture. |
| `shareAll` | `boolean` | Yes | Master analytics switch. ON by default during early access; can only be turned OFF through the easter-egg dialog. |
| `decisions` | `unknown` | Yes | Open string-to-string map of per-category consent decisions keyed by category wire name (e.g. 'account', 'publishing'). Values are 'granted' or 'refused'. A pending decision is an absent key — never serialized. Unknown categories or values must be ignored by readers (catalog evolution in both directions). |
| `easterEggDiscovered` | `boolean` | Yes | True once the opt-out easter egg has been shown to this account at least once. Drives the non-controllable meta-category row in the settings panel. |

## Raw Schema

```json
{
  "id": "app.tempomusic.actor.defs",
  "defs": {
    "analyticsConsentPreferences": {
      "type": "object",
      "required": [
        "shareAll",
        "careMode",
        "decisions",
        "easterEggDiscovered"
      ],
      "properties": {
        "careMode": {
          "type": "boolean",
          "description": "The iCARE switch. OFF means the user does not want consent prompts: analytics are collected silently. ON enables per-category consent capture."
        },
        "shareAll": {
          "type": "boolean",
          "description": "Master analytics switch. ON by default during early access; can only be turned OFF through the easter-egg dialog."
        },
        "decisions": {
          "type": "unknown",
          "description": "Open string-to-string map of per-category consent decisions keyed by category wire name (e.g. 'account', 'publishing'). Values are 'granted' or 'refused'. A pending decision is an absent key — never serialized. Unknown categories or values must be ignored by readers (catalog evolution in both directions)."
        },
        "easterEggDiscovered": {
          "type": "boolean",
          "description": "True once the opt-out easter egg has been shown to this account at least once. Drives the non-controllable meta-category row in the settings panel."
        }
      },
      "description": "The viewer's analytics consent preferences. Private appview data — never written to the public PDS repo. Business fields only: the last-write-wins clock travels as a sibling `updatedAtMicros` field on the get/put envelopes, never inside this document."
    }
  },
  "$type": "com.atproto.lexicon.schema",
  "lexicon": 1
}
```
