com.cultureblocs.offer

Something a creative or a place offers, or needs, for a while: a recording engineer available for hire, off-peak rehearsal rates, a studio desk free for three months, 'looking for a drummer'. Separate from the profile because offers come and go. Pause and reopen an offer by changing `status` on the same record rather than deleting and recreating it, so links and history survive. Public by nature: carry links, never private contact details.

Details · record, key tid
Kindrecord
Record keytid
Authoritycultureblocs.com
Indexed
cid bafyreibzmfuoiltnax6z3pxay4u64vzsmygsnmok3vkpo46x2epjaun4ra

Checks

Valid Lint pass
JSONDownload
{
  "$type": "com.atproto.lexicon.schema",
  "defs": {
    "main": {
      "description": "Something a creative or a place offers, or needs, for a while: a recording engineer available for hire, off-peak rehearsal rates, a studio desk free for three months, 'looking for a drummer'. Separate from the profile because offers come and go. Pause and reopen an offer by changing `status` on the same record rather than deleting and recreating it, so links and history survive. Public by nature: carry links, never private contact details.",
      "key": "tid",
      "record": {
        "properties": {
          "areas": {
            "description": "Where the offer applies. Defaults, for readers, to the offering party's basedIn or place area.",
            "items": {
              "ref": "com.cultureblocs.defs#areaRef",
              "type": "ref"
            },
            "maxLength": 8,
            "type": "array"
          },
          "createdAt": {
            "description": "When this record was first stamped. The only immutable field: everything else may be revised by publishing a new commit.",
            "format": "datetime",
            "type": "string"
          },
          "description": {
            "maxGraphemes": 2000,
            "type": "string"
          },
          "disciplines": {
            "description": "Freeform, as in creative.profile.",
            "items": {
              "maxGraphemes": 64,
              "type": "string"
            },
            "maxLength": 8,
            "type": "array"
          },
          "kind": {
            "description": "Offering something, or looking for something. Readers should not display a record whose kind they do not recognise.",
            "knownValues": [
              "offer",
              "need"
            ],
            "maxGraphemes": 16,
            "type": "string"
          },
          "links": {
            "description": "Booking page, portfolio, enquiry form.",
            "items": {
              "ref": "com.cultureblocs.defs#linkRef",
              "type": "ref"
            },
            "maxLength": 8,
            "type": "array"
          },
          "offerType": {
            "description": "Advisory vocabulary: new types need no schema change.",
            "knownValues": [
              "service",
              "space_to_let",
              "hire",
              "commission",
              "collaboration",
              "workshop",
              "residency",
              "volunteer"
            ],
            "maxGraphemes": 64,
            "type": "string"
          },
          "offeredBy": {
            "description": "The place.profile this offer belongs to. Omit when the offer is from the repository holder's own creative.profile.",
            "ref": "com.cultureblocs.defs#strongRef",
            "type": "ref"
          },
          "price": {
            "description": "Freeform: 'from £20/hr', 'negotiable', 'free for members'.",
            "maxGraphemes": 200,
            "type": "string"
          },
          "remote": {
            "description": "Can be done remotely or online.",
            "type": "boolean"
          },
          "status": {
            "description": "Readers treat any value other than 'open' as not currently available.",
            "knownValues": [
              "open",
              "paused",
              "closed"
            ],
            "maxGraphemes": 16,
            "type": "string"
          },
          "tags": {
            "items": {
              "maxGraphemes": 64,
              "type": "string"
            },
            "maxLength": 8,
            "type": "array"
          },
          "title": {
            "description": "One line, e.g. 'Mixing and mastering', 'Shared studio desk, Deptford'.",
            "maxGraphemes": 200,
            "type": "string"
          },
          "updatedAt": {
            "description": "When status or content last changed. Lets readers show 'reopened 2 days ago' and sort by freshness.",
            "format": "datetime",
            "type": "string"
          },
          "validFrom": {
            "format": "datetime",
            "type": "string"
          },
          "validUntil": {
            "description": "After this, readers treat the offer as closed whatever its status says, so stale offers drop out without anyone tidying up.",
            "format": "datetime",
            "type": "string"
          }
        },
        "required": [
          "kind",
          "title",
          "status",
          "createdAt"
        ],
        "type": "object"
      },
      "type": "record"
    }
  },
  "id": "com.cultureblocs.offer",
  "lexicon": 1
}