social.dracome.catalog.submission.work
Schema Diff
+1 -0
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
}