# dev.pythonplayer123.music.love

> The author loves one track. The server writer keeps at most one love per (artist key, track key) per DID; unlove deletes every matching love record. Loves written by other apps are indexed with the same proof rules.

- Kind: record
- Record key: tid
- Authority: music.pythonplayer123.dev
- Lexicon: 1
- Published by [pythonplayer123.dev](https://lexicon.garden/identity/did:plc:gsichz64a5qpjvmjktkltkw2), the NSID's authority

## Links

- [Documentation](https://lexicon.garden/lexicon/did:plc:gsichz64a5qpjvmjktkltkw2/dev.pythonplayer123.music.love)
- [Schema JSON](https://lexicon.garden/lexicon/did:plc:gsichz64a5qpjvmjktkltkw2/dev.pythonplayer123.music.love/schema.json)
- [Analytics](https://lexicon.garden/lexicon/did:plc:gsichz64a5qpjvmjktkltkw2/dev.pythonplayer123.music.love/analytics)

## Record (`dev.pythonplayer123.music.love`)

Type: record · key tid

### Properties

- `album` (string): If present, raw 1–256 Unicode scalar values, and nonempty after trimming; enforced by the validator.
  - Constraints: minLength: 1, maxLength: 1024
- `artist` (string, required): Raw 1–256 Unicode scalar values, and nonempty after trimming; the scrobble limits, enforced by the validator.
  - Constraints: minLength: 1, maxLength: 1024
- `createdAt` (string · datetime, required): Explicit UTC RFC3339, from 1970-01-01 through event receipt time plus 300 seconds inclusive.
- `recordingMbid` (string): Optional unverified recording UUID; runtime validates UUID syntax.
- `track` (string, required): Raw 1–256 Unicode scalar values, and nonempty after trimming; enforced by the validator.
  - Constraints: minLength: 1, maxLength: 1024

## Schema

```json
{
  "$type": "com.atproto.lexicon.schema",
  "defs": {
    "main": {
      "description": "The author loves one track. The server writer keeps at most one love per (artist key, track key) per DID; unlove deletes every matching love record. Loves written by other apps are indexed with the same proof rules.",
      "key": "tid",
      "record": {
        "properties": {
          "album": {
            "description": "If present, raw 1–256 Unicode scalar values, and nonempty after trimming; enforced by the validator.",
            "maxLength": 1024,
            "minLength": 1,
            "type": "string"
          },
          "artist": {
            "description": "Raw 1–256 Unicode scalar values, and nonempty after trimming; the scrobble limits, enforced by the validator.",
            "maxLength": 1024,
            "minLength": 1,
            "type": "string"
          },
          "createdAt": {
            "description": "Explicit UTC RFC3339, from 1970-01-01 through event receipt time plus 300 seconds inclusive.",
            "format": "datetime",
            "type": "string"
          },
          "recordingMbid": {
            "description": "Optional unverified recording UUID; runtime validates UUID syntax.",
            "type": "string"
          },
          "track": {
            "description": "Raw 1–256 Unicode scalar values, and nonempty after trimming; enforced by the validator.",
            "maxLength": 1024,
            "minLength": 1,
            "type": "string"
          }
        },
        "required": [
          "artist",
          "track",
          "createdAt"
        ],
        "type": "object"
      },
      "type": "record"
    }
  },
  "description": "Schema-v1 loved track (ADR 0005 §6.3, B12, B13). This ID is fixture-only; production requires an owner-controlled prefix.",
  "id": "dev.pythonplayer123.music.love",
  "lexicon": 1
}
```
