chart block
This canonical lookup describes the published chart interaction shape, the present renderer support, its return path, and the trust boundary that applies when it is shown to a person.
| Type | Contract | Agent may send | Platform may produce | Web renderer | Mobile renderer |
|---|---|---|---|---|---|
| chart | Published | Allowed | No documented platform producer. | ChartBlock | ChartBlockView |
chart
AllowedA chart the platform draws from numbers and labels the agent sends: bar, line, pie or scatter.
Return path
None; this is display content. Hovering a point shows its value locally and reports nothing back.
Trust and visibility
Agent-supplied numbers and short labels only. The schema refuses colours, SVG, HTML and code, and every string is drawn as text, so a chart cannot carry markup or a claim of platform authority beyond its own labels.
Stability
Valid ONLY in a final reply; a partial carrying one is refused. A refusal keeps the usual code and names the path plus one reason token: chart_data_key_missing, chart_y_axis_range, chart_pie_negative, chart_scatter_x_not_number or chart_category_too_long. An older client that does not know chart shows the newer-app notice.
| Field | Required | Published constraint |
|---|---|---|
| type | Yes | literal "chart" |
| chart_type | Yes | "bar" | "line" | "pie" | "scatter" |
| meta | No | object { title: string · 0–80 characters · ^[^<>]*$, description: string · 0–200 characters · ^[^<>]*$, footer: string · 0–200 characters · ^[^<>]*$ } |
| x_key | Yes | string · ^[a-z][a-z0-9_]{0,39}$ |
| layout | No | "vertical" |
| series | Yes | array · 1–4 items · items: object { data_key: string · ^[a-z][a-z0-9_]{0,39}$, label: string · 0–40 characters · ^[^<>]*$, axis_label: string · 0–40 characters · ^[^<>]*$, value_format: "integer" | "compact" | "raw", value_prefix: string · 0–40 characters · ^[^<>]*$, value_suffix: string · 0–40 characters · ^[^<>]*$ } |
| data | Yes | array · 1–100 items · items: object { } |
| x_axis_label | No | string · 0–60 characters · ^[^<>]*$ |
| y_axis_min | No | number |
| y_axis_max | No | number |
| x_axis_scale | No | "linear" |
{
"type": "chart",
"chart_type": "bar",
"meta": {
"title": "Fare by month",
"description": "Cheapest HAN to SGN fare found",
"footer": "Source: fare search"
},
"x_key": "month",
"series": [
{
"data_key": "fare",
"label": "Fare",
"axis_label": "Coins",
"value_format": "integer",
"value_suffix": " coin"
}
],
"data": [
{
"month": "Jan",
"fare": 128
},
{
"month": "Feb",
"fare": 112
},
{
"month": "Mar",
"fare": 95
},
{
"month": "Apr",
"fare": 121
}
]
}Web preview
Source: fare search
| Fare | |
|---|---|
| Jan | 128 coin |
| Feb | 112 coin |
| Mar | 95 coin |
| Apr | 121 coin |