fm.freemix.actor.profile

lex-publisher.freemix.fm

Schema Diff

+5 -0

From

CID
bafyreidwhs7csd4...
Indexed At
2026-04-10 01:36 UTC
View this version

To

CID
bafyreifcxrmswek...
Indexed At
2026-08-23 19:23 UTC
View this version

Compatibility Analysis

Backward Compatible

Backward compatible. 2 non-breaking changes.

Non-Breaking Changes (2)
  • AddedVertex AddedVertex { vertex_id: "fm.freemix.actor.profile:body.avatarSeed" }
  • AddedEdge AddedEdge { src: "fm.freemix.actor.profile:body", tgt: "fm.freemix.actor.profile:body.avatarSeed", kind: "prop", name: Some("avatarSeed") }

Migration Guidance

Added Elements

  • AddedVertex { vertex_id: "fm.freemix.actor.profile:body.avatarSeed" }

Additional Notes

  • Non-breaking: AddedEdge { src: "fm.freemix.actor.profile:body", tgt: "fm.freemix.actor.profile:body.avatarSeed", kind: "prop", name: Some("avatarSeed") }
1 1
{
2 2
  "$type": "com.atproto.lexicon.schema",
3 3
  "defs": {
4 4
    "link": {
5 5
      "properties": {
6 6
        "label": {
7 7
          "description": "Link display label (e.g., 'Spotify', 'SoundCloud')",
8 8
          "maxLength": 50,
9 9
          "type": "string"
10 10
        },
11 11
        "url": {
12 12
          "description": "Link URL",
13 13
          "format": "uri",
14 14
          "maxLength": 3000,
15 15
          "type": "string"
16 16
        }
17 17
      },
18 18
      "required": [
19 19
        "label",
20 20
        "url"
21 21
      ],
22 22
      "type": "object"
23 23
    },
24 24
    "main": {
25 25
      "description": "FreeMix-specific profile data that overlays the user's Bluesky profile",
26 26
      "key": "literal:self",
27 27
      "record": {
28 28
        "properties": {
29 +
          "avatarSeed": {
30 +
            "description": "FM-730: seed the generative avatar placeholder is drawn from. Optional — absent means fall back to the DID/handle derivation. Never an empty string (an empty seed collapses the generator).",
31 +
            "maxLength": 256,
32 +
            "type": "string"
33 +
          },
29 34
          "avatarUrl": {
30 35
            "description": "Avatar URL (overrides Bluesky avatar on FreeMix)",
31 36
            "format": "uri",
32 37
            "maxLength": 3000,
33 38
            "type": "string"
34 39
          },
35 40
          "bio": {
36 41
            "description": "Artist bio (overrides Bluesky bio on FreeMix)",
37 42
            "maxLength": 1000,
38 43
            "type": "string"
39 44
          },
40 45
          "createdAt": {
41 46
            "description": "Record creation timestamp",
42 47
            "format": "datetime",
43 48
            "maxLength": 100,
44 49
            "type": "string"
45 50
          },
46 51
          "displayName": {
47 52
            "description": "Display name (overrides Bluesky display name on FreeMix)",
48 53
            "maxLength": 100,
49 54
            "type": "string"
50 55
          },
51 56
          "genres": {
52 57
            "description": "Artist's primary genres",
53 58
            "items": {
54 59
              "maxLength": 50,
55 60
              "type": "string"
56 61
            },
57 62
            "maxLength": 10,
58 63
            "type": "array"
59 64
          },
60 65
          "label": {
61 66
            "description": "Record label affiliation",
62 67
            "maxLength": 200,
63 68
            "type": "string"
64 69
          },
65 70
          "links": {
66 71
            "description": "External links (Spotify, SoundCloud, Bandcamp, etc.)",
67 72
            "items": {
68 73
              "ref": "#link",
69 74
              "type": "ref"
70 75
            },
71 76
            "maxLength": 10,
72 77
            "type": "array"
73 78
          },
74 79
          "proAffiliation": {
75 80
            "description": "PRO affiliation (e.g., BMI, ASCAP, PRS, GEMA)",
76 81
            "maxLength": 100,
77 82
            "type": "string"
78 83
          },
79 84
          "roles": {
80 85
            "description": "Artist roles (e.g., producer, DJ, vocalist)",
81 86
            "items": {
82 87
              "maxLength": 50,
83 88
              "type": "string"
84 89
            },
85 90
            "maxLength": 10,
86 91
            "type": "array"
87 92
          },
88 93
          "updatedAt": {
89 94
            "description": "Last update timestamp",
90 95
            "format": "datetime",
91 96
            "maxLength": 100,
92 97
            "type": "string"
93 98
          }
94 99
        },
95 100
        "required": [
96 101
          "createdAt"
97 102
        ],
98 103
        "type": "object"
99 104
      },
100 105
      "type": "record"
101 106
    }
102 107
  },
103 108
  "id": "fm.freemix.actor.profile",
104 109
  "lexicon": 1
105 110
}

Compare Other Versions

Lexicon Garden

@