app.gainforest.organization.observations.measuredTreesCluster
Schema Diff
+81 -1
Compatibility Analysis
Breaking Changes Detected
3 breaking changes, 36 non-breaking changes.
Breaking Changes (3)
- RemovedVertex RemovedVertex { vertex_id: "app.gainforest.common.defs#smallBlob" }
- RemovedEdge RemovedEdge { src: "app.gainforest.organization.observations.measuredTreesCluster:body.shapefile", tgt: "app.gainforest.common.defs#smallBlob", kind: "ref", name: None }
- ConstraintTightened ConstraintTightened { vertex_id: "app.gainforest.organization.observations.measuredTreesCluster:body.shapefile", sort: "ref", old_value: "app.gainforest.common.defs#smallBlob", new_value: "org.hypercerts.defs#smallBlob" }
Non-Breaking Changes (36)
- AddedVertex AddedVertex { vertex_id: "app.gainforest.common.defs#richtext" }
- AddedVertex AddedVertex { vertex_id: "app.gainforest.organization.observations.measuredTreesCluster:body.areaSqMeters" }
- AddedVertex AddedVertex { vertex_id: "app.gainforest.organization.observations.measuredTreesCluster:body.averageDbhCm" }
- AddedVertex AddedVertex { vertex_id: "app.gainforest.organization.observations.measuredTreesCluster:body.averageHeightMeters" }
- AddedVertex AddedVertex { vertex_id: "app.gainforest.organization.observations.measuredTreesCluster:body.dataSource" }
- AddedVertex AddedVertex { vertex_id: "app.gainforest.organization.observations.measuredTreesCluster:body.decimalLatitude" }
- AddedVertex AddedVertex { vertex_id: "app.gainforest.organization.observations.measuredTreesCluster:body.decimalLongitude" }
- AddedVertex AddedVertex { vertex_id: "app.gainforest.organization.observations.measuredTreesCluster:body.description" }
- AddedVertex AddedVertex { vertex_id: "app.gainforest.organization.observations.measuredTreesCluster:body.dominantSpecies" }
- AddedVertex AddedVertex { vertex_id: "app.gainforest.organization.observations.measuredTreesCluster:body.license" }
- AddedVertex AddedVertex { vertex_id: "app.gainforest.organization.observations.measuredTreesCluster:body.measuredBy" }
- AddedVertex AddedVertex { vertex_id: "app.gainforest.organization.observations.measuredTreesCluster:body.measurementDateRange" }
- AddedVertex AddedVertex { vertex_id: "app.gainforest.organization.observations.measuredTreesCluster:body.measurementProtocol" }
- AddedVertex AddedVertex { vertex_id: "app.gainforest.organization.observations.measuredTreesCluster:body.name" }
- AddedVertex AddedVertex { vertex_id: "app.gainforest.organization.observations.measuredTreesCluster:body.siteRef" }
- AddedVertex AddedVertex { vertex_id: "app.gainforest.organization.observations.measuredTreesCluster:body.speciesCount" }
- AddedVertex AddedVertex { vertex_id: "app.gainforest.organization.observations.measuredTreesCluster:body.totalTreeCount" }
- AddedVertex AddedVertex { vertex_id: "org.hypercerts.defs#smallBlob" }
- AddedEdge AddedEdge { src: "app.gainforest.organization.observations.measuredTreesCluster:body", tgt: "app.gainforest.organization.observations.measuredTreesCluster:body.areaSqMeters", kind: "prop", name: Some("areaSqMeters") }
- AddedEdge AddedEdge { src: "app.gainforest.organization.observations.measuredTreesCluster:body", tgt: "app.gainforest.organization.observations.measuredTreesCluster:body.averageDbhCm", kind: "prop", name: Some("averageDbhCm") }
- AddedEdge AddedEdge { src: "app.gainforest.organization.observations.measuredTreesCluster:body", tgt: "app.gainforest.organization.observations.measuredTreesCluster:body.averageHeightMeters", kind: "prop", name: Some("averageHeightMeters") }
- AddedEdge AddedEdge { src: "app.gainforest.organization.observations.measuredTreesCluster:body", tgt: "app.gainforest.organization.observations.measuredTreesCluster:body.dataSource", kind: "prop", name: Some("dataSource") }
- AddedEdge AddedEdge { src: "app.gainforest.organization.observations.measuredTreesCluster:body", tgt: "app.gainforest.organization.observations.measuredTreesCluster:body.decimalLatitude", kind: "prop", name: Some("decimalLatitude") }
- AddedEdge AddedEdge { src: "app.gainforest.organization.observations.measuredTreesCluster:body", tgt: "app.gainforest.organization.observations.measuredTreesCluster:body.decimalLongitude", kind: "prop", name: Some("decimalLongitude") }
- AddedEdge AddedEdge { src: "app.gainforest.organization.observations.measuredTreesCluster:body", tgt: "app.gainforest.organization.observations.measuredTreesCluster:body.description", kind: "prop", name: Some("description") }
- AddedEdge AddedEdge { src: "app.gainforest.organization.observations.measuredTreesCluster:body", tgt: "app.gainforest.organization.observations.measuredTreesCluster:body.dominantSpecies", kind: "prop", name: Some("dominantSpecies") }
- AddedEdge AddedEdge { src: "app.gainforest.organization.observations.measuredTreesCluster:body", tgt: "app.gainforest.organization.observations.measuredTreesCluster:body.license", kind: "prop", name: Some("license") }
- AddedEdge AddedEdge { src: "app.gainforest.organization.observations.measuredTreesCluster:body", tgt: "app.gainforest.organization.observations.measuredTreesCluster:body.measuredBy", kind: "prop", name: Some("measuredBy") }
- AddedEdge AddedEdge { src: "app.gainforest.organization.observations.measuredTreesCluster:body", tgt: "app.gainforest.organization.observations.measuredTreesCluster:body.measurementDateRange", kind: "prop", name: Some("measurementDateRange") }
- AddedEdge AddedEdge { src: "app.gainforest.organization.observations.measuredTreesCluster:body", tgt: "app.gainforest.organization.observations.measuredTreesCluster:body.measurementProtocol", kind: "prop", name: Some("measurementProtocol") }
- AddedEdge AddedEdge { src: "app.gainforest.organization.observations.measuredTreesCluster:body", tgt: "app.gainforest.organization.observations.measuredTreesCluster:body.name", kind: "prop", name: Some("name") }
- AddedEdge AddedEdge { src: "app.gainforest.organization.observations.measuredTreesCluster:body", tgt: "app.gainforest.organization.observations.measuredTreesCluster:body.siteRef", kind: "prop", name: Some("siteRef") }
- AddedEdge AddedEdge { src: "app.gainforest.organization.observations.measuredTreesCluster:body", tgt: "app.gainforest.organization.observations.measuredTreesCluster:body.speciesCount", kind: "prop", name: Some("speciesCount") }
- AddedEdge AddedEdge { src: "app.gainforest.organization.observations.measuredTreesCluster:body", tgt: "app.gainforest.organization.observations.measuredTreesCluster:body.totalTreeCount", kind: "prop", name: Some("totalTreeCount") }
- AddedEdge AddedEdge { src: "app.gainforest.organization.observations.measuredTreesCluster:body.description", tgt: "app.gainforest.common.defs#richtext", kind: "ref", name: None }
- AddedEdge AddedEdge { src: "app.gainforest.organization.observations.measuredTreesCluster:body.shapefile", tgt: "org.hypercerts.defs#smallBlob", 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#richtext" }AddedVertex { vertex_id: "app.gainforest.organization.observations.measuredTreesCluster:body.areaSqMeters" }AddedVertex { vertex_id: "app.gainforest.organization.observations.measuredTreesCluster:body.averageDbhCm" }AddedVertex { vertex_id: "app.gainforest.organization.observations.measuredTreesCluster:body.averageHeightMeters" }AddedVertex { vertex_id: "app.gainforest.organization.observations.measuredTreesCluster:body.dataSource" }AddedVertex { vertex_id: "app.gainforest.organization.observations.measuredTreesCluster:body.decimalLatitude" }AddedVertex { vertex_id: "app.gainforest.organization.observations.measuredTreesCluster:body.decimalLongitude" }AddedVertex { vertex_id: "app.gainforest.organization.observations.measuredTreesCluster:body.description" }AddedVertex { vertex_id: "app.gainforest.organization.observations.measuredTreesCluster:body.dominantSpecies" }AddedVertex { vertex_id: "app.gainforest.organization.observations.measuredTreesCluster:body.license" }AddedVertex { vertex_id: "app.gainforest.organization.observations.measuredTreesCluster:body.measuredBy" }AddedVertex { vertex_id: "app.gainforest.organization.observations.measuredTreesCluster:body.measurementDateRange" }AddedVertex { vertex_id: "app.gainforest.organization.observations.measuredTreesCluster:body.measurementProtocol" }AddedVertex { vertex_id: "app.gainforest.organization.observations.measuredTreesCluster:body.name" }AddedVertex { vertex_id: "app.gainforest.organization.observations.measuredTreesCluster:body.siteRef" }AddedVertex { vertex_id: "app.gainforest.organization.observations.measuredTreesCluster:body.speciesCount" }AddedVertex { vertex_id: "app.gainforest.organization.observations.measuredTreesCluster:body.totalTreeCount" }AddedVertex { vertex_id: "org.hypercerts.defs#smallBlob" }
Constraint Changes
- ConstraintTightened ConstraintTightened { vertex_id: "app.gainforest.organization.observations.measuredTreesCluster:body.shapefile", sort: "ref", old_value: "app.gainforest.common.defs#smallBlob", new_value: "org.hypercerts.defs#smallBlob" }
Additional Notes
- Breaking: RemovedEdge { src: "app.gainforest.organization.observations.measuredTreesCluster:body.shapefile", tgt: "app.gainforest.common.defs#smallBlob", kind: "ref", name: None }
- Non-breaking: AddedEdge { src: "app.gainforest.organization.observations.measuredTreesCluster:body", tgt: "app.gainforest.organization.observations.measuredTreesCluster:body.areaSqMeters", kind: "prop", name: Some("areaSqMeters") }
- Non-breaking: AddedEdge { src: "app.gainforest.organization.observations.measuredTreesCluster:body", tgt: "app.gainforest.organization.observations.measuredTreesCluster:body.averageDbhCm", kind: "prop", name: Some("averageDbhCm") }
- Non-breaking: AddedEdge { src: "app.gainforest.organization.observations.measuredTreesCluster:body", tgt: "app.gainforest.organization.observations.measuredTreesCluster:body.averageHeightMeters", kind: "prop", name: Some("averageHeightMeters") }
- Non-breaking: AddedEdge { src: "app.gainforest.organization.observations.measuredTreesCluster:body", tgt: "app.gainforest.organization.observations.measuredTreesCluster:body.dataSource", kind: "prop", name: Some("dataSource") }
- Non-breaking: AddedEdge { src: "app.gainforest.organization.observations.measuredTreesCluster:body", tgt: "app.gainforest.organization.observations.measuredTreesCluster:body.decimalLatitude", kind: "prop", name: Some("decimalLatitude") }
- Non-breaking: AddedEdge { src: "app.gainforest.organization.observations.measuredTreesCluster:body", tgt: "app.gainforest.organization.observations.measuredTreesCluster:body.decimalLongitude", kind: "prop", name: Some("decimalLongitude") }
- Non-breaking: AddedEdge { src: "app.gainforest.organization.observations.measuredTreesCluster:body", tgt: "app.gainforest.organization.observations.measuredTreesCluster:body.description", kind: "prop", name: Some("description") }
- Non-breaking: AddedEdge { src: "app.gainforest.organization.observations.measuredTreesCluster:body", tgt: "app.gainforest.organization.observations.measuredTreesCluster:body.dominantSpecies", kind: "prop", name: Some("dominantSpecies") }
- Non-breaking: AddedEdge { src: "app.gainforest.organization.observations.measuredTreesCluster:body", tgt: "app.gainforest.organization.observations.measuredTreesCluster:body.license", kind: "prop", name: Some("license") }
- Non-breaking: AddedEdge { src: "app.gainforest.organization.observations.measuredTreesCluster:body", tgt: "app.gainforest.organization.observations.measuredTreesCluster:body.measuredBy", kind: "prop", name: Some("measuredBy") }
- Non-breaking: AddedEdge { src: "app.gainforest.organization.observations.measuredTreesCluster:body", tgt: "app.gainforest.organization.observations.measuredTreesCluster:body.measurementDateRange", kind: "prop", name: Some("measurementDateRange") }
- Non-breaking: AddedEdge { src: "app.gainforest.organization.observations.measuredTreesCluster:body", tgt: "app.gainforest.organization.observations.measuredTreesCluster:body.measurementProtocol", kind: "prop", name: Some("measurementProtocol") }
- Non-breaking: AddedEdge { src: "app.gainforest.organization.observations.measuredTreesCluster:body", tgt: "app.gainforest.organization.observations.measuredTreesCluster:body.name", kind: "prop", name: Some("name") }
- Non-breaking: AddedEdge { src: "app.gainforest.organization.observations.measuredTreesCluster:body", tgt: "app.gainforest.organization.observations.measuredTreesCluster:body.siteRef", kind: "prop", name: Some("siteRef") }
- Non-breaking: AddedEdge { src: "app.gainforest.organization.observations.measuredTreesCluster:body", tgt: "app.gainforest.organization.observations.measuredTreesCluster:body.speciesCount", kind: "prop", name: Some("speciesCount") }
- Non-breaking: AddedEdge { src: "app.gainforest.organization.observations.measuredTreesCluster:body", tgt: "app.gainforest.organization.observations.measuredTreesCluster:body.totalTreeCount", kind: "prop", name: Some("totalTreeCount") }
- Non-breaking: AddedEdge { src: "app.gainforest.organization.observations.measuredTreesCluster:body.description", tgt: "app.gainforest.common.defs#richtext", kind: "ref", name: None }
- Non-breaking: AddedEdge { src: "app.gainforest.organization.observations.measuredTreesCluster:body.shapefile", tgt: "org.hypercerts.defs#smallBlob", 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 measured trees cluster for an organization",
6
6
"key": "tid",
7
7
"record": {
8
8
"properties": {
9
+
"areaSqMeters": {
10
+
"description": "Area of the cluster in square meters",
11
+
"maxGraphemes": 32,
12
+
"type": "string"
13
+
},
14
+
"averageDbhCm": {
15
+
"description": "Average diameter at breast height in cm",
16
+
"maxGraphemes": 16,
17
+
"type": "string"
18
+
},
19
+
"averageHeightMeters": {
20
+
"description": "Average tree height in meters",
21
+
"maxGraphemes": 16,
22
+
"type": "string"
23
+
},
9
24
"createdAt": {
10
25
"description": "The date and time of the creation of the record",
11
26
"format": "datetime",
12
27
"type": "string"
13
28
},
29
+
"dataSource": {
30
+
"description": "Source of the data (e.g., 'KoBoToolbox', 'field survey')",
31
+
"maxGraphemes": 256,
32
+
"type": "string"
33
+
},
34
+
"decimalLatitude": {
35
+
"description": "Centroid latitude of the cluster",
36
+
"maxGraphemes": 32,
37
+
"type": "string"
38
+
},
39
+
"decimalLongitude": {
40
+
"description": "Centroid longitude of the cluster",
41
+
"maxGraphemes": 32,
42
+
"type": "string"
43
+
},
44
+
"description": {
45
+
"description": "Description of the cluster",
46
+
"ref": "app.gainforest.common.defs#richtext",
47
+
"type": "ref"
48
+
},
49
+
"dominantSpecies": {
50
+
"description": "Most common species scientific name",
51
+
"maxGraphemes": 256,
52
+
"type": "string"
53
+
},
54
+
"license": {
55
+
"description": "Data license",
56
+
"maxGraphemes": 256,
57
+
"type": "string"
58
+
},
59
+
"measuredBy": {
60
+
"description": "Person(s) who measured the trees (pipe-delimited)",
61
+
"maxGraphemes": 512,
62
+
"type": "string"
63
+
},
64
+
"measurementDateRange": {
65
+
"description": "Date range of measurements (ISO 8601 interval)",
66
+
"maxGraphemes": 64,
67
+
"type": "string"
68
+
},
69
+
"measurementProtocol": {
70
+
"description": "Description of the measurement protocol used",
71
+
"maxGraphemes": 1024,
72
+
"type": "string"
73
+
},
74
+
"name": {
75
+
"description": "Name of the tree cluster/plot (e.g., 'Plot A - Riparian Zone')",
76
+
"maxGraphemes": 256,
77
+
"type": "string"
78
+
},
14
79
"shapefile": {
15
80
"description": "A blob pointing to a shapefile of the measured trees cluster",
16
-
"ref": "app.gainforest.common.defs#smallBlob",
81
+
"ref": "org.hypercerts.defs#smallBlob",
17
82
"type": "ref"
83
+
},
84
+
"siteRef": {
85
+
"description": "AT-URI reference to the site this cluster belongs to",
86
+
"format": "at-uri",
87
+
"type": "string"
88
+
},
89
+
"speciesCount": {
90
+
"description": "Number of distinct species in the cluster",
91
+
"minimum": 0,
92
+
"type": "integer"
93
+
},
94
+
"totalTreeCount": {
95
+
"description": "Total number of measured trees in the cluster",
96
+
"minimum": 0,
97
+
"type": "integer"
18
98
}
19
99
},
20
100
"required": [
21
101
"shapefile",
22
102
"createdAt"
23
103
],
24
104
"type": "object"
25
105
},
26
106
"type": "record"
27
107
}
28
108
},
29
109
"id": "app.gainforest.organization.observations.measuredTreesCluster",
30
110
"lexicon": 1
31
111
}