social.dracome.catalog.submission.work

dracome.social

Schema Diff

+1 -0

From

CID
bafyreidqsjx5yvl...
Indexed At
2026-10-14 19:42 UTC
View this version

To

CID
bafyreie6bfozki6...
Indexed At
2026-10-14 19:54 UTC
View this version

Compatibility Analysis

Breaking Changes Detected

1 breaking change, 0 non-breaking changes.

Breaking Changes (1)
  • ConstraintAdded ConstraintAdded { vertex_id: "social.dracome.catalog.submission.work:body.genres:items", sort: "maxLength", value: "64" }

Migration Guidance

Constraint Changes

  • ConstraintAdded ConstraintAdded { vertex_id: "social.dracome.catalog.submission.work:body.genres:items", sort: "maxLength", value: "64" }
1 1
{
2 2
  "$type": "com.atproto.lexicon.schema",
3 3
  "defs": {
4 4
    "derivedFromRef": {
5 5
      "description": "A reference to the upstream record this submission's data was derived from. For Byline submissions, this points to the author's own pub.byline.book record. For direct Dracome submissions, derivedFrom is absent.",
6 6
      "properties": {
7 7
        "cid": {
8 8
          "description": "Optional content hash at time of derivation; informational only, detects drift.",
9 9
          "format": "cid",
10 10
          "type": "string"
11 11
        },
12 12
        "nsid": {
13 13
          "description": "Optional NSID of the referenced record's lexicon (e.g. 'pub.byline.book'); informational, since source shapes vary per trusted app.",
14 14
          "format": "nsid",
15 15
          "type": "string"
16 16
        },
17 17
        "uri": {
18 18
          "description": "AT-URI of the referenced record.",
19 19
          "format": "at-uri",
20 20
          "type": "string"
21 21
        }
22 22
      },
23 23
      "required": [
24 24
        "uri"
25 25
      ],
26 26
      "type": "object"
27 27
    },
28 28
    "main": {
29 29
      "description": "A submission record carrying candidate catalog data for a work, published by a trusted submitter to their own PDS. Repeatable; a submitter may create, update, or delete work-submission records over time.",
30 30
      "key": "tid",
31 31
      "record": {
32 32
        "properties": {
33 33
          "contributors": {
34 34
            "description": "Required ordered list of credited contributors with roles, each carrying a resolvable profile reference.",
35 35
            "items": {
36 36
              "ref": "social.dracome.contributor.defs#creditedContributor",
37 37
              "type": "ref"
38 38
            },
39 39
            "maxLength": 64,
40 40
            "minLength": 1,
41 41
            "type": "array"
42 42
          },
43 43
          "coverUri": {
44 44
            "description": "Optional URL to a cover image for the work, hosted by the submitter. Runtime validation MUST restrict this to https:// URLs.",
45 45
            "format": "uri",
46 46
            "type": "string"
47 47
          },
48 48
          "createdAt": {
49 49
            "description": "ISO 8601 UTC timestamp with trailing Z when this record was created.",
50 50
            "format": "datetime",
51 51
            "type": "string"
52 52
          },
53 53
          "derivedFrom": {
54 54
            "description": "Optional reference to the record this submission's data was derived from (e.g., a pub.byline.book record for Byline submissions). Carries no meaning to Dracome's ingestion; exists for downstream consumers to walk provenance.",
55 55
            "ref": "#derivedFromRef",
56 56
            "type": "ref"
57 57
          },
58 58
          "description": {
59 59
            "description": "Optional free-text description or summary of the work.",
60 60
            "maxLength": 8192,
61 61
            "type": "string"
62 62
          },
63 63
          "firstPublicationDate": {
64 64
            "description": "Optional original publication date of the work, at whatever precision is known (e.g., year only, or full date).",
65 65
            "maxLength": 64,
66 66
            "type": "string"
67 67
          },
68 68
          "genres": {
69 69
            "description": "Optional controlled list of genres, including subgenres. Known values form a controlled vocabulary that may grow; consumers MUST tolerate unknown values. Free-text subject tags are in the subjects field instead.",
70 70
            "items": {
71 71
              "knownValues": [
72 72
                "romance",
73 73
                "romantic_comedy",
74 74
                "contemporary_romance",
75 75
                "workplace_romance",
76 76
                "wholesome_clean_romance",
77 77
                "college_university_romance",
78 78
                "historical_romance",
79 79
                "western_rural_romance",
80 80
                "love_triangle_romance",
81 81
                "unlikely_lovers_romance",
82 82
                "romantic_suspense",
83 83
                "sports_romance",
84 84
                "uniform_romance",
85 85
                "medical_romance",
86 86
                "rich_famous_romance",
87 87
                "polyamory_romance",
88 88
                "fantasy_paranormal_romance",
89 89
                "time_travel_romance",
90 90
                "dark_romance",
91 91
                "bad_boy_bad_girl_romance",
92 92
                "erotic_romance",
93 93
                "fantasy",
94 94
                "science_fiction",
95 95
                "crime_mystery",
96 96
                "thriller_suspense",
97 97
                "horror",
98 98
                "biography",
99 99
                "history",
100 100
                "self_help",
101 101
                "young_adult",
102 102
                "childrens",
103 103
                "reference",
104 104
                "religion_spirituality"
105 105
              ],
106 +
              "maxLength": 64,
106 107
              "type": "string"
107 108
            },
108 109
            "maxLength": 8,
109 110
            "type": "array"
110 111
          },
111 112
          "identifiers": {
112 113
            "description": "Optional external identifiers (ISBN, Open Library key, etc.), plus the submitter's proprietary identifier (e.g. bylinePub, dracomeKey).",
113 114
            "items": {
114 115
              "ref": "social.dracome.work.defs#catalogIdentifier",
115 116
              "type": "ref"
116 117
            },
117 118
            "maxLength": 16,
118 119
            "type": "array"
119 120
          },
120 121
          "sourceUri": {
121 122
            "description": "Optional URL to this work's page on the submitter's own site.",
122 123
            "format": "uri",
123 124
            "type": "string"
124 125
          },
125 126
          "subjects": {
126 127
            "description": "Optional free-text subject and topic tags.",
127 128
            "items": {
128 129
              "maxLength": 512,
129 130
              "type": "string"
130 131
            },
131 132
            "maxLength": 32,
132 133
            "type": "array"
133 134
          },
134 135
          "subtitle": {
135 136
            "description": "Optional secondary title.",
136 137
            "maxLength": 1024,
137 138
            "type": "string"
138 139
          },
139 140
          "title": {
140 141
            "description": "Primary title of the work.",
141 142
            "maxLength": 1024,
142 143
            "type": "string"
143 144
          },
144 145
          "updatedAt": {
145 146
            "description": "Optional ISO 8601 UTC timestamp with trailing Z when this record was last updated by republishing.",
146 147
            "format": "datetime",
147 148
            "type": "string"
148 149
          }
149 150
        },
150 151
        "required": [
151 152
          "title",
152 153
          "contributors",
153 154
          "createdAt"
154 155
        ],
155 156
        "type": "object"
156 157
      },
157 158
      "type": "record"
158 159
    }
159 160
  },
160 161
  "id": "social.dracome.catalog.submission.work",
161 162
  "lexicon": 1
162 163
}

Compare Other Versions

Lexicon Garden

@