# app.atmobb.forum.stamp

> Published by [lexicons.atmobb.app](https://lexicon.garden/identity/did:plc:dqnwiguwsbb6uwrm7a2rsff2)

✓ This is the authoritative definition for this NSID.

## Links

- [View on Lexicon Garden](https://lexicon.garden/lexicon/did:plc:dqnwiguwsbb6uwrm7a2rsff2/app.atmobb.forum.stamp)
- [Documentation](https://lexicon.garden/lexicon/did:plc:dqnwiguwsbb6uwrm7a2rsff2/app.atmobb.forum.stamp/docs)
- [Examples](https://lexicon.garden/lexicon/did:plc:dqnwiguwsbb6uwrm7a2rsff2/app.atmobb.forum.stamp/examples)

## Definitions

### `app.atmobb.forum.stamp#look`

**Type**: `object`

How the stamp is drawn: two colors and one of a bounded set of shapes. No free CSS or images.

| Property | Type | Required | Description |
|----------|------|----------|-------------|
| `bg` | `string` | Yes | Background as a full six-digit hex color (for example #1a73e8). Writers must validate the #RRGGBB format. |
| `ink` | `string` | Yes | Text and outline as a full six-digit hex color (for example #ffffff). Writers must validate the #RRGGBB format. |
| `shape` | `string` | Yes |  |
| `symbol` | `string` | No | Optional visible grapheme drawn on the stamp. Writers must reject invisible or whitespace-only symbols. |

### `app.atmobb.forum.stamp`

**Type**: `record`

A stamp a forum awards for belonging: being somewhere or arriving at some time, never for how much someone has posted. Lives in the forum account's repo. Members choose which awarded stamps to wear via the wearing list on their membership record.

**Key**: `tid`

| Property | Type | Required | Description |
|----------|------|----------|-------------|
| `createdAt` | `string` (datetime) | Yes |  |
| `look` | `ref` → `#look` | Yes |  |
| `name` | `string` | Yes |  |
| `trigger` | `ref` → `#trigger` | Yes |  |

### `app.atmobb.forum.stamp#trigger`

**Type**: `object`

What earns the stamp. kind names the event or place; the other fields parameterize it. Writers must validate that the parameter matching kind is present: board for firstPostInBoard, before for profileBefore, via for arrivedBy. firstPostHere and byHand take no parameter.

| Property | Type | Required | Description |
|----------|------|----------|-------------|
| `before` | `string` (datetime) | No | For profileBefore: members whose atmobb profile predates this moment earn the stamp. |
| `board` | `string` (at-uri) | No | For firstPostInBoard: the app.atmobb.forum.board whose first post earns the stamp. |
| `kind` | `string` | Yes |  |
| `via` | `string` | No | For arrivedBy: how the member was accepted (matches the acceptMember action's via). |

## Raw Schema

```json
{
  "$type": "com.atproto.lexicon.schema",
  "defs": {
    "look": {
      "description": "How the stamp is drawn: two colors and one of a bounded set of shapes. No free CSS or images.",
      "properties": {
        "bg": {
          "description": "Background as a full six-digit hex color (for example #1a73e8). Writers must validate the #RRGGBB format.",
          "maxLength": 7,
          "type": "string"
        },
        "ink": {
          "description": "Text and outline as a full six-digit hex color (for example #ffffff). Writers must validate the #RRGGBB format.",
          "maxLength": 7,
          "type": "string"
        },
        "shape": {
          "knownValues": [
            "stamp",
            "pill",
            "ticket",
            "pixel"
          ],
          "maxLength": 32,
          "type": "string"
        },
        "symbol": {
          "description": "Optional visible grapheme drawn on the stamp. Writers must reject invisible or whitespace-only symbols.",
          "maxGraphemes": 1,
          "maxLength": 64,
          "minGraphemes": 1,
          "type": "string"
        }
      },
      "required": [
        "bg",
        "ink",
        "shape"
      ],
      "type": "object"
    },
    "main": {
      "description": "A stamp a forum awards for belonging: being somewhere or arriving at some time, never for how much someone has posted. Lives in the forum account's repo. Members choose which awarded stamps to wear via the wearing list on their membership record.",
      "key": "tid",
      "record": {
        "properties": {
          "createdAt": {
            "format": "datetime",
            "type": "string"
          },
          "look": {
            "ref": "#look",
            "type": "ref"
          },
          "name": {
            "maxGraphemes": 24,
            "maxLength": 240,
            "type": "string"
          },
          "trigger": {
            "ref": "#trigger",
            "type": "ref"
          }
        },
        "required": [
          "name",
          "look",
          "trigger",
          "createdAt"
        ],
        "type": "object"
      },
      "type": "record"
    },
    "trigger": {
      "description": "What earns the stamp. kind names the event or place; the other fields parameterize it. Writers must validate that the parameter matching kind is present: board for firstPostInBoard, before for profileBefore, via for arrivedBy. firstPostHere and byHand take no parameter.",
      "properties": {
        "before": {
          "description": "For profileBefore: members whose atmobb profile predates this moment earn the stamp.",
          "format": "datetime",
          "type": "string"
        },
        "board": {
          "description": "For firstPostInBoard: the app.atmobb.forum.board whose first post earns the stamp.",
          "format": "at-uri",
          "type": "string"
        },
        "kind": {
          "knownValues": [
            "firstPostInBoard",
            "firstPostHere",
            "profileBefore",
            "arrivedBy",
            "byHand"
          ],
          "maxLength": 32,
          "type": "string"
        },
        "via": {
          "description": "For arrivedBy: how the member was accepted (matches the acceptMember action's via).",
          "knownValues": [
            "invite",
            "application",
            "founding"
          ],
          "maxLength": 32,
          "type": "string"
        }
      },
      "required": [
        "kind"
      ],
      "type": "object"
    }
  },
  "id": "app.atmobb.forum.stamp",
  "lexicon": 1
}
```
