org.anthers.work

anthers.org

Schema Diff

+3 -1

From

CID
bafyreif6j3ek2rk...
Indexed At
2026-09-11 02:13 UTC
View this version

To

CID
bafyreihtsnxr6fi...
Indexed At
2026-09-19 03:48 UTC
View this version

Compatibility Analysis

Breaking Changes Detected

1 breaking change, 0 non-breaking changes.

Breaking Changes (1)
  • ConstraintTightened ConstraintTightened { vertex_id: "org.anthers.work:body.kind", sort: "knownValues", old_value: "[\"text\",\"video\",\"audio\",\"image\",\"ebook\",\"game\",\"software\",\"physical\",\"service\"]", new_value: "[\"text\",\"video\",\"music\",\"audio\",\"image\",\"comic\",\"ebook\",\"game\",\"software\",\"physical\",\"service\"]" }

Migration Guidance

Constraint Changes

  • ConstraintTightened ConstraintTightened { vertex_id: "org.anthers.work:body.kind", sort: "knownValues", old_value: "[\"text\",\"video\",\"audio\",\"image\",\"ebook\",\"game\",\"software\",\"physical\",\"service\"]", new_value: "[\"text\",\"video\",\"music\",\"audio\",\"image\",\"comic\",\"ebook\",\"game\",\"software\",\"physical\",\"service\"]" }
1 1
{
2 2
  "$type": "com.atproto.lexicon.schema",
3 3
  "defs": {
4 4
    "access": {
5 5
      "description": "Whether reaching this work costs anything. ⚠️ A display hint and NEVER an authorization: it describes what a stranger would find, not what any particular viewer is entitled to, and a consumer that treats it as permission is wrong. An object rather than a bare string so that further context — such as where access is granted — can be added later without a breaking change.",
6 6
      "properties": {
7 7
        "state": {
8 8
          "description": "`open` — anyone may reach the work at no cost. `gated` — reaching it requires supporting the creator or buying it, on terms shown on the work's own page. Terms themselves are deliberately absent: a price shown apart from the total a person actually pays is misleading, and this record cannot control how a consumer renders it.",
9 9
          "knownValues": [
10 10
            "open",
11 11
            "gated"
12 12
          ],
13 13
          "maxLength": 32,
14 14
          "type": "string"
15 15
        }
16 16
      },
17 17
      "required": [
18 18
        "state"
19 19
      ],
20 20
      "type": "object"
21 21
    },
22 22
    "main": {
23 23
      "description": "One entry in a creator's Catalog — a game, video, album, essay, or other work they have released. This record is the public LISTING for that work: it says what the work is and where to reach it, and it never carries the work itself. It exists only while the work is publicly listed, and whether a particular person may open the work is decided by the service hosting it, never by this record.",
24 24
      "key": "tid",
25 25
      "record": {
26 26
        "properties": {
27 27
          "access": {
28 28
            "ref": "#access",
29 29
            "type": "ref"
30 30
          },
31 31
          "description": {
32 32
            "description": "The creator's own summary of the work. Plain text, so that every consumer can render it safely without a sanitizer.",
33 33
            "maxGraphemes": 3000,
34 34
            "maxLength": 30000,
35 35
            "type": "string"
36 36
          },
37 37
          "kind": {
38 -
            "description": "What sort of work this is, in the sense of how it is handled — which player or reader opens it. Named `kind` rather than `type` because a record already carries `$type`, and two differently-scoped `type` fields in one object is a needless trap for anyone reading the JSON. This is an open set: consumers must accept values not listed here, because new mediums are added over time.",
38 +
            "description": "What sort of work this is, in the sense of how it is handled — which player or reader opens it. Named `kind` rather than `type` because a record already carries `$type`, and two differently-scoped `type` fields in one object is a needless trap for anyone reading the JSON. `comic` and `music` are narrower than `ebook` and `audio`, which mean a book that is not a comic and audio that is not music. This is an open set: consumers must accept values not listed here, because new mediums are added over time.",
39 39
            "knownValues": [
40 40
              "text",
41 41
              "video",
42 +
              "music",
42 43
              "audio",
43 44
              "image",
45 +
              "comic",
44 46
              "ebook",
45 47
              "game",
46 48
              "software",
47 49
              "physical",
48 50
              "service"
49 51
            ],
50 52
            "maxLength": 64,
51 53
            "type": "string"
52 54
          },
53 55
          "releasedAt": {
54 56
            "description": "When the work was released to the public. This is the work's own date and the only one the record carries — record-creation time is already encoded in the record key, so a separate field for it would be a second, weaker answer to a question the key already answers.",
55 57
            "format": "datetime",
56 58
            "type": "string"
57 59
          },
58 60
          "title": {
59 61
            "description": "The work's name, as its creator wrote it. Plain text for the same reason the description is: every consumer should be able to render it without a sanitizer. Required and never empty — a listing that names nothing is worse than no listing, so a work without a title is not published rather than published anonymously.",
60 62
            "maxGraphemes": 300,
61 63
            "maxLength": 3000,
62 64
            "type": "string"
63 65
          },
64 66
          "url": {
65 67
            "description": "Where this work can be reached. Usually its page on the service hosting it; a creator hosting their own Catalog points at their own. Deliberately not assumed to be an anthers.org address, because a creator's work outliving any one host is the point.",
66 68
            "format": "uri",
67 69
            "type": "string"
68 70
          }
69 71
        },
70 72
        "required": [
71 73
          "kind",
72 74
          "title",
73 75
          "url",
74 76
          "releasedAt"
75 77
        ],
76 78
        "type": "object"
77 79
      },
78 80
      "type": "record"
79 81
    }
80 82
  },
81 83
  "id": "org.anthers.work",
82 84
  "lexicon": 1
83 85
}

Compare Other Versions

Lexicon Garden

@