# at.adsb.version.defs

> Published by [adsb.at](https://lexicon.garden/identity/did:plc:32thk4eifx4ou6mxevswgjhg)

✓ This is the authoritative definition for this NSID.

## Description

Shared type definitions for lexicon versioning. Provides a reusable convention for tracking schema revisions and changelogs.

## Links

- [View on Lexicon Garden](https://lexicon.garden/lexicon/did:plc:32thk4eifx4ou6mxevswgjhg/at.adsb.version.defs)
- [Documentation](https://lexicon.garden/lexicon/did:plc:32thk4eifx4ou6mxevswgjhg/at.adsb.version.defs/docs)
- [Examples](https://lexicon.garden/lexicon/did:plc:32thk4eifx4ou6mxevswgjhg/at.adsb.version.defs/examples)

## Definitions

### `at.adsb.version.defs#revision`

**Type**: `object`

Current version of a lexicon schema, following semver conventions.

| Property | Type | Required | Description |
|----------|------|----------|-------------|
| `major` | `integer` | Yes | Breaking changes or new NSID required. |
| `minor` | `integer` | Yes | New optional fields or non-breaking additions. |
| `patch` | `integer` | Yes | Documentation, description, or metadata changes only. |

### `at.adsb.version.defs#changelogEntry`

**Type**: `object`

A single entry in a lexicon's changelog.

| Property | Type | Required | Description |
|----------|------|----------|-------------|
| `date` | `string` | Yes | Date of the change (YYYY-MM-DD). |
| `version` | `string` | Yes | Semver version string (e.g. '0.1.0'). |
| `description` | `string` | Yes | Summary of changes in this version. |

## Raw Schema

```json
{
  "id": "at.adsb.version.defs",
  "defs": {
    "revision": {
      "type": "object",
      "required": [
        "major",
        "minor",
        "patch"
      ],
      "properties": {
        "major": {
          "type": "integer",
          "minimum": 0,
          "description": "Breaking changes or new NSID required."
        },
        "minor": {
          "type": "integer",
          "minimum": 0,
          "description": "New optional fields or non-breaking additions."
        },
        "patch": {
          "type": "integer",
          "minimum": 0,
          "description": "Documentation, description, or metadata changes only."
        }
      },
      "description": "Current version of a lexicon schema, following semver conventions."
    },
    "changelogEntry": {
      "type": "object",
      "required": [
        "version",
        "date",
        "description"
      ],
      "properties": {
        "date": {
          "type": "string",
          "maxLength": 10,
          "description": "Date of the change (YYYY-MM-DD)."
        },
        "version": {
          "type": "string",
          "maxLength": 20,
          "description": "Semver version string (e.g. '0.1.0')."
        },
        "description": {
          "type": "string",
          "maxLength": 2560,
          "description": "Summary of changes in this version.",
          "maxGraphemes": 256
        }
      },
      "description": "A single entry in a lexicon's changelog."
    }
  },
  "$type": "com.atproto.lexicon.schema",
  "lexicon": 1,
  "description": "Shared type definitions for lexicon versioning. Provides a reusable convention for tracking schema revisions and changelogs."
}
```
