Skip to main content

Public bodies (City councils), Public notice 1.0.0

TemplatePublic bodies (City councils), tpl_edafad905b0f
VariantPublic notice
Version1.0.0, the newest: what a channel following this variant draws
Shapes9x16, 4x5, 1x1, 16x9, 2x3
Length23 seconds

Example video​

The 1x1 cut of this version, drawn from its own worked example. Open the video on its own.

What it accepts​

An official notice from a city: the notice on a coloured banner, its title, the reference, the date and where to read it in full, complete on the first frame; each fact read in turn, then the notice paragraph by paragraph, paged, never set smaller, then the button. Who issued it stays on screen throughout. 14 seconds, 4.5 more per paragraph after the first. metaData is never drawn.

FieldTypeRequiredLimitWhat it is
clipDatagroupyesClip data: Everything drawn in the clip: the kind of notice and its status, the title, the notice's paragraphs, the date, where to read it in full, the labels, the call to action, who issued it and the reference.
clipData.noticetextyesup to 24 charactersKind of notice: What kind of notice this is, on the coloured banner under your logo on every frame, such as Public notice or Statutory notice.
clipData.statustextup to 32 charactersStatus: What the notice is about, beside the kind of notice on the banner, such as Proposed traffic order or Planning application.
clipData.headlinetextyesup to 90 charactersTitle: The notice's title, as published, such as Proposed parking restrictions on Park Lane. Facts only: a notice informs and never campaigns.
clipData.paragraphslistyesat least 1, up to 5The notice: The notice's words, in up to five short paragraphs, as published or summarised in plain words. Each is read in turn, about four and a half seconds each, longer for a longer one; where they do not fit one frame they turn pages, never set smaller.
clipData.paragraphs[]textup to 280 charactersParagraph: One paragraph of the notice.
clipData.datedatetimeyesDate of the notice: The day the notice is dated or published. Only the date is read, as it is written here, and it is spelled out in the channel's language with its weekday.
clipData.dateTexttextup to 48 charactersDate, as written: The date in your own words, shown instead of the date, such as Published 6 November 2026. Left out, it is written from the date.
clipData.readAttextyesup to 160 charactersWhere to read it in full: Where the full notice, its plans and documents can be read, online and in person, spelled out with the opening hours.
clipData.labelsgroupLabels: The words beside the facts and over the scenes, in your language. A label left out is not drawn; the pictogram still says which is which.
clipData.labels.referencetextup to 24 charactersReference: Beside the reference.
clipData.labels.datetextup to 24 charactersDate: Beside the date of the notice.
clipData.labels.readAttextup to 32 charactersRead it in full: Beside, and at the end over, where to read it in full.
clipData.labels.bodytextup to 32 charactersThe notice: Over the paragraphs.
clipData.ctagroupCall to action: The button at the end and the line under it, such as a web address or a phone number.
clipData.cta.labeltextyesup to 28 charactersButton: What the button says.
clipData.cta.detailtextup to 48 charactersLine under it: A web address, a phone number, an office.
clipData.issuedBytextyesup to 120 charactersIssued by: The department or office that issues the notice, in your own words, such as Issued by Legal and Democratic Services. Shown with your reference above your footer line from the first frame to the last, set smaller rather than cut.
clipData.referencetextyesup to 40 charactersReference: The notice's file, order or case number, as you write it, such as Ref. TRO/2026/031. Shown among the facts and on the notice line on every frame.
clipData.lookgroupLook: How the clip looks and moves. The same six switches in every format (theme, pace, corners, alignment, logo, logo size). Leave any out for the package's default: the brand's colours, calm, softly rounded, text at the start.
clipData.look.themeenumbrand, light, dark, boldTheme: Brand: your brand's own colours and background. Light or dark: a page tinted with your brand colour. Bold: your brand colour as the page.
clipData.look.paceenumcalm, standard, punchyPace: How things arrive: calm fades, a standard rhythm, or punchy slams and hard cuts.
clipData.look.cornersenumsquare, soft, roundCorners: The shape of cards, pictures and buttons.
clipData.look.alignenumstart, centreText alignment: Where the text lines up.
clipData.look.logoenumauto, freeLogo: The style's own: the logo on a small plate so it reads on any page. As it is: the logo whole, with no plate, frame or crop, for a logo made to stand on the page, such as one with a transparent background. As it is, make sure your logo reads on the page of the theme you choose.
clipData.look.logoSizeenumauto, small, largeLogo size: Standard is the style's own size. Small draws the logo a fifth smaller, with its plate. Large draws it a quarter larger wherever the style has room for it, and at the standard size where it has none.
metaDatagroupMeta data: Everything about the post that is never drawn in the clip: its title, its description in four lengths, one per kind of platform, and its hashtags. Reelwire adds the brand's description, link and hashtags after it. Left out, the post text is generated from the clip data.
metaData.titletextup to 100 charactersTitle: Used where the platform has a title of its own: Facebook Feed, LinkedIn, Pinterest and YouTube. Up to 100 characters, which every one of them takes.
metaData.captionTinytextup to 200 charactersTiny description (Pinterest, Threads, X): Up to 200 characters. The brand's description, link and hashtags follow it within the platform's limit.
metaData.captionShorttextup to 500 charactersShort description (Telegram, Threema, WeChat, WhatsApp): Up to 500 characters. The brand's description, link and hashtags follow it within the platform's limit.
metaData.captionMediumtextup to 1500 charactersMedium description (Discord, Facebook Reels, Instagram, LinkedIn, Signal, Slack, TikTok): Up to 1500 characters. The brand's description, link and hashtags follow it within the platform's limit.
metaData.captionLongtextup to 4000 charactersLong description (Facebook Feed, YouTube): Up to 4000 characters. The brand's description, link and hashtags follow it within the platform's limit.
metaData.hashtagslistup to 15Hashtags: Written without the #. Up to 15, which every platform takes.
metaData.hashtags[]textup to 60 charactersHashtag

locales carries other languages: under each language code, the parts of clipData and metaData that differ, laid over the default, so a language with no copy still renders.

A picture is always a file from your media library: media:// followed by its id or its name. Anything the table does not list is refused, and so is anything over its limit, with a 400 schema_validation error that names the field.

The JSON Schema
{
"type": "object",
"properties": {
"clipData": {
"type": "object",
"properties": {
"notice": {
"type": "string",
"maxLength": 24,
"title": "Kind of notice",
"description": "What kind of notice this is, on the coloured banner under your logo on every frame, such as Public notice or Statutory notice."
},
"status": {
"type": "string",
"maxLength": 32,
"title": "Status",
"description": "What the notice is about, beside the kind of notice on the banner, such as Proposed traffic order or Planning application."
},
"headline": {
"type": "string",
"maxLength": 90,
"title": "Title",
"description": "The notice's title, as published, such as Proposed parking restrictions on Park Lane. Facts only: a notice informs and never campaigns."
},
"paragraphs": {
"type": "array",
"items": {
"type": "string",
"maxLength": 280,
"title": "Paragraph",
"description": "One paragraph of the notice."
},
"minItems": 1,
"maxItems": 5,
"title": "The notice",
"description": "The notice's words, in up to five short paragraphs, as published or summarised in plain words. Each is read in turn, about four and a half seconds each, longer for a longer one; where they do not fit one frame they turn pages, never set smaller."
},
"date": {
"type": "string",
"format": "date-time",
"title": "Date of the notice",
"description": "The day the notice is dated or published. Only the date is read, as it is written here, and it is spelled out in the channel's language with its weekday."
},
"dateText": {
"type": "string",
"maxLength": 48,
"title": "Date, as written",
"description": "The date in your own words, shown instead of the date, such as Published 6 November 2026. Left out, it is written from the date."
},
"readAt": {
"type": "string",
"maxLength": 160,
"title": "Where to read it in full",
"description": "Where the full notice, its plans and documents can be read, online and in person, spelled out with the opening hours."
},
"labels": {
"type": "object",
"properties": {
"reference": {
"type": "string",
"maxLength": 24,
"title": "Reference",
"description": "Beside the reference."
},
"date": {
"type": "string",
"maxLength": 24,
"title": "Date",
"description": "Beside the date of the notice."
},
"readAt": {
"type": "string",
"maxLength": 32,
"title": "Read it in full",
"description": "Beside, and at the end over, where to read it in full."
},
"body": {
"type": "string",
"maxLength": 32,
"title": "The notice",
"description": "Over the paragraphs."
}
},
"additionalProperties": false,
"title": "Labels",
"description": "The words beside the facts and over the scenes, in your language. A label left out is not drawn; the pictogram still says which is which."
},
"cta": {
"type": "object",
"properties": {
"label": {
"type": "string",
"maxLength": 28,
"title": "Button",
"description": "What the button says."
},
"detail": {
"type": "string",
"maxLength": 48,
"title": "Line under it",
"description": "A web address, a phone number, an office."
}
},
"required": [
"label"
],
"additionalProperties": false,
"title": "Call to action",
"description": "The button at the end and the line under it, such as a web address or a phone number."
},
"issuedBy": {
"type": "string",
"maxLength": 120,
"title": "Issued by",
"description": "The department or office that issues the notice, in your own words, such as Issued by Legal and Democratic Services. Shown with your reference above your footer line from the first frame to the last, set smaller rather than cut."
},
"reference": {
"type": "string",
"maxLength": 40,
"title": "Reference",
"description": "The notice's file, order or case number, as you write it, such as Ref. TRO/2026/031. Shown among the facts and on the notice line on every frame."
},
"look": {
"type": "object",
"properties": {
"theme": {
"type": "string",
"enum": [
"brand",
"light",
"dark",
"bold"
],
"title": "Theme",
"description": "Brand: your brand's own colours and background. Light or dark: a page tinted with your brand colour. Bold: your brand colour as the page.",
"enumNames": [
"Brand colours",
"Light",
"Dark",
"Bold brand colour"
]
},
"pace": {
"type": "string",
"enum": [
"calm",
"standard",
"punchy"
],
"title": "Pace",
"description": "How things arrive: calm fades, a standard rhythm, or punchy slams and hard cuts.",
"enumNames": [
"Calm",
"Standard",
"Punchy"
]
},
"corners": {
"type": "string",
"enum": [
"square",
"soft",
"round"
],
"title": "Corners",
"description": "The shape of cards, pictures and buttons.",
"enumNames": [
"Square",
"Softly rounded",
"Round"
]
},
"align": {
"type": "string",
"enum": [
"start",
"centre"
],
"title": "Text alignment",
"description": "Where the text lines up.",
"enumNames": [
"At the start of the line",
"Centred"
]
},
"logo": {
"type": "string",
"enum": [
"auto",
"free"
],
"title": "Logo",
"description": "The style's own: the logo on a small plate so it reads on any page. As it is: the logo whole, with no plate, frame or crop, for a logo made to stand on the page, such as one with a transparent background. As it is, make sure your logo reads on the page of the theme you choose.",
"enumNames": [
"The style's own",
"As it is, no plate or crop"
]
},
"logoSize": {
"type": "string",
"enum": [
"auto",
"small",
"large"
],
"title": "Logo size",
"description": "Standard is the style's own size. Small draws the logo a fifth smaller, with its plate. Large draws it a quarter larger wherever the style has room for it, and at the standard size where it has none.",
"enumNames": [
"Standard",
"Small",
"Large"
]
}
},
"additionalProperties": false,
"title": "Look",
"description": "How the clip looks and moves. The same six switches in every format (theme, pace, corners, alignment, logo, logo size). Leave any out for the package's default: the brand's colours, calm, softly rounded, text at the start."
}
},
"required": [
"notice",
"headline",
"paragraphs",
"date",
"readAt",
"issuedBy",
"reference"
],
"additionalProperties": false,
"title": "Clip data",
"description": "Everything drawn in the clip: the kind of notice and its status, the title, the notice's paragraphs, the date, where to read it in full, the labels, the call to action, who issued it and the reference."
},
"metaData": {
"type": "object",
"properties": {
"title": {
"type": "string",
"maxLength": 100,
"title": "Title",
"description": "Used where the platform has a title of its own: Facebook Feed, LinkedIn, Pinterest and YouTube. Up to 100 characters, which every one of them takes."
},
"captionTiny": {
"type": "string",
"maxLength": 200,
"title": "Tiny description (Pinterest, Threads, X)",
"description": "Up to 200 characters. The brand's description, link and hashtags follow it within the platform's limit."
},
"captionShort": {
"type": "string",
"maxLength": 500,
"title": "Short description (Telegram, Threema, WeChat, WhatsApp)",
"description": "Up to 500 characters. The brand's description, link and hashtags follow it within the platform's limit."
},
"captionMedium": {
"type": "string",
"maxLength": 1500,
"title": "Medium description (Discord, Facebook Reels, Instagram, LinkedIn, Signal, Slack, TikTok)",
"description": "Up to 1500 characters. The brand's description, link and hashtags follow it within the platform's limit."
},
"captionLong": {
"type": "string",
"maxLength": 4000,
"title": "Long description (Facebook Feed, YouTube)",
"description": "Up to 4000 characters. The brand's description, link and hashtags follow it within the platform's limit."
},
"hashtags": {
"type": "array",
"items": {
"type": "string",
"maxLength": 60,
"title": "Hashtag"
},
"maxItems": 15,
"title": "Hashtags",
"description": "Written without the #. Up to 15, which every platform takes."
}
},
"additionalProperties": false,
"title": "Meta data",
"description": "Everything about the post that is never drawn in the clip: its title, its description in four lengths, one per kind of platform, and its hashtags. Reelwire adds the brand's description, link and hashtags after it. Left out, the post text is generated from the clip data."
},
"locales": {
"type": "object",
"additionalProperties": {
"type": "object",
"properties": {
"clipData": {
"type": "object",
"properties": {
"notice": {
"type": "string",
"maxLength": 24,
"title": "Kind of notice",
"description": "What kind of notice this is, on the coloured banner under your logo on every frame, such as Public notice or Statutory notice."
},
"status": {
"type": "string",
"maxLength": 32,
"title": "Status",
"description": "What the notice is about, beside the kind of notice on the banner, such as Proposed traffic order or Planning application."
},
"headline": {
"type": "string",
"maxLength": 90,
"title": "Title",
"description": "The notice's title, as published, such as Proposed parking restrictions on Park Lane. Facts only: a notice informs and never campaigns."
},
"paragraphs": {
"type": "array",
"items": {
"type": "string",
"maxLength": 280,
"title": "Paragraph",
"description": "One paragraph of the notice."
},
"minItems": 1,
"maxItems": 5,
"title": "The notice",
"description": "The notice's words, in up to five short paragraphs, as published or summarised in plain words. Each is read in turn, about four and a half seconds each, longer for a longer one; where they do not fit one frame they turn pages, never set smaller."
},
"date": {
"type": "string",
"format": "date-time",
"title": "Date of the notice",
"description": "The day the notice is dated or published. Only the date is read, as it is written here, and it is spelled out in the channel's language with its weekday."
},
"dateText": {
"type": "string",
"maxLength": 48,
"title": "Date, as written",
"description": "The date in your own words, shown instead of the date, such as Published 6 November 2026. Left out, it is written from the date."
},
"readAt": {
"type": "string",
"maxLength": 160,
"title": "Where to read it in full",
"description": "Where the full notice, its plans and documents can be read, online and in person, spelled out with the opening hours."
},
"labels": {
"type": "object",
"properties": {
"reference": {
"type": "string",
"maxLength": 24,
"title": "Reference",
"description": "Beside the reference."
},
"date": {
"type": "string",
"maxLength": 24,
"title": "Date",
"description": "Beside the date of the notice."
},
"readAt": {
"type": "string",
"maxLength": 32,
"title": "Read it in full",
"description": "Beside, and at the end over, where to read it in full."
},
"body": {
"type": "string",
"maxLength": 32,
"title": "The notice",
"description": "Over the paragraphs."
}
},
"additionalProperties": false,
"title": "Labels",
"description": "The words beside the facts and over the scenes, in your language. A label left out is not drawn; the pictogram still says which is which."
},
"cta": {
"type": "object",
"properties": {
"label": {
"type": "string",
"maxLength": 28,
"title": "Button",
"description": "What the button says."
},
"detail": {
"type": "string",
"maxLength": 48,
"title": "Line under it",
"description": "A web address, a phone number, an office."
}
},
"additionalProperties": false,
"title": "Call to action",
"description": "The button at the end and the line under it, such as a web address or a phone number."
},
"issuedBy": {
"type": "string",
"maxLength": 120,
"title": "Issued by",
"description": "The department or office that issues the notice, in your own words, such as Issued by Legal and Democratic Services. Shown with your reference above your footer line from the first frame to the last, set smaller rather than cut."
},
"reference": {
"type": "string",
"maxLength": 40,
"title": "Reference",
"description": "The notice's file, order or case number, as you write it, such as Ref. TRO/2026/031. Shown among the facts and on the notice line on every frame."
},
"look": {
"type": "object",
"properties": {
"theme": {
"type": "string",
"enum": [
"brand",
"light",
"dark",
"bold"
],
"title": "Theme",
"description": "Brand: your brand's own colours and background. Light or dark: a page tinted with your brand colour. Bold: your brand colour as the page.",
"enumNames": [
"Brand colours",
"Light",
"Dark",
"Bold brand colour"
]
},
"pace": {
"type": "string",
"enum": [
"calm",
"standard",
"punchy"
],
"title": "Pace",
"description": "How things arrive: calm fades, a standard rhythm, or punchy slams and hard cuts.",
"enumNames": [
"Calm",
"Standard",
"Punchy"
]
},
"corners": {
"type": "string",
"enum": [
"square",
"soft",
"round"
],
"title": "Corners",
"description": "The shape of cards, pictures and buttons.",
"enumNames": [
"Square",
"Softly rounded",
"Round"
]
},
"align": {
"type": "string",
"enum": [
"start",
"centre"
],
"title": "Text alignment",
"description": "Where the text lines up.",
"enumNames": [
"At the start of the line",
"Centred"
]
},
"logo": {
"type": "string",
"enum": [
"auto",
"free"
],
"title": "Logo",
"description": "The style's own: the logo on a small plate so it reads on any page. As it is: the logo whole, with no plate, frame or crop, for a logo made to stand on the page, such as one with a transparent background. As it is, make sure your logo reads on the page of the theme you choose.",
"enumNames": [
"The style's own",
"As it is, no plate or crop"
]
},
"logoSize": {
"type": "string",
"enum": [
"auto",
"small",
"large"
],
"title": "Logo size",
"description": "Standard is the style's own size. Small draws the logo a fifth smaller, with its plate. Large draws it a quarter larger wherever the style has room for it, and at the standard size where it has none.",
"enumNames": [
"Standard",
"Small",
"Large"
]
}
},
"additionalProperties": false,
"title": "Look",
"description": "How the clip looks and moves. The same six switches in every format (theme, pace, corners, alignment, logo, logo size). Leave any out for the package's default: the brand's colours, calm, softly rounded, text at the start."
}
},
"additionalProperties": false,
"title": "Clip data",
"description": "Everything drawn in the clip: the kind of notice and its status, the title, the notice's paragraphs, the date, where to read it in full, the labels, the call to action, who issued it and the reference."
},
"metaData": {
"type": "object",
"properties": {
"title": {
"type": "string",
"maxLength": 100,
"title": "Title",
"description": "Used where the platform has a title of its own: Facebook Feed, LinkedIn, Pinterest and YouTube. Up to 100 characters, which every one of them takes."
},
"captionTiny": {
"type": "string",
"maxLength": 200,
"title": "Tiny description (Pinterest, Threads, X)",
"description": "Up to 200 characters. The brand's description, link and hashtags follow it within the platform's limit."
},
"captionShort": {
"type": "string",
"maxLength": 500,
"title": "Short description (Telegram, Threema, WeChat, WhatsApp)",
"description": "Up to 500 characters. The brand's description, link and hashtags follow it within the platform's limit."
},
"captionMedium": {
"type": "string",
"maxLength": 1500,
"title": "Medium description (Discord, Facebook Reels, Instagram, LinkedIn, Signal, Slack, TikTok)",
"description": "Up to 1500 characters. The brand's description, link and hashtags follow it within the platform's limit."
},
"captionLong": {
"type": "string",
"maxLength": 4000,
"title": "Long description (Facebook Feed, YouTube)",
"description": "Up to 4000 characters. The brand's description, link and hashtags follow it within the platform's limit."
},
"hashtags": {
"type": "array",
"items": {
"type": "string",
"maxLength": 60,
"title": "Hashtag"
},
"maxItems": 15,
"title": "Hashtags",
"description": "Written without the #. Up to 15, which every platform takes."
}
},
"additionalProperties": false,
"title": "Meta data",
"description": "Everything about the post that is never drawn in the clip: its title, its description in four lengths, one per kind of platform, and its hashtags. Reelwire adds the brand's description, link and hashtags after it. Left out, the post text is generated from the clip data."
}
},
"additionalProperties": false
},
"propertyNames": {
"enum": [
"aa",
"ab",
"ae",
"af",
"ak",
"am",
"an",
"ar",
"as",
"av",
"ay",
"az",
"ba",
"be",
"bg",
"bi",
"bm",
"bn",
"bo",
"br",
"bs",
"ca",
"ce",
"ch",
"co",
"cr",
"cs",
"cu",
"cv",
"cy",
"da",
"de",
"dv",
"dz",
"ee",
"el",
"en",
"eo",
"es",
"et",
"eu",
"fa",
"ff",
"fi",
"fj",
"fo",
"fr",
"fy",
"ga",
"gd",
"gl",
"gn",
"gu",
"gv",
"ha",
"he",
"hi",
"ho",
"hr",
"ht",
"hu",
"hy",
"hz",
"ia",
"id",
"ie",
"ig",
"ii",
"ik",
"io",
"is",
"it",
"iu",
"ja",
"jv",
"ka",
"kg",
"ki",
"kj",
"kk",
"kl",
"km",
"kn",
"ko",
"kr",
"ks",
"ku",
"kv",
"kw",
"ky",
"la",
"lb",
"lg",
"li",
"ln",
"lo",
"lt",
"lu",
"lv",
"mg",
"mh",
"mi",
"mk",
"ml",
"mn",
"mr",
"ms",
"mt",
"my",
"na",
"nb",
"nd",
"ne",
"ng",
"nl",
"nn",
"no",
"nr",
"nv",
"ny",
"oc",
"oj",
"om",
"or",
"os",
"pa",
"pi",
"pl",
"ps",
"pt",
"qu",
"rm",
"rn",
"ro",
"ru",
"rw",
"sa",
"sc",
"sd",
"se",
"sg",
"si",
"sk",
"sl",
"sm",
"sn",
"so",
"sq",
"sr",
"ss",
"st",
"su",
"sv",
"sw",
"ta",
"te",
"tg",
"th",
"ti",
"tk",
"tl",
"tn",
"to",
"tr",
"ts",
"tt",
"tw",
"ty",
"ug",
"uk",
"ur",
"uz",
"ve",
"vi",
"vo",
"wa",
"wo",
"xh",
"yi",
"yo",
"za",
"zh",
"zu",
"zh-CN",
"zh-TW",
"pt-BR"
]
}
}
},
"required": [
"clipData"
],
"additionalProperties": false,
"$schema": "http://json-schema.org/draft-07/schema#"
}

Ask Reelwire for the same document yourself, without signing in:

curl "http://localhost:4000/v1/formats/template/tpl_edafad905b0f?variant=Public%20notice&version=1.0.0"

Delivery JSON​

Your own system sends this to one of your streams, POST /v1/stream, and every channel listening to that stream draws it with its template. data is the document described above; a stream with an empty field map passes it to the template unchanged. Try it first on POST /v1/stream/validate, which answers the same without publishing anything. Streams and feeds explains the rest, including how to map a document of your own shape instead.

{
"streamId": "st_your_stream_id",
"eventId": "01M2SQMKK3G1NVFXV31DCBVB95",
"occurredAt": "2026-09-23T07:00:00Z",
"locale": "en",
"data": {
"clipData": {
"notice": "Public notice",
"status": "Proposed traffic order",
"headline": "Proposed parking restrictions on Park Lane",
"paragraphs": [
"Notice is given that the City of Westbrook proposes to make an order under the Road Traffic Regulation Act 1984 to introduce no waiting at any time on both sides of Park Lane, between Church Road and Station Street.",
"The order is proposed to keep Park Lane clear for buses and emergency vehicles, and to make the crossing by Park Lane Primary School safer.",
"Anybody who wishes to object to the order should write to us by Friday 27 November 2026, giving the grounds for their objection."
],
"date": "2026-11-06T00:00:00+00:00",
"dateText": "",
"readAt": "At westbrook.example/notices, and at the Civic Centre, Market Street, Monday to Friday from 9 am to 5 pm",
"labels": {
"body": "The notice",
"date": "Published",
"readAt": "Read it in full",
"reference": "Reference"
},
"cta": {
"label": "Read the full notice",
"detail": "westbrook.example/notices"
},
"issuedBy": "Issued by Legal and Democratic Services, City of Westbrook",
"reference": "Ref. TRO/2026/031",
"look": {
"logo": "auto",
"pace": "calm",
"align": "start",
"theme": "brand",
"corners": "soft",
"logoSize": "auto"
}
},
"metaData": {
"title": "Public notice: proposed parking restrictions on Park Lane",
"captionTiny": "Public notice: we propose no waiting at any time on both sides of Park Lane, between Church Road and Station Street. Objections by 27 November.",
"captionShort": "Public notice. The City of Westbrook proposes to introduce no waiting at any time on both sides of Park Lane, between Church Road and Station Street, to keep the road clear for buses and emergency vehicles and to make the school crossing safer. Anybody who wishes to object should write to us by Friday 27 November 2026. Read the full notice at westbrook.example/notices. Ref. TRO/2026/031.",
"captionMedium": "Public notice: proposed parking restrictions on Park Lane. Notice is given that the City of Westbrook proposes to make an order under the Road Traffic Regulation Act 1984 to introduce no waiting at any time on both sides of Park Lane, between Church Road and Station Street. The order is proposed to keep Park Lane clear for buses and emergency vehicles, and to make the crossing by Park Lane Primary School safer. Anybody who wishes to object to the order should write to us by Friday 27 November 2026, giving the grounds for their objection. The full notice, the plan and the statement of reasons can be read at westbrook.example/notices, and at the Civic Centre, Market Street, Monday to Friday from 9 am to 5 pm. Issued by Legal and Democratic Services, City of Westbrook. Ref. TRO/2026/031. Published 6 November 2026.",
"captionLong": "Public notice: proposed parking restrictions on Park Lane. Notice is given that the City of Westbrook proposes to make an order under the Road Traffic Regulation Act 1984 to introduce no waiting at any time on both sides of Park Lane, between Church Road and Station Street. The order is proposed to keep Park Lane clear for buses and emergency vehicles, which are often held up where cars are parked on both sides of the road, and to make the crossing by Park Lane Primary School safer for the children who use it every morning and afternoon. Loading and unloading, blue badge holders and vehicles for the emergency and public services will still be able to stop where the order allows it. The full notice, a plan of the lengths of road concerned, the order as proposed and the council's statement of reasons for making it can be read at westbrook.example/notices, and at the Civic Centre, Market Street, Monday to Friday from 9 am to 5 pm, until Friday 27 November 2026. Anybody who wishes to object to the order, or to support it, should write to Legal and Democratic Services, City of Westbrook, Civic Centre, Market Street, or through westbrook.example/notices, by Friday 27 November 2026, giving the grounds for their objection and quoting the reference TRO/2026/031. Every response will be read and considered before a decision is made, and the decision will be published in the same places. If you need the notice in large print, in another language or read aloud, please call us on 0300 123 4567. Issued by Legal and Democratic Services, City of Westbrook. Published 6 November 2026.",
"hashtags": [
"publicnotice",
"westbrook",
"parklane",
"traffic",
"localgov"
]
}
}
}

The delivery names no version: which build draws it is the channel's choice, the newest of its variant or the one it is pinned to. eventId is a ULID you make once per event: sending the same one again changes nothing. occurredAt is when the thing happened, not when you sent it. locale is the language of the text in data, and data.locales carries other languages beside it.