Blocks
Common fields
The fields every block has, whatever it collects.
Every block carries these, so each type's own page documents only what is specific to it.
{
"type": "object",
"properties": {
"id": {
"type": "string",
"minLength": 6,
"maxLength": 32
},
"ref": {
"type": "string",
"pattern": "^[a-z][a-z0-9_]{1,40}$"
},
"title": {
"type": "string",
"maxLength": 2000
},
"description": {
"type": "string",
"maxLength": 5000
},
"required": {
"default": false,
"type": "boolean"
},
"visibility": {
"default": null,
"anyOf": [
{
"$ref": "#/$defs/__schema0"
},
{
"type": "null"
}
]
},
"image_key": {
"default": null,
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
]
},
"agentHints": {
"default": null,
"anyOf": [
{
"type": "object",
"properties": {
"askStyle": {
"type": "string",
"maxLength": 500
},
"retryHint": {
"type": "string",
"maxLength": 500
},
"whyWeAsk": {
"type": "string",
"maxLength": 500
},
"examples": {
"default": [],
"maxItems": 5,
"type": "array",
"items": {
"type": "string",
"maxLength": 200
}
}
}
},
{
"type": "null"
}
]
},
"media": {
"default": null,
"anyOf": [
{
"type": "object",
"properties": {
"kind": {
"type": "string",
"enum": [
"image",
"video",
"file"
]
},
"key": {
"default": null,
"anyOf": [
{
"type": "string",
"maxLength": 500
},
{
"type": "null"
}
]
},
"url": {
"default": null,
"anyOf": [
{
"type": "string",
"maxLength": 1000,
"format": "uri"
},
{
"type": "null"
}
]
},
"filename": {
"type": "string",
"maxLength": 300
},
"mime": {
"type": "string",
"maxLength": 120
},
"sizeBytes": {
"type": "integer",
"minimum": 0,
"maximum": 9007199254740991
},
"alt": {
"type": "string",
"maxLength": 300
},
"caption": {
"type": "string",
"maxLength": 300
}
},
"required": [
"kind"
]
},
{
"type": "null"
}
]
},
"prefillParam": {
"type": "string",
"pattern": "^[a-zA-Z_][a-zA-Z0-9_.-]{0,60}$"
},
"identityField": {
"anyOf": [
{
"type": "string",
"enum": [
"given-name",
"family-name",
"name",
"nickname",
"username",
"email",
"tel",
"organization",
"organization-title",
"department",
"street-address",
"address-line2",
"address-level2",
"address-level1",
"postal-code",
"country-name",
"url",
"linkedin",
"github",
"twitter",
"instagram",
"youtube",
"reddit",
"discord",
"school",
"degree",
"graduation-year",
"student-id",
"bday",
"sex",
"nationality",
"shirt-size",
"dietary"
]
},
{
"type": "string",
"const": "never"
}
]
}
}
}ref is the one to pay attention to: it is how you address a block when
answering, and it is stable across edits in a way id is not meant to be.