app.gainforest.organization.observations.dendogram

gainforest.earth

Schema Diff

+76 -1

From

CID
bafyreiemmnhx7f7...
Indexed At
2026-02-18 18:06 UTC
View this version

To

CID
bafyreihi6t5saj3...
Indexed At
2026-04-29 14:34 UTC
View this version

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
}

Compare Other Versions

Lexicon Garden

@