world.treeline.condition.report
Crowdsourced trail condition or hazard report with temporal decay.
Details · record, key tid
| Kind | record |
|---|---|
| Record key | tid |
| Authority | condition.treeline.world |
| Indexed |
Checks
Validunlimited-stringdefs.main.record.properties.coordinate.itemsNo maxLength, maxGraphemes or format limits this string.unlimited-stringdefs.main.record.properties.severityNo maxLength, maxGraphemes or format limits this string.unlimited-stringdefs.main.record.properties.statusNo maxLength, maxGraphemes or format limits this string.unlimited-stringdefs.trailSubject.properties.cotrexIdNo maxLength, maxGraphemes or format limits this string.unlimited-stringdefs.trailSubject.properties.osmRelationIdNo maxLength, maxGraphemes or format limits this string.unlimited-stringdefs.trailSubject.properties.osmWayIdNo maxLength, maxGraphemes or format limits this string.unlimited-stringdefs.trailSubject.properties.usfsTrailNumberNo maxLength, maxGraphemes or format limits this string.
{
"$type": "com.atproto.lexicon.schema",
"defs": {
"main": {
"description": "Crowdsourced trail condition or hazard report with temporal decay.",
"key": "tid",
"record": {
"properties": {
"coordinate": {
"description": "Optional exact GPS coordinates [lon, lat, ele?] of the hazard, as decimal strings (the ATProto data model has no floats). On an activity-subject report it also limits which of the activity's matched trails the report reaches.",
"items": {
"type": "string"
},
"type": "array"
},
"expiresAt": {
"description": "Optional explicit expiration timestamp. When absent, defaults to reportedAt + 14 days.",
"format": "datetime",
"type": "string"
},
"labels": {
"description": "Optional self-label values the author applies to this record, effectively content warnings (e.g. graphic-media for an injury photo).",
"refs": [
"com.atproto.label.defs#selfLabels"
],
"type": "union"
},
"langs": {
"description": "Optional. The human languages of this record's text (the notes), as BCP-47 tags, so consumers can filter or translate.",
"items": {
"format": "language",
"type": "string"
},
"maxLength": 3,
"type": "array"
},
"notes": {
"description": "Detailed notes describing the observed trail condition or obstacle.",
"maxGraphemes": 1000,
"maxLength": 10000,
"type": "string"
},
"photoBlob": {
"accept": [
"image/png",
"image/jpeg",
"image/webp"
],
"description": "Optional photograph of the condition or hazard.",
"maxSize": 10000000,
"type": "blob"
},
"reportedAt": {
"description": "Timestamp when the observation was made.",
"format": "datetime",
"type": "string"
},
"severity": {
"description": "Severity level of the condition.",
"knownValues": [
"info",
"caution",
"hazard",
"closure"
],
"type": "string"
},
"status": {
"description": "Current status or condition observation.",
"knownValues": [
"clear",
"minor_issues",
"wet_muddy",
"snow_ice",
"tree_fall",
"flowing",
"dry",
"closed"
],
"type": "string"
},
"subject": {
"description": "The trail, route, segment, activity, or landmark subject of this condition report. A strongRef to a world.treeline.activity.record reports on every trail that activity matched.",
"refs": [
"#trailSubject",
"com.atproto.repo.strongRef"
],
"type": "union"
}
},
"required": [
"subject",
"status",
"severity",
"reportedAt"
],
"type": "object"
},
"type": "record"
},
"trailSubject": {
"description": "Subject reference for a physical trail identified by external registry IDs.",
"properties": {
"cotrexId": {
"description": "COTREX trail feature identifier.",
"type": "string"
},
"osmRelationId": {
"description": "OpenStreetMap relation identifier.",
"type": "string"
},
"osmWayId": {
"description": "OpenStreetMap way identifier.",
"type": "string"
},
"usfsTrailNumber": {
"description": "United States Forest Service trail identifier.",
"type": "string"
}
},
"type": "object"
}
},
"id": "world.treeline.condition.report",
"lexicon": 1
}