lol.folk.profile

folk.lol

Schema Diff

+14 -0

From

CID
bafyreidxuv5tgfw...
Indexed At
2026-08-15 18:12 UTC
View this version

To

CID
bafyreib4r5q2wns...
Indexed At
2026-08-16 09:16 UTC
View this version

Compatibility Analysis

Backward Compatible

Backward compatible. 4 non-breaking changes.

Non-Breaking Changes (4)
  • AddedVertex AddedVertex { vertex_id: "lol.folk.profile:body.avatar" }
  • AddedVertex AddedVertex { vertex_id: "lol.folk.profile:body.updatedAt" }
  • AddedEdge AddedEdge { src: "lol.folk.profile:body", tgt: "lol.folk.profile:body.avatar", kind: "prop", name: Some("avatar") }
  • AddedEdge AddedEdge { src: "lol.folk.profile:body", tgt: "lol.folk.profile:body.updatedAt", kind: "prop", name: Some("updatedAt") }

Migration Guidance

Added Elements

  • AddedVertex { vertex_id: "lol.folk.profile:body.avatar" }
  • AddedVertex { vertex_id: "lol.folk.profile:body.updatedAt" }

Additional Notes

  • Non-breaking: AddedEdge { src: "lol.folk.profile:body", tgt: "lol.folk.profile:body.avatar", kind: "prop", name: Some("avatar") }
  • Non-breaking: AddedEdge { src: "lol.folk.profile:body", tgt: "lol.folk.profile:body.updatedAt", kind: "prop", name: Some("updatedAt") }
1 1
{
2 2
  "id": "lol.folk.profile",
3 3
  "defs": {
4 4
    "main": {
5 5
      "key": "literal:self",
6 6
      "type": "record",
7 7
      "record": {
8 8
        "type": "object",
9 9
        "properties": {
10 +
          "avatar": {
11 +
            "type": "blob",
12 +
            "accept": [
13 +
              "image/webp",
14 +
              "image/png"
15 +
            ],
16 +
            "maxSize": 262144,
17 +
            "description": "The player's portrait, already composited over its background. A rendered image rather than the traits behind it, so any client can draw a FOLK player with one fetch and no knowledge of our art. The traits themselves stay in the game's own database, where the editor needs them."
18 +
          },
19 +
          "updatedAt": {
20 +
            "type": "string",
21 +
            "format": "datetime",
22 +
            "description": "When this record last changed. The record is rewritten in place on every rename or avatar edit, so without this a reader cannot tell a current profile from a stale one."
23 +
          },
10 24
          "displayName": {
11 25
            "type": "string",
12 26
            "maxLength": 640,
13 27
            "description": "In-game display name.",
14 28
            "maxGraphemes": 64
15 29
          }
16 30
        }
17 31
      },
18 32
      "description": "A player's FOLK profile, stored in the player's own repository. The collection identifies the game: the NSID authority reverses to folk.lol, whose repo holds the lol.folk.game record. Presence of this record is itself the signal that the account plays FOLK, so every field is optional."
19 33
    }
20 34
  },
21 35
  "$type": "com.atproto.lexicon.schema",
22 36
  "lexicon": 1
23 37
}

Compare Other Versions

Lexicon Garden

@