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

Compare Other Versions

Lexicon Garden

@