From
bafyreieclgoj52lzzfngaatbgzghtsgwpyku6d4tilh65tuj73tflhkeuu
indexed 2026-07-27 13:18 UTC
View this version
To
bafyreigt25ujvgopu6ffgnjwpmhrtlaerectlqeduk7fodle6huvtnkyzi
indexed 2026-11-06 18:26 UTC
View this version
Compatibility
backward compatible Backward compatible. 11 non-breaking changes.
Non-breaking changes (11)
- AddedVertex AddedVertex { vertex_id: "com.cultureblocs.creative.profile:body.activeIn" }
- AddedVertex AddedVertex { vertex_id: "com.cultureblocs.creative.profile:body.activeIn:items" }
- AddedVertex AddedVertex { vertex_id: "com.cultureblocs.creative.profile:body.basedIn" }
- AddedVertex AddedVertex { vertex_id: "com.cultureblocs.creative.profile:body.basedIn:items" }
- AddedVertex AddedVertex { vertex_id: "com.cultureblocs.defs#areaRef" }
- AddedEdge AddedEdge { src: "com.cultureblocs.creative.profile:body", tgt: "com.cultureblocs.creative.profile:body.activeIn", kind: "prop", name: Some("activeIn") }
- AddedEdge AddedEdge { src: "com.cultureblocs.creative.profile:body", tgt: "com.cultureblocs.creative.profile:body.basedIn", kind: "prop", name: Some("basedIn") }
- AddedEdge AddedEdge { src: "com.cultureblocs.creative.profile:body.activeIn", tgt: "com.cultureblocs.creative.profile:body.activeIn:items", kind: "items", name: None }
- AddedEdge AddedEdge { src: "com.cultureblocs.creative.profile:body.activeIn:items", tgt: "com.cultureblocs.defs#areaRef", kind: "ref", name: None }
- AddedEdge AddedEdge { src: "com.cultureblocs.creative.profile:body.basedIn", tgt: "com.cultureblocs.creative.profile:body.basedIn:items", kind: "items", name: None }
- AddedEdge AddedEdge { src: "com.cultureblocs.creative.profile:body.basedIn:items", tgt: "com.cultureblocs.defs#areaRef", kind: "ref", name: None }
Migration guidance
Added
AddedVertex { vertex_id: "com.cultureblocs.creative.profile:body.activeIn" }AddedVertex { vertex_id: "com.cultureblocs.creative.profile:body.activeIn:items" }AddedVertex { vertex_id: "com.cultureblocs.creative.profile:body.basedIn" }AddedVertex { vertex_id: "com.cultureblocs.creative.profile:body.basedIn:items" }AddedVertex { vertex_id: "com.cultureblocs.defs#areaRef" }
Notes
- Non-breaking: AddedEdge { src: "com.cultureblocs.creative.profile:body", tgt: "com.cultureblocs.creative.profile:body.activeIn", kind: "prop", name: Some("activeIn") }
- Non-breaking: AddedEdge { src: "com.cultureblocs.creative.profile:body", tgt: "com.cultureblocs.creative.profile:body.basedIn", kind: "prop", name: Some("basedIn") }
- Non-breaking: AddedEdge { src: "com.cultureblocs.creative.profile:body.activeIn", tgt: "com.cultureblocs.creative.profile:body.activeIn:items", kind: "items", name: None }
- Non-breaking: AddedEdge { src: "com.cultureblocs.creative.profile:body.activeIn:items", tgt: "com.cultureblocs.defs#areaRef", kind: "ref", name: None }
- Non-breaking: AddedEdge { src: "com.cultureblocs.creative.profile:body.basedIn", tgt: "com.cultureblocs.creative.profile:body.basedIn:items", kind: "items", name: None }
- Non-breaking: AddedEdge { src: "com.cultureblocs.creative.profile:body.basedIn:items", tgt: "com.cultureblocs.defs#areaRef", kind: "ref", name: None }
Changes
11
{22
"$type": "com.atproto.lexicon.schema",33
"defs": {44
"main": {55
"description": "A creative's self-asserted identity. Self-assertion is the normal state, not a deficient one: the record lives in the creative's own repository, which is the claim. Third-party attestation (com.cultureblocs.creative.connection) is an optional overlay some records acquire. This is a join layer, not a registry: externalIds carry ISNI/IPI/ORCID/Auracle/Wikidata and any future scheme so identifiers held elsewhere keep their value here.",66
"key": "literal:self",77
"record": {88
"properties": {9
"activeIn": {10
"description": "Where the creative regularly shows, plays or takes work, beyond where they are based: a Brighton-based artist active in London.",11
"items": {12
"ref": "com.cultureblocs.defs#areaRef",13
"type": "ref"14
},15
"maxLength": 8,16
"type": "array"17
},918
"based": {10
"description": "Where the creative is based, at whatever precision they choose to publish.",19
"description": "Superseded by `basedIn` for new writes. Where the creative is based, at whatever precision they choose to publish. New apps should not write coordinates for a person; readers prefer `basedIn` when both are present.",1120
"ref": "com.cultureblocs.defs#placeRef",1221
"type": "ref"1322
},23
"basedIn": {24
"description": "Where the creative lives and works from, as named areas: 'Lewisham', 'Frome', 'Brighton'. Never an address or coordinates. Usually one, sometimes two.",25
"items": {26
"ref": "com.cultureblocs.defs#areaRef",27
"type": "ref"28
},29
"maxLength": 3,30
"type": "array"31
},1432
"bio": {1533
"maxGraphemes": 2000,1634
"type": "string"1735
},1836
"createdAt": {1937
"description": "When this record was first stamped. The only immutable field: everything else may be revised by publishing a new commit.",2038
"format": "datetime",2139
"type": "string"2240
},2341
"disciplines": {2442
"description": "Freeform, e.g. 'sculpture', 'sound design', 'dark goth techno'. No controlled vocabulary by design.",2543
"items": {2644
"maxGraphemes": 64,2745
"type": "string"2846
},2947
"maxLength": 8,3048
"type": "array"3149
},3250
"externalIds": {3351
"description": "Identity in other systems. A bridge service may later register some of these on the creative's behalf; CultureBlocs does not.",3452
"items": {3553
"ref": "com.cultureblocs.defs#externalId",3654
"type": "ref"3755
},3856
"maxLength": 20,3957
"type": "array"4058
},4159
"links": {4260
"description": "Website, portfolio, label page, socials.",4361
"items": {4462
"ref": "com.cultureblocs.defs#linkRef",4563
"type": "ref"4664
},4765
"maxLength": 8,4866
"type": "array"4967
},5068
"name": {5169
"description": "The name to be credited under. One profile per persona; a creative may hold several.",5270
"maxGraphemes": 300,5371
"type": "string"5472
}5573
},5674
"required": [5775
"name",5876
"createdAt"5977
],6078
"type": "object"6179
},6280
"type": "record"6381
}6482
},6583
"id": "com.cultureblocs.creative.profile",6684
"lexicon": 16785
}