# community.lexicon.app.defs

> Published by [lexicon.community](https://lexicon.garden/identity/did:plc:2uwoih2htodskvgocarwv5eq)

✓ This is the authoritative definition for this NSID.

## Links

- [View on Lexicon Garden](https://lexicon.garden/lexicon/did:plc:2uwoih2htodskvgocarwv5eq/community.lexicon.app.defs)
- [Documentation](https://lexicon.garden/lexicon/did:plc:2uwoih2htodskvgocarwv5eq/community.lexicon.app.defs/docs)
- [Examples](https://lexicon.garden/lexicon/did:plc:2uwoih2htodskvgocarwv5eq/community.lexicon.app.defs/examples)

## Definitions

### `community.lexicon.app.defs#link`

**Type**: `object`

A labeled URI associated with an app.

| Property | Type | Required | Description |
|----------|------|----------|-------------|
| `uri` | `string` (uri) | Yes | Destination URI. |
| `role` | `ref` → `#linkRole` | No | Known role of this link, if any. |
| `label` | `string` | No | Human-readable label for the URI. |

### `community.lexicon.app.defs#image`

**Type**: `object`

An image associated with an app, including accessibility and display metadata. Exactly one of `image` (ATProto blob) or `uri` (remote URL) MUST be present. Consumers SHOULD ignore image items that have neither or both.

| Property | Type | Required | Description |
|----------|------|----------|-------------|
| `alt` | `string` | Yes | Alt text description of the image, for accessibility. |
| `uri` | `string` (uri) | No | Remote image URI. |
| `image` | `blob` | No | The raw image file. |
| `purpose` | `string` | No | How directories and stores should use the image. Omit this field when no known purpose fits. |
| `aspectRatio` | `ref` → `#aspectRatio` | No |  |

### `community.lexicon.app.defs#status`

**Type**: `string`

Current release or maintenance status of an app.

**Known Values**:
- `community.lexicon.app.defs#unreleased`
- `community.lexicon.app.defs#preview`
- `community.lexicon.app.defs#released`
- `community.lexicon.app.defs#unmaintained`
- `community.lexicon.app.defs#discontinued`

### `community.lexicon.app.defs#preview`

**Type**: `token`

The app is available as an alpha, beta, early access, or preview release.

The app is available as an alpha, beta, early access, or preview release.

### `community.lexicon.app.defs#linkRole`

**Type**: `string`

Known role of a link associated with an app.

**Known Values**:
- `community.lexicon.app.defs#linkRoleWebsite`
- `community.lexicon.app.defs#linkRoleWebManifest`
- `community.lexicon.app.defs#linkRolePrivacyPolicy`
- `community.lexicon.app.defs#linkRoleTermsOfService`
- `community.lexicon.app.defs#linkRoleSupport`
- `community.lexicon.app.defs#linkRoleSourceCode`
- `community.lexicon.app.defs#linkRoleDocs`
- `community.lexicon.app.defs#linkRoleChangelog`
- `community.lexicon.app.defs#linkRoleStatus`
- `community.lexicon.app.defs#linkRoleAppStore`
- `community.lexicon.app.defs#linkRolePlayStore`
- `community.lexicon.app.defs#linkRoleFDroid`

### `community.lexicon.app.defs#platform`

**Type**: `string`

Platform where an app is available.

**Known Values**:
- `community.lexicon.app.defs#platformWeb`
- `community.lexicon.app.defs#platformIOS`
- `community.lexicon.app.defs#platformAndroid`
- `community.lexicon.app.defs#platformMacOS`
- `community.lexicon.app.defs#platformWindows`
- `community.lexicon.app.defs#platformLinux`
- `community.lexicon.app.defs#platformCLI`

### `community.lexicon.app.defs#released`

**Type**: `token`

The app is generally available.

The app is generally available.

### `community.lexicon.app.defs#purposeAd`

**Type**: `token`

A promotional or advertising image.

A promotional or advertising image.

### `community.lexicon.app.defs#unreleased`

**Type**: `token`

The app has been announced but is not yet available.

The app has been announced but is not yet available.

### `community.lexicon.app.defs#aspectRatio`

**Type**: `object`

width:height represents an aspect ratio. It may be approximate.

| Property | Type | Required | Description |
|----------|------|----------|-------------|
| `width` | `integer` | Yes |  |
| `height` | `integer` | Yes |  |

### `community.lexicon.app.defs#platformCLI`

**Type**: `token`

Command line interface.

Command line interface.

### `community.lexicon.app.defs#platformIOS`

**Type**: `token`

iOS app.

iOS app.

### `community.lexicon.app.defs#platformWeb`

**Type**: `token`

Web app or website.

Web app or website.

### `community.lexicon.app.defs#purposeHero`

**Type**: `token`

A large promotional or feature image, typically used at the top of a directory listing.

A large promotional or feature image, typically used at the top of a directory listing.

### `community.lexicon.app.defs#purposeIcon`

**Type**: `token`

A small square icon representing the app, typically used in launchers, lists, and tab bars.

A small square icon representing the app, typically used in launchers, lists, and tab bars.

### `community.lexicon.app.defs#purposeLogo`

**Type**: `token`

A logotype or wordmark for the app.

A logotype or wordmark for the app.

### `community.lexicon.app.defs#discontinued`

**Type**: `token`

The app is no longer available or supported.

The app is no longer available or supported.

### `community.lexicon.app.defs#linkRoleDocs`

**Type**: `token`

Documentation.

Documentation.

### `community.lexicon.app.defs#unmaintained`

**Type**: `token`

The app may still be available, but is no longer actively maintained.

The app may still be available, but is no longer actively maintained.

### `community.lexicon.app.defs#platformLinux`

**Type**: `token`

Linux app.

Linux app.

### `community.lexicon.app.defs#platformMacOS`

**Type**: `token`

macOS app.

macOS app.

### `community.lexicon.app.defs#purposeBanner`

**Type**: `token`

A wide banner image, such as a header image for a profile or listing page.

A wide banner image, such as a header image for a profile or listing page.

### `community.lexicon.app.defs#lexiconInterop`

**Type**: `object`

Self-declared AT Protocol lexicon interoperability signals.

| Property | Type | Required | Description |
|----------|------|----------|-------------|
| `consumes` | `array` | No | Lexicon collections this app reads, displays, imports, or otherwise consumes. |
| `produces` | `array` | No | Lexicon collections this app creates or publishes records for. |

### `community.lexicon.app.defs#linkRoleFDroid`

**Type**: `token`

F-Droid listing.

F-Droid listing.

### `community.lexicon.app.defs#linkRoleStatus`

**Type**: `token`

Service status page.

Service status page.

### `community.lexicon.app.defs#linkRoleSupport`

**Type**: `token`

Support, help, or contact page.

Support, help, or contact page.

### `community.lexicon.app.defs#linkRoleWebsite`

**Type**: `token`

Primary website or landing page.

Primary website or landing page.

### `community.lexicon.app.defs#platformAndroid`

**Type**: `token`

Android app.

Android app.

### `community.lexicon.app.defs#platformWindows`

**Type**: `token`

Windows app.

Windows app.

### `community.lexicon.app.defs#purposeAppStore`

**Type**: `token`

A promotional image formatted for a native app store listing.

A promotional image formatted for a native app store listing.

### `community.lexicon.app.defs#accountIndicator`

**Type**: `object`

A record whose presence in an account can indicate that the account probably uses this app.

| Property | Type | Required | Description |
|----------|------|----------|-------------|
| `rkey` | `string` (record-key) | No | Optional record key to look for within the collection. |
| `collection` | `string` (nsid) | Yes | Record collection to look for in an account repository. |

### `community.lexicon.app.defs#linkRoleAppStore`

**Type**: `token`

Apple App Store listing.

Apple App Store listing.

### `community.lexicon.app.defs#linkRoleChangelog`

**Type**: `token`

Changelog or release notes.

Changelog or release notes.

### `community.lexicon.app.defs#linkRolePlayStore`

**Type**: `token`

Google Play Store listing.

Google Play Store listing.

### `community.lexicon.app.defs#purposeScreenshot`

**Type**: `token`

A screenshot of the app's UI, used in directory and store listings.

A screenshot of the app's UI, used in directory and store listings.

### `community.lexicon.app.defs#purposeSocialCard`

**Type**: `token`

An image sized and formatted for social media sharing previews (Open Graph, Twitter Card, etc.).

An image sized and formatted for social media sharing previews (Open Graph, Twitter Card, etc.).

### `community.lexicon.app.defs#linkRoleSourceCode`

**Type**: `token`

Source code repository or source distribution.

Source code repository or source distribution.

### `community.lexicon.app.defs#linkRoleWebManifest`

**Type**: `token`

Web App Manifest.

Web App Manifest.

### `community.lexicon.app.defs#linkRolePrivacyPolicy`

**Type**: `token`

Privacy policy.

Privacy policy.

### `community.lexicon.app.defs#linkRoleTermsOfService`

**Type**: `token`

Terms of service.

Terms of service.

## Raw Schema

```json
{
  "id": "community.lexicon.app.defs",
  "defs": {
    "link": {
      "type": "object",
      "required": [
        "uri"
      ],
      "properties": {
        "uri": {
          "type": "string",
          "format": "uri",
          "description": "Destination URI."
        },
        "role": {
          "ref": "#linkRole",
          "type": "ref",
          "description": "Known role of this link, if any."
        },
        "label": {
          "type": "string",
          "maxLength": 100,
          "description": "Human-readable label for the URI.",
          "maxGraphemes": 50
        }
      },
      "description": "A labeled URI associated with an app."
    },
    "image": {
      "type": "object",
      "required": [
        "alt"
      ],
      "properties": {
        "alt": {
          "type": "string",
          "maxLength": 1000,
          "description": "Alt text description of the image, for accessibility.",
          "maxGraphemes": 300
        },
        "uri": {
          "type": "string",
          "format": "uri",
          "description": "Remote image URI."
        },
        "image": {
          "type": "blob",
          "accept": [
            "image/*"
          ],
          "maxSize": 2000000,
          "description": "The raw image file."
        },
        "purpose": {
          "type": "string",
          "description": "How directories and stores should use the image. Omit this field when no known purpose fits.",
          "knownValues": [
            "community.lexicon.app.defs#purposeIcon",
            "community.lexicon.app.defs#purposeLogo",
            "community.lexicon.app.defs#purposeHero",
            "community.lexicon.app.defs#purposeScreenshot",
            "community.lexicon.app.defs#purposeBanner",
            "community.lexicon.app.defs#purposeSocialCard",
            "community.lexicon.app.defs#purposeAppStore",
            "community.lexicon.app.defs#purposeAd"
          ]
        },
        "aspectRatio": {
          "ref": "#aspectRatio",
          "type": "ref"
        }
      },
      "description": "An image associated with an app, including accessibility and display metadata. Exactly one of `image` (ATProto blob) or `uri` (remote URL) MUST be present. Consumers SHOULD ignore image items that have neither or both."
    },
    "status": {
      "type": "string",
      "description": "Current release or maintenance status of an app.",
      "knownValues": [
        "community.lexicon.app.defs#unreleased",
        "community.lexicon.app.defs#preview",
        "community.lexicon.app.defs#released",
        "community.lexicon.app.defs#unmaintained",
        "community.lexicon.app.defs#discontinued"
      ]
    },
    "preview": {
      "type": "token",
      "description": "The app is available as an alpha, beta, early access, or preview release."
    },
    "linkRole": {
      "type": "string",
      "description": "Known role of a link associated with an app.",
      "knownValues": [
        "community.lexicon.app.defs#linkRoleWebsite",
        "community.lexicon.app.defs#linkRoleWebManifest",
        "community.lexicon.app.defs#linkRolePrivacyPolicy",
        "community.lexicon.app.defs#linkRoleTermsOfService",
        "community.lexicon.app.defs#linkRoleSupport",
        "community.lexicon.app.defs#linkRoleSourceCode",
        "community.lexicon.app.defs#linkRoleDocs",
        "community.lexicon.app.defs#linkRoleChangelog",
        "community.lexicon.app.defs#linkRoleStatus",
        "community.lexicon.app.defs#linkRoleAppStore",
        "community.lexicon.app.defs#linkRolePlayStore",
        "community.lexicon.app.defs#linkRoleFDroid"
      ]
    },
    "platform": {
      "type": "string",
      "description": "Platform where an app is available.",
      "knownValues": [
        "community.lexicon.app.defs#platformWeb",
        "community.lexicon.app.defs#platformIOS",
        "community.lexicon.app.defs#platformAndroid",
        "community.lexicon.app.defs#platformMacOS",
        "community.lexicon.app.defs#platformWindows",
        "community.lexicon.app.defs#platformLinux",
        "community.lexicon.app.defs#platformCLI"
      ]
    },
    "released": {
      "type": "token",
      "description": "The app is generally available."
    },
    "purposeAd": {
      "type": "token",
      "description": "A promotional or advertising image."
    },
    "unreleased": {
      "type": "token",
      "description": "The app has been announced but is not yet available."
    },
    "aspectRatio": {
      "type": "object",
      "required": [
        "width",
        "height"
      ],
      "properties": {
        "width": {
          "type": "integer",
          "minimum": 1
        },
        "height": {
          "type": "integer",
          "minimum": 1
        }
      },
      "description": "width:height represents an aspect ratio. It may be approximate."
    },
    "platformCLI": {
      "type": "token",
      "description": "Command line interface."
    },
    "platformIOS": {
      "type": "token",
      "description": "iOS app."
    },
    "platformWeb": {
      "type": "token",
      "description": "Web app or website."
    },
    "purposeHero": {
      "type": "token",
      "description": "A large promotional or feature image, typically used at the top of a directory listing."
    },
    "purposeIcon": {
      "type": "token",
      "description": "A small square icon representing the app, typically used in launchers, lists, and tab bars."
    },
    "purposeLogo": {
      "type": "token",
      "description": "A logotype or wordmark for the app."
    },
    "discontinued": {
      "type": "token",
      "description": "The app is no longer available or supported."
    },
    "linkRoleDocs": {
      "type": "token",
      "description": "Documentation."
    },
    "unmaintained": {
      "type": "token",
      "description": "The app may still be available, but is no longer actively maintained."
    },
    "platformLinux": {
      "type": "token",
      "description": "Linux app."
    },
    "platformMacOS": {
      "type": "token",
      "description": "macOS app."
    },
    "purposeBanner": {
      "type": "token",
      "description": "A wide banner image, such as a header image for a profile or listing page."
    },
    "lexiconInterop": {
      "type": "object",
      "properties": {
        "consumes": {
          "type": "array",
          "items": {
            "type": "string",
            "format": "nsid"
          },
          "description": "Lexicon collections this app reads, displays, imports, or otherwise consumes."
        },
        "produces": {
          "type": "array",
          "items": {
            "type": "string",
            "format": "nsid"
          },
          "description": "Lexicon collections this app creates or publishes records for."
        }
      },
      "description": "Self-declared AT Protocol lexicon interoperability signals."
    },
    "linkRoleFDroid": {
      "type": "token",
      "description": "F-Droid listing."
    },
    "linkRoleStatus": {
      "type": "token",
      "description": "Service status page."
    },
    "linkRoleSupport": {
      "type": "token",
      "description": "Support, help, or contact page."
    },
    "linkRoleWebsite": {
      "type": "token",
      "description": "Primary website or landing page."
    },
    "platformAndroid": {
      "type": "token",
      "description": "Android app."
    },
    "platformWindows": {
      "type": "token",
      "description": "Windows app."
    },
    "purposeAppStore": {
      "type": "token",
      "description": "A promotional image formatted for a native app store listing."
    },
    "accountIndicator": {
      "type": "object",
      "required": [
        "collection"
      ],
      "properties": {
        "rkey": {
          "type": "string",
          "format": "record-key",
          "description": "Optional record key to look for within the collection."
        },
        "collection": {
          "type": "string",
          "format": "nsid",
          "description": "Record collection to look for in an account repository."
        }
      },
      "description": "A record whose presence in an account can indicate that the account probably uses this app."
    },
    "linkRoleAppStore": {
      "type": "token",
      "description": "Apple App Store listing."
    },
    "linkRoleChangelog": {
      "type": "token",
      "description": "Changelog or release notes."
    },
    "linkRolePlayStore": {
      "type": "token",
      "description": "Google Play Store listing."
    },
    "purposeScreenshot": {
      "type": "token",
      "description": "A screenshot of the app's UI, used in directory and store listings."
    },
    "purposeSocialCard": {
      "type": "token",
      "description": "An image sized and formatted for social media sharing previews (Open Graph, Twitter Card, etc.)."
    },
    "linkRoleSourceCode": {
      "type": "token",
      "description": "Source code repository or source distribution."
    },
    "linkRoleWebManifest": {
      "type": "token",
      "description": "Web App Manifest."
    },
    "linkRolePrivacyPolicy": {
      "type": "token",
      "description": "Privacy policy."
    },
    "linkRoleTermsOfService": {
      "type": "token",
      "description": "Terms of service."
    }
  },
  "$type": "com.atproto.lexicon.schema",
  "lexicon": 1
}
```
