com.cultureblocs.venue.profile

cultureblocs.com

Schema Diff

+11 -1

From

CID
bafyreihrkmcax37...
Indexed At
2026-07-27 13:19 UTC
View this version

To

CID
bafyreifvds3w4yf...
Indexed At
2026-08-05 15:09 UTC
View this version

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
  "id": "com.cultureblocs.venue.profile",
3 3
  "defs": {
4 4
    "main": {
5 5
      "key": "literal:self",
6 6
      "type": "record",
7 7
      "record": {
8 8
        "type": "object",
9 9
        "required": [
10 10
          "name",
11 11
          "createdAt"
12 12
        ],
13 13
        "properties": {
14 14
          "name": {
15 15
            "type": "string",
16 16
            "maxGraphemes": 300
17 17
          },
18 18
          "tags": {
19 19
            "type": "array",
20 20
            "items": {
21 21
              "type": "string",
22 22
              "maxGraphemes": 64
23 23
            },
24 24
            "maxLength": 8
25 25
          },
26 26
          "links": {
27 27
            "type": "array",
28 28
            "items": {
29 29
              "ref": "com.cultureblocs.defs#linkRef",
30 30
              "type": "ref"
31 31
            },
32 32
            "maxLength": 8,
33 33
            "description": "Website, socials, ticketing, listings page."
34 34
          },
35 35
          "place": {
36 36
            "ref": "com.cultureblocs.defs#placeRef",
37 37
            "type": "ref",
38 38
            "description": "Where it is. Venues are public places: geo precision here is normally 'exact'."
39 39
          },
40 40
          "address": {
41 41
            "type": "string",
42 42
            "maxGraphemes": 500
43 43
          },
44 44
          "capacity": {
45 45
            "type": "integer",
46 46
            "description": "Approximate standing/seated capacity. Small venues are repeatedly asked for this by funders and licensing."
47 47
          },
48 +
          "location": {
49 +
            "refs": [
50 +
              "community.lexicon.location.address",
51 +
              "community.lexicon.location.geo",
52 +
              "community.lexicon.location.fsq",
53 +
              "community.lexicon.location.hthree"
54 +
            ],
55 +
            "type": "union",
56 +
            "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."
57 +
          },
48 58
          "createdAt": {
49 59
            "type": "string",
50 60
            "format": "datetime",
51 61
            "description": "When this record was first stamped. The only immutable field: everything else may be revised by publishing a new commit."
52 62
          },
53 63
          "description": {
54 64
            "type": "string",
55 65
            "maxGraphemes": 2000
56 66
          },
57 67
          "externalIds": {
58 68
            "type": "array",
59 69
            "items": {
60 70
              "ref": "com.cultureblocs.defs#externalId",
61 71
              "type": "ref"
62 72
            },
63 73
            "maxLength": 20,
64 74
            "description": "Wikidata, MusicBrainz place, charity or company number."
65 75
          },
66 76
          "accessibility": {
67 77
            "type": "string",
68 78
            "description": "Freeform access notes: step-free entry, accessible toilet, hearing loop, quiet room.",
69 79
            "maxGraphemes": 1000
70 80
          }
71 81
        }
72 82
      },
73 -
      "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."
83 +
      "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."
74 84
    }
75 85
  },
76 86
  "$type": "com.atproto.lexicon.schema",
77 87
  "lexicon": 1
78 88
}

Compare Other Versions

Lexicon Garden

@