family.pardy.familytime.card.defs
{
"$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
}
Metadata
- DID
-
did:plc:dp7v5b5kejmmzzpwmqyf5wj6 - CID
-
bafyreic42dhyyiw7hrhnjplde5ggu6s42gxmoca2tgrebwytjlg7mnyw2a - Indexed At
- 2026-10-28 12:01 UTC
- AT-URI
-
at://did:plc:dp7v5b5kejmmzzpwmqyf5wj6/com.atproto.lexicon.schema/family.pardy.familytime.card.defs
Similar Lexicons
Lexicons whose schemas describe something close to this one. Check them before publishing a new one that overlaps.
-
A card: a tree of blocks bound to named sources, optionally with a sandboxed module. Public, so any board can add it by its AT URI; each board's settings for it live in a private cardInstance.