# guide.climbers.dev.boardRoute

> Published by [gunnar.foo](https://lexicon.garden/identity/did:plc:f5gvem3uvafi2ord4txpyvjj)

✓ This is the authoritative definition for this NSID.

## Links

- [View on Lexicon Garden](https://lexicon.garden/lexicon/did:plc:f5gvem3uvafi2ord4txpyvjj/guide.climbers.dev.boardRoute)
- [Documentation](https://lexicon.garden/lexicon/did:plc:f5gvem3uvafi2ord4txpyvjj/guide.climbers.dev.boardRoute/docs)
- [Examples](https://lexicon.garden/lexicon/did:plc:f5gvem3uvafi2ord4txpyvjj/guide.climbers.dev.boardRoute/examples)

## Definitions

### `guide.climbers.dev.boardRoute#grade`

**Type**: `object`

A grade at a specific wall angle.

| Property | Type | Required | Description |
|----------|------|----------|-------------|
| `angle` | `integer` | Yes | Wall angle in degrees from vertical. |
| `value` | `integer` | Yes | Difficulty. |

### `guide.climbers.dev.boardRoute#hold`

**Type**: `object`

A hold used by a route.

| Property | Type | Required | Description |
|----------|------|----------|-------------|
| `conditions` | `array` | No | Constraints applying to this hold alone. `no-matching` forbids using this hold with both hands at once, whether or not the route permits matching elsewhere. |
| `placementId` | `integer` | Yes | Identifier of a placement in guide.climbers.dev.boardFamily#placement. |
| `position` | `string` | No | Whether the hold begins or completes the route. Absent for holds that do neither. |
| `role` | `string` | Yes | Whether the hold is used by hand or foot. |

### `guide.climbers.dev.boardRoute`

**Type**: `record`

A climbing route set on a specific board

**Key**: `tid`

| Property | Type | Required | Description |
|----------|------|----------|-------------|
| `board` | `ref` → `com.atproto.repo.strongRef` | Yes | The guide.climbers.dev.board the route is set on. Its family holds the placement grid the route's holds refer to. |
| `conditions` | `array` | No | Constraints applying to the whole route. `no-matching` forbids using any hold with both hands at once. `footwork-free` leaves feet unspecified, so any hold may be used as a foot. |
| `description` | `string` | No |  |
| `grades` | `array` | No | Grades declared by the route's author, at the angles they set it for. Consensus grades can be computed by aggregating ratings. |
| `holds` | `array` | Yes |  |
| `name` | `string` | Yes |  |

## Raw Schema

```json
{
  "$type": "com.atproto.lexicon.schema",
  "defs": {
    "grade": {
      "description": "A grade at a specific wall angle.",
      "properties": {
        "angle": {
          "description": "Wall angle in degrees from vertical.",
          "type": "integer"
        },
        "value": {
          "description": "Difficulty.",
          "type": "integer"
        }
      },
      "required": [
        "angle",
        "value"
      ],
      "type": "object"
    },
    "hold": {
      "description": "A hold used by a route.",
      "properties": {
        "conditions": {
          "description": "Constraints applying to this hold alone. `no-matching` forbids using this hold with both hands at once, whether or not the route permits matching elsewhere.",
          "items": {
            "knownValues": [
              "no-matching"
            ],
            "type": "string"
          },
          "type": "array"
        },
        "placementId": {
          "description": "Identifier of a placement in guide.climbers.dev.boardFamily#placement.",
          "type": "integer"
        },
        "position": {
          "description": "Whether the hold begins or completes the route. Absent for holds that do neither.",
          "knownValues": [
            "start",
            "end"
          ],
          "type": "string"
        },
        "role": {
          "description": "Whether the hold is used by hand or foot.",
          "knownValues": [
            "hand",
            "foot"
          ],
          "type": "string"
        }
      },
      "required": [
        "placementId",
        "role"
      ],
      "type": "object"
    },
    "main": {
      "description": "A climbing route set on a specific board",
      "key": "tid",
      "record": {
        "properties": {
          "board": {
            "description": "The guide.climbers.dev.board the route is set on. Its family holds the placement grid the route's holds refer to.",
            "ref": "com.atproto.repo.strongRef",
            "type": "ref"
          },
          "conditions": {
            "description": "Constraints applying to the whole route. `no-matching` forbids using any hold with both hands at once. `footwork-free` leaves feet unspecified, so any hold may be used as a foot.",
            "items": {
              "knownValues": [
                "no-matching",
                "footwork-free"
              ],
              "type": "string"
            },
            "type": "array"
          },
          "description": {
            "type": "string"
          },
          "grades": {
            "description": "Grades declared by the route's author, at the angles they set it for. Consensus grades can be computed by aggregating ratings.",
            "items": {
              "ref": "#grade",
              "type": "ref"
            },
            "type": "array"
          },
          "holds": {
            "items": {
              "ref": "#hold",
              "type": "ref"
            },
            "type": "array"
          },
          "name": {
            "type": "string"
          }
        },
        "required": [
          "board",
          "name",
          "holds"
        ],
        "type": "object"
      },
      "type": "record"
    }
  },
  "id": "guide.climbers.dev.boardRoute",
  "lexicon": 1
}
```
