Pane types / map
map
Getting from A to B, right now — a commute warning, a leg of a trip, a leave-by nudge.
A commute or route heads-up with origin/destination.

Fields in data
The envelope around data (publisher, label, expiresAt…) is the same on every type: see the envelope.
| Field | Type | Notes | |
|---|---|---|---|
variant | "v1" | optional | Design variant to render (defaults to v1). |
title | string | required | 1–160 chars |
sub | string | optional | up to 240 chars |
from | string | optional | up to 60 chars |
to | string | optional | up to 60 chars |
minutes | integer | optional | 0–1440 |
Craft
titleshould state the situation, not the route: "Leave by 8:05 to make the 8:40" beats "Home → Office".minutesis an integer count of travel minutes — the card formats it. Don't send "32 min".from/toare short place labels ("Home", "Office", "SYD T2"), not full addresses.subis where the delay or reason goes: "12 min slower than usual · crash on the Bridge".- This is the most time-sensitive card in the set — always set
expiresAt, usually within the hour.
Avoid
- Don't publish a route card with no time signal (
minutesor a time intitle) — it's the whole content. - Don't send full street addresses; they wrap and the card loses its shape.
- Don't use
mapfor a place recommendation — that's animageorlist.
Examples
Complete payloads for POST /api/v1/feed/items or the MCP publish_pane tool.
A commute that's worse than usual
{
"type": "map",
"publisher": "Apple Maps",
"publisherInit": "AM",
"publisherColor": "#1A4FCC",
"label": "Leave soon",
"data": {
"title": "Leave by 8:05 to make your 9:00",
"sub": "12 min slower than usual · crash on the Harbour Bridge",
"from": "Home",
"to": "Office",
"minutes": 47
}
}The next leg of a trip already in progress
{
"type": "map",
"publisher": "Trip Assistant",
"publisherInit": "TA",
"publisherColor": "#00594F",
"label": "Next leg",
"data": {
"title": "Train to the airport departs 14:20",
"sub": "Platform 3 · 8 min walk from your hotel",
"from": "Central",
"to": "SYD T1",
"minutes": 52
}
}