Full Example
{
"id": "wptruss/feature-card",
"archetype": "features",
"category": "Features",
"layoutType": "single-column",
"intent": [ "education" ],
"funnelStage": [ "consideration" ],
"complexity": "basic",
"dynamic": true,
"schemaSupport": [],
"sectionRole": "capability-item",
"tags": [ "features", "icon", "card" ],
"contentModel": {
"elements": [ "heading", "description", "icon" ],
"repeaters": [],
"ai_fill": {
"heading": true,
"description": true,
"iconId": false
}
},
"composition": {
"canFollow": [ "hero", "stats" ],
"canPrecede": [ "pricing", "cta" ]
}
}
All fields are required. An empty array [] is correct for fields with no applicable values.
id
Must exactly match the name field in runtime/block.json.
"id": "wptruss/faq-accordion"
archetype
The block’s functional category. Used by the composition engine and AI tools.
| Value | Typical block type |
|---|---|
hero |
Full-width hero / banner section |
features |
Feature cards, capability grids |
faq |
FAQ accordion or list |
pricing |
Pricing tiers, plan comparison |
testimonials |
Quote cards, review grids |
stats |
Number / metric displays |
cta |
Call-to-action prompts |
team |
Team member cards |
blog |
Blog post cards |
gallery |
Image grids |
content |
General prose / editorial |
form |
Contact forms |
navigation |
Menus, breadcrumbs |
media |
Video embeds, image features |
social-proof |
Logos, awards, press mentions |
steps |
Process steps, how-to sequences |
timeline |
Chronological event displays |
comparison |
Feature comparison tables |
accordion |
General expandable content |
tabs |
Tabbed content panels |
map |
Location / map embeds |
embed |
Third-party service embeds |
category
Human-readable display label shown in the marketplace filter sidebar.
"category": "Features"
Common values: "Features", "Content", "FAQ", "Hero", "Pricing", "Testimonials", "Stats", "CTA", "Team", "Gallery", "Forms", "Navigation", "Media".
layoutType
The block’s internal layout pattern.
| Value | Layout |
|---|---|
single-column |
Stacked vertically |
two-column |
Two columns |
three-column |
Three columns |
four-column |
Four columns |
grid |
Flexible multi-column grid |
hero |
Full-width with overlay or split |
split |
Left/right split |
centered |
Centred single column |
list |
Vertical list |
table |
Tabular data |
carousel |
Horizontally scrollable |
full-bleed |
Edge-to-edge, no container |
intent
Marketing or communication purpose. At least one value required.
| Value | Purpose |
|---|---|
"education" |
Explains a concept or process |
"engagement" |
Encourages interaction |
"conversion" |
Drives a specific action |
"trust" |
Establishes credibility |
"navigation" |
Helps users move through the site |
"decoration" |
Visual interest only |
"retention" |
Encourages return visits |
A block can serve multiple intents. Limit to the two or three most relevant, do not apply all values.
"intent": [ "education", "conversion" ]
funnelStage
Maps the block to marketing funnel stages.
| Value | Stage |
|---|---|
"awareness" |
First exposure – introduce the brand |
"consideration" |
Evaluation – explain features, answer questions |
"decision" |
Conversion moment – pricing, CTA, sign-up |
"retention" |
Post-conversion – support, community, upsell |
"funnelStage": [ "consideration", "decision" ]
complexity
Configuration complexity expected of the user who installs this block.
| Value | Meaning |
|---|---|
"basic" |
Works with content defaults. No setup required. |
"intermediate" |
Requires content entry and some configuration. |
"advanced" |
Requires a data layer, CPT setup, or schema configuration. |
dynamic
true if the block uses render.php. All wpTruss marketplace blocks must set "dynamic": true – the Block Constitution requires render.php for all blocks to prevent database-level validation errors when the block’s HTML structure changes.
schemaSupport
Lists schema.org types this block outputs as JSON-LD structured data. Empty array means no schema output.
| Schema type | Suited archetype |
|---|---|
"FAQPage" |
faq |
"HowTo" |
steps |
"Product" |
pricing |
"Review" |
testimonials |
"Organization" |
team, about |
"Article" |
blog headers |
"Event" |
event listings |
"Service" |
services |
"Person" |
team member cards |
"schemaSupport": [ "FAQPage" ]
sectionRole
Semantic role in a fully assembled page. Used by the composition engine.
| Value | Description |
|---|---|
"hero-section" |
Page’s primary visual and headline |
"feature-section" |
Group of capability or benefit items |
"capability-item" |
Single feature card (used inside a grid) |
"faq-section" |
Questions and answers section |
"pricing-section" |
Pricing plan display |
"testimonial-section" |
Social proof / review section |
"stats-section" |
Metrics and numbers section |
"cta-section" |
Call-to-action prompt section |
"content-section" |
General body content |
"blog-section" |
Post listing or article grid |
"gallery-section" |
Media grid or image collection |
"form-section" |
Contact or lead capture form |
tags
Freeform searchable tags. Use lowercase hyphenated strings. Include the archetype name.
"tags": [ "faq", "accordion", "questions", "schema" ]
Avoid generic tags like block, section, content that apply to every block.