# app.kimbia.adventure

> Published by [kimbia.app](https://lexicon.garden/identity/did:plc:gktrthagvfvzkotyr3n2foox)

✓ This is the authoritative definition for this NSID.

## Links

- [View on Lexicon Garden](https://lexicon.garden/lexicon/did:plc:gktrthagvfvzkotyr3n2foox/app.kimbia.adventure)
- [Documentation](https://lexicon.garden/lexicon/did:plc:gktrthagvfvzkotyr3n2foox/app.kimbia.adventure/docs)
- [Examples](https://lexicon.garden/lexicon/did:plc:gktrthagvfvzkotyr3n2foox/app.kimbia.adventure/examples)

## Definitions

### `app.kimbia.adventure`

**Type**: `record`

A multi-day training block (e.g. a training camp) grouping several activities. Kimbia publishes ONLY world-facing adventures. Totals (distance/movingTime/elevationGain) sum just the member days that are themselves public - most-restrictive-wins, so a hidden day can never leak back through the aggregate.

**Key**: `tid`

| Property | Type | Required | Description |
|----------|------|----------|-------------|
| `parts` | `array` | Yes | at-uris of the public member-day app.kimbia.activity records, one per day, in day order. The activity record is the source of truth; a non-public day is simply not referenced. |
| `title` | `string` | No | Athlete-provided name for the adventure. |
| `distance` | `string` | Yes | Total distance in meters across public member days only. String-encoded decimal, e.g. '51214.6'. |
| `startDate` | `string` (datetime) | No | Day only (e.g. '2026-06-30'), never an exact instant - the day of the first public member day. |
| `movingTime` | `integer` | Yes | Total moving time in seconds across public member days only. |
| `description` | `string` | No | Athlete-provided description of the adventure. |
| `elevationGain` | `string` | Yes | Total elevation gain in meters across public member days only. String-encoded decimal. |

## Raw Schema

```json
{
  "id": "app.kimbia.adventure",
  "defs": {
    "main": {
      "key": "tid",
      "type": "record",
      "record": {
        "type": "object",
        "required": [
          "distance",
          "movingTime",
          "elevationGain",
          "parts"
        ],
        "properties": {
          "parts": {
            "type": "array",
            "items": {
              "type": "string",
              "format": "at-uri"
            },
            "description": "at-uris of the public member-day app.kimbia.activity records, one per day, in day order. The activity record is the source of truth; a non-public day is simply not referenced."
          },
          "title": {
            "type": "string",
            "maxLength": 300,
            "description": "Athlete-provided name for the adventure."
          },
          "distance": {
            "type": "string",
            "maxLength": 64,
            "description": "Total distance in meters across public member days only. String-encoded decimal, e.g. '51214.6'."
          },
          "startDate": {
            "type": "string",
            "format": "datetime",
            "description": "Day only (e.g. '2026-06-30'), never an exact instant - the day of the first public member day."
          },
          "movingTime": {
            "type": "integer",
            "minimum": 0,
            "description": "Total moving time in seconds across public member days only."
          },
          "description": {
            "type": "string",
            "maxLength": 3000,
            "description": "Athlete-provided description of the adventure."
          },
          "elevationGain": {
            "type": "string",
            "maxLength": 64,
            "description": "Total elevation gain in meters across public member days only. String-encoded decimal."
          }
        }
      },
      "description": "A multi-day training block (e.g. a training camp) grouping several activities. Kimbia publishes ONLY world-facing adventures. Totals (distance/movingTime/elevationGain) sum just the member days that are themselves public - most-restrictive-wins, so a hidden day can never leak back through the aggregate."
    }
  },
  "$type": "com.atproto.lexicon.schema",
  "lexicon": 1
}
```
