com.cultureblocs.venue.profile
Schema Diff
+11 -1
Compatibility Analysis
Backward Compatible
Backward compatible. 18 non-breaking changes.
Non-Breaking Changes (18)
- AddedVertex AddedVertex { vertex_id: "com.cultureblocs.venue.profile:body.location" }
- AddedVertex AddedVertex { vertex_id: "com.cultureblocs.venue.profile:body.location:variant0" }
- AddedVertex AddedVertex { vertex_id: "com.cultureblocs.venue.profile:body.location:variant1" }
- AddedVertex AddedVertex { vertex_id: "com.cultureblocs.venue.profile:body.location:variant2" }
- AddedVertex AddedVertex { vertex_id: "com.cultureblocs.venue.profile:body.location:variant3" }
- AddedVertex AddedVertex { vertex_id: "community.lexicon.location.address" }
- AddedVertex AddedVertex { vertex_id: "community.lexicon.location.fsq" }
- AddedVertex AddedVertex { vertex_id: "community.lexicon.location.geo" }
- AddedVertex AddedVertex { vertex_id: "community.lexicon.location.hthree" }
- AddedEdge AddedEdge { src: "com.cultureblocs.venue.profile:body", tgt: "com.cultureblocs.venue.profile:body.location", kind: "prop", name: Some("location") }
- AddedEdge AddedEdge { src: "com.cultureblocs.venue.profile:body.location", tgt: "com.cultureblocs.venue.profile:body.location:variant0", kind: "variant", name: Some("community.lexicon.location.address") }
- AddedEdge AddedEdge { src: "com.cultureblocs.venue.profile:body.location", tgt: "com.cultureblocs.venue.profile:body.location:variant1", kind: "variant", name: Some("community.lexicon.location.geo") }
- AddedEdge AddedEdge { src: "com.cultureblocs.venue.profile:body.location", tgt: "com.cultureblocs.venue.profile:body.location:variant2", kind: "variant", name: Some("community.lexicon.location.fsq") }
- AddedEdge AddedEdge { src: "com.cultureblocs.venue.profile:body.location", tgt: "com.cultureblocs.venue.profile:body.location:variant3", kind: "variant", name: Some("community.lexicon.location.hthree") }
- AddedEdge AddedEdge { src: "com.cultureblocs.venue.profile:body.location:variant0", tgt: "community.lexicon.location.address", kind: "ref", name: None }
- AddedEdge AddedEdge { src: "com.cultureblocs.venue.profile:body.location:variant1", tgt: "community.lexicon.location.geo", kind: "ref", name: None }
- AddedEdge AddedEdge { src: "com.cultureblocs.venue.profile:body.location:variant2", tgt: "community.lexicon.location.fsq", kind: "ref", name: None }
- AddedEdge AddedEdge { src: "com.cultureblocs.venue.profile:body.location:variant3", tgt: "community.lexicon.location.hthree", kind: "ref", name: None }
Migration Guidance
Added Elements
AddedVertex { vertex_id: "com.cultureblocs.venue.profile:body.location" }AddedVertex { vertex_id: "com.cultureblocs.venue.profile:body.location:variant0" }AddedVertex { vertex_id: "com.cultureblocs.venue.profile:body.location:variant1" }AddedVertex { vertex_id: "com.cultureblocs.venue.profile:body.location:variant2" }AddedVertex { vertex_id: "com.cultureblocs.venue.profile:body.location:variant3" }AddedVertex { vertex_id: "community.lexicon.location.address" }AddedVertex { vertex_id: "community.lexicon.location.fsq" }AddedVertex { vertex_id: "community.lexicon.location.geo" }AddedVertex { vertex_id: "community.lexicon.location.hthree" }
Additional Notes
- Non-breaking: AddedEdge { src: "com.cultureblocs.venue.profile:body", tgt: "com.cultureblocs.venue.profile:body.location", kind: "prop", name: Some("location") }
- Non-breaking: AddedEdge { src: "com.cultureblocs.venue.profile:body.location", tgt: "com.cultureblocs.venue.profile:body.location:variant0", kind: "variant", name: Some("community.lexicon.location.address") }
- Non-breaking: AddedEdge { src: "com.cultureblocs.venue.profile:body.location", tgt: "com.cultureblocs.venue.profile:body.location:variant1", kind: "variant", name: Some("community.lexicon.location.geo") }
- Non-breaking: AddedEdge { src: "com.cultureblocs.venue.profile:body.location", tgt: "com.cultureblocs.venue.profile:body.location:variant2", kind: "variant", name: Some("community.lexicon.location.fsq") }
- Non-breaking: AddedEdge { src: "com.cultureblocs.venue.profile:body.location", tgt: "com.cultureblocs.venue.profile:body.location:variant3", kind: "variant", name: Some("community.lexicon.location.hthree") }
- Non-breaking: AddedEdge { src: "com.cultureblocs.venue.profile:body.location:variant0", tgt: "community.lexicon.location.address", kind: "ref", name: None }
- Non-breaking: AddedEdge { src: "com.cultureblocs.venue.profile:body.location:variant1", tgt: "community.lexicon.location.geo", kind: "ref", name: None }
- Non-breaking: AddedEdge { src: "com.cultureblocs.venue.profile:body.location:variant2", tgt: "community.lexicon.location.fsq", kind: "ref", name: None }
- Non-breaking: AddedEdge { src: "com.cultureblocs.venue.profile:body.location:variant3", tgt: "community.lexicon.location.hthree", kind: "ref", name: None }
1
1
{
2
2
"$type": "com.atproto.lexicon.schema",
3
3
"defs": {
4
4
"main": {
5
-
"description": "A venue or organiser as a publishing party: the small amount a grassroots space needs to be findable and pointable-at. Publishing this does not make the venue an audience-data platform — audiences publish their own beads referencing the venue's listings, and the venue reads public references. Nothing about an attendee is ever collected here.",
5
+
"description": "A venue or organiser as a publishing party: the small amount a grassroots space needs to be findable and pointable-at. Publishing this does not make the venue an audience-data platform — audiences publish their own beads referencing the venue's listings, and the venue reads public references. Nothing about an attendee is ever collected here. Events at this venue are published as community.lexicon.calendar.event records; this profile carries what a venue needs that an event does not — capacity and access, which funders and licensing ask for.",
6
6
"key": "literal:self",
7
7
"record": {
8
8
"properties": {
9
9
"accessibility": {
10
10
"description": "Freeform access notes: step-free entry, accessible toilet, hearing loop, quiet room.",
11
11
"maxGraphemes": 1000,
12
12
"type": "string"
13
13
},
14
14
"address": {
15
15
"maxGraphemes": 500,
16
16
"type": "string"
17
17
},
18
18
"capacity": {
19
19
"description": "Approximate standing/seated capacity. Small venues are repeatedly asked for this by funders and licensing.",
20
20
"type": "integer"
21
21
},
22
22
"createdAt": {
23
23
"description": "When this record was first stamped. The only immutable field: everything else may be revised by publishing a new commit.",
24
24
"format": "datetime",
25
25
"type": "string"
26
26
},
27
27
"description": {
28
28
"maxGraphemes": 2000,
29
29
"type": "string"
30
30
},
31
31
"externalIds": {
32
32
"description": "Wikidata, MusicBrainz place, charity or company number.",
33
33
"items": {
34
34
"ref": "com.cultureblocs.defs#externalId",
35
35
"type": "ref"
36
36
},
37
37
"maxLength": 20,
38
38
"type": "array"
39
39
},
40
40
"links": {
41
41
"description": "Website, socials, ticketing, listings page.",
42
42
"items": {
43
43
"ref": "com.cultureblocs.defs#linkRef",
44
44
"type": "ref"
45
45
},
46
46
"maxLength": 8,
47
47
"type": "array"
48
48
},
49
+
"location": {
50
+
"description": "Where the venue is, using the shared location objects of the open social web so other apps understand it. Preferred over the legacy `place`/`address` fields.",
51
+
"refs": [
52
+
"community.lexicon.location.address",
53
+
"community.lexicon.location.geo",
54
+
"community.lexicon.location.fsq",
55
+
"community.lexicon.location.hthree"
56
+
],
57
+
"type": "union"
58
+
},
49
59
"name": {
50
60
"maxGraphemes": 300,
51
61
"type": "string"
52
62
},
53
63
"place": {
54
64
"description": "Where it is. Venues are public places: geo precision here is normally 'exact'.",
55
65
"ref": "com.cultureblocs.defs#placeRef",
56
66
"type": "ref"
57
67
},
58
68
"tags": {
59
69
"items": {
60
70
"maxGraphemes": 64,
61
71
"type": "string"
62
72
},
63
73
"maxLength": 8,
64
74
"type": "array"
65
75
}
66
76
},
67
77
"required": [
68
78
"name",
69
79
"createdAt"
70
80
],
71
81
"type": "object"
72
82
},
73
83
"type": "record"
74
84
}
75
85
},
76
86
"id": "com.cultureblocs.venue.profile",
77
87
"lexicon": 1
78
88
}