{
"id": "com.cultureblocs.creative.profile",
"defs": {
"main": {
"key": "literal:self",
"type": "record",
"record": {
"type": "object",
"required": [
"name",
"createdAt"
],
"properties": {
"bio": {
"type": "string",
"maxGraphemes": 2000
},
"name": {
"type": "string",
"description": "The name to be credited under. One profile per persona; a creative may hold several.",
"maxGraphemes": 300
},
"based": {
"ref": "com.cultureblocs.defs#placeRef",
"type": "ref",
"description": "Where the creative is based, at whatever precision they choose to publish."
},
"links": {
"type": "array",
"items": {
"ref": "com.cultureblocs.defs#linkRef",
"type": "ref"
},
"maxLength": 8,
"description": "Website, portfolio, label page, socials."
},
"createdAt": {
"type": "string",
"format": "datetime",
"description": "When this record was first stamped. The only immutable field: everything else may be revised by publishing a new commit."
},
"disciplines": {
"type": "array",
"items": {
"type": "string",
"maxGraphemes": 64
},
"maxLength": 8,
"description": "Freeform, e.g. 'sculpture', 'sound design', 'dark goth techno'. No controlled vocabulary by design."
},
"externalIds": {
"type": "array",
"items": {
"ref": "com.cultureblocs.defs#externalId",
"type": "ref"
},
"maxLength": 20,
"description": "Identity in other systems. A bridge service may later register some of these on the creative's behalf; CultureBlocs does not."
}
}
},
"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."
}
},
"$type": "com.atproto.lexicon.schema",
"lexicon": 1
}