org.hypercerts.context.attachment
Schema Diff
+15 -4
Compatibility Analysis
Breaking Changes Detected
1 breaking change, 6 non-breaking changes.
Breaking Changes (1)
- KindChanged KindChanged { vertex_id: "org.hypercerts.context.attachment:body.description", old_kind: "ref", new_kind: "union" }
Non-Breaking Changes (6)
- 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" }
- 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") }
Migration Guidance
Added Elements
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" }
Additional Notes
- 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.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") }
1
1
{
2
2
"id": "org.hypercerts.context.attachment",
3
3
"defs": {
4
4
"main": {
5
5
"key": "tid",
6
6
"type": "record",
7
7
"record": {
8
8
"type": "object",
9
9
"required": [
10
10
"title",
11
11
"createdAt"
12
12
],
13
13
"properties": {
14
14
"title": {
15
15
"type": "string",
16
16
"maxLength": 256,
17
17
"description": "Display title for this attachment (e.g. 'Impact Assessment Report', 'Audit Findings')"
18
18
},
19
19
"content": {
20
20
"type": "array",
21
21
"items": {
22
22
"refs": [
23
23
"org.hypercerts.defs#uri",
24
24
"org.hypercerts.defs#smallBlob"
25
25
],
26
26
"type": "union"
27
27
},
28
28
"maxLength": 100,
29
29
"description": "The files, documents, or external references included in this attachment record."
30
30
},
31
31
"location": {
32
32
"ref": "com.atproto.repo.strongRef",
33
33
"type": "ref",
34
34
"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."
35
35
},
36
36
"subjects": {
37
37
"type": "array",
38
38
"items": {
39
39
"ref": "com.atproto.repo.strongRef",
40
40
"type": "ref"
41
41
},
42
42
"maxLength": 100,
43
43
"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."
44
44
},
45
45
"createdAt": {
46
46
"type": "string",
47
47
"format": "datetime",
48
48
"description": "Client-declared timestamp when this record was originally created."
49
49
},
50
50
"contentType": {
51
51
"type": "string",
52
52
"maxLength": 64,
53
-
"description": "The type of attachment, e.g. report, audit, evidence, testimonial, methodology, etc."
53
+
"description": "The type of attachment. Values beyond the known set are permitted.",
54
+
"knownValues": [
55
+
"report",
56
+
"audit",
57
+
"evidence",
58
+
"testimonial",
59
+
"methodology"
60
+
]
54
61
},
55
62
"description": {
56
-
"ref": "pub.leaflet.pages.linearDocument#main",
57
-
"type": "ref",
58
-
"description": "Rich-text description, represented as a Leaflet linear document."
63
+
"refs": [
64
+
"org.hypercerts.defs#descriptionString",
65
+
"pub.leaflet.pages.linearDocument",
66
+
"com.atproto.repo.strongRef"
67
+
],
68
+
"type": "union",
69
+
"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."
59
70
},
60
71
"shortDescription": {
61
72
"type": "string",
62
73
"maxLength": 3000,
63
74
"description": "Short summary of this attachment, suitable for previews and list views. Rich text annotations may be provided via `shortDescriptionFacets`.",
64
75
"maxGraphemes": 300
65
76
},
66
77
"shortDescriptionFacets": {
67
78
"type": "array",
68
79
"items": {
69
80
"ref": "app.bsky.richtext.facet",
70
81
"type": "ref"
71
82
},
72
83
"description": "Rich text annotations for `shortDescription` (mentions, URLs, hashtags, etc)."
73
84
}
74
85
}
75
86
},
76
87
"description": "An attachment providing commentary, context, evidence, or documentary material related to a hypercert record (e.g. an activity, project, claim, or evaluation)."
77
88
}
78
89
},
79
90
"$type": "com.atproto.lexicon.schema",
80
91
"lexicon": 1
81
92
}