contentModel describes the block’s content structure for AI tools and the marketplace.
contentModel.elements
Lists the element registry elements used by this block. Use the element name as it appears in the registry (no handle prefix).
"elements": [ "heading", "description", "button", "badge" ]
contentModel.repeaters
Names of repeating item structures. Matches the attribute key in block.json. Empty array if the block has no repeaters.
"repeaters": [ "faqs" ]
contentModel.ai_fill
Maps block attribute names to a boolean: true means an AI tool may suggest or pre-fill this field. false means human input is required.
"ai_fill": {
"heading": true,
"description": true,
"sectionHeading": true,
"faqs": true,
"btnText": true,
"btnUrl": false,
"iconId": false,
"showSchema": false,
"anchor": false,
"extraClass": false
}
| Field type | ai_fill value | Reason |
|---|---|---|
| Heading / title text | true |
AI can write a heading |
| Body / description copy | true |
AI can write body text |
| Button label text | true |
AI can suggest a CTA label |
| Repeater array (text items) | true |
AI can generate the item set |
| URL / href | false |
AI cannot know the correct destination |
| Attachment / media ID | false |
AI cannot select from the media library |
| Show/hide toggle | false |
Layout decision, not content |
| HTML anchor | false |
Developer concern |
| CSS class | false |
Developer concern |
headingLevel |
false |
Structural / SEO decision |
semanticRole |
false |
Structural decision |