app.gainforest.organization.observations.dendogram
Schema Diff
+76 -1
Compatibility Analysis
Breaking Changes Detected
3 breaking changes, 30 non-breaking changes.
Breaking Changes (3)
- RemovedVertex RemovedVertex { vertex_id: "app.gainforest.common.defs#smallBlob" }
- RemovedEdge RemovedEdge { src: "app.gainforest.organization.observations.dendogram:body.dendogram", tgt: "app.gainforest.common.defs#smallBlob", kind: "ref", name: None }
- ConstraintTightened ConstraintTightened { vertex_id: "app.gainforest.organization.observations.dendogram:body.dendogram", sort: "ref", old_value: "app.gainforest.common.defs#smallBlob", new_value: "org.hypercerts.defs#smallBlob" }
Non-Breaking Changes (30)
- AddedVertex AddedVertex { vertex_id: "app.gainforest.common.defs#imageThumbnail" }
- AddedVertex AddedVertex { vertex_id: "app.gainforest.common.defs#richtext" }
- AddedVertex AddedVertex { vertex_id: "app.gainforest.organization.observations.dendogram:body.analysisDate" }
- AddedVertex AddedVertex { vertex_id: "app.gainforest.organization.observations.dendogram:body.analysisMethod" }
- AddedVertex AddedVertex { vertex_id: "app.gainforest.organization.observations.dendogram:body.dataSource" }
- AddedVertex AddedVertex { vertex_id: "app.gainforest.organization.observations.dendogram:body.description" }
- AddedVertex AddedVertex { vertex_id: "app.gainforest.organization.observations.dendogram:body.name" }
- AddedVertex AddedVertex { vertex_id: "app.gainforest.organization.observations.dendogram:body.rootTaxon" }
- AddedVertex AddedVertex { vertex_id: "app.gainforest.organization.observations.dendogram:body.siteRef" }
- AddedVertex AddedVertex { vertex_id: "app.gainforest.organization.observations.dendogram:body.taxonCount" }
- AddedVertex AddedVertex { vertex_id: "app.gainforest.organization.observations.dendogram:body.taxonGroups" }
- AddedVertex AddedVertex { vertex_id: "app.gainforest.organization.observations.dendogram:body.taxonGroups:items" }
- AddedVertex AddedVertex { vertex_id: "app.gainforest.organization.observations.dendogram:body.thumbnail" }
- AddedVertex AddedVertex { vertex_id: "app.gainforest.organization.observations.dendogram:body.treeType" }
- AddedVertex AddedVertex { vertex_id: "org.hypercerts.defs#smallBlob" }
- AddedEdge AddedEdge { src: "app.gainforest.organization.observations.dendogram:body", tgt: "app.gainforest.organization.observations.dendogram:body.analysisDate", kind: "prop", name: Some("analysisDate") }
- AddedEdge AddedEdge { src: "app.gainforest.organization.observations.dendogram:body", tgt: "app.gainforest.organization.observations.dendogram:body.analysisMethod", kind: "prop", name: Some("analysisMethod") }
- AddedEdge AddedEdge { src: "app.gainforest.organization.observations.dendogram:body", tgt: "app.gainforest.organization.observations.dendogram:body.dataSource", kind: "prop", name: Some("dataSource") }
- AddedEdge AddedEdge { src: "app.gainforest.organization.observations.dendogram:body", tgt: "app.gainforest.organization.observations.dendogram:body.description", kind: "prop", name: Some("description") }
- AddedEdge AddedEdge { src: "app.gainforest.organization.observations.dendogram:body", tgt: "app.gainforest.organization.observations.dendogram:body.name", kind: "prop", name: Some("name") }
- AddedEdge AddedEdge { src: "app.gainforest.organization.observations.dendogram:body", tgt: "app.gainforest.organization.observations.dendogram:body.rootTaxon", kind: "prop", name: Some("rootTaxon") }
- AddedEdge AddedEdge { src: "app.gainforest.organization.observations.dendogram:body", tgt: "app.gainforest.organization.observations.dendogram:body.siteRef", kind: "prop", name: Some("siteRef") }
- AddedEdge AddedEdge { src: "app.gainforest.organization.observations.dendogram:body", tgt: "app.gainforest.organization.observations.dendogram:body.taxonCount", kind: "prop", name: Some("taxonCount") }
- AddedEdge AddedEdge { src: "app.gainforest.organization.observations.dendogram:body", tgt: "app.gainforest.organization.observations.dendogram:body.taxonGroups", kind: "prop", name: Some("taxonGroups") }
- AddedEdge AddedEdge { src: "app.gainforest.organization.observations.dendogram:body", tgt: "app.gainforest.organization.observations.dendogram:body.thumbnail", kind: "prop", name: Some("thumbnail") }
- AddedEdge AddedEdge { src: "app.gainforest.organization.observations.dendogram:body", tgt: "app.gainforest.organization.observations.dendogram:body.treeType", kind: "prop", name: Some("treeType") }
- AddedEdge AddedEdge { src: "app.gainforest.organization.observations.dendogram:body.dendogram", tgt: "org.hypercerts.defs#smallBlob", kind: "ref", name: None }
- AddedEdge AddedEdge { src: "app.gainforest.organization.observations.dendogram:body.description", tgt: "app.gainforest.common.defs#richtext", kind: "ref", name: None }
- AddedEdge AddedEdge { src: "app.gainforest.organization.observations.dendogram:body.taxonGroups", tgt: "app.gainforest.organization.observations.dendogram:body.taxonGroups:items", kind: "items", name: None }
- AddedEdge AddedEdge { src: "app.gainforest.organization.observations.dendogram:body.thumbnail", tgt: "app.gainforest.common.defs#imageThumbnail", kind: "ref", name: None }
Migration Guidance
Removed Elements
RemovedVertex { vertex_id: "app.gainforest.common.defs#smallBlob" }
Added Elements
AddedVertex { vertex_id: "app.gainforest.common.defs#imageThumbnail" }AddedVertex { vertex_id: "app.gainforest.common.defs#richtext" }AddedVertex { vertex_id: "app.gainforest.organization.observations.dendogram:body.analysisDate" }AddedVertex { vertex_id: "app.gainforest.organization.observations.dendogram:body.analysisMethod" }AddedVertex { vertex_id: "app.gainforest.organization.observations.dendogram:body.dataSource" }AddedVertex { vertex_id: "app.gainforest.organization.observations.dendogram:body.description" }AddedVertex { vertex_id: "app.gainforest.organization.observations.dendogram:body.name" }AddedVertex { vertex_id: "app.gainforest.organization.observations.dendogram:body.rootTaxon" }AddedVertex { vertex_id: "app.gainforest.organization.observations.dendogram:body.siteRef" }AddedVertex { vertex_id: "app.gainforest.organization.observations.dendogram:body.taxonCount" }AddedVertex { vertex_id: "app.gainforest.organization.observations.dendogram:body.taxonGroups" }AddedVertex { vertex_id: "app.gainforest.organization.observations.dendogram:body.taxonGroups:items" }AddedVertex { vertex_id: "app.gainforest.organization.observations.dendogram:body.thumbnail" }AddedVertex { vertex_id: "app.gainforest.organization.observations.dendogram:body.treeType" }AddedVertex { vertex_id: "org.hypercerts.defs#smallBlob" }
Constraint Changes
- ConstraintTightened ConstraintTightened { vertex_id: "app.gainforest.organization.observations.dendogram:body.dendogram", sort: "ref", old_value: "app.gainforest.common.defs#smallBlob", new_value: "org.hypercerts.defs#smallBlob" }
Additional Notes
- Breaking: RemovedEdge { src: "app.gainforest.organization.observations.dendogram:body.dendogram", tgt: "app.gainforest.common.defs#smallBlob", kind: "ref", name: None }
- Non-breaking: AddedEdge { src: "app.gainforest.organization.observations.dendogram:body", tgt: "app.gainforest.organization.observations.dendogram:body.analysisDate", kind: "prop", name: Some("analysisDate") }
- Non-breaking: AddedEdge { src: "app.gainforest.organization.observations.dendogram:body", tgt: "app.gainforest.organization.observations.dendogram:body.analysisMethod", kind: "prop", name: Some("analysisMethod") }
- Non-breaking: AddedEdge { src: "app.gainforest.organization.observations.dendogram:body", tgt: "app.gainforest.organization.observations.dendogram:body.dataSource", kind: "prop", name: Some("dataSource") }
- Non-breaking: AddedEdge { src: "app.gainforest.organization.observations.dendogram:body", tgt: "app.gainforest.organization.observations.dendogram:body.description", kind: "prop", name: Some("description") }
- Non-breaking: AddedEdge { src: "app.gainforest.organization.observations.dendogram:body", tgt: "app.gainforest.organization.observations.dendogram:body.name", kind: "prop", name: Some("name") }
- Non-breaking: AddedEdge { src: "app.gainforest.organization.observations.dendogram:body", tgt: "app.gainforest.organization.observations.dendogram:body.rootTaxon", kind: "prop", name: Some("rootTaxon") }
- Non-breaking: AddedEdge { src: "app.gainforest.organization.observations.dendogram:body", tgt: "app.gainforest.organization.observations.dendogram:body.siteRef", kind: "prop", name: Some("siteRef") }
- Non-breaking: AddedEdge { src: "app.gainforest.organization.observations.dendogram:body", tgt: "app.gainforest.organization.observations.dendogram:body.taxonCount", kind: "prop", name: Some("taxonCount") }
- Non-breaking: AddedEdge { src: "app.gainforest.organization.observations.dendogram:body", tgt: "app.gainforest.organization.observations.dendogram:body.taxonGroups", kind: "prop", name: Some("taxonGroups") }
- Non-breaking: AddedEdge { src: "app.gainforest.organization.observations.dendogram:body", tgt: "app.gainforest.organization.observations.dendogram:body.thumbnail", kind: "prop", name: Some("thumbnail") }
- Non-breaking: AddedEdge { src: "app.gainforest.organization.observations.dendogram:body", tgt: "app.gainforest.organization.observations.dendogram:body.treeType", kind: "prop", name: Some("treeType") }
- Non-breaking: AddedEdge { src: "app.gainforest.organization.observations.dendogram:body.dendogram", tgt: "org.hypercerts.defs#smallBlob", kind: "ref", name: None }
- Non-breaking: AddedEdge { src: "app.gainforest.organization.observations.dendogram:body.description", tgt: "app.gainforest.common.defs#richtext", kind: "ref", name: None }
- Non-breaking: AddedEdge { src: "app.gainforest.organization.observations.dendogram:body.taxonGroups", tgt: "app.gainforest.organization.observations.dendogram:body.taxonGroups:items", kind: "items", name: None }
- Non-breaking: AddedEdge { src: "app.gainforest.organization.observations.dendogram:body.thumbnail", tgt: "app.gainforest.common.defs#imageThumbnail", kind: "ref", name: None }
1
1
{
2
2
"$type": "com.atproto.lexicon.schema",
3
3
"defs": {
4
4
"main": {
5
5
"description": "A declaration of a dendogram observation for an organization",
6
6
"key": "literal:self",
7
7
"record": {
8
8
"properties": {
9
+
"analysisDate": {
10
+
"description": "When the phylogenetic analysis was performed",
11
+
"format": "datetime",
12
+
"type": "string"
13
+
},
14
+
"analysisMethod": {
15
+
"description": "Method used to generate the dendogram (e.g., 'Maximum Likelihood with RAxML', 'Neighbor-Joining')",
16
+
"maxGraphemes": 512,
17
+
"type": "string"
18
+
},
9
19
"createdAt": {
10
20
"description": "The date and time of the creation of the record",
11
21
"format": "datetime",
12
22
"type": "string"
13
23
},
24
+
"dataSource": {
25
+
"description": "Source of the sequence or trait data used in the analysis",
26
+
"maxGraphemes": 256,
27
+
"type": "string"
28
+
},
14
29
"dendogram": {
15
30
"description": "An SVG of the dendogram uploaded as blob",
16
-
"ref": "app.gainforest.common.defs#smallBlob",
31
+
"ref": "org.hypercerts.defs#smallBlob",
17
32
"type": "ref"
33
+
},
34
+
"description": {
35
+
"description": "Description of what this dendogram shows",
36
+
"ref": "app.gainforest.common.defs#richtext",
37
+
"type": "ref"
38
+
},
39
+
"name": {
40
+
"description": "Name or title of the dendogram (e.g., 'Flora Phylogenetic Tree - Site A 2025')",
41
+
"maxGraphemes": 256,
42
+
"type": "string"
43
+
},
44
+
"rootTaxon": {
45
+
"description": "The root taxon of the tree (e.g., 'Plantae')",
46
+
"maxGraphemes": 256,
47
+
"type": "string"
48
+
},
49
+
"siteRef": {
50
+
"description": "AT-URI reference to the site this dendogram represents",
51
+
"format": "at-uri",
52
+
"type": "string"
53
+
},
54
+
"taxonCount": {
55
+
"description": "Number of taxa represented in the dendogram",
56
+
"minimum": 0,
57
+
"type": "integer"
58
+
},
59
+
"taxonGroups": {
60
+
"description": "Which taxonomic groups are represented in the dendogram",
61
+
"items": {
62
+
"knownValues": [
63
+
"flora",
64
+
"fauna",
65
+
"fungi",
66
+
"bacteria",
67
+
"archaea",
68
+
"protista",
69
+
"chromista"
70
+
],
71
+
"maxGraphemes": 64,
72
+
"type": "string"
73
+
},
74
+
"maxLength": 10,
75
+
"type": "array"
76
+
},
77
+
"thumbnail": {
78
+
"description": "Thumbnail preview image of the dendogram",
79
+
"ref": "app.gainforest.common.defs#imageThumbnail",
80
+
"type": "ref"
81
+
},
82
+
"treeType": {
83
+
"description": "Type of tree represented in the dendogram",
84
+
"knownValues": [
85
+
"phylogenetic",
86
+
"phenetic",
87
+
"cladistic",
88
+
"functional-trait",
89
+
"other"
90
+
],
91
+
"maxGraphemes": 64,
92
+
"type": "string"
18
93
}
19
94
},
20
95
"required": [
21
96
"dendogram",
22
97
"createdAt"
23
98
],
24
99
"type": "object"
25
100
},
26
101
"type": "record"
27
102
}
28
103
},
29
104
"id": "app.gainforest.organization.observations.dendogram",
30
105
"lexicon": 1
31
106
}