com.cultureblocs.defs

cultureblocs.com

{
  "id": "com.cultureblocs.defs",
  "defs": {
    "geo": {
      "type": "object",
      "required": [
        "lat",
        "lng",
        "precision"
      ],
      "properties": {
        "lat": {
          "type": "number"
        },
        "lng": {
          "type": "number"
        },
        "precision": {
          "type": "string",
          "description": "Declared coordinate fuzzing level. Coordinates MUST already be fuzzed to this precision before the record leaves Tier 0.",
          "knownValues": [
            "exact",
            "100m",
            "1km",
            "city"
          ]
        }
      }
    },
    "didRef": {
      "type": "object",
      "required": [
        "did"
      ],
      "properties": {
        "did": {
          "type": "string",
          "format": "did"
        },
        "name": {
          "type": "string",
          "maxGraphemes": 300
        }
      },
      "description": "A person or organisation by DID, with a descriptive fallback name."
    },
    "linkRef": {
      "type": "object",
      "required": [
        "uri"
      ],
      "properties": {
        "uri": {
          "type": "string",
          "format": "uri"
        },
        "title": {
          "type": "string",
          "maxGraphemes": 300
        }
      },
      "description": "External link attached to a bead or strand: event page, venue page, ticket listing."
    },
    "workRef": {
      "type": "object",
      "properties": {
        "date": {
          "type": "string",
          "description": "Freeform creation date, e.g. '1972' or 'c. 1889'",
          "maxGraphemes": 100
        },
        "image": {
          "ref": "#mediaRef",
          "type": "ref"
        },
        "title": {
          "type": "string",
          "maxGraphemes": 500
        },
        "creator": {
          "type": "string",
          "maxGraphemes": 300
        },
        "wikidata": {
          "type": "string",
          "description": "Wikidata QID, e.g. Q1892745"
        },
        "accession": {
          "ref": "#accessionRef",
          "type": "ref"
        },
        "linkedArt": {
          "type": "string",
          "format": "uri",
          "description": "Linked Art object URI"
        },
        "creatorDid": {
          "type": "string",
          "format": "did",
          "description": "DID of the creative who made this work, when known. The `creator` string remains the descriptive fallback."
        }
      },
      "description": "Reference to an artwork/creative work. At least one resolvable ID or a descriptive fallback (title)."
    },
    "mediaRef": {
      "type": "object",
      "required": [
        "uri"
      ],
      "properties": {
        "alt": {
          "type": "string",
          "maxGraphemes": 1000
        },
        "uri": {
          "type": "string",
          "format": "uri"
        },
        "mime": {
          "type": "string",
          "maxGraphemes": 100
        }
      },
      "description": "Tier 0/1 media reference. Replaced by an atproto blob at promotion time."
    },
    "placeRef": {
      "type": "object",
      "properties": {
        "did": {
          "type": "string",
          "format": "did",
          "description": "Venue DID if it has an ATProto account"
        },
        "geo": {
          "ref": "#geo",
          "type": "ref"
        },
        "name": {
          "type": "string",
          "maxGraphemes": 300
        }
      },
      "description": "A venue with an ATProto identity, or an ad-hoc named place."
    },
    "creditRef": {
      "type": "object",
      "required": [
        "name"
      ],
      "properties": {
        "did": {
          "type": "string",
          "format": "did"
        },
        "name": {
          "type": "string",
          "maxGraphemes": 300
        },
        "role": {
          "type": "string",
          "maxGraphemes": 100
        }
      },
      "description": "A named contributor. `role` is deliberately freeform: role vocabularies differ per industry and belong in referencing layers, not in this schema."
    },
    "strongRef": {
      "type": "object",
      "required": [
        "uri"
      ],
      "properties": {
        "cid": {
          "type": "string"
        },
        "uri": {
          "type": "string",
          "format": "uri"
        }
      },
      "description": "Local stand-in for com.atproto.repo.strongRef"
    },
    "externalId": {
      "type": "object",
      "required": [
        "scheme",
        "id"
      ],
      "properties": {
        "id": {
          "type": "string",
          "maxGraphemes": 200
        },
        "uri": {
          "type": "string",
          "format": "uri",
          "description": "Resolvable URL for this identifier, where one exists."
        },
        "scheme": {
          "type": "string",
          "knownValues": [
            "isni",
            "ipi",
            "ipn",
            "orcid",
            "wikidata",
            "musicbrainz",
            "auracle",
            "isrc",
            "iswc",
            "isan",
            "doi",
            "viaf",
            "discogs",
            "rsl"
          ],
          "maxGraphemes": 64
        }
      },
      "description": "An identifier for this subject in another system. Registries are peers: no scheme is privileged, and knownValues is advisory so new schemes need no schema change."
    },
    "provenance": {
      "type": "object",
      "required": [
        "app",
        "mintedAt"
      ],
      "properties": {
        "app": {
          "type": "string",
          "description": "Producing app id, e.g. 'culturebloc', 'ar-gallery'",
          "maxGraphemes": 100
        },
        "device": {
          "type": "string",
          "description": "Device identifier, e.g. StickS3 id",
          "maxGraphemes": 100
        },
        "mintId": {
          "type": "string",
          "description": "Device-generated mint identifier (hex). Shared between both parties' beads on a mutual mint — the encounter join key.",
          "maxGraphemes": 64
        },
        "mintedAt": {
          "type": "string",
          "format": "datetime"
        },
        "mutualMint": {
          "type": "boolean",
          "description": "True if created by a mutual-press ceremony"
        },
        "timeAnchored": {
          "type": "boolean",
          "description": "False when the device knew only the time-of-day or nothing; createdAt is then a best guess"
        }
      }
    },
    "accessionRef": {
      "type": "object",
      "required": [
        "institution",
        "id"
      ],
      "properties": {
        "id": {
          "type": "string",
          "description": "Accession/inventory number",
          "maxGraphemes": 200
        },
        "institution": {
          "type": "string",
          "format": "did",
          "description": "DID of the holding institution"
        }
      }
    }
  },
  "$type": "com.atproto.lexicon.schema",
  "lexicon": 1
}

Validate Record

Validate a record against com.cultureblocs.defs

Validation Options
Treat any remaining unresolved references as valid

Metadata

DID
did:plc:l3726um33xesakwqhjkkpoet
CID
bafyreibfuixgugnpxczgbhk33q3hzss46mn4dfczmxjxrluhoznsrr5xni
Indexed At
2026-07-27 13:18 UTC
AT-URI
at://did:plc:l3726um33xesakwqhjkkpoet/com.atproto.lexicon.schema/com.cultureblocs.defs

Version History (3 versions)

Lexicon Garden

@