# family.pardy.familytime.card.defs

> Published by [pardy.at](https://lexicon.garden/identity/did:plc:dp7v5b5kejmmzzpwmqyf5wj6)

✓ This is the authoritative definition for this NSID.

## Links

- [View on Lexicon Garden](https://lexicon.garden/lexicon/did:plc:dp7v5b5kejmmzzpwmqyf5wj6/family.pardy.familytime.card.defs)
- [Documentation](https://lexicon.garden/lexicon/did:plc:dp7v5b5kejmmzzpwmqyf5wj6/family.pardy.familytime.card.defs/docs)
- [Examples](https://lexicon.garden/lexicon/did:plc:dp7v5b5kejmmzzpwmqyf5wj6/family.pardy.familytime.card.defs/examples)

## Definitions

### `family.pardy.familytime.card.defs#binding`

**Type**: `object`

| Property | Type | Required | Description |
|----------|------|----------|-------------|
| `path` | `string` | No | JSON pointer. |
| `source` | `string` | Yes | A source name, or $item in a list template. |

### `family.pardy.familytime.card.defs#gestures`

**Type**: `object`

Touch gesture → action name. Tap works without scripts; the rest come from the app's shared script.

| Property | Type | Required | Description |
|----------|------|----------|-------------|
| `doubleTap` | `string` | No |  |
| `drop` | `string` | No |  |
| `longPress` | `string` | No |  |
| `tap` | `string` | No |  |

### `family.pardy.familytime.card.defs#heading`

**Type**: `object`

Big text, with optional smaller text under it.

| Property | Type | Required | Description |
|----------|------|----------|-------------|
| `bind` | `object` | No | Bound properties replace literal ones. |
| `grow` | `integer` | No | Share of a row's width. |
| `id` | `string` | No | Names the block in action intents. Required on items that answer gestures. |
| `size` | `string` | No |  |
| `subtext` | `string` | No |  |
| `text` | `string` | No |  |
| `when` | `ref` → `#binding` | No | Only show the block when this binding is truthy. |

### `family.pardy.familytime.card.defs#item`

**Type**: `object`

An icon and text. Answers touch gestures with actions sent to the host.

| Property | Type | Required | Description |
|----------|------|----------|-------------|
| `accepts` | `string` | No | The kind of dragged item this accepts (with on.drop). |
| `bind` | `object` | No | Bound properties replace literal ones. |
| `color` | `string` | No |  |
| `drag` | `string` | No | Makes the item draggable; names the kind of thing it is. |
| `grow` | `integer` | No | Share of a row's width. |
| `icon` | `string` | No |  |
| `id` | `string` | No | Names the block in action intents. Required on items that answer gestures. |
| `image` | `string` | No | A picture from this app's own image paths (event photos, theme art); shown instead of the icon. Outside URLs are ignored. |
| `level` | `integer` | No | For look "meter". |
| `look` | `string` | No |  |
| `on` | `ref` → `#gestures` | No |  |
| `status` | `string` | No |  |
| `subtext` | `string` | No |  |
| `text` | `string` | No |  |
| `value` | `string` | No | Sent with the item's gestures. |
| `when` | `ref` → `#binding` | No | Only show the block when this binding is truthy. |

### `family.pardy.familytime.card.defs#list`

**Type**: `object`

Repeats the template for each element of a bound array; the element is the source $item.

| Property | Type | Required | Description |
|----------|------|----------|-------------|
| `empty` | `string` | No |  |
| `emptyIcon` | `string` | No |  |
| `grow` | `integer` | No | Share of a row's width. |
| `id` | `string` | No | Names the block in action intents. Required on items that answer gestures. |
| `items` | `ref` → `#binding` | Yes |  |
| `layout` | `string` | No |  |
| `template` | `array` | Yes |  |
| `when` | `ref` → `#binding` | No | Only show the block when this binding is truthy. |

### `family.pardy.familytime.card.defs#moduleSource`

**Type**: `object`

Computed by the card's own module.

| Property | Type | Required | Description |
|----------|------|----------|-------------|

### `family.pardy.familytime.card.defs#row`

**Type**: `object`

Children side by side, wrapping.

| Property | Type | Required | Description |
|----------|------|----------|-------------|
| `blocks` | `array` | No |  |
| `grow` | `integer` | No | Share of a row's width. |
| `id` | `string` | No | Names the block in action intents. Required on items that answer gestures. |
| `when` | `ref` → `#binding` | No | Only show the block when this binding is truthy. |

### `family.pardy.familytime.card.defs#section`

**Type**: `object`

A titled group.

| Property | Type | Required | Description |
|----------|------|----------|-------------|
| `aside` | `string` | No |  |
| `bind` | `object` | No | Bound properties replace literal ones. |
| `blocks` | `array` | No |  |
| `grow` | `integer` | No | Share of a row's width. |
| `id` | `string` | No | Names the block in action intents. Required on items that answer gestures. |
| `title` | `string` | No |  |
| `when` | `ref` → `#binding` | No | Only show the block when this binding is truthy. |

### `family.pardy.familytime.card.defs#slot`

**Type**: `object`

Where the board's own cards go (filled by the host).

| Property | Type | Required | Description |
|----------|------|----------|-------------|
| `name` | `string` | No |  |

### `family.pardy.familytime.card.defs#source`

**Type**: `object`

| Property | Type | Required | Description |
|----------|------|----------|-------------|
| `name` | `string` | Yes |  |
| `ref` | `union` | Yes |  |

### `family.pardy.familytime.card.defs#stack`

**Type**: `object`

Children top to bottom.

| Property | Type | Required | Description |
|----------|------|----------|-------------|
| `blocks` | `array` | No |  |
| `grow` | `integer` | No | Share of a row's width. |
| `id` | `string` | No | Names the block in action intents. Required on items that answer gestures. |
| `when` | `ref` → `#binding` | No | Only show the block when this binding is truthy. |

### `family.pardy.familytime.card.defs#viewSource`

**Type**: `object`

A view the app computes for the screen.

| Property | Type | Required | Description |
|----------|------|----------|-------------|
| `day` | `integer` | No |  |
| `mine` | `boolean` | No |  |
| `view` | `string` | Yes |  |

## Raw Schema

```json
{
  "$type": "com.atproto.lexicon.schema",
  "defs": {
    "binding": {
      "properties": {
        "path": {
          "description": "JSON pointer.",
          "maxLength": 300,
          "type": "string"
        },
        "source": {
          "description": "A source name, or $item in a list template.",
          "maxLength": 64,
          "type": "string"
        }
      },
      "required": [
        "source"
      ],
      "type": "object"
    },
    "gestures": {
      "description": "Touch gesture → action name. Tap works without scripts; the rest come from the app's shared script.",
      "properties": {
        "doubleTap": {
          "maxLength": 64,
          "type": "string"
        },
        "drop": {
          "maxLength": 64,
          "type": "string"
        },
        "longPress": {
          "maxLength": 64,
          "type": "string"
        },
        "tap": {
          "maxLength": 64,
          "type": "string"
        }
      },
      "type": "object"
    },
    "heading": {
      "description": "Big text, with optional smaller text under it.",
      "properties": {
        "bind": {
          "description": "Bound properties replace literal ones.",
          "properties": {
            "subtext": {
              "ref": "#binding",
              "type": "ref"
            },
            "text": {
              "ref": "#binding",
              "type": "ref"
            }
          },
          "type": "object"
        },
        "grow": {
          "description": "Share of a row's width.",
          "maximum": 12,
          "minimum": 0,
          "type": "integer"
        },
        "id": {
          "description": "Names the block in action intents. Required on items that answer gestures.",
          "maxLength": 64,
          "type": "string"
        },
        "size": {
          "knownValues": [
            "small"
          ],
          "type": "string"
        },
        "subtext": {
          "maxLength": 200,
          "type": "string"
        },
        "text": {
          "maxLength": 200,
          "type": "string"
        },
        "when": {
          "description": "Only show the block when this binding is truthy.",
          "ref": "#binding",
          "type": "ref"
        }
      },
      "type": "object"
    },
    "item": {
      "description": "An icon and text. Answers touch gestures with actions sent to the host.",
      "properties": {
        "accepts": {
          "description": "The kind of dragged item this accepts (with on.drop).",
          "maxLength": 32,
          "type": "string"
        },
        "bind": {
          "description": "Bound properties replace literal ones.",
          "properties": {
            "color": {
              "ref": "#binding",
              "type": "ref"
            },
            "icon": {
              "ref": "#binding",
              "type": "ref"
            },
            "image": {
              "ref": "#binding",
              "type": "ref"
            },
            "level": {
              "ref": "#binding",
              "type": "ref"
            },
            "look": {
              "ref": "#binding",
              "type": "ref"
            },
            "marks": {
              "ref": "#binding",
              "type": "ref"
            },
            "status": {
              "ref": "#binding",
              "type": "ref"
            },
            "subtext": {
              "ref": "#binding",
              "type": "ref"
            },
            "text": {
              "ref": "#binding",
              "type": "ref"
            },
            "value": {
              "ref": "#binding",
              "type": "ref"
            }
          },
          "type": "object"
        },
        "color": {
          "maxLength": 64,
          "type": "string"
        },
        "drag": {
          "description": "Makes the item draggable; names the kind of thing it is.",
          "maxLength": 32,
          "type": "string"
        },
        "grow": {
          "description": "Share of a row's width.",
          "maximum": 12,
          "minimum": 0,
          "type": "integer"
        },
        "icon": {
          "maxLength": 32,
          "type": "string"
        },
        "id": {
          "description": "Names the block in action intents. Required on items that answer gestures.",
          "maxLength": 64,
          "type": "string"
        },
        "image": {
          "description": "A picture from this app's own image paths (event photos, theme art); shown instead of the icon. Outside URLs are ignored.",
          "maxLength": 300,
          "type": "string"
        },
        "level": {
          "description": "For look \"meter\".",
          "maximum": 100,
          "minimum": 0,
          "type": "integer"
        },
        "look": {
          "knownValues": [
            "sticker",
            "face",
            "tile",
            "slot",
            "chip",
            "banner",
            "clock",
            "yes",
            "no",
            "back",
            "swatch",
            "meter",
            "countdown",
            "face-big",
            "together",
            "goal",
            "claim"
          ],
          "type": "string"
        },
        "on": {
          "ref": "#gestures",
          "type": "ref"
        },
        "status": {
          "knownValues": [
            "pending",
            "done",
            "selected",
            "error"
          ],
          "type": "string"
        },
        "subtext": {
          "maxLength": 200,
          "type": "string"
        },
        "text": {
          "maxLength": 200,
          "type": "string"
        },
        "value": {
          "description": "Sent with the item's gestures.",
          "maxLength": 1000,
          "type": "string"
        },
        "when": {
          "description": "Only show the block when this binding is truthy.",
          "ref": "#binding",
          "type": "ref"
        }
      },
      "type": "object"
    },
    "list": {
      "description": "Repeats the template for each element of a bound array; the element is the source $item.",
      "properties": {
        "empty": {
          "maxLength": 200,
          "type": "string"
        },
        "emptyIcon": {
          "maxLength": 32,
          "type": "string"
        },
        "grow": {
          "description": "Share of a row's width.",
          "maximum": 12,
          "minimum": 0,
          "type": "integer"
        },
        "id": {
          "description": "Names the block in action intents. Required on items that answer gestures.",
          "maxLength": 64,
          "type": "string"
        },
        "items": {
          "ref": "#binding",
          "type": "ref"
        },
        "layout": {
          "knownValues": [
            "stack",
            "row",
            "grid"
          ],
          "type": "string"
        },
        "template": {
          "items": {
            "refs": [
              "family.pardy.familytime.card.defs#stack",
              "family.pardy.familytime.card.defs#row",
              "family.pardy.familytime.card.defs#section",
              "family.pardy.familytime.card.defs#heading",
              "family.pardy.familytime.card.defs#list",
              "family.pardy.familytime.card.defs#item"
            ],
            "type": "union"
          },
          "maxLength": 20,
          "type": "array"
        },
        "when": {
          "description": "Only show the block when this binding is truthy.",
          "ref": "#binding",
          "type": "ref"
        }
      },
      "required": [
        "items",
        "template"
      ],
      "type": "object"
    },
    "moduleSource": {
      "description": "Computed by the card's own module.",
      "properties": {},
      "type": "object"
    },
    "row": {
      "description": "Children side by side, wrapping.",
      "properties": {
        "blocks": {
          "items": {
            "refs": [
              "family.pardy.familytime.card.defs#stack",
              "family.pardy.familytime.card.defs#row",
              "family.pardy.familytime.card.defs#section",
              "family.pardy.familytime.card.defs#heading",
              "family.pardy.familytime.card.defs#list",
              "family.pardy.familytime.card.defs#item",
              "family.pardy.familytime.card.defs#slot"
            ],
            "type": "union"
          },
          "maxLength": 50,
          "type": "array"
        },
        "grow": {
          "description": "Share of a row's width.",
          "maximum": 12,
          "minimum": 0,
          "type": "integer"
        },
        "id": {
          "description": "Names the block in action intents. Required on items that answer gestures.",
          "maxLength": 64,
          "type": "string"
        },
        "when": {
          "description": "Only show the block when this binding is truthy.",
          "ref": "#binding",
          "type": "ref"
        }
      },
      "type": "object"
    },
    "section": {
      "description": "A titled group.",
      "properties": {
        "aside": {
          "maxLength": 100,
          "type": "string"
        },
        "bind": {
          "description": "Bound properties replace literal ones.",
          "properties": {
            "aside": {
              "ref": "#binding",
              "type": "ref"
            },
            "title": {
              "ref": "#binding",
              "type": "ref"
            }
          },
          "type": "object"
        },
        "blocks": {
          "items": {
            "refs": [
              "family.pardy.familytime.card.defs#stack",
              "family.pardy.familytime.card.defs#row",
              "family.pardy.familytime.card.defs#section",
              "family.pardy.familytime.card.defs#heading",
              "family.pardy.familytime.card.defs#list",
              "family.pardy.familytime.card.defs#item",
              "family.pardy.familytime.card.defs#slot"
            ],
            "type": "union"
          },
          "maxLength": 50,
          "type": "array"
        },
        "grow": {
          "description": "Share of a row's width.",
          "maximum": 12,
          "minimum": 0,
          "type": "integer"
        },
        "id": {
          "description": "Names the block in action intents. Required on items that answer gestures.",
          "maxLength": 64,
          "type": "string"
        },
        "title": {
          "maxLength": 100,
          "type": "string"
        },
        "when": {
          "description": "Only show the block when this binding is truthy.",
          "ref": "#binding",
          "type": "ref"
        }
      },
      "type": "object"
    },
    "slot": {
      "description": "Where the board's own cards go (filled by the host).",
      "properties": {
        "name": {
          "knownValues": [
            "home.top",
            "home.bottom"
          ],
          "type": "string"
        }
      },
      "type": "object"
    },
    "source": {
      "properties": {
        "name": {
          "maxLength": 64,
          "type": "string"
        },
        "ref": {
          "refs": [
            "#viewSource",
            "#moduleSource"
          ],
          "type": "union"
        }
      },
      "required": [
        "name",
        "ref"
      ],
      "type": "object"
    },
    "stack": {
      "description": "Children top to bottom.",
      "properties": {
        "blocks": {
          "items": {
            "refs": [
              "family.pardy.familytime.card.defs#stack",
              "family.pardy.familytime.card.defs#row",
              "family.pardy.familytime.card.defs#section",
              "family.pardy.familytime.card.defs#heading",
              "family.pardy.familytime.card.defs#list",
              "family.pardy.familytime.card.defs#item",
              "family.pardy.familytime.card.defs#slot"
            ],
            "type": "union"
          },
          "maxLength": 50,
          "type": "array"
        },
        "grow": {
          "description": "Share of a row's width.",
          "maximum": 12,
          "minimum": 0,
          "type": "integer"
        },
        "id": {
          "description": "Names the block in action intents. Required on items that answer gestures.",
          "maxLength": 64,
          "type": "string"
        },
        "when": {
          "description": "Only show the block when this binding is truthy.",
          "ref": "#binding",
          "type": "ref"
        }
      },
      "type": "object"
    },
    "viewSource": {
      "description": "A view the app computes for the screen.",
      "properties": {
        "day": {
          "maximum": 1,
          "minimum": 0,
          "type": "integer"
        },
        "mine": {
          "type": "boolean"
        },
        "view": {
          "knownValues": [
            "board",
            "weather",
            "day",
            "members",
            "subject",
            "ideas",
            "pending",
            "activity",
            "slots",
            "screen",
            "themes",
            "countdowns",
            "focus",
            "highlight",
            "together",
            "stars",
            "give"
          ],
          "type": "string"
        }
      },
      "required": [
        "view"
      ],
      "type": "object"
    }
  },
  "id": "family.pardy.familytime.card.defs",
  "lexicon": 1
}
```
