id.sifa.profile.presentationDelivery
Schema Diff
+5 -0
Compatibility Analysis
Backward Compatible
Backward compatible. 3 non-breaking changes.
Non-Breaking Changes (3)
- AddedVertex AddedVertex { vertex_id: "id.sifa.profile.presentationDelivery:body.sameAs" }
- AddedEdge AddedEdge { src: "id.sifa.profile.presentationDelivery:body", tgt: "id.sifa.profile.presentationDelivery:body.sameAs", kind: "prop", name: Some("sameAs") }
- AddedEdge AddedEdge { src: "id.sifa.profile.presentationDelivery:body.sameAs", tgt: "id.sifa.defs#externalRecordRef", kind: "ref", name: None }
Migration Guidance
Added Elements
AddedVertex { vertex_id: "id.sifa.profile.presentationDelivery:body.sameAs" }
Additional Notes
- Non-breaking: AddedEdge { src: "id.sifa.profile.presentationDelivery:body", tgt: "id.sifa.profile.presentationDelivery:body.sameAs", kind: "prop", name: Some("sameAs") }
- Non-breaking: AddedEdge { src: "id.sifa.profile.presentationDelivery:body.sameAs", tgt: "id.sifa.defs#externalRecordRef", kind: "ref", name: None }
1
1
{
2
2
"id": "id.sifa.profile.presentationDelivery",
3
3
"defs": {
4
4
"main": {
5
5
"key": "tid",
6
6
"type": "record",
7
7
"record": {
8
8
"type": "object",
9
9
"required": [
10
10
"createdAt"
11
11
],
12
12
"properties": {
13
13
"date": {
14
14
"type": "string",
15
15
"maxLength": 10,
16
16
"description": "Calendar date of this delivery as YYYY-MM-DD (day only, no time). Future dates are allowed for upcoming deliveries. The day-only shape is enforced at the app layer. On the linked branch, derived from the event's startsAt in the event's own offset."
17
17
},
18
18
"mode": {
19
19
"type": "string",
20
20
"description": "Whether this delivery was in person, virtual, or hybrid. Stores the full community.lexicon.calendar.event mode token; absent means in person.",
21
21
"knownValues": [
22
22
"community.lexicon.calendar.event#inperson",
23
23
"community.lexicon.calendar.event#virtual",
24
24
"community.lexicon.calendar.event#hybrid"
25
25
]
26
26
},
27
27
"role": {
28
28
"type": "string",
29
29
"maxLength": 640,
30
30
"description": "The presenter's role in this delivery. Open set; see id.sifa.defs#presentationRole.",
31
31
"knownValues": [
32
32
"id.sifa.defs#presenter",
33
33
"id.sifa.defs#panelist",
34
34
"id.sifa.defs#keynote",
35
35
"id.sifa.defs#workshop",
36
36
"id.sifa.defs#host"
37
37
],
38
38
"maxGraphemes": 64
39
39
},
40
40
"links": {
41
41
"type": "array",
42
42
"items": {
43
43
"ref": "id.sifa.defs#presentationLink",
44
44
"type": "ref"
45
45
},
46
46
"maxLength": 20,
47
47
"description": "Links specific to this delivery, such as the recording of this occasion."
48
48
},
49
49
"title": {
50
50
"type": "string",
51
51
"maxLength": 3000,
52
52
"description": "Fallback title for this delivery, used when no presentationRef is set.",
53
53
"maxGraphemes": 300
54
54
},
55
+
"sameAs": {
56
+
"ref": "id.sifa.defs#externalRecordRef",
57
+
"type": "ref",
58
+
"description": "The same session as recorded on another person's profile. Set when you keep your own entry for work someone else has also recorded, so consumers can tell the two describe one thing rather than showing it twice. Each side stays its own record: the other person cannot edit yours, and yours does not change theirs. Resolve by AT-URI, since they will keep editing their copy."
59
+
},
55
60
"status": {
56
61
"type": "string",
57
62
"description": "Scheduling status of this delivery, typically hydrated from a linked calendar event. Stores the full community.lexicon.calendar.event status token. Consumers should surface cancelled and postponed states.",
58
63
"knownValues": [
59
64
"community.lexicon.calendar.event#scheduled",
60
65
"community.lexicon.calendar.event#cancelled",
61
66
"community.lexicon.calendar.event#postponed",
62
67
"community.lexicon.calendar.event#rescheduled",
63
68
"community.lexicon.calendar.event#planned"
64
69
]
65
70
},
66
71
"address": {
67
72
"ref": "community.lexicon.location.address",
68
73
"type": "ref",
69
74
"description": "Structured delivery location. Sifa enforces ISO 3166-1 alpha-2 country codes at the app layer and surfaces country (for a flag) and locality (city); region, postalCode, and street are unused for deliveries. Takes precedence over the legacy location string when present."
70
75
},
71
76
"eventRef": {
72
77
"ref": "id.sifa.defs#externalRecordRef",
73
78
"type": "ref",
74
79
"description": "Optional reference to a community.lexicon.calendar.event for this occasion. Display fields are hydrated live from the target by AT-URI, with the stored fields as a fallback when the target is unavailable."
75
80
},
76
81
"location": {
77
82
"type": "string",
78
83
"maxLength": 2560,
79
84
"description": "Legacy free-text display location (city, country, or venue), retained for dual-read. Prefer the structured address field. On the linked branch, composed from the calendar event's structured locations.",
80
85
"maxGraphemes": 256
81
86
},
82
87
"createdAt": {
83
88
"type": "string",
84
89
"format": "datetime",
85
90
"description": "Client-declared timestamp when this record was originally created."
86
91
},
87
92
"eventName": {
88
93
"type": "string",
89
94
"maxLength": 3000,
90
95
"description": "Name of the event or venue. On the linked branch, hydrated from the calendar event's name.",
91
96
"maxGraphemes": 300
92
97
},
93
98
"coSpeakers": {
94
99
"type": "array",
95
100
"items": {
96
101
"type": "string",
97
102
"format": "did"
98
103
},
99
104
"maxLength": 20,
100
105
"description": "DIDs of co-speakers who presented alongside the author at this occasion. Any atproto account is allowed; hydrated to profile cards on read and linked to the co-speaker's Sifa profile."
101
106
},
102
107
"presentationRef": {
103
108
"ref": "id.sifa.defs#externalRecordRef",
104
109
"type": "ref",
105
110
"description": "Optional reference to the id.sifa.profile.presentation (the content) delivered here. When set, title, duration, and audiences are taken from it."
106
111
}
107
112
}
108
113
},
109
114
"description": "Record representing a single occasion on which a presentation was delivered. This is the entry shown on a profile's activity timeline. At least one of presentationRef, title, or eventName is expected, enforced at the app layer."
110
115
}
111
116
},
112
117
"$type": "com.atproto.lexicon.schema",
113
118
"lexicon": 1,
114
119
"description": "An occasion on which a person delivered a presentation: a specific talk, panel, workshop, or demo at an event. References the reusable id.sifa.profile.presentation content and, optionally, the calendar event."
115
120
}