# app.bulleted.outline

> Published by [ngerakines.me](https://lexicon.garden/identity/did:plc:cbkjy5n7bk3ax2wplmtjofq2)

✓ This is the authoritative definition for this NSID.

## Links

- [View on Lexicon Garden](https://lexicon.garden/lexicon/did:plc:cbkjy5n7bk3ax2wplmtjofq2/app.bulleted.outline)
- [Documentation](https://lexicon.garden/lexicon/did:plc:cbkjy5n7bk3ax2wplmtjofq2/app.bulleted.outline/docs)
- [Examples](https://lexicon.garden/lexicon/did:plc:cbkjy5n7bk3ax2wplmtjofq2/app.bulleted.outline/examples)

## Definitions

### `app.bulleted.outline`

**Type**: `record`

Titles and describes an outline. Record key 'self' means the identity's whole forest; any other key names the subtree at 'root'. The key is 'any' rather than 'tid' because 'self' is not a TID.

**Key**: `any`

| Property | Type | Required | Description |
|----------|------|----------|-------------|
| `root` | `string` (at-uri) | No | The node at the top of this outline. Absent means the whole forest; present if and only if the record key is not 'self'. The Lexicon cannot express that conditional, so the application enforces it. |
| `image` | `blob` | No | Preview image for link cards and og:image. SVG is deliberately excluded because it can carry script. |
| `title` | `string` | No | Display title for the outline. |
| `imageAlt` | `string` | No | Alt text for image. Required whenever image is present; enforced by the application. |
| `createdAt` | `string` (datetime) | Yes | When the outline was created. |
| `description` | `string` | No | Longer summary of the outline. |

## Raw Schema

```json
{
  "id": "app.bulleted.outline",
  "defs": {
    "main": {
      "key": "any",
      "type": "record",
      "record": {
        "type": "object",
        "required": [
          "createdAt"
        ],
        "properties": {
          "root": {
            "type": "string",
            "format": "at-uri",
            "description": "The node at the top of this outline. Absent means the whole forest; present if and only if the record key is not 'self'. The Lexicon cannot express that conditional, so the application enforces it."
          },
          "image": {
            "type": "blob",
            "accept": [
              "image/png",
              "image/jpeg",
              "image/webp"
            ],
            "maxSize": 1000000,
            "description": "Preview image for link cards and og:image. SVG is deliberately excluded because it can carry script."
          },
          "title": {
            "type": "string",
            "maxLength": 1000,
            "description": "Display title for the outline.",
            "maxGraphemes": 200
          },
          "imageAlt": {
            "type": "string",
            "maxLength": 2000,
            "description": "Alt text for image. Required whenever image is present; enforced by the application."
          },
          "createdAt": {
            "type": "string",
            "format": "datetime",
            "description": "When the outline was created."
          },
          "description": {
            "type": "string",
            "maxLength": 3000,
            "description": "Longer summary of the outline.",
            "maxGraphemes": 600
          }
        }
      },
      "description": "Titles and describes an outline. Record key 'self' means the identity's whole forest; any other key names the subtree at 'root'. The key is 'any' rather than 'tid' because 'self' is not a TID."
    }
  },
  "$type": "com.atproto.lexicon.schema",
  "lexicon": 1
}
```
