app.gainforest.common.defs

gainforest.earth

Schema Diff

+242 -21

From

CID
bafyreihzi36t3kc...
Indexed At
2026-01-20 20:32 UTC
View this version

To

CID
bafyreiedqb2eanu...
Indexed At
2026-01-25 02:16 UTC
View this version
1 1
{
2 2
  "id": "app.gainforest.common.defs",
3 3
  "defs": {
4 4
    "uri": {
5 5
      "type": "object",
6 6
      "required": [
7 7
        "uri"
8 8
      ],
9 9
      "properties": {
10 10
        "uri": {
11 11
          "type": "string",
12 12
          "format": "uri",
13 -
          "description": "URI to external data",
13 +
          "description": "URI to external resource",
14 14
          "maxGraphemes": 1024
15 15
        }
16 16
      },
17 -
      "description": "Object containing a URI to external data"
17 +
      "description": "Reference to external data via URI"
18 +
    },
19 +
    "audio": {
20 +
      "type": "object",
21 +
      "required": [
22 +
        "file"
23 +
      ],
24 +
      "properties": {
25 +
        "file": {
26 +
          "type": "blob",
27 +
          "accept": [
28 +
            "audio/wav",
29 +
            "audio/x-wav",
30 +
            "audio/mpeg",
31 +
            "audio/mp3",
32 +
            "audio/mp4",
33 +
            "audio/x-m4a",
34 +
            "audio/aac",
35 +
            "audio/flac",
36 +
            "audio/x-flac",
37 +
            "audio/ogg",
38 +
            "audio/opus",
39 +
            "audio/webm",
40 +
            "audio/aiff",
41 +
            "audio/x-aiff"
42 +
          ],
43 +
          "maxSize": 104857600,
44 +
          "description": "Audio up to 100MB. Supports WAV, MP3, M4A, AAC, FLAC, OGG, Opus, WebM, AIFF."
45 +
        }
46 +
      },
47 +
      "description": "Audio file for bioacoustics, soundscapes, field recordings, species calls"
48 +
    },
49 +
    "image": {
50 +
      "type": "object",
51 +
      "required": [
52 +
        "file"
53 +
      ],
54 +
      "properties": {
55 +
        "file": {
56 +
          "type": "blob",
57 +
          "accept": [
58 +
            "image/jpeg",
59 +
            "image/jpg",
60 +
            "image/png",
61 +
            "image/webp",
62 +
            "image/heic",
63 +
            "image/heif",
64 +
            "image/tiff",
65 +
            "image/tif",
66 +
            "image/gif",
67 +
            "image/bmp",
68 +
            "image/svg+xml"
69 +
          ],
70 +
          "maxSize": 20971520,
71 +
          "description": "Image up to 20MB. Supports JPEG, PNG, WebP, HEIC (phones), TIFF (scientific), GIF, BMP, SVG."
72 +
        }
73 +
      },
74 +
      "description": "Image file for photos, camera traps, drone stills, scanned documents"
75 +
    },
76 +
    "video": {
77 +
      "type": "object",
78 +
      "required": [
79 +
        "file"
80 +
      ],
81 +
      "properties": {
82 +
        "file": {
83 +
          "type": "blob",
84 +
          "accept": [
85 +
            "video/mp4",
86 +
            "video/quicktime",
87 +
            "video/x-msvideo",
88 +
            "video/webm",
89 +
            "video/x-matroska",
90 +
            "video/mpeg",
91 +
            "video/3gpp",
92 +
            "video/3gpp2"
93 +
          ],
94 +
          "maxSize": 104857600,
95 +
          "description": "Video up to 100MB. Supports MP4, MOV, AVI, WebM, MKV, MPEG, 3GP."
96 +
        }
97 +
      },
98 +
      "description": "Video file for camera traps, drone footage, underwater video, behavioral observations"
99 +
    },
100 +
    "dataFile": {
101 +
      "type": "object",
102 +
      "required": [
103 +
        "file"
104 +
      ],
105 +
      "properties": {
106 +
        "file": {
107 +
          "type": "blob",
108 +
          "accept": [
109 +
            "text/csv",
110 +
            "text/tab-separated-values",
111 +
            "application/json",
112 +
            "application/ld+json",
113 +
            "application/xml",
114 +
            "text/xml",
115 +
            "application/vnd.ms-excel",
116 +
            "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet",
117 +
            "application/vnd.oasis.opendocument.spreadsheet"
118 +
          ],
119 +
          "maxSize": 52428800,
120 +
          "description": "Data file up to 50MB. Supports CSV, TSV, JSON, JSON-LD, XML, XLS, XLSX, ODS."
121 +
        }
122 +
      },
123 +
      "description": "Structured data file for observations, measurements, exports"
18 124
    },
125 +
    "document": {
126 +
      "type": "object",
127 +
      "required": [
128 +
        "file"
129 +
      ],
130 +
      "properties": {
131 +
        "file": {
132 +
          "type": "blob",
133 +
          "accept": [
134 +
            "application/pdf",
135 +
            "text/plain",
136 +
            "text/markdown",
137 +
            "text/html",
138 +
            "application/rtf",
139 +
            "application/msword",
140 +
            "application/vnd.openxmlformats-officedocument.wordprocessingml.document"
141 +
          ],
142 +
          "maxSize": 20971520,
143 +
          "description": "Document up to 20MB. Supports PDF, TXT, Markdown, HTML, RTF, DOC, DOCX."
144 +
        }
145 +
      },
146 +
      "description": "Document file for reports, field notes, permits, publications"
147 +
    },
148 +
    "gpsTrack": {
149 +
      "type": "object",
150 +
      "required": [
151 +
        "file"
152 +
      ],
153 +
      "properties": {
154 +
        "file": {
155 +
          "type": "blob",
156 +
          "accept": [
157 +
            "application/gpx+xml",
158 +
            "application/vnd.google-earth.kml+xml",
159 +
            "application/vnd.google-earth.kmz",
160 +
            "application/geo+json",
161 +
            "application/json"
162 +
          ],
163 +
          "maxSize": 10485760,
164 +
          "description": "GPS track up to 10MB. Supports GPX, KML, KMZ, GeoJSON."
165 +
        }
166 +
      },
167 +
      "description": "GPS track file for transects, survey routes, patrol paths"
168 +
    },
19 169
    "largeBlob": {
20 170
      "type": "object",
21 171
      "required": [
22 172
        "blob"
23 173
      ],
24 174
      "properties": {
25 175
        "blob": {
26 176
          "type": "blob",
27 177
          "accept": [
28 178
            "*/*"
29 179
          ],
30 180
          "maxSize": 104857600,
31 -
          "description": "Blob to external data (up to 100MB)"
181 +
          "description": "Any file up to 100MB"
32 182
        }
33 183
      },
34 -
      "description": "Object containing a blob to external data"
184 +
      "description": "Generic blob up to 100MB (fallback for any file type)"
35 185
    },
36 186
    "smallBlob": {
37 187
      "type": "object",
38 188
      "required": [
39 189
        "blob"
40 190
      ],
41 191
      "properties": {
42 192
        "blob": {
43 193
          "type": "blob",
44 194
          "accept": [
45 195
            "*/*"
46 196
          ],
47 197
          "maxSize": 10485760,
48 -
          "description": "Blob to external data (up to 10MB)"
198 +
          "description": "Any file up to 10MB"
199 +
        }
200 +
      },
201 +
      "description": "Generic blob up to 10MB (fallback for any file type)"
202 +
    },
203 +
    "geospatial": {
204 +
      "type": "object",
205 +
      "required": [
206 +
        "file"
207 +
      ],
208 +
      "properties": {
209 +
        "file": {
210 +
          "type": "blob",
211 +
          "accept": [
212 +
            "application/geo+json",
213 +
            "application/json",
214 +
            "application/vnd.google-earth.kml+xml",
215 +
            "application/vnd.google-earth.kmz",
216 +
            "application/geopackage+sqlite3",
217 +
            "application/x-shapefile",
218 +
            "application/zip",
219 +
            "image/tiff",
220 +
            "image/geotiff"
221 +
          ],
222 +
          "maxSize": 104857600,
223 +
          "description": "Geospatial data up to 100MB. Supports GeoJSON, KML, KMZ, GeoPackage, Shapefile (zipped), GeoTIFF."
49 224
        }
50 225
      },
51 -
      "description": "Object containing a blob to external data"
226 +
      "description": "Geospatial data file for maps, boundaries, habitat layers"
52 227
    },
53 -
    "largeImage": {
228 +
    "sensorData": {
54 229
      "type": "object",
55 230
      "required": [
56 -
        "image"
231 +
        "file"
57 232
      ],
58 233
      "properties": {
59 -
        "image": {
234 +
        "file": {
60 235
          "type": "blob",
61 236
          "accept": [
237 +
            "text/csv",
238 +
            "application/json",
239 +
            "text/plain",
240 +
            "application/x-netcdf",
241 +
            "application/x-hdf5"
242 +
          ],
243 +
          "maxSize": 52428800,
244 +
          "description": "Sensor data up to 50MB. Supports CSV, JSON, TXT, NetCDF, HDF5."
245 +
        }
246 +
      },
247 +
      "description": "Sensor data file for environmental monitoring (temperature, humidity, light, etc.)"
248 +
    },
249 +
    "geneticData": {
250 +
      "type": "object",
251 +
      "required": [
252 +
        "file"
253 +
      ],
254 +
      "properties": {
255 +
        "file": {
256 +
          "type": "blob",
257 +
          "accept": [
258 +
            "text/x-fasta",
259 +
            "application/x-fasta",
260 +
            "text/x-fastq",
261 +
            "application/x-fastq",
262 +
            "text/plain",
263 +
            "text/csv",
264 +
            "application/json"
265 +
          ],
266 +
          "maxSize": 104857600,
267 +
          "description": "Genetic data up to 100MB. Supports FASTA, FASTQ, CSV, JSON."
268 +
        }
269 +
      },
270 +
      "description": "Genetic/genomic data file for eDNA, barcoding, sequencing results"
271 +
    },
272 +
    "spectrogram": {
273 +
      "type": "object",
274 +
      "required": [
275 +
        "file"
276 +
      ],
277 +
      "properties": {
278 +
        "file": {
279 +
          "type": "blob",
280 +
          "accept": [
281 +
            "image/png",
62 282
            "image/jpeg",
63 283
            "image/jpg",
64 -
            "image/png",
65 284
            "image/webp"
66 285
          ],
67 -
          "maxSize": 10485760,
68 -
          "description": "Image (up to 10MB)"
286 +
          "maxSize": 5242880,
287 +
          "description": "Spectrogram image up to 5MB"
69 288
        }
70 289
      },
71 -
      "description": "Object containing a large image"
290 +
      "description": "Spectrogram image - visual representation of audio frequency content"
72 291
    },
73 -
    "smallImage": {
292 +
    "imageThumbnail": {
74 293
      "type": "object",
75 294
      "required": [
76 -
        "image"
295 +
        "file"
77 296
      ],
78 297
      "properties": {
79 -
        "image": {
298 +
        "file": {
80 299
          "type": "blob",
81 300
          "accept": [
82 301
            "image/jpeg",
83 302
            "image/jpg",
84 303
            "image/png",
85 304
            "image/webp"
86 305
          ],
87 -
          "maxSize": 5242880,
88 -
          "description": "Image (up to 5MB)"
306 +
          "maxSize": 1048576,
307 +
          "description": "Thumbnail image up to 1MB"
89 308
        }
90 309
      },
91 -
      "description": "Object containing a small image"
310 +
      "description": "Small image for thumbnails and previews"
92 311
    },
93 312
    "indexedOrganization": {
94 313
      "type": "object",
95 314
      "required": [
96 315
        "id",
97 316
        "name"
98 317
      ],
99 318
      "properties": {
100 319
        "id": {
101 320
          "type": "string",
102 321
          "format": "uri",
103 322
          "description": "The URI of the organization"
104 323
        },
105 324
        "name": {
106 325
          "type": "string",
107 326
          "description": "The name of the organization"
108 327
        }
109 -
      }
328 +
      },
329 +
      "description": "Reference to an indexed organization"
110 330
    }
111 331
  },
112 332
  "$type": "com.atproto.lexicon.schema",
113 -
  "lexicon": 1
333 +
  "lexicon": 1,
334 +
  "description": "Shared type definitions for biodiversity and environmental data collection"
114 335
}

Compare Other Versions

Lexicon Garden

@