world.treeline.route.record

treeline.world

Documentation

A curated trail guide, course, or route record published on Treeline.

main record

A curated trail guide, course, or route record published on Treeline.

Record Key tid Timestamp-based ID

Properties

clonedFrom ref com.atproto.repo.strongRef Optional

Optional reference to the activity or route this record was saved from (Save as Route). The AppView checks the source's reuse rules and hides this route when they are not met.

constituentTrails array of ref #routeTrailSegment Optional

Ordered physical trails comprising this route guide.

courseBlob blob Optional

Downloadable GPX/FIT course file with turn-by-turn cue sheets.

maxSize: 52.4 MB
createdAt string datetime Required

Creation timestamp.

cuePoints array of ref #routeCuePoint Optional

Turn-by-turn navigational cues along the course.

description string Optional

Detailed guide, route directions, access notes, seasonal conditions, and water availability.

maxLength: 50000 bytesmaxGraphemes: 5000 graphemes
difficulty string Optional

Technical and physical difficulty assessment.

Known values: easy, moderate, hard, expert, extreme
externalIds ref #externalIds Optional

External open mapping identifiers (OSM, COTREX, USFS, OpenTrails, Wikidata).

geometry ref #routeGeometry Optional

Simplified GeoJSON LineString geometry of the route path.

gradeStats ref #gradeStats Optional

Gradient profile and climb categorization for climbs or descents.

location string Optional

Geographical region or park name (e.g. White Mountains, NH).

maxLength: 2000 bytesmaxGraphemes: 200 graphemes
parentRoute ref com.atproto.repo.strongRef Optional

Reference to parent canonical trail or larger trail system if this route is a sub-segment or loop.

pointsOfInterest array of ref com.atproto.repo.strongRef Optional

Generic strongRefs to any location-based pins, check-ins, summits, water sources, or hazard records across the ATmosphere.

privacy string Optional

Privacy visibility setting for this route or segment.

Known values: public, unlisted, followers, private
Default: public
rawBlob blob Optional

High-resolution GPX/FIT course file blob.

maxSize: 52.4 MB
relatedRecords array of ref com.atproto.repo.strongRef Optional

Generic strongRefs to related network content (e.g. Bluesky trip report posts, photo records, gear lists).

routeType string Optional

Topological structure of the route.

Known values: loop, out_and_back, point_to_point
segmentType string Optional

[Deprecated in v0.10: Competitive segments use world.treeline.segment.record. Retained for backward compatibility.] Functional classification of the route or segment.

Known values: trail, loop, climb, descent, sprint, traverse
segments array of ref #routeSegmentItem Optional

Ordered sub-segments or constituent trails that make up this composite route or loop.

source string Optional

Data provenance source.

Known values: user, osm, cotrex, usfs, opentrails, community
Default: user
sourceActivity ref com.atproto.repo.strongRef Optional

StrongRef to the activity record from which this segment was extracted or initiated.

sport array of string Optional

Applicable sports or disciplines for this route (e.g., hike, trail_run, gravel_ride).

stats ref #routeStats Optional

Route distance and elevation profile metrics.

surface array of string Optional

Surface composition types (e.g. singletrack, dirt_road, paved, rock_scramble, snow).

title string Required

Title or route name (e.g., Mount Rainier Wonderland Trail).

maxLength: 3000 bytesmaxGraphemes: 300 graphemes
updatedAt string datetime Optional

Last updated timestamp.

View raw schema
{
  "description": "A curated trail guide, course, or route record published on Treeline.",
  "key": "tid",
  "record": {
    "properties": {
      "clonedFrom": {
        "description": "Optional reference to the activity or route this record was saved from (Save as Route). The AppView checks the source's reuse rules and hides this route when they are not met.",
        "ref": "com.atproto.repo.strongRef",
        "type": "ref"
      },
      "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"
}
externalIds object

Cross-references to public open mapping registries.

Properties

cotrexId string Optional

Colorado Trail Explorer (COTREX) feature ID.

openTrailsId string Optional

OpenTrails standard dataset feature identifier.

osmRelationId string Optional

OpenStreetMap Relation ID.

osmWayId string Optional

OpenStreetMap Way ID.

usfsTrailNumber string Optional

US Forest Service official trail designation number (e.g., '514' for Hermosa Creek).

wikidataId string Optional

Wikidata entity identifier.

View raw schema
{
  "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 object

Gradient statistics for climbs, descents, or trail segments.

Properties

averageGradePct string Optional

Average slope gradient percentage (e.g. '7.5' for 7.5% climb, '-6.2' for descent).

climbCategory string Optional

[Deprecated in v0.10: Use world.treeline.segment.record for competitive climb categorization.] Standard cycling/running climb category.

Known values: HC, 1, 2, 3, 4, uncategorized
maxGradePct string Optional

Maximum slope gradient percentage.

View raw schema
{
  "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"
}
routeCuePoint object

No description available.

Properties

coordinate unknown Optional

Optional coordinate tuple [lon, lat, ele?] of the cue point.

distanceMeters integer Required

Chainage offset along the route in meters.

instruction string Required

Navigation instruction (e.g. Turn left at junction onto Colorado Trail).

View raw schema
{
  "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 object

GeoJSON LineString representing the route path.

Properties

coordinates array of unknown Required

Simplified coordinate tuples array.

maxLength: 500 items
type string Required

GeoJSON geometry type.

View raw schema
{
  "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 object

A constituent sub-segment or trail section in a composite route.

Properties

endKm unknown Optional

Ending kilometer offset on the referenced route.

name string Optional

Name or title of the constituent segment.

maxGraphemes: 300 graphemes
order integer Required

1-based sequence order in the route traversal.

minimum: 1
reverseDirection boolean Optional

True if the constituent segment is traversed in reverse direction.

startKm unknown Optional

Starting kilometer offset on the referenced route.

View raw schema
{
  "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 object

Distance and elevation stats for the route.

Properties

distanceMeters integer Optional

Total route distance in meters.

minimum: 0
elevationGainMeters integer Optional

Total cumulative ascent in meters.

minimum: 0
elevationLossMeters integer Optional

Total cumulative descent in meters.

minimum: 0
estimatedDurationSeconds integer Optional

Estimated moving duration in seconds for an average pace.

minimum: 0
highestPointMeters integer Optional

Maximum elevation on the route in meters.

lowestPointMeters integer Optional

Minimum elevation on the route in meters.

View raw schema
{
  "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 object

No description available.

Properties

reverseDirection boolean Optional

Whether the trail is traversed in reverse direction.

sequenceOrder integer Optional

1-based order in traversal sequence.

trailId string Required

Identifier of underlying physical trail.

View raw schema
{
  "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"
}

Lexicon Garden

@