# org.swappulse.meetup

> Published by [bridge.swappulse.org](https://lexicon.garden/identity/did:plc:jwoatauidzr4lollmro2gh35)

## Description

A local in-person collector meetup, mirrored to AT Protocol so meetups are discoverable across instances. RSVPs are separate org.swappulse.meetupRsvp records referencing this meetup via strongRef.

## Links

- [View on Lexicon Garden](https://lexicon.garden/lexicon/did:plc:jwoatauidzr4lollmro2gh35/org.swappulse.meetup)
- [Documentation](https://lexicon.garden/lexicon/did:plc:jwoatauidzr4lollmro2gh35/org.swappulse.meetup/docs)
- [Examples](https://lexicon.garden/lexicon/did:plc:jwoatauidzr4lollmro2gh35/org.swappulse.meetup/examples)

## Definitions

### `org.swappulse.meetup`

**Type**: `record`

A collector meetup event.

**Key**: `tid`

| Property | Type | Required | Description |
|----------|------|----------|-------------|
| `lat` | `number` | No |  |
| `lng` | `number` | No |  |
| `title` | `string` | Yes |  |
| `region` | `string` | No |  |
| `status` | `string` | Yes |  |
| `capacity` | `integer` | No |  |
| `createdAt` | `string` (datetime) | Yes |  |
| `rsvpCount` | `integer` | No |  |
| `creatorDid` | `string` (did) | No |  |
| `description` | `string` | Yes |  |
| `scheduledAt` | `string` (datetime) | Yes |  |
| `locationName` | `string` | Yes |  |
| `organiserName` | `string` | No |  |
| `organiserHandle` | `string` | No |  |
| `requiredVouches` | `integer` | No |  |
| `estimatedDuration` | `integer` | No |  |

## Raw Schema

```json
{
  "id": "org.swappulse.meetup",
  "defs": {
    "main": {
      "key": "tid",
      "type": "record",
      "record": {
        "type": "object",
        "required": [
          "title",
          "description",
          "scheduledAt",
          "locationName",
          "status",
          "createdAt"
        ],
        "properties": {
          "lat": {
            "type": "number"
          },
          "lng": {
            "type": "number"
          },
          "title": {
            "type": "string",
            "maxLength": 100
          },
          "region": {
            "type": "string"
          },
          "status": {
            "type": "string",
            "knownValues": [
              "scheduled",
              "ongoing",
              "completed",
              "cancelled"
            ]
          },
          "capacity": {
            "type": "integer",
            "maximum": 50,
            "minimum": 2
          },
          "createdAt": {
            "type": "string",
            "format": "datetime"
          },
          "rsvpCount": {
            "type": "integer"
          },
          "creatorDid": {
            "type": "string",
            "format": "did"
          },
          "description": {
            "type": "string",
            "maxLength": 1000
          },
          "scheduledAt": {
            "type": "string",
            "format": "datetime"
          },
          "locationName": {
            "type": "string",
            "maxLength": 200
          },
          "organiserName": {
            "type": "string"
          },
          "organiserHandle": {
            "type": "string"
          },
          "requiredVouches": {
            "type": "integer",
            "minimum": 0
          },
          "estimatedDuration": {
            "type": "integer"
          }
        }
      },
      "description": "A collector meetup event."
    }
  },
  "$type": "com.atproto.lexicon.schema",
  "lexicon": 1,
  "revision": 1,
  "description": "A local in-person collector meetup, mirrored to AT Protocol so meetups are discoverable across instances. RSVPs are separate org.swappulse.meetupRsvp records referencing this meetup via strongRef."
}
```
