world.treeline.route.record
{
"$type": "com.atproto.lexicon.schema",
"defs": {
"externalIds": {
"description": "Cross-references to public open mapping registries.",
"properties": {
"cotrexId": {
"description": "Colorado Trail Explorer (COTREX) feature ID.",
"type": "string"
},
"openTrailsId": {
"description": "OpenTrails standard dataset feature identifier.",
"type": "string"
},
"osmRelationId": {
"description": "OpenStreetMap Relation ID.",
"type": "string"
},
"osmWayId": {
"description": "OpenStreetMap Way ID.",
"type": "string"
},
"usfsTrailNumber": {
"description": "US Forest Service official trail designation number (e.g., '514' for Hermosa Creek).",
"type": "string"
},
"wikidataId": {
"description": "Wikidata entity identifier.",
"type": "string"
}
},
"type": "object"
},
"gradeStats": {
"description": "Gradient statistics for climbs, descents, or trail segments.",
"properties": {
"averageGradePct": {
"description": "Average slope gradient percentage (e.g. '7.5' for 7.5% climb, '-6.2' for descent).",
"type": "string"
},
"climbCategory": {
"description": "[Deprecated in v0.10: Use world.treeline.segment.record for competitive climb categorization.] Standard cycling/running climb category.",
"knownValues": [
"HC",
"1",
"2",
"3",
"4",
"uncategorized"
],
"type": "string"
},
"maxGradePct": {
"description": "Maximum slope gradient percentage.",
"type": "string"
}
},
"type": "object"
},
"main": {
"description": "A curated trail guide, course, or route record published on Treeline.",
"key": "tid",
"record": {
"properties": {
"constituentTrails": {
"description": "Ordered physical trails comprising this route guide.",
"items": {
"ref": "#routeTrailSegment",
"type": "ref"
},
"type": "array"
},
"courseBlob": {
"accept": [
"application/gpx+xml",
"application/vnd.ant.fit",
"application/vnd.garmin.tcx+xml",
"application/octet-stream",
"application/xml",
"text/xml"
],
"description": "Downloadable GPX/FIT course file with turn-by-turn cue sheets.",
"maxSize": 52428800,
"type": "blob"
},
"createdAt": {
"description": "Creation timestamp.",
"format": "datetime",
"type": "string"
},
"cuePoints": {
"description": "Turn-by-turn navigational cues along the course.",
"items": {
"ref": "#routeCuePoint",
"type": "ref"
},
"type": "array"
},
"description": {
"description": "Detailed guide, route directions, access notes, seasonal conditions, and water availability.",
"maxGraphemes": 5000,
"maxLength": 50000,
"type": "string"
},
"difficulty": {
"description": "Technical and physical difficulty assessment.",
"knownValues": [
"easy",
"moderate",
"hard",
"expert",
"extreme"
],
"type": "string"
},
"externalIds": {
"description": "External open mapping identifiers (OSM, COTREX, USFS, OpenTrails, Wikidata).",
"ref": "#externalIds",
"type": "ref"
},
"geometry": {
"description": "Simplified GeoJSON LineString geometry of the route path.",
"ref": "#routeGeometry",
"type": "ref"
},
"gradeStats": {
"description": "Gradient profile and climb categorization for climbs or descents.",
"ref": "#gradeStats",
"type": "ref"
},
"location": {
"description": "Geographical region or park name (e.g. White Mountains, NH).",
"maxGraphemes": 200,
"maxLength": 2000,
"type": "string"
},
"parentRoute": {
"description": "Reference to parent canonical trail or larger trail system if this route is a sub-segment or loop.",
"ref": "com.atproto.repo.strongRef",
"type": "ref"
},
"pointsOfInterest": {
"description": "Generic strongRefs to any location-based pins, check-ins, summits, water sources, or hazard records across the ATmosphere.",
"items": {
"ref": "com.atproto.repo.strongRef",
"type": "ref"
},
"type": "array"
},
"privacy": {
"default": "public",
"description": "Privacy visibility setting for this route or segment.",
"knownValues": [
"public",
"unlisted",
"followers",
"private"
],
"type": "string"
},
"rawBlob": {
"accept": [
"application/gpx+xml",
"application/vnd.ant.fit",
"application/vnd.garmin.tcx+xml",
"application/octet-stream",
"application/xml",
"text/xml"
],
"description": "High-resolution GPX/FIT course file blob.",
"maxSize": 52428800,
"type": "blob"
},
"relatedRecords": {
"description": "Generic strongRefs to related network content (e.g. Bluesky trip report posts, photo records, gear lists).",
"items": {
"ref": "com.atproto.repo.strongRef",
"type": "ref"
},
"type": "array"
},
"routeType": {
"description": "Topological structure of the route.",
"knownValues": [
"loop",
"out_and_back",
"point_to_point"
],
"type": "string"
},
"segmentType": {
"description": "[Deprecated in v0.10: Competitive segments use world.treeline.segment.record. Retained for backward compatibility.] Functional classification of the route or segment.",
"knownValues": [
"trail",
"loop",
"climb",
"descent",
"sprint",
"traverse"
],
"type": "string"
},
"segments": {
"description": "Ordered sub-segments or constituent trails that make up this composite route or loop.",
"items": {
"ref": "#routeSegmentItem",
"type": "ref"
},
"type": "array"
},
"source": {
"default": "user",
"description": "Data provenance source.",
"knownValues": [
"user",
"osm",
"cotrex",
"usfs",
"opentrails",
"community"
],
"type": "string"
},
"sourceActivity": {
"description": "StrongRef to the activity record from which this segment was extracted or initiated.",
"ref": "com.atproto.repo.strongRef",
"type": "ref"
},
"sport": {
"description": "Applicable sports or disciplines for this route (e.g., hike, trail_run, gravel_ride).",
"items": {
"type": "string"
},
"type": "array"
},
"stats": {
"description": "Route distance and elevation profile metrics.",
"ref": "#routeStats",
"type": "ref"
},
"surface": {
"description": "Surface composition types (e.g. singletrack, dirt_road, paved, rock_scramble, snow).",
"items": {
"type": "string"
},
"type": "array"
},
"title": {
"description": "Title or route name (e.g., Mount Rainier Wonderland Trail).",
"maxGraphemes": 300,
"maxLength": 3000,
"type": "string"
},
"updatedAt": {
"description": "Last updated timestamp.",
"format": "datetime",
"type": "string"
},
"waypoints": {
"description": "References to waypoint records along this route.",
"items": {
"ref": "com.atproto.repo.strongRef",
"type": "ref"
},
"type": "array"
}
},
"required": [
"title",
"createdAt"
],
"type": "object"
},
"type": "record"
},
"routeCuePoint": {
"properties": {
"coordinate": {
"description": "Optional coordinate tuple [lon, lat, ele?] of the cue point.",
"type": "unknown"
},
"distanceMeters": {
"description": "Chainage offset along the route in meters.",
"type": "integer"
},
"instruction": {
"description": "Navigation instruction (e.g. Turn left at junction onto Colorado Trail).",
"type": "string"
}
},
"required": [
"distanceMeters",
"instruction"
],
"type": "object"
},
"routeGeometry": {
"description": "GeoJSON LineString representing the route path.",
"properties": {
"coordinates": {
"description": "Simplified coordinate tuples array.",
"items": {
"type": "unknown"
},
"maxLength": 500,
"type": "array"
},
"type": {
"const": "LineString",
"description": "GeoJSON geometry type.",
"type": "string"
}
},
"required": [
"type",
"coordinates"
],
"type": "object"
},
"routeSegmentItem": {
"description": "A constituent sub-segment or trail section in a composite route.",
"properties": {
"endKm": {
"description": "Ending kilometer offset on the referenced route.",
"type": "unknown"
},
"name": {
"description": "Name or title of the constituent segment.",
"maxGraphemes": 300,
"type": "string"
},
"order": {
"description": "1-based sequence order in the route traversal.",
"minimum": 1,
"type": "integer"
},
"reverseDirection": {
"description": "True if the constituent segment is traversed in reverse direction.",
"type": "boolean"
},
"route": {
"description": "StrongRef to the route record representing this segment.",
"ref": "com.atproto.repo.strongRef",
"type": "ref"
},
"startKm": {
"description": "Starting kilometer offset on the referenced route.",
"type": "unknown"
}
},
"required": [
"order"
],
"type": "object"
},
"routeStats": {
"description": "Distance and elevation stats for the route.",
"properties": {
"distanceMeters": {
"description": "Total route distance in meters.",
"minimum": 0,
"type": "integer"
},
"elevationGainMeters": {
"description": "Total cumulative ascent in meters.",
"minimum": 0,
"type": "integer"
},
"elevationLossMeters": {
"description": "Total cumulative descent in meters.",
"minimum": 0,
"type": "integer"
},
"estimatedDurationSeconds": {
"description": "Estimated moving duration in seconds for an average pace.",
"minimum": 0,
"type": "integer"
},
"highestPointMeters": {
"description": "Maximum elevation on the route in meters.",
"type": "integer"
},
"lowestPointMeters": {
"description": "Minimum elevation on the route in meters.",
"type": "integer"
}
},
"type": "object"
},
"routeTrailSegment": {
"properties": {
"reverseDirection": {
"default": false,
"description": "Whether the trail is traversed in reverse direction.",
"type": "boolean"
},
"sequenceOrder": {
"description": "1-based order in traversal sequence.",
"type": "integer"
},
"trailId": {
"description": "Identifier of underlying physical trail.",
"type": "string"
}
},
"required": [
"trailId"
],
"type": "object"
}
},
"id": "world.treeline.route.record",
"lexicon": 1
}
Metadata
- DID
-
did:plc:sjejpugpajgvxweilujzjcmq - CID
-
bafyreifvibzrcyykwjhcipqgjwy7wplfaohu77vsj5fhipvkn6wfveuxoe - Indexed At
- 2026-09-25 14:12 UTC
- AT-URI
-
at://did:plc:sjejpugpajgvxweilujzjcmq/com.atproto.lexicon.schema/world.treeline.route.record
Version History (2 versions)
Similar Lexicons
Lexicons whose schemas describe something close to this one. Check them before publishing a new one that overlaps.
-
A competitive trail timing segment with defined start/finish gates.
-
at.mapped.trail record
A trail
-
A backcountry point of interest, water source, campsite, summit, or hazard.
-
A sports activity or outdoor adventure record logged on Treeline.
-
Crowdsourced trail condition or hazard report with temporal decay.