app.attrails.route

attrails.app

Documentation

A cycling, running, hiking, walking, etc. route shared by a user. The associated track file is stored as a blob.

main record

A cycling, running, hiking, walking, etc. route shared by a user. The associated track file is stored as a blob.

Record Key tid Timestamp-based ID

Properties

activity string Required

The activity this route is intended for. Open enum; unknown values are allowed.

Known values: app.attrails.defs#cycling, app.attrails.defs#running, app.attrails.defs#hiking, app.attrails.defs#walking, app.attrails.defs#other
createdAt string datetime Required

An RFC 3339 formatted timestamp.

description string Optional

Description of the route, as CommonMark markdown. Clients must not render raw HTML.

maxLength: 30000 bytesmaxGraphemes: 3000 graphemes
details union Optional

Activity-specific attributes. Open union: new activity detail types can be added later without breaking existing clients.

difficulty string Optional

Author's subjective difficulty for the stated activity.

Known values: app.attrails.defs#easy, app.attrails.defs#moderate, app.attrails.defs#hard, app.attrails.defs#extreme
langs array of string language Optional

Languages of this record's text (name, description, tags, image alt text), as BCP-47 tags. If absent, consumers should assume English ('en').

maxLength: 3 items
name string Required

Name of the route.

maxLength: 1000 bytesminLength: 1 bytesmaxGraphemes: 100 graphemes
surface string Optional

Predominant surface. Activity-neutral.

Known values: app.attrails.defs#paved, app.attrails.defs#gravel, app.attrails.defs#trail, app.attrails.defs#mixed
tags array of string Optional

Free-form tags, stored without a leading '#'.

maxLength: 20 items
track blob Required

The route's track, commonly as a GPX file. Subject to max size limitations imposed by the user's PDS, so large routes might need to be simplified or compressed to fit.

maxSize: 976.6 KB
View raw schema
{
  "description": "A cycling, running, hiking, walking, etc. route shared by a user. The associated track file is stored as a blob.",
  "key": "tid",
  "record": {
    "properties": {
      "activity": {
        "description": "The activity this route is intended for. Open enum; unknown values are allowed.",
        "knownValues": [
          "app.attrails.defs#cycling",
          "app.attrails.defs#running",
          "app.attrails.defs#hiking",
          "app.attrails.defs#walking",
          "app.attrails.defs#other"
        ],
        "type": "string"
      },
      "createdAt": {
        "format": "datetime",
        "type": "string"
      },
      "description": {
        "description": "Description of the route, as CommonMark markdown. Clients must not render raw HTML.",
        "maxGraphemes": 3000,
        "maxLength": 30000,
        "type": "string"
      },
      "details": {
        "description": "Activity-specific attributes. Open union: new activity detail types can be added later without breaking existing clients.",
        "refs": [
          "app.attrails.route#cyclingDetails"
        ],
        "type": "union"
      },
      "difficulty": {
        "description": "Author's subjective difficulty for the stated activity.",
        "knownValues": [
          "app.attrails.defs#easy",
          "app.attrails.defs#moderate",
          "app.attrails.defs#hard",
          "app.attrails.defs#extreme"
        ],
        "type": "string"
      },
      "images": {
        "items": {
          "ref": "app.attrails.defs#image",
          "type": "ref"
        },
        "maxLength": 10,
        "type": "array"
      },
      "labels": {
        "description": "Self-label values for this route, e.g. to flag sensitive photos.",
        "refs": [
          "com.atproto.label.defs#selfLabels"
        ],
        "type": "union"
      },
      "langs": {
        "description": "Languages of this record's text (name, description, tags, image alt text), as BCP-47 tags. If absent, consumers should assume English ('en').",
        "items": {
          "format": "language",
          "type": "string"
        },
        "maxLength": 3,
        "type": "array"
      },
      "name": {
        "description": "Name of the route.",
        "maxGraphemes": 100,
        "maxLength": 1000,
        "minLength": 1,
        "type": "string"
      },
      "surface": {
        "description": "Predominant surface. Activity-neutral.",
        "knownValues": [
          "app.attrails.defs#paved",
          "app.attrails.defs#gravel",
          "app.attrails.defs#trail",
          "app.attrails.defs#mixed"
        ],
        "type": "string"
      },
      "tags": {
        "description": "Free-form tags, stored without a leading '#'.",
        "items": {
          "maxGraphemes": 64,
          "maxLength": 640,
          "type": "string"
        },
        "maxLength": 20,
        "type": "array"
      },
      "track": {
        "accept": [
          "application/gpx+xml",
          "application/xml",
          "text/xml"
        ],
        "description": "The route's track, commonly as a GPX file. Subject to max size limitations imposed by the user's PDS, so large routes might need to be simplified or compressed to fit.",
        "maxSize": 976563,
        "type": "blob"
      }
    },
    "required": [
      "name",
      "activity",
      "track",
      "createdAt"
    ],
    "type": "object"
  },
  "type": "record"
}
commute token

Utility / commuting.

Referenceapp.attrails.route#commute

Tokens have no data representation. Use the reference string as a value.

View raw schema
{
  "description": "Utility / commuting.",
  "type": "token"
}
cyclingDetails object

Cycling-specific attributes of a route.

Properties

discipline string Optional

No description available.

Known values: app.attrails.route#road, app.attrails.route#gravelBike, app.attrails.route#mtb, app.attrails.route#touring, app.attrails.route#commute
View raw schema
{
  "description": "Cycling-specific attributes of a route.",
  "properties": {
    "discipline": {
      "knownValues": [
        "app.attrails.route#road",
        "app.attrails.route#gravelBike",
        "app.attrails.route#mtb",
        "app.attrails.route#touring",
        "app.attrails.route#commute"
      ],
      "type": "string"
    }
  },
  "type": "object"
}
gravelBike token

Gravel / adventure cycling.

Referenceapp.attrails.route#gravelBike

Tokens have no data representation. Use the reference string as a value.

View raw schema
{
  "description": "Gravel / adventure cycling.",
  "type": "token"
}
mtb token

Mountain biking.

Referenceapp.attrails.route#mtb

Tokens have no data representation. Use the reference string as a value.

View raw schema
{
  "description": "Mountain biking.",
  "type": "token"
}
road token

Road cycling.

Referenceapp.attrails.route#road

Tokens have no data representation. Use the reference string as a value.

View raw schema
{
  "description": "Road cycling.",
  "type": "token"
}
touring token

Multi-day touring / bikepacking.

Referenceapp.attrails.route#touring

Tokens have no data representation. Use the reference string as a value.

View raw schema
{
  "description": "Multi-day touring / bikepacking.",
  "type": "token"
}

Lexicon Garden

@