org.hypercerts.context.attachment

hypercerts.org

Schema Diff

+29 -4

From

CID
bafyreihx725osvx...
Indexed At
2026-03-19 20:27 UTC
View this version

To

CID
bafyreicvcq2xdqu...
Indexed At
2026-10-05 14:14 UTC
View this version

Compatibility Analysis

Breaking Changes Detected

4 breaking changes, 21 non-breaking changes.

Breaking Changes (4)
  • RemovedVertex RemovedVertex { vertex_id: "pub.leaflet.pages.linearDocument#main" }
  • RemovedEdge RemovedEdge { src: "org.hypercerts.context.attachment:body.description", tgt: "pub.leaflet.pages.linearDocument#main", kind: "ref", name: None }
  • KindChanged KindChanged { vertex_id: "org.hypercerts.context.attachment:body.description", old_kind: "ref", new_kind: "union" }
  • ConstraintAdded ConstraintAdded { vertex_id: "org.hypercerts.context.attachment:body.contentType", sort: "knownValues", value: "[\"report\",\"audit\",\"evidence\",\"testimonial\",\"methodology\"]" }
Non-Breaking Changes (21)
  • AddedVertex AddedVertex { vertex_id: "app.certified.signature.defs#list" }
  • AddedVertex AddedVertex { vertex_id: "org.hypercerts.context.attachment:body.description:variant0" }
  • AddedVertex AddedVertex { vertex_id: "org.hypercerts.context.attachment:body.description:variant1" }
  • AddedVertex AddedVertex { vertex_id: "org.hypercerts.context.attachment:body.description:variant2" }
  • AddedVertex AddedVertex { vertex_id: "org.hypercerts.context.attachment:body.signatures" }
  • AddedVertex AddedVertex { vertex_id: "org.hypercerts.context.attachment:body.tags" }
  • AddedVertex AddedVertex { vertex_id: "org.hypercerts.context.attachment:body.tags:items" }
  • AddedVertex AddedVertex { vertex_id: "org.hypercerts.defs#descriptionString" }
  • AddedVertex AddedVertex { vertex_id: "pub.leaflet.pages.linearDocument" }
  • AddedEdge AddedEdge { src: "org.hypercerts.context.attachment:body", tgt: "org.hypercerts.context.attachment:body.signatures", kind: "prop", name: Some("signatures") }
  • AddedEdge AddedEdge { src: "org.hypercerts.context.attachment:body", tgt: "org.hypercerts.context.attachment:body.tags", kind: "prop", name: Some("tags") }
  • AddedEdge AddedEdge { src: "org.hypercerts.context.attachment:body.description", tgt: "org.hypercerts.context.attachment:body.description:variant0", kind: "variant", name: Some("org.hypercerts.defs#descriptionString") }
  • AddedEdge AddedEdge { src: "org.hypercerts.context.attachment:body.description", tgt: "org.hypercerts.context.attachment:body.description:variant1", kind: "variant", name: Some("pub.leaflet.pages.linearDocument") }
  • AddedEdge AddedEdge { src: "org.hypercerts.context.attachment:body.description", tgt: "org.hypercerts.context.attachment:body.description:variant2", kind: "variant", name: Some("com.atproto.repo.strongRef") }
  • AddedEdge AddedEdge { src: "org.hypercerts.context.attachment:body.description:variant0", tgt: "org.hypercerts.defs#descriptionString", kind: "ref", name: None }
  • AddedEdge AddedEdge { src: "org.hypercerts.context.attachment:body.description:variant1", tgt: "pub.leaflet.pages.linearDocument", kind: "ref", name: None }
  • AddedEdge AddedEdge { src: "org.hypercerts.context.attachment:body.description:variant2", tgt: "com.atproto.repo.strongRef", kind: "ref", name: None }
  • AddedEdge AddedEdge { src: "org.hypercerts.context.attachment:body.signatures", tgt: "app.certified.signature.defs#list", kind: "ref", name: None }
  • AddedEdge AddedEdge { src: "org.hypercerts.context.attachment:body.tags", tgt: "org.hypercerts.context.attachment:body.tags:items", kind: "items", name: None }
  • AddedEdge AddedEdge { src: "org.hypercerts.context.attachment:body.tags:items", tgt: "com.atproto.repo.strongRef", kind: "ref", name: None }
  • ConstraintRemoved ConstraintRemoved { vertex_id: "org.hypercerts.context.attachment:body.description", sort: "ref" }

Migration Guidance

Removed Elements

  • RemovedVertex { vertex_id: "pub.leaflet.pages.linearDocument#main" }

Added Elements

  • AddedVertex { vertex_id: "app.certified.signature.defs#list" }
  • AddedVertex { vertex_id: "org.hypercerts.context.attachment:body.description:variant0" }
  • AddedVertex { vertex_id: "org.hypercerts.context.attachment:body.description:variant1" }
  • AddedVertex { vertex_id: "org.hypercerts.context.attachment:body.description:variant2" }
  • AddedVertex { vertex_id: "org.hypercerts.context.attachment:body.signatures" }
  • AddedVertex { vertex_id: "org.hypercerts.context.attachment:body.tags" }
  • AddedVertex { vertex_id: "org.hypercerts.context.attachment:body.tags:items" }
  • AddedVertex { vertex_id: "org.hypercerts.defs#descriptionString" }
  • AddedVertex { vertex_id: "pub.leaflet.pages.linearDocument" }

Constraint Changes

  • ConstraintAdded ConstraintAdded { vertex_id: "org.hypercerts.context.attachment:body.contentType", sort: "knownValues", value: "[\"report\",\"audit\",\"evidence\",\"testimonial\",\"methodology\"]" }
  • ConstraintRemoved ConstraintRemoved { vertex_id: "org.hypercerts.context.attachment:body.description", sort: "ref" }

Additional Notes

  • Breaking: RemovedEdge { src: "org.hypercerts.context.attachment:body.description", tgt: "pub.leaflet.pages.linearDocument#main", kind: "ref", name: None }
  • Breaking: KindChanged { vertex_id: "org.hypercerts.context.attachment:body.description", old_kind: "ref", new_kind: "union" }
  • Non-breaking: AddedEdge { src: "org.hypercerts.context.attachment:body", tgt: "org.hypercerts.context.attachment:body.signatures", kind: "prop", name: Some("signatures") }
  • Non-breaking: AddedEdge { src: "org.hypercerts.context.attachment:body", tgt: "org.hypercerts.context.attachment:body.tags", kind: "prop", name: Some("tags") }
  • Non-breaking: AddedEdge { src: "org.hypercerts.context.attachment:body.description", tgt: "org.hypercerts.context.attachment:body.description:variant0", kind: "variant", name: Some("org.hypercerts.defs#descriptionString") }
  • Non-breaking: AddedEdge { src: "org.hypercerts.context.attachment:body.description", tgt: "org.hypercerts.context.attachment:body.description:variant1", kind: "variant", name: Some("pub.leaflet.pages.linearDocument") }
  • Non-breaking: AddedEdge { src: "org.hypercerts.context.attachment:body.description", tgt: "org.hypercerts.context.attachment:body.description:variant2", kind: "variant", name: Some("com.atproto.repo.strongRef") }
  • Non-breaking: AddedEdge { src: "org.hypercerts.context.attachment:body.description:variant0", tgt: "org.hypercerts.defs#descriptionString", kind: "ref", name: None }
  • Non-breaking: AddedEdge { src: "org.hypercerts.context.attachment:body.description:variant1", tgt: "pub.leaflet.pages.linearDocument", kind: "ref", name: None }
  • Non-breaking: AddedEdge { src: "org.hypercerts.context.attachment:body.description:variant2", tgt: "com.atproto.repo.strongRef", kind: "ref", name: None }
  • Non-breaking: AddedEdge { src: "org.hypercerts.context.attachment:body.signatures", tgt: "app.certified.signature.defs#list", kind: "ref", name: None }
  • Non-breaking: AddedEdge { src: "org.hypercerts.context.attachment:body.tags", tgt: "org.hypercerts.context.attachment:body.tags:items", kind: "items", name: None }
  • Non-breaking: AddedEdge { src: "org.hypercerts.context.attachment:body.tags:items", tgt: "com.atproto.repo.strongRef", kind: "ref", name: None }
1 1
{
2 2
  "$type": "com.atproto.lexicon.schema",
3 3
  "defs": {
4 4
    "main": {
5 5
      "description": "An attachment providing commentary, context, evidence, or documentary material related to a hypercert record (e.g. an activity, project, claim, or evaluation).",
6 6
      "key": "tid",
7 7
      "record": {
8 8
        "properties": {
9 9
          "content": {
10 10
            "description": "The files, documents, or external references included in this attachment record.",
11 11
            "items": {
12 12
              "refs": [
13 13
                "org.hypercerts.defs#uri",
14 14
                "org.hypercerts.defs#smallBlob"
15 15
              ],
16 16
              "type": "union"
17 17
            },
18 18
            "maxLength": 100,
19 19
            "type": "array"
20 20
          },
21 21
          "contentType": {
22 -
            "description": "The type of attachment, e.g. report, audit, evidence, testimonial, methodology, etc.",
22 +
            "description": "The type of attachment. Values beyond the known set are permitted.",
23 +
            "knownValues": [
24 +
              "report",
25 +
              "audit",
26 +
              "evidence",
27 +
              "testimonial",
28 +
              "methodology"
29 +
            ],
23 30
            "maxLength": 64,
24 31
            "type": "string"
25 32
          },
26 33
          "createdAt": {
27 34
            "description": "Client-declared timestamp when this record was originally created.",
28 35
            "format": "datetime",
29 36
            "type": "string"
30 37
          },
31 38
          "description": {
32 -
            "description": "Rich-text description, represented as a Leaflet linear document.",
33 -
            "ref": "pub.leaflet.pages.linearDocument#main",
34 -
            "type": "ref"
39 +
            "description": "Long-form description of the attachment. An inline string for plain text or markdown, a Leaflet linear document for rich-text content, or a strong reference to an external description record.",
40 +
            "refs": [
41 +
              "org.hypercerts.defs#descriptionString",
42 +
              "pub.leaflet.pages.linearDocument",
43 +
              "com.atproto.repo.strongRef"
44 +
            ],
45 +
            "type": "union"
35 46
          },
36 47
          "location": {
37 48
            "description": "A strong reference to the location where this attachment's subject matter occurred. The record referenced must conform with the lexicon app.certified.location.",
38 49
            "ref": "com.atproto.repo.strongRef",
39 50
            "type": "ref"
40 51
          },
41 52
          "shortDescription": {
42 53
            "description": "Short summary of this attachment, suitable for previews and list views. Rich text annotations may be provided via `shortDescriptionFacets`.",
43 54
            "maxGraphemes": 300,
44 55
            "maxLength": 3000,
45 56
            "type": "string"
46 57
          },
47 58
          "shortDescriptionFacets": {
48 59
            "description": "Rich text annotations for `shortDescription` (mentions, URLs, hashtags, etc).",
49 60
            "items": {
50 61
              "ref": "app.bsky.richtext.facet",
51 62
              "type": "ref"
52 63
            },
53 64
            "type": "array"
54 65
          },
66 +
          "signatures": {
67 +
            "description": "Optional cryptographic signatures attesting to this record's content.",
68 +
            "ref": "app.certified.signature.defs#list",
69 +
            "type": "ref"
70 +
          },
55 71
          "subjects": {
56 72
            "description": "References to the subject(s) the attachment is connected to—this may be an activity claim, outcome claim, measurement, evaluation, or even another attachment. This is optional as the attachment can exist before the claim is recorded.",
57 73
            "items": {
58 74
              "ref": "com.atproto.repo.strongRef",
59 75
              "type": "ref"
60 76
            },
61 77
            "maxLength": 100,
62 78
            "type": "array"
63 79
          },
80 +
          "tags": {
81 +
            "description": "References to org.hypercerts.vocab.tag records classifying this record. All listed tags apply simultaneously (logical AND); the array carries no ordering, weighting, negation, inheritance, or rule logic, and never will — any future expression logic must arrive as a new field and must never reinterpret this one.",
82 +
            "items": {
83 +
              "ref": "com.atproto.repo.strongRef",
84 +
              "type": "ref"
85 +
            },
86 +
            "maxLength": 20,
87 +
            "type": "array"
88 +
          },
64 89
          "title": {
65 90
            "description": "Display title for this attachment (e.g. 'Impact Assessment Report', 'Audit Findings')",
66 91
            "maxLength": 256,
67 92
            "type": "string"
68 93
          }
69 94
        },
70 95
        "required": [
71 96
          "title",
72 97
          "createdAt"
73 98
        ],
74 99
        "type": "object"
75 100
      },
76 101
      "type": "record"
77 102
    }
78 103
  },
79 104
  "id": "org.hypercerts.context.attachment",
80 105
  "lexicon": 1
81 106
}

Compare Other Versions

Lexicon Garden

@