app.gainforest.organization.info

gainforest.earth

Schema Diff

+161 -12

From

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

To

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

Compatibility Analysis

Breaking Changes Detected

22 breaking changes, 39 non-breaking changes.

Breaking Changes (22)
  • KindChanged KindChanged { vertex_id: "app.gainforest.organization.info:body.longDescription", old_kind: "string", new_kind: "ref" }
  • KindChanged KindChanged { vertex_id: "app.gainforest.organization.info:body.shortDescription", old_kind: "string", new_kind: "ref" }
  • ConstraintAdded ConstraintAdded { vertex_id: "app.gainforest.organization.info:body.objectives:items", sort: "maxGraphemes", value: "64" }
  • ConstraintAdded ConstraintAdded { vertex_id: "app.gainforest.organization.info:body.dataDownloadInfo", sort: "maxGraphemes", value: "1024" }
  • ConstraintAdded ConstraintAdded { vertex_id: "app.gainforest.organization.info:body.foundedYear", sort: "maximum", value: "2100" }
  • ConstraintAdded ConstraintAdded { vertex_id: "app.gainforest.organization.info:body.foundedYear", sort: "minimum", value: "1900" }
  • ConstraintAdded ConstraintAdded { vertex_id: "app.gainforest.organization.info:body.focusSpeciesGroups:items", sort: "maxGraphemes", value: "64" }
  • ConstraintAdded ConstraintAdded { vertex_id: "app.gainforest.organization.info:body.stripeUrl", sort: "maxGraphemes", value: "512" }
  • ConstraintAdded ConstraintAdded { vertex_id: "app.gainforest.organization.info:body.ecosystemTypes:items", sort: "maxGraphemes", value: "128" }
  • ConstraintAdded ConstraintAdded { vertex_id: "app.gainforest.organization.info:body.visibility", sort: "maxGraphemes", value: "32" }
  • ConstraintTightened ConstraintTightened { vertex_id: "app.gainforest.organization.info:body.visibility", sort: "enum", old_value: "Public,Hidden", new_value: "Public,Unlisted" }
  • ConstraintAdded ConstraintAdded { vertex_id: "app.gainforest.organization.info#socialLink.platform", sort: "maxGraphemes", value: "64" }
  • ConstraintAdded ConstraintAdded { vertex_id: "app.gainforest.organization.info:body.teamSize", sort: "minimum", value: "1" }
  • ConstraintAdded ConstraintAdded { vertex_id: "app.gainforest.organization.info:body.email", sort: "maxGraphemes", value: "256" }
  • ConstraintAdded ConstraintAdded { vertex_id: "app.gainforest.organization.info:body.website", sort: "maxGraphemes", value: "512" }
  • ConstraintAdded ConstraintAdded { vertex_id: "app.gainforest.organization.info:body.dataLicense", sort: "maxGraphemes", value: "256" }
  • ConstraintAdded ConstraintAdded { vertex_id: "app.gainforest.organization.info:body.discordId", sort: "maxGraphemes", value: "64" }
  • ConstraintAdded ConstraintAdded { vertex_id: "app.gainforest.organization.info#socialLink.url", sort: "maxGraphemes", value: "512" }
  • ConstraintAdded ConstraintAdded { vertex_id: "app.gainforest.organization.info:body.dataDownloadUrl", sort: "maxGraphemes", value: "512" }
  • ConstraintAdded ConstraintAdded { vertex_id: "app.gainforest.organization.info:body.fundingSourcesDescription", sort: "maxGraphemes", value: "2048" }
  • ConstraintAdded ConstraintAdded { vertex_id: "app.gainforest.organization.info:body.country", sort: "maxLength", value: "2" }
  • ConstraintAdded ConstraintAdded { vertex_id: "app.gainforest.organization.info:body.country", sort: "minLength", value: "2" }
Non-Breaking Changes (39)
  • AddedVertex AddedVertex { vertex_id: "app.gainforest.organization.info#socialLink" }
  • AddedVertex AddedVertex { vertex_id: "app.gainforest.organization.info#socialLink.platform" }
  • AddedVertex AddedVertex { vertex_id: "app.gainforest.organization.info#socialLink.url" }
  • AddedVertex AddedVertex { vertex_id: "app.gainforest.organization.info:body.dataDownloadInfo" }
  • AddedVertex AddedVertex { vertex_id: "app.gainforest.organization.info:body.dataDownloadUrl" }
  • AddedVertex AddedVertex { vertex_id: "app.gainforest.organization.info:body.dataLicense" }
  • AddedVertex AddedVertex { vertex_id: "app.gainforest.organization.info:body.discordId" }
  • AddedVertex AddedVertex { vertex_id: "app.gainforest.organization.info:body.ecosystemTypes" }
  • AddedVertex AddedVertex { vertex_id: "app.gainforest.organization.info:body.ecosystemTypes:items" }
  • AddedVertex AddedVertex { vertex_id: "app.gainforest.organization.info:body.email" }
  • AddedVertex AddedVertex { vertex_id: "app.gainforest.organization.info:body.focusSpeciesGroups" }
  • AddedVertex AddedVertex { vertex_id: "app.gainforest.organization.info:body.focusSpeciesGroups:items" }
  • AddedVertex AddedVertex { vertex_id: "app.gainforest.organization.info:body.foundedYear" }
  • AddedVertex AddedVertex { vertex_id: "app.gainforest.organization.info:body.fundingSourcesDescription" }
  • AddedVertex AddedVertex { vertex_id: "app.gainforest.organization.info:body.socialLinks" }
  • AddedVertex AddedVertex { vertex_id: "app.gainforest.organization.info:body.socialLinks:items" }
  • AddedVertex AddedVertex { vertex_id: "app.gainforest.organization.info:body.stripeUrl" }
  • AddedVertex AddedVertex { vertex_id: "app.gainforest.organization.info:body.teamSize" }
  • AddedEdge AddedEdge { src: "app.gainforest.organization.info#socialLink", tgt: "app.gainforest.organization.info#socialLink.platform", kind: "prop", name: Some("platform") }
  • AddedEdge AddedEdge { src: "app.gainforest.organization.info#socialLink", tgt: "app.gainforest.organization.info#socialLink.url", kind: "prop", name: Some("url") }
  • AddedEdge AddedEdge { src: "app.gainforest.organization.info:body", tgt: "app.gainforest.organization.info:body.dataDownloadInfo", kind: "prop", name: Some("dataDownloadInfo") }
  • AddedEdge AddedEdge { src: "app.gainforest.organization.info:body", tgt: "app.gainforest.organization.info:body.dataDownloadUrl", kind: "prop", name: Some("dataDownloadUrl") }
  • AddedEdge AddedEdge { src: "app.gainforest.organization.info:body", tgt: "app.gainforest.organization.info:body.dataLicense", kind: "prop", name: Some("dataLicense") }
  • AddedEdge AddedEdge { src: "app.gainforest.organization.info:body", tgt: "app.gainforest.organization.info:body.discordId", kind: "prop", name: Some("discordId") }
  • AddedEdge AddedEdge { src: "app.gainforest.organization.info:body", tgt: "app.gainforest.organization.info:body.ecosystemTypes", kind: "prop", name: Some("ecosystemTypes") }
  • AddedEdge AddedEdge { src: "app.gainforest.organization.info:body", tgt: "app.gainforest.organization.info:body.email", kind: "prop", name: Some("email") }
  • AddedEdge AddedEdge { src: "app.gainforest.organization.info:body", tgt: "app.gainforest.organization.info:body.focusSpeciesGroups", kind: "prop", name: Some("focusSpeciesGroups") }
  • AddedEdge AddedEdge { src: "app.gainforest.organization.info:body", tgt: "app.gainforest.organization.info:body.foundedYear", kind: "prop", name: Some("foundedYear") }
  • AddedEdge AddedEdge { src: "app.gainforest.organization.info:body", tgt: "app.gainforest.organization.info:body.fundingSourcesDescription", kind: "prop", name: Some("fundingSourcesDescription") }
  • AddedEdge AddedEdge { src: "app.gainforest.organization.info:body", tgt: "app.gainforest.organization.info:body.socialLinks", kind: "prop", name: Some("socialLinks") }
  • AddedEdge AddedEdge { src: "app.gainforest.organization.info:body", tgt: "app.gainforest.organization.info:body.stripeUrl", kind: "prop", name: Some("stripeUrl") }
  • AddedEdge AddedEdge { src: "app.gainforest.organization.info:body", tgt: "app.gainforest.organization.info:body.teamSize", kind: "prop", name: Some("teamSize") }
  • AddedEdge AddedEdge { src: "app.gainforest.organization.info:body.ecosystemTypes", tgt: "app.gainforest.organization.info:body.ecosystemTypes:items", kind: "items", name: None }
  • AddedEdge AddedEdge { src: "app.gainforest.organization.info:body.focusSpeciesGroups", tgt: "app.gainforest.organization.info:body.focusSpeciesGroups:items", kind: "items", name: None }
  • AddedEdge AddedEdge { src: "app.gainforest.organization.info:body.socialLinks", tgt: "app.gainforest.organization.info:body.socialLinks:items", kind: "items", name: None }
  • ConstraintRemoved ConstraintRemoved { vertex_id: "app.gainforest.organization.info:body.shortDescription", sort: "maxLength" }
  • ConstraintRemoved ConstraintRemoved { vertex_id: "app.gainforest.organization.info:body.shortDescription", sort: "minLength" }
  • ConstraintRemoved ConstraintRemoved { vertex_id: "app.gainforest.organization.info:body.longDescription", sort: "minLength" }
  • ConstraintRemoved ConstraintRemoved { vertex_id: "app.gainforest.organization.info:body.longDescription", sort: "maxLength" }

Migration Guidance

Added Elements

  • AddedVertex { vertex_id: "app.gainforest.organization.info#socialLink" }
  • AddedVertex { vertex_id: "app.gainforest.organization.info#socialLink.platform" }
  • AddedVertex { vertex_id: "app.gainforest.organization.info#socialLink.url" }
  • AddedVertex { vertex_id: "app.gainforest.organization.info:body.dataDownloadInfo" }
  • AddedVertex { vertex_id: "app.gainforest.organization.info:body.dataDownloadUrl" }
  • AddedVertex { vertex_id: "app.gainforest.organization.info:body.dataLicense" }
  • AddedVertex { vertex_id: "app.gainforest.organization.info:body.discordId" }
  • AddedVertex { vertex_id: "app.gainforest.organization.info:body.ecosystemTypes" }
  • AddedVertex { vertex_id: "app.gainforest.organization.info:body.ecosystemTypes:items" }
  • AddedVertex { vertex_id: "app.gainforest.organization.info:body.email" }
  • AddedVertex { vertex_id: "app.gainforest.organization.info:body.focusSpeciesGroups" }
  • AddedVertex { vertex_id: "app.gainforest.organization.info:body.focusSpeciesGroups:items" }
  • AddedVertex { vertex_id: "app.gainforest.organization.info:body.foundedYear" }
  • AddedVertex { vertex_id: "app.gainforest.organization.info:body.fundingSourcesDescription" }
  • AddedVertex { vertex_id: "app.gainforest.organization.info:body.socialLinks" }
  • AddedVertex { vertex_id: "app.gainforest.organization.info:body.socialLinks:items" }
  • AddedVertex { vertex_id: "app.gainforest.organization.info:body.stripeUrl" }
  • AddedVertex { vertex_id: "app.gainforest.organization.info:body.teamSize" }

Constraint Changes

  • ConstraintAdded ConstraintAdded { vertex_id: "app.gainforest.organization.info:body.focusSpeciesGroups:items", sort: "maxGraphemes", value: "64" }
  • ConstraintAdded ConstraintAdded { vertex_id: "app.gainforest.organization.info:body.discordId", sort: "maxGraphemes", value: "64" }
  • ConstraintAdded ConstraintAdded { vertex_id: "app.gainforest.organization.info:body.foundedYear", sort: "maximum", value: "2100" }
  • ConstraintAdded ConstraintAdded { vertex_id: "app.gainforest.organization.info:body.foundedYear", sort: "minimum", value: "1900" }
  • ConstraintAdded ConstraintAdded { vertex_id: "app.gainforest.organization.info#socialLink.platform", sort: "maxGraphemes", value: "64" }
  • ConstraintAdded ConstraintAdded { vertex_id: "app.gainforest.organization.info:body.website", sort: "maxGraphemes", value: "512" }
  • ConstraintAdded ConstraintAdded { vertex_id: "app.gainforest.organization.info:body.dataLicense", sort: "maxGraphemes", value: "256" }
  • ConstraintAdded ConstraintAdded { vertex_id: "app.gainforest.organization.info:body.visibility", sort: "maxGraphemes", value: "32" }
  • ConstraintTightened ConstraintTightened { vertex_id: "app.gainforest.organization.info:body.visibility", sort: "enum", old_value: "Public,Hidden", new_value: "Public,Unlisted" }
  • ConstraintAdded ConstraintAdded { vertex_id: "app.gainforest.organization.info:body.dataDownloadUrl", sort: "maxGraphemes", value: "512" }
  • ConstraintAdded ConstraintAdded { vertex_id: "app.gainforest.organization.info:body.ecosystemTypes:items", sort: "maxGraphemes", value: "128" }
  • ConstraintAdded ConstraintAdded { vertex_id: "app.gainforest.organization.info#socialLink.url", sort: "maxGraphemes", value: "512" }
  • ConstraintAdded ConstraintAdded { vertex_id: "app.gainforest.organization.info:body.stripeUrl", sort: "maxGraphemes", value: "512" }
  • ConstraintAdded ConstraintAdded { vertex_id: "app.gainforest.organization.info:body.objectives:items", sort: "maxGraphemes", value: "64" }
  • ConstraintAdded ConstraintAdded { vertex_id: "app.gainforest.organization.info:body.fundingSourcesDescription", sort: "maxGraphemes", value: "2048" }
  • ConstraintAdded ConstraintAdded { vertex_id: "app.gainforest.organization.info:body.email", sort: "maxGraphemes", value: "256" }
  • ConstraintAdded ConstraintAdded { vertex_id: "app.gainforest.organization.info:body.teamSize", sort: "minimum", value: "1" }
  • ConstraintAdded ConstraintAdded { vertex_id: "app.gainforest.organization.info:body.country", sort: "maxLength", value: "2" }
  • ConstraintAdded ConstraintAdded { vertex_id: "app.gainforest.organization.info:body.country", sort: "minLength", value: "2" }
  • ConstraintAdded ConstraintAdded { vertex_id: "app.gainforest.organization.info:body.dataDownloadInfo", sort: "maxGraphemes", value: "1024" }
  • ConstraintRemoved ConstraintRemoved { vertex_id: "app.gainforest.organization.info:body.shortDescription", sort: "minLength" }
  • ConstraintRemoved ConstraintRemoved { vertex_id: "app.gainforest.organization.info:body.shortDescription", sort: "maxLength" }
  • ConstraintRemoved ConstraintRemoved { vertex_id: "app.gainforest.organization.info:body.longDescription", sort: "maxLength" }
  • ConstraintRemoved ConstraintRemoved { vertex_id: "app.gainforest.organization.info:body.longDescription", sort: "minLength" }

Additional Notes

  • Breaking: KindChanged { vertex_id: "app.gainforest.organization.info:body.longDescription", old_kind: "string", new_kind: "ref" }
  • Breaking: KindChanged { vertex_id: "app.gainforest.organization.info:body.shortDescription", old_kind: "string", new_kind: "ref" }
  • Non-breaking: AddedEdge { src: "app.gainforest.organization.info#socialLink", tgt: "app.gainforest.organization.info#socialLink.platform", kind: "prop", name: Some("platform") }
  • Non-breaking: AddedEdge { src: "app.gainforest.organization.info#socialLink", tgt: "app.gainforest.organization.info#socialLink.url", kind: "prop", name: Some("url") }
  • Non-breaking: AddedEdge { src: "app.gainforest.organization.info:body", tgt: "app.gainforest.organization.info:body.dataDownloadInfo", kind: "prop", name: Some("dataDownloadInfo") }
  • Non-breaking: AddedEdge { src: "app.gainforest.organization.info:body", tgt: "app.gainforest.organization.info:body.dataDownloadUrl", kind: "prop", name: Some("dataDownloadUrl") }
  • Non-breaking: AddedEdge { src: "app.gainforest.organization.info:body", tgt: "app.gainforest.organization.info:body.dataLicense", kind: "prop", name: Some("dataLicense") }
  • Non-breaking: AddedEdge { src: "app.gainforest.organization.info:body", tgt: "app.gainforest.organization.info:body.discordId", kind: "prop", name: Some("discordId") }
  • Non-breaking: AddedEdge { src: "app.gainforest.organization.info:body", tgt: "app.gainforest.organization.info:body.ecosystemTypes", kind: "prop", name: Some("ecosystemTypes") }
  • Non-breaking: AddedEdge { src: "app.gainforest.organization.info:body", tgt: "app.gainforest.organization.info:body.email", kind: "prop", name: Some("email") }
  • Non-breaking: AddedEdge { src: "app.gainforest.organization.info:body", tgt: "app.gainforest.organization.info:body.focusSpeciesGroups", kind: "prop", name: Some("focusSpeciesGroups") }
  • Non-breaking: AddedEdge { src: "app.gainforest.organization.info:body", tgt: "app.gainforest.organization.info:body.foundedYear", kind: "prop", name: Some("foundedYear") }
  • Non-breaking: AddedEdge { src: "app.gainforest.organization.info:body", tgt: "app.gainforest.organization.info:body.fundingSourcesDescription", kind: "prop", name: Some("fundingSourcesDescription") }
  • Non-breaking: AddedEdge { src: "app.gainforest.organization.info:body", tgt: "app.gainforest.organization.info:body.socialLinks", kind: "prop", name: Some("socialLinks") }
  • Non-breaking: AddedEdge { src: "app.gainforest.organization.info:body", tgt: "app.gainforest.organization.info:body.stripeUrl", kind: "prop", name: Some("stripeUrl") }
  • Non-breaking: AddedEdge { src: "app.gainforest.organization.info:body", tgt: "app.gainforest.organization.info:body.teamSize", kind: "prop", name: Some("teamSize") }
  • Non-breaking: AddedEdge { src: "app.gainforest.organization.info:body.ecosystemTypes", tgt: "app.gainforest.organization.info:body.ecosystemTypes:items", kind: "items", name: None }
  • Non-breaking: AddedEdge { src: "app.gainforest.organization.info:body.focusSpeciesGroups", tgt: "app.gainforest.organization.info:body.focusSpeciesGroups:items", kind: "items", name: None }
  • Non-breaking: AddedEdge { src: "app.gainforest.organization.info:body.socialLinks", tgt: "app.gainforest.organization.info:body.socialLinks:items", kind: "items", name: None }
1 1
{
2 2
  "id": "app.gainforest.organization.info",
3 3
  "defs": {
4 4
    "main": {
5 5
      "key": "literal:self",
6 6
      "type": "record",
7 7
      "record": {
8 8
        "type": "object",
9 9
        "required": [
10 10
          "displayName",
11 11
          "shortDescription",
12 12
          "longDescription",
13 13
          "objectives",
14 14
          "country",
15 15
          "visibility",
16 16
          "createdAt"
17 17
        ],
18 18
        "properties": {
19 19
          "logo": {
20 -
            "ref": "app.gainforest.common.defs#smallImage",
20 +
            "ref": "org.hypercerts.defs#smallImage",
21 21
            "type": "ref",
22 22
            "description": "Logo for the organization"
23 23
          },
24 +
          "email": {
25 +
            "type": "string",
26 +
            "description": "Contact email for the organization",
27 +
            "maxGraphemes": 256
28 +
          },
24 29
          "country": {
25 30
            "type": "string",
31 +
            "maxLength": 2,
32 +
            "minLength": 2,
26 33
            "description": "The country of the organization or project in two letter code (ISO 3166-1 alpha-2)"
27 34
          },
28 35
          "website": {
29 36
            "type": "string",
30 37
            "format": "uri",
31 -
            "description": "The website of the organization or project"
38 +
            "description": "The website of the organization or project",
39 +
            "maxGraphemes": 512
40 +
          },
41 +
          "teamSize": {
42 +
            "type": "integer",
43 +
            "minimum": 1,
44 +
            "description": "Number of team members in the organization"
32 45
          },
33 46
          "createdAt": {
34 47
            "type": "string",
35 48
            "format": "datetime",
36 49
            "description": "The date and time of the creation of the record"
37 50
          },
51 +
          "discordId": {
52 +
            "type": "string",
53 +
            "description": "Discord server ID for the organization",
54 +
            "maxGraphemes": 64
55 +
          },
38 56
          "startDate": {
39 57
            "type": "string",
40 58
            "format": "datetime",
41 59
            "description": "The start date of the organization or project"
42 60
          },
61 +
          "stripeUrl": {
62 +
            "type": "string",
63 +
            "format": "uri",
64 +
            "description": "Donation link for the organization",
65 +
            "maxGraphemes": 512
66 +
          },
43 67
          "coverImage": {
44 -
            "ref": "app.gainforest.common.defs#smallImage",
68 +
            "ref": "org.hypercerts.defs#smallImage",
45 69
            "type": "ref",
46 70
            "description": "Cover image for the organization"
47 71
          },
48 72
          "objectives": {
49 73
            "type": "array",
50 74
            "items": {
51 75
              "enum": [
52 76
                "Conservation",
53 77
                "Research",
54 78
                "Education",
55 79
                "Community",
56 80
                "Other"
57 81
              ],
58 -
              "type": "string"
82 +
              "type": "string",
83 +
              "maxGraphemes": 64
59 84
            },
60 85
            "description": "The objectives of the organization or project"
61 86
          },
62 87
          "visibility": {
63 88
            "enum": [
64 89
              "Public",
65 -
              "Hidden"
90 +
              "Unlisted"
66 91
            ],
67 92
            "type": "string",
68 -
            "description": "The visibility of the organization or project in the Green Globe"
93 +
            "description": "The visibility of the organization or project in the Green Globe",
94 +
            "maxGraphemes": 32
69 95
          },
96 +
          "dataLicense": {
97 +
            "type": "string",
98 +
            "description": "Default license for data published by the organization",
99 +
            "maxGraphemes": 256
100 +
          },
70 101
          "displayName": {
71 102
            "type": "string",
72 103
            "maxLength": 255,
73 104
            "minLength": 8,
74 105
            "description": "The name of the organization or project"
75 106
          },
76 -
          "longDescription": {
107 +
          "foundedYear": {
108 +
            "type": "integer",
109 +
            "maximum": 2100,
110 +
            "minimum": 1900,
111 +
            "description": "Year the organization was founded"
112 +
          },
113 +
          "socialLinks": {
114 +
            "type": "array",
115 +
            "items": {
116 +
              "ref": "#socialLink",
117 +
              "type": "ref"
118 +
            },
119 +
            "maxLength": 10,
120 +
            "description": "Social media links for the organization"
121 +
          },
122 +
          "ecosystemTypes": {
123 +
            "type": "array",
124 +
            "items": {
125 +
              "type": "string",
126 +
              "knownValues": [
127 +
                "tropical-rainforest",
128 +
                "temperate-forest",
129 +
                "boreal-forest",
130 +
                "mangrove",
131 +
                "coral-reef",
132 +
                "savanna",
133 +
                "grassland",
134 +
                "wetland",
135 +
                "desert",
136 +
                "alpine",
137 +
                "marine",
138 +
                "freshwater",
139 +
                "urban",
140 +
                "agroforestry",
141 +
                "other"
142 +
              ],
143 +
              "maxGraphemes": 128
144 +
            },
145 +
            "maxLength": 10,
146 +
            "description": "Types of ecosystems the organization works in"
147 +
          },
148 +
          "dataDownloadUrl": {
77 149
            "type": "string",
78 -
            "maxLength": 5000,
79 -
            "minLength": 50,
150 +
            "format": "uri",
151 +
            "description": "URL to download the organization's data",
152 +
            "maxGraphemes": 512
153 +
          },
154 +
          "longDescription": {
155 +
            "ref": "pub.leaflet.pages.linearDocument",
156 +
            "type": "ref",
80 157
            "description": "The long description of the organization or project in richtext"
81 158
          },
159 +
          "dataDownloadInfo": {
160 +
            "type": "string",
161 +
            "description": "Description of available data downloads",
162 +
            "maxGraphemes": 1024
163 +
          },
82 164
          "shortDescription": {
165 +
            "ref": "app.gainforest.common.defs#richtext",
166 +
            "type": "ref",
167 +
            "description": "The description of the organization or project"
168 +
          },
169 +
          "focusSpeciesGroups": {
170 +
            "type": "array",
171 +
            "items": {
172 +
              "type": "string",
173 +
              "knownValues": [
174 +
                "mammals",
175 +
                "birds",
176 +
                "reptiles",
177 +
                "amphibians",
178 +
                "fish",
179 +
                "insects",
180 +
                "arachnids",
181 +
                "mollusks",
182 +
                "crustaceans",
183 +
                "trees",
184 +
                "shrubs",
185 +
                "herbs",
186 +
                "grasses",
187 +
                "ferns",
188 +
                "mosses",
189 +
                "fungi",
190 +
                "algae",
191 +
                "coral",
192 +
                "other"
193 +
              ],
194 +
              "maxGraphemes": 64
195 +
            },
196 +
            "maxLength": 20,
197 +
            "description": "Species groups the organization focuses on"
198 +
          },
199 +
          "fundingSourcesDescription": {
83 200
            "type": "string",
84 -
            "maxLength": 2000,
85 -
            "minLength": 50,
86 -
            "description": "The description of the organization or project"
201 +
            "description": "Description of the organization's funding sources",
202 +
            "maxGraphemes": 2048
87 203
          }
88 204
        }
89 205
      },
90 206
      "description": "A declaration of an organization or project"
207 +
    },
208 +
    "socialLink": {
209 +
      "type": "object",
210 +
      "required": [
211 +
        "platform",
212 +
        "url"
213 +
      ],
214 +
      "properties": {
215 +
        "url": {
216 +
          "type": "string",
217 +
          "format": "uri",
218 +
          "description": "The URL of the social media profile or page",
219 +
          "maxGraphemes": 512
220 +
        },
221 +
        "platform": {
222 +
          "type": "string",
223 +
          "description": "The social media platform",
224 +
          "knownValues": [
225 +
            "twitter",
226 +
            "instagram",
227 +
            "facebook",
228 +
            "linkedin",
229 +
            "youtube",
230 +
            "tiktok",
231 +
            "github",
232 +
            "discord",
233 +
            "telegram",
234 +
            "other"
235 +
          ],
236 +
          "maxGraphemes": 64
237 +
        }
238 +
      },
239 +
      "description": "A social media link for an organization"
91 240
    }
92 241
  },
93 242
  "$type": "com.atproto.lexicon.schema",
94 243
  "lexicon": 1
95 244
}

Compare Other Versions

Lexicon Garden

@