{
  "version": "1.0.0",
  "generated_at": "2026-04-13T00:00:00Z",
  "components": {
    "primitive_text": {
      "id": "primitive_text",
      "display_name": "Text",
      "description": "A plain text block for headings, body copy, or labels. Implies no capability.",
      "category": "primitive_text",
      "requires": {
        "entity_mixins": [],
        "view_kinds": [],
        "form_kinds": [],
        "page_kinds": []
      },
      "params_schema": {
        "type": "object",
        "properties": {
          "content": { "type": "string", "description": "Text content" },
          "element": { "type": "string", "enum": ["p", "h1", "h2", "h3", "h4"], "default": "p" },
          "align": { "type": "string", "enum": ["left", "center", "right"], "default": "left" }
        },
        "required": ["content"]
      },
      "smart_defaults": {
        "static_fallback": {
          "content": "Your text here",
          "element": "p",
          "align": "left"
        }
      }
    },
    "primitive_image": {
      "id": "primitive_image",
      "display_name": "Image",
      "description": "An image or media block. Implies no capability.",
      "category": "primitive_image",
      "requires": {
        "entity_mixins": [],
        "view_kinds": [],
        "form_kinds": [],
        "page_kinds": []
      },
      "params_schema": {
        "type": "object",
        "properties": {
          "src": { "type": "string", "description": "Image URL or R2 media asset path" },
          "alt": { "type": "string", "description": "Alt text for accessibility" },
          "aspect_ratio": { "type": "string", "enum": ["16/9", "4/3", "1/1", "auto"], "default": "auto" }
        },
        "required": ["src", "alt"]
      },
      "smart_defaults": {
        "static_fallback": {
          "src": "",
          "alt": "Image",
          "aspect_ratio": "auto"
        }
      }
    },
    "primitive_container": {
      "id": "primitive_container",
      "display_name": "Container",
      "description": "A flex layout container. Children stack in row or column direction. Use for side-by-side or vertical grouping. Implies no capability.",
      "category": "primitive_layout",
      "requires": {
        "entity_mixins": [],
        "view_kinds": [],
        "form_kinds": [],
        "page_kinds": []
      },
      "implies_capability": null,
      "params_schema": {
        "type": "object",
        "properties": {
          "direction": {
            "type": "string",
            "enum": ["row", "column"],
            "default": "column"
          },
          "gap": {
            "type": "string",
            "enum": ["none", "sm", "md", "lg"],
            "default": "md"
          }
        },
        "required": ["direction"]
      },
      "smart_defaults": {
        "static_fallback": {
          "direction": "column",
          "gap": "md"
        }
      }
    },
    "customer_list": {
      "id": "customer_list",
      "display_name": "Customer list",
      "description": "A list view of all customers. Implies the Customer list capability, auto-creating a Customer entity with Contactable and Taggable mixins.",
      "category": "semantic_view",
      "requires": {
        "entity_mixins": ["Contactable", "Taggable"],
        "view_kinds": ["ListView"],
        "form_kinds": ["InternalForm"],
        "page_kinds": ["InternalPage"]
      },
      "implies_capability": "customer_list",
      "params_schema": {
        "type": "object",
        "properties": {
          "display_name": { "type": "string", "description": "Label shown in navigation", "default": "Customers" },
          "entity_id": { "type": "string", "description": "Stable entity identifier", "default": "customers" },
          "columns": {
            "type": "array",
            "items": { "type": "string" },
            "default": ["name", "email", "phone", "tags", "created_at"]
          },
          "searchable": { "type": "boolean", "default": true }
        },
        "required": ["display_name", "entity_id"]
      },
      "smart_defaults": {
        "static_fallback": {
          "display_name": "Customers",
          "entity_id": "customers",
          "columns": ["name", "email", "phone", "tags", "created_at"],
          "searchable": true
        },
        "ai_hint": "Generate sensible default columns for a customer list in a small service business."
      },
      "ai_enhancement": {
        "prompt_id": "customer_list_defaults",
        "fallback_to_static": true
      }
    },
    "lead_capture_form": {
      "id": "lead_capture_form",
      "display_name": "Lead capture form",
      "description": "A public intake form that captures lead contact details and creates a Lead record. Implies the Lead capture capability.",
      "category": "semantic_form",
      "requires": {
        "entity_mixins": ["Contactable", "Taggable"],
        "view_kinds": [],
        "form_kinds": ["IntakeForm"],
        "page_kinds": ["PublicPage"]
      },
      "implies_capability": "lead_capture",
      "params_schema": {
        "type": "object",
        "properties": {
          "headline": { "type": "string", "description": "Form heading shown to visitors", "default": "Get in touch" },
          "subheadline": { "type": "string", "description": "Supporting copy below the heading", "default": "We'll get back to you within 24 hours." },
          "fields": {
            "type": "array",
            "items": { "type": "string" },
            "default": ["name", "email", "phone", "message"]
          },
          "submit_label": { "type": "string", "default": "Send message" },
          "success_message": { "type": "string", "default": "Thanks! We'll be in touch soon." }
        },
        "required": ["headline", "fields", "submit_label"]
      },
      "smart_defaults": {
        "static_fallback": {
          "headline": "Get in touch",
          "subheadline": "We'll get back to you within 24 hours.",
          "fields": ["name", "email", "phone", "message"],
          "submit_label": "Send message",
          "success_message": "Thanks! We'll be in touch soon."
        },
        "ai_hint": "Generate a friendly lead capture form for a service business. Suggest a headline and 3-5 fields."
      },
      "ai_enhancement": {
        "prompt_id": "lead_capture_form_defaults",
        "fallback_to_static": true
      }
    },
    "business_hero": {
      "id": "business_hero",
      "display_name": "Business hero",
      "description": "A full-width hero section for the business landing page with a headline, subheadline, and primary call-to-action button. Implies no capability — purely decorative marketing.",
      "category": "semantic_hero",
      "requires": {
        "entity_mixins": [],
        "view_kinds": [],
        "form_kinds": [],
        "page_kinds": ["PublicPage"]
      },
      "params_schema": {
        "type": "object",
        "properties": {
          "headline": { "type": "string", "description": "Primary headline", "default": "Welcome to our business" },
          "subheadline": { "type": "string", "description": "Supporting subheadline", "default": "We help you with..." },
          "cta_label": { "type": "string", "description": "Call-to-action button label", "default": "Get started" },
          "cta_href": { "type": "string", "description": "Call-to-action button destination", "default": "#contact" },
          "background": { "type": "string", "enum": ["light", "dark", "brand"], "default": "light" }
        },
        "required": ["headline", "cta_label", "cta_href"]
      },
      "smart_defaults": {
        "static_fallback": {
          "headline": "Welcome to our business",
          "subheadline": "We help you with...",
          "cta_label": "Get started",
          "cta_href": "#contact",
          "background": "light"
        },
        "ai_hint": "Write a compelling hero headline and subheadline for a small service business. Keep it concise and benefit-focused."
      },
      "ai_enhancement": {
        "prompt_id": "business_hero_defaults",
        "fallback_to_static": true
      }
    },
    "lead_capture": {
      "id": "lead_capture",
      "display_name": "Lead capture",
      "description": "Captures visitor contact details into a Leads entity with an intake form. Includes a staff list view and a public intake form.",
      "category": "semantic_form",
      "requires": {
        "entity_mixins": ["Contactable", "Taggable"],
        "view_kinds": ["ListView"],
        "form_kinds": ["IntakeForm"],
        "page_kinds": []
      },
      "implies_capability": "lead_capture",
      "params_schema": {
        "type": "object",
        "properties": {
          "display_name": { "type": "string", "description": "User-facing label for the leads entity", "default": "Leads" },
          "entity_id": { "type": "string", "description": "Machine-readable entity name", "default": "leads" }
        },
        "required": ["display_name", "entity_id"]
      },
      "smart_defaults": {
        "static_fallback": {
          "display_name": "Leads",
          "entity_id": "leads"
        },
        "ai_hint": "Generate sensible defaults for a lead capture capability."
      },
      "ai_enhancement": {
        "prompt_id": "lead_capture_defaults",
        "fallback_to_static": true
      }
    },
    "reviews_testimonials": {
      "id": "reviews_testimonials",
      "display_name": "Reviews & testimonials",
      "description": "Collects customer reviews via a public intake form and displays them in a card grid. Stores rating, body, and reviewer name.",
      "category": "semantic_communication",
      "requires": {
        "entity_mixins": ["Contactable", "Taggable"],
        "view_kinds": ["CardGridView"],
        "form_kinds": ["IntakeForm"],
        "page_kinds": []
      },
      "implies_capability": "reviews_testimonials",
      "params_schema": {
        "type": "object",
        "properties": {
          "display_name": { "type": "string", "description": "User-facing label for the reviews entity", "default": "Reviews" },
          "entity_id": { "type": "string", "description": "Machine-readable entity name", "default": "reviews" }
        },
        "required": ["display_name", "entity_id"]
      },
      "smart_defaults": {
        "static_fallback": {
          "display_name": "Reviews",
          "entity_id": "reviews"
        },
        "ai_hint": "Generate sensible defaults for a reviews and testimonials capability."
      },
      "ai_enhancement": {
        "prompt_id": "reviews_testimonials_defaults",
        "fallback_to_static": true
      }
    },
    "loyalty": {
      "id": "loyalty",
      "display_name": "Loyalty program",
      "description": "Tracks loyalty members with points, stamps, or visit counts. Includes a staff list view with computed balance columns.",
      "category": "semantic_view",
      "requires": {
        "entity_mixins": ["Contactable", "LoyaltyTracked", "Taggable"],
        "view_kinds": ["ListView"],
        "form_kinds": [],
        "page_kinds": []
      },
      "implies_capability": "loyalty",
      "params_schema": {
        "type": "object",
        "properties": {
          "display_name": { "type": "string", "description": "User-facing label for the loyalty members entity", "default": "Loyalty Members" },
          "entity_id": { "type": "string", "description": "Machine-readable entity name", "default": "loyalty_members" },
          "unit": { "type": "string", "enum": ["points", "stamps", "visits"], "default": "points", "description": "Loyalty tracking unit" }
        },
        "required": ["display_name", "entity_id"]
      },
      "smart_defaults": {
        "static_fallback": {
          "display_name": "Loyalty Members",
          "entity_id": "loyalty_members",
          "unit": "points"
        },
        "ai_hint": "Generate sensible defaults for a loyalty program capability."
      },
      "ai_enhancement": {
        "prompt_id": "loyalty_defaults",
        "fallback_to_static": true
      }
    },
    "business_landing_page": {
      "id": "business_landing_page",
      "display_name": "Business landing page",
      "description": "Creates a public landing page for the business with a configurable slug. Content is composed on the canvas.",
      "category": "semantic_hero",
      "requires": {
        "entity_mixins": [],
        "view_kinds": [],
        "form_kinds": [],
        "page_kinds": ["PublicPage"]
      },
      "implies_capability": "business_landing_page",
      "params_schema": {
        "type": "object",
        "properties": {
          "page_title": { "type": "string", "description": "Page title shown in browser tab and h1", "default": "Home" },
          "slug": { "type": "string", "description": "URL path segment for the landing page", "default": "home" }
        },
        "required": ["page_title", "slug"]
      },
      "smart_defaults": {
        "static_fallback": {
          "page_title": "Home",
          "slug": "home"
        },
        "ai_hint": "Generate a page title and slug for a small business landing page."
      },
      "ai_enhancement": {
        "prompt_id": "business_landing_page_defaults",
        "fallback_to_static": true
      }
    },
    "public_booking_page": {
      "id": "public_booking_page",
      "display_name": "Public booking page",
      "description": "Lets customers book appointments online. Creates a bookings entity, a calendar view for staff, an intake form, and a public booking page.",
      "category": "semantic_form",
      "requires": {
        "entity_mixins": ["Schedulable", "Contactable"],
        "view_kinds": ["CalendarView"],
        "form_kinds": ["IntakeForm"],
        "page_kinds": ["PublicPage"]
      },
      "implies_capability": "public_booking_page",
      "params_schema": {
        "type": "object",
        "properties": {
          "display_name": { "type": "string", "description": "User-facing label for the bookings entity", "default": "Bookings" },
          "entity_id": { "type": "string", "description": "Machine-readable entity name", "default": "bookings" },
          "slot_duration_minutes": { "type": "number", "description": "Default appointment slot duration in minutes", "default": 60 }
        },
        "required": ["display_name", "entity_id"]
      },
      "smart_defaults": {
        "static_fallback": {
          "display_name": "Bookings",
          "entity_id": "bookings",
          "slot_duration_minutes": 60
        },
        "ai_hint": "Generate sensible defaults for a public booking page capability."
      },
      "ai_enhancement": {
        "prompt_id": "public_booking_page_defaults",
        "fallback_to_static": true
      }
    },
    "storefront": {
      "id": "storefront",
      "display_name": "Storefront",
      "description": "Creates a public product catalog with a card grid view and a public storefront page. No checkout in wave 1 — inventory tracking is a separate capability.",
      "category": "semantic_commerce",
      "requires": {
        "entity_mixins": ["Priceable", "Taggable"],
        "view_kinds": ["CardGridView"],
        "form_kinds": [],
        "page_kinds": ["PublicPage"]
      },
      "implies_capability": "storefront",
      "params_schema": {
        "type": "object",
        "properties": {
          "display_name": { "type": "string", "description": "User-facing label for the products entity", "default": "Products" },
          "entity_id": { "type": "string", "description": "Machine-readable entity name", "default": "products" }
        },
        "required": ["display_name", "entity_id"]
      },
      "smart_defaults": {
        "static_fallback": {
          "display_name": "Products",
          "entity_id": "products"
        },
        "ai_hint": "Generate sensible defaults for a storefront capability."
      },
      "ai_enhancement": {
        "prompt_id": "storefront_defaults",
        "fallback_to_static": true
      }
    },
    "custom_domain": {
      "id": "custom_domain",
      "display_name": "Custom domain",
      "description": "Tracks custom domains for tenant sub-sites. Stores domain, verified status, and TXT record. Admin-only list view. No runtime DNS wiring in wave 1.",
      "category": "semantic_view",
      "requires": {
        "entity_mixins": [],
        "view_kinds": ["ListView"],
        "form_kinds": [],
        "page_kinds": []
      },
      "implies_capability": "custom_domain",
      "params_schema": {
        "type": "object",
        "properties": {
          "display_name": { "type": "string", "description": "User-facing label for the custom domains entity", "default": "Custom Domains" },
          "entity_id": { "type": "string", "description": "Machine-readable entity name", "default": "custom_domains" }
        },
        "required": ["display_name", "entity_id"]
      },
      "smart_defaults": {
        "static_fallback": {
          "display_name": "Custom Domains",
          "entity_id": "custom_domains"
        },
        "ai_hint": "Generate sensible defaults for a custom domain management capability."
      },
      "ai_enhancement": {
        "prompt_id": "custom_domain_defaults",
        "fallback_to_static": true
      }
    },
    "multi_location": {
      "id": "multi_location",
      "display_name": "Multiple locations",
      "description": "Manages multiple physical business locations with map and list views. Each location has contact info including address.",
      "category": "semantic_view",
      "requires": {
        "entity_mixins": ["LocationBound", "Contactable", "Taggable"],
        "view_kinds": ["MapView", "ListView"],
        "form_kinds": [],
        "page_kinds": []
      },
      "implies_capability": "multi_location",
      "params_schema": {
        "type": "object",
        "properties": {
          "display_name": { "type": "string", "description": "User-facing label for the locations entity", "default": "Locations" },
          "entity_id": { "type": "string", "description": "Machine-readable entity name", "default": "locations" }
        },
        "required": ["display_name", "entity_id"]
      },
      "smart_defaults": {
        "static_fallback": {
          "display_name": "Locations",
          "entity_id": "locations"
        },
        "ai_hint": "Generate sensible defaults for a multi-location business capability."
      },
      "ai_enhancement": {
        "prompt_id": "multi_location_defaults",
        "fallback_to_static": true
      }
    },
    "invoice_list": {
      "id": "invoice_list",
      "display_name": "Invoice list",
      "description": "Admin list of all invoices with payment status. Implies the invoicing capability.",
      "category": "semantic_commerce",
      "implies_capability": "invoicing",
      "requires": {
        "entity_mixins": ["payable", "taggable", "file_attachable"],
        "view_kinds": ["list"],
        "form_kinds": [],
        "page_kinds": []
      },
      "params_schema": {
        "type": "object",
        "properties": {
          "display_name": { "type": "string", "description": "User-facing label for the invoices entity", "default": "Invoices" },
          "entity_id": { "type": "string", "description": "Machine-readable entity name", "default": "invoices" },
          "default_currency": { "type": "string", "description": "Default ISO 4217 currency code", "default": "USD" }
        },
        "required": ["display_name", "entity_id"]
      },
      "smart_defaults": {
        "static_fallback": {
          "display_name": "Invoices",
          "entity_id": "invoices",
          "default_currency": "USD"
        },
        "ai_hint": "Generate sensible defaults for an invoicing capability."
      },
      "ai_enhancement": {
        "prompt_id": "invoicing_defaults",
        "fallback_to_static": true
      }
    },
    "payment_link_list": {
      "id": "payment_link_list",
      "display_name": "Payment link list",
      "description": "Admin list of one-time payment links. Implies the one_time_payments capability.",
      "category": "semantic_commerce",
      "implies_capability": "one_time_payments",
      "requires": {
        "entity_mixins": ["priceable", "taggable"],
        "view_kinds": ["list"],
        "form_kinds": [],
        "page_kinds": []
      },
      "params_schema": {
        "type": "object",
        "properties": {
          "display_name": { "type": "string", "description": "User-facing label for the payment links entity", "default": "Payment links" },
          "entity_id": { "type": "string", "description": "Machine-readable entity name", "default": "payment_links" },
          "default_currency": { "type": "string", "description": "Default ISO 4217 currency code", "default": "USD" }
        },
        "required": ["display_name", "entity_id"]
      },
      "smart_defaults": {
        "static_fallback": {
          "display_name": "Payment links",
          "entity_id": "payment_links",
          "default_currency": "USD"
        },
        "ai_hint": "Generate sensible defaults for a one-time payments capability."
      },
      "ai_enhancement": {
        "prompt_id": "one_time_payments_defaults",
        "fallback_to_static": true
      }
    },
    "subscription_plan_list": {
      "id": "subscription_plan_list",
      "display_name": "Subscription plan list",
      "description": "Admin list of subscription plans with recurring billing. Implies the subscriptions capability.",
      "category": "semantic_commerce",
      "implies_capability": "subscriptions",
      "requires": {
        "entity_mixins": ["priceable", "taggable"],
        "view_kinds": ["list"],
        "form_kinds": [],
        "page_kinds": []
      },
      "params_schema": {
        "type": "object",
        "properties": {
          "display_name": { "type": "string", "description": "User-facing label for the subscription plans entity", "default": "Subscription plans" },
          "entity_id": { "type": "string", "description": "Machine-readable entity name", "default": "subscription_plans" },
          "default_currency": { "type": "string", "description": "Default ISO 4217 currency code", "default": "USD" }
        },
        "required": ["display_name", "entity_id"]
      },
      "smart_defaults": {
        "static_fallback": {
          "display_name": "Subscription plans",
          "entity_id": "subscription_plans",
          "default_currency": "USD"
        },
        "ai_hint": "Generate sensible defaults for a subscriptions capability."
      },
      "ai_enhancement": {
        "prompt_id": "subscriptions_defaults",
        "fallback_to_static": true
      }
    },
    "quote_list": {
      "id": "quote_list",
      "display_name": "Quote list",
      "description": "Admin list of quotes and estimates with status tracking. Implies the quotes_estimates capability.",
      "category": "semantic_commerce",
      "implies_capability": "quotes_estimates",
      "requires": {
        "entity_mixins": ["payable", "taggable", "file_attachable"],
        "view_kinds": ["list"],
        "form_kinds": [],
        "page_kinds": []
      },
      "params_schema": {
        "type": "object",
        "properties": {
          "display_name": { "type": "string", "description": "User-facing label for the quotes entity", "default": "Quotes" },
          "entity_id": { "type": "string", "description": "Machine-readable entity name", "default": "quotes" }
        },
        "required": ["display_name", "entity_id"]
      },
      "smart_defaults": {
        "static_fallback": {
          "display_name": "Quotes",
          "entity_id": "quotes"
        },
        "ai_hint": "Generate sensible defaults for a quotes and estimates capability."
      },
      "ai_enhancement": {
        "prompt_id": "quotes_estimates_defaults",
        "fallback_to_static": true
      }
    },
    "gift_card_block": {
      "id": "gift_card_block",
      "display_name": "Gift card",
      "description": "Admin list of gift cards with sale and redemption tracking. Implies the gift_cards capability.",
      "category": "semantic_commerce",
      "implies_capability": "gift_cards",
      "requires": {
        "entity_mixins": ["priceable", "taggable"],
        "view_kinds": ["list"],
        "form_kinds": [],
        "page_kinds": []
      },
      "params_schema": {
        "type": "object",
        "properties": {
          "display_name": { "type": "string", "description": "User-facing label for the gift cards entity", "default": "Gift cards" },
          "entity_id": { "type": "string", "description": "Machine-readable entity name", "default": "gift_cards" },
          "default_currency": { "type": "string", "description": "Default ISO 4217 currency code", "default": "USD" }
        },
        "required": ["display_name", "entity_id"]
      },
      "smart_defaults": {
        "static_fallback": {
          "display_name": "Gift cards",
          "entity_id": "gift_cards",
          "default_currency": "USD"
        },
        "ai_hint": "Generate sensible defaults for a gift cards capability."
      },
      "ai_enhancement": {
        "prompt_id": "gift_cards_defaults",
        "fallback_to_static": true
      }
    },
    "pos_terminal": {
      "id": "pos_terminal",
      "display_name": "Point of sale",
      "description": "Retail checkout surface with transaction history. Implies the pos capability.",
      "category": "semantic_commerce",
      "implies_capability": "pos",
      "requires": {
        "entity_mixins": ["priceable", "taggable"],
        "view_kinds": ["list"],
        "form_kinds": [],
        "page_kinds": []
      },
      "params_schema": {
        "type": "object",
        "properties": {
          "display_name": { "type": "string", "description": "User-facing label for the POS transactions entity", "default": "Point of sale" },
          "entity_id": { "type": "string", "description": "Machine-readable entity name", "default": "pos_transactions" },
          "default_currency": { "type": "string", "description": "Default ISO 4217 currency code", "default": "USD" }
        },
        "required": ["display_name", "entity_id"]
      },
      "smart_defaults": {
        "static_fallback": {
          "display_name": "Point of sale",
          "entity_id": "pos_transactions",
          "default_currency": "USD"
        },
        "ai_hint": "Generate sensible defaults for a point-of-sale capability."
      },
      "ai_enhancement": {
        "prompt_id": "pos_defaults",
        "fallback_to_static": true
      }
    },
    "appointment_calendar": {
      "id": "appointment_calendar",
      "display_name": "Appointment calendar",
      "description": "Staff schedule calendar with public booking form. Implies the appointments capability.",
      "category": "semantic_view",
      "implies_capability": "appointments",
      "requires": {
        "entity_mixins": ["schedulable", "assignable", "taggable", "file_attachable"],
        "view_kinds": ["calendar", "list"],
        "form_kinds": ["intake"],
        "page_kinds": []
      },
      "params_schema": {
        "type": "object",
        "properties": {
          "display_name": { "type": "string", "description": "User-facing label for the appointments entity", "default": "Appointments" },
          "entity_id": { "type": "string", "description": "Machine-readable entity name", "default": "appointments" }
        },
        "required": ["display_name", "entity_id"]
      },
      "smart_defaults": {
        "static_fallback": {
          "display_name": "Appointments",
          "entity_id": "appointments"
        },
        "ai_hint": "Generate sensible defaults for an appointments capability."
      },
      "ai_enhancement": {
        "prompt_id": "appointments_defaults",
        "fallback_to_static": true
      }
    },
    "class_calendar": {
      "id": "class_calendar",
      "display_name": "Class calendar",
      "description": "Group class schedule with enrollment form. Implies the classes capability.",
      "category": "semantic_view",
      "implies_capability": "classes",
      "requires": {
        "entity_mixins": ["schedulable", "priceable", "taggable"],
        "view_kinds": ["calendar", "list"],
        "form_kinds": ["intake"],
        "page_kinds": []
      },
      "params_schema": {
        "type": "object",
        "properties": {
          "display_name": { "type": "string", "description": "User-facing label for the classes entity", "default": "Classes" },
          "entity_id": { "type": "string", "description": "Machine-readable entity name", "default": "classes" }
        },
        "required": ["display_name", "entity_id"]
      },
      "smart_defaults": {
        "static_fallback": {
          "display_name": "Classes",
          "entity_id": "classes"
        },
        "ai_hint": "Generate sensible defaults for a classes capability."
      },
      "ai_enhancement": {
        "prompt_id": "classes_defaults",
        "fallback_to_static": true
      }
    },
    "events_calendar": {
      "id": "events_calendar",
      "display_name": "Events calendar",
      "description": "Public events listing with RSVP form. Implies the events_rsvp capability.",
      "category": "semantic_view",
      "implies_capability": "events_rsvp",
      "requires": {
        "entity_mixins": ["schedulable", "priceable", "taggable"],
        "view_kinds": ["calendar", "list"],
        "form_kinds": ["intake"],
        "page_kinds": []
      },
      "params_schema": {
        "type": "object",
        "properties": {
          "display_name": { "type": "string", "description": "User-facing label for the events entity", "default": "Events" },
          "entity_id": { "type": "string", "description": "Machine-readable entity name", "default": "events" },
          "rsvp_entity_id": { "type": "string", "description": "Machine-readable name for the RSVP entity", "default": "rsvps" }
        },
        "required": ["display_name", "entity_id"]
      },
      "smart_defaults": {
        "static_fallback": {
          "display_name": "Events",
          "entity_id": "events",
          "rsvp_entity_id": "rsvps"
        },
        "ai_hint": "Generate sensible defaults for an events and RSVP capability."
      },
      "ai_enhancement": {
        "prompt_id": "events_rsvp_defaults",
        "fallback_to_static": true
      }
    },
    "physical_products": {
      "id": "physical_products",
      "display_name": "Physical Products",
      "description": "Catalog of physical goods with pricing, inventory, shipping, and tagging support.",
      "category": "semantic_commerce",
      "implies_capability": "physical_products",
      "requires": {
        "entity_mixins": ["priceable", "inventoried", "deliverable", "taggable"],
        "view_kinds": ["list"],
        "form_kinds": [],
        "page_kinds": ["public"]
      },
      "params_schema": {
        "type": "object",
        "properties": {
          "display_name": { "type": "string", "description": "User-facing label for the products entity", "default": "Products" },
          "entity_id": { "type": "string", "description": "Machine-readable entity name", "default": "products" }
        },
        "required": ["display_name", "entity_id"]
      },
      "smart_defaults": {
        "static_fallback": { "display_name": "Products", "entity_id": "products" },
        "ai_hint": "Generate sensible defaults for a physical products catalog."
      },
      "ai_enhancement": { "prompt_id": "physical_products_defaults", "fallback_to_static": true }
    },
    "digital_products": {
      "id": "digital_products",
      "display_name": "Digital Products",
      "description": "Downloadable or licensed digital goods with file URL and license key support.",
      "category": "semantic_commerce",
      "implies_capability": "digital_products",
      "requires": {
        "entity_mixins": ["priceable", "taggable"],
        "view_kinds": ["list"],
        "form_kinds": [],
        "page_kinds": ["public"]
      },
      "params_schema": {
        "type": "object",
        "properties": {
          "display_name": { "type": "string", "description": "User-facing label for the digital products entity", "default": "Digital Products" },
          "entity_id": { "type": "string", "description": "Machine-readable entity name", "default": "digital_products" }
        },
        "required": ["display_name", "entity_id"]
      },
      "smart_defaults": {
        "static_fallback": { "display_name": "Digital Products", "entity_id": "digital_products" },
        "ai_hint": "Generate sensible defaults for a digital products catalog."
      },
      "ai_enhancement": { "prompt_id": "digital_products_defaults", "fallback_to_static": true }
    },
    "service_packages": {
      "id": "service_packages",
      "display_name": "Service Packages",
      "description": "Bundled service offerings with pricing and optional appointment capability linkage.",
      "category": "semantic_commerce",
      "implies_capability": "service_packages",
      "requires": {
        "entity_mixins": ["priceable", "taggable"],
        "view_kinds": ["list"],
        "form_kinds": [],
        "page_kinds": []
      },
      "params_schema": {
        "type": "object",
        "properties": {
          "display_name": { "type": "string", "description": "User-facing label for the service packages entity", "default": "Service Packages" },
          "entity_id": { "type": "string", "description": "Machine-readable entity name", "default": "service_packages" }
        },
        "required": ["display_name", "entity_id"]
      },
      "smart_defaults": {
        "static_fallback": { "display_name": "Service Packages", "entity_id": "service_packages" },
        "ai_hint": "Generate sensible defaults for service package offerings."
      },
      "ai_enhancement": { "prompt_id": "service_packages_defaults", "fallback_to_static": true }
    },
    "inventory_tracking": {
      "id": "inventory_tracking",
      "display_name": "Inventory Tracking",
      "description": "Track stock levels with inventory items and stock adjustment records.",
      "category": "semantic_commerce",
      "implies_capability": "inventory_tracking",
      "requires": {
        "entity_mixins": ["inventoried"],
        "view_kinds": ["list"],
        "form_kinds": ["internal"],
        "page_kinds": []
      },
      "params_schema": {
        "type": "object",
        "properties": {
          "display_name": { "type": "string", "description": "User-facing label for the inventory entity", "default": "Inventory" },
          "entity_id": { "type": "string", "description": "Machine-readable entity name", "default": "inventory_items" }
        },
        "required": ["display_name", "entity_id"]
      },
      "smart_defaults": {
        "static_fallback": { "display_name": "Inventory", "entity_id": "inventory_items" },
        "ai_hint": "Generate sensible defaults for inventory tracking."
      },
      "ai_enhancement": { "prompt_id": "inventory_tracking_defaults", "fallback_to_static": true }
    },
    "email_campaigns": {
      "id": "email_campaigns",
      "display_name": "Email Campaigns",
      "description": "Manage and send bulk email campaigns with segment filtering and delivery tracking.",
      "category": "semantic_communication",
      "implies_capability": "email_campaigns",
      "requires": {
        "entity_mixins": [],
        "view_kinds": ["list"],
        "form_kinds": [],
        "page_kinds": []
      },
      "params_schema": {
        "type": "object",
        "properties": {
          "display_name": { "type": "string", "description": "User-facing label for email campaigns", "default": "Email Campaigns" },
          "entity_id": { "type": "string", "description": "Machine-readable entity name", "default": "email_campaigns" }
        },
        "required": ["display_name", "entity_id"]
      },
      "smart_defaults": {
        "static_fallback": { "display_name": "Email Campaigns", "entity_id": "email_campaigns" },
        "ai_hint": "Generate sensible defaults for email campaign management."
      },
      "ai_enhancement": { "prompt_id": "email_campaigns_defaults", "fallback_to_static": true }
    },
    "sms_messaging": {
      "id": "sms_messaging",
      "display_name": "SMS Messaging",
      "description": "Send and log SMS messages to customers with delivery status tracking.",
      "category": "semantic_communication",
      "implies_capability": "sms_messaging",
      "requires": {
        "entity_mixins": [],
        "view_kinds": ["list"],
        "form_kinds": [],
        "page_kinds": []
      },
      "params_schema": {
        "type": "object",
        "properties": {
          "display_name": { "type": "string", "description": "User-facing label for SMS messages", "default": "SMS Messaging" },
          "entity_id": { "type": "string", "description": "Machine-readable entity name", "default": "sms_messages" }
        },
        "required": ["display_name", "entity_id"]
      },
      "smart_defaults": {
        "static_fallback": { "display_name": "SMS Messaging", "entity_id": "sms_messages" },
        "ai_hint": "Generate sensible defaults for SMS messaging."
      },
      "ai_enhancement": { "prompt_id": "sms_messaging_defaults", "fallback_to_static": true }
    },
    "automated_notifications": {
      "id": "automated_notifications",
      "display_name": "Automated Notifications",
      "description": "Trigger automatic notifications when entities are created or updated.",
      "category": "semantic_communication",
      "implies_capability": "automated_notifications",
      "requires": {
        "entity_mixins": [],
        "view_kinds": [],
        "form_kinds": [],
        "page_kinds": []
      },
      "params_schema": {
        "type": "object",
        "properties": {
          "trigger_entity": { "type": "string", "description": "Entity name that triggers the notification", "default": "orders" },
          "trigger_event": { "type": "string", "enum": ["created", "updated"], "description": "Event that fires the workflow", "default": "created" }
        },
        "required": ["trigger_entity", "trigger_event"]
      },
      "smart_defaults": {
        "static_fallback": { "trigger_entity": "orders", "trigger_event": "created" },
        "ai_hint": "Generate sensible defaults for automated notification triggers."
      },
      "ai_enhancement": { "prompt_id": "automated_notifications_defaults", "fallback_to_static": true }
    },
    "newsletter": {
      "id": "newsletter",
      "display_name": "Newsletter",
      "description": "Manage newsletter subscribers and issues with manual send workflow.",
      "category": "semantic_communication",
      "implies_capability": "newsletter",
      "requires": {
        "entity_mixins": ["contactable"],
        "view_kinds": ["list"],
        "form_kinds": [],
        "page_kinds": []
      },
      "params_schema": {
        "type": "object",
        "properties": {
          "display_name": { "type": "string", "description": "User-facing label for newsletter subscribers", "default": "Newsletter" },
          "entity_id": { "type": "string", "description": "Machine-readable entity name", "default": "newsletter_subscribers" }
        },
        "required": ["display_name", "entity_id"]
      },
      "smart_defaults": {
        "static_fallback": { "display_name": "Newsletter", "entity_id": "newsletter_subscribers" },
        "ai_hint": "Generate sensible defaults for newsletter management."
      },
      "ai_enhancement": { "prompt_id": "newsletter_defaults", "fallback_to_static": true }
    },
    "voip_phone": {
      "id": "voip_phone",
      "display_name": "VoIP Phone",
      "description": "Manage business phone numbers and log incoming and outgoing calls.",
      "category": "semantic_communication",
      "implies_capability": "voip_phone",
      "requires": {
        "entity_mixins": [],
        "view_kinds": ["list"],
        "form_kinds": [],
        "page_kinds": []
      },
      "params_schema": {
        "type": "object",
        "properties": {
          "display_name": { "type": "string", "description": "User-facing label for phone numbers", "default": "Phone" },
          "entity_id": { "type": "string", "description": "Machine-readable entity name", "default": "phone_numbers" }
        },
        "required": ["display_name", "entity_id"]
      },
      "smart_defaults": {
        "static_fallback": { "display_name": "Phone", "entity_id": "phone_numbers" },
        "ai_hint": "Generate sensible defaults for VoIP phone management."
      },
      "ai_enhancement": { "prompt_id": "voip_phone_defaults", "fallback_to_static": true }
    },
    "dashboard_widget": {
      "id": "dashboard_widget",
      "display_name": "Dashboard",
      "description": "Display key business metrics as a named dashboard with counter, chart, and table tiles.",
      "category": "semantic_dashboard",
      "implies_capability": "dashboards",
      "requires": {
        "entity_mixins": [],
        "view_kinds": [],
        "form_kinds": [],
        "page_kinds": []
      },
      "params_schema": {
        "type": "object",
        "properties": {
          "dashboard_id": { "type": "string", "description": "Unique dashboard identifier", "default": "main_dashboard" },
          "dashboard_name": { "type": "string", "description": "User-facing dashboard name", "default": "Main Dashboard" },
          "metrics": { "type": "array", "description": "Metric definitions to track", "default": [] },
          "tiles": { "type": "array", "description": "Tiles to display on the dashboard", "default": [] }
        },
        "required": ["dashboard_id", "dashboard_name"]
      },
      "smart_defaults": {
        "static_fallback": { "dashboard_id": "main_dashboard", "dashboard_name": "Main Dashboard", "metrics": [], "tiles": [] },
        "ai_hint": "Generate a sensible dashboard with key business metrics."
      },
      "ai_enhancement": { "prompt_id": "dashboards_defaults", "fallback_to_static": true }
    },
    "report_block": {
      "id": "report_block",
      "display_name": "Reports",
      "description": "Schedule automated metric reports delivered on a cron schedule.",
      "category": "semantic_dashboard",
      "implies_capability": "reports",
      "requires": {
        "entity_mixins": [],
        "view_kinds": [],
        "form_kinds": [],
        "page_kinds": []
      },
      "params_schema": {
        "type": "object",
        "properties": {
          "report_id": { "type": "string", "description": "Unique report identifier", "default": "weekly_revenue" },
          "report_name": { "type": "string", "description": "User-facing report name", "default": "Weekly Revenue Report" },
          "metric": { "type": "object", "description": "Metric definition for this report" },
          "schedule": { "type": "string", "description": "Cron schedule expression", "default": "0 9 * * 1" }
        },
        "required": ["report_id", "report_name", "metric", "schedule"]
      },
      "smart_defaults": {
        "static_fallback": { "report_id": "weekly_revenue", "report_name": "Weekly Revenue Report", "metric": { "id": "revenue_sum", "name": "Revenue", "aggregation": "sum", "source_entity": "orders" }, "schedule": "0 9 * * 1" },
        "ai_hint": "Generate a sensible weekly report for the business."
      },
      "ai_enhancement": { "prompt_id": "reports_defaults", "fallback_to_static": true }
    },
    "activity_log_view": {
      "id": "activity_log_view",
      "display_name": "Activity Log",
      "description": "Read-only view of all platform events and audit trail from the control plane.",
      "category": "semantic_dashboard",
      "implies_capability": "activity_log",
      "requires": {
        "entity_mixins": [],
        "view_kinds": ["activity_log"],
        "form_kinds": [],
        "page_kinds": []
      },
      "params_schema": {
        "type": "object",
        "properties": {
          "view_id": { "type": "string", "description": "Unique view identifier", "default": "activity_log" },
          "title": { "type": "string", "description": "User-facing view title", "default": "Activity Log" }
        },
        "required": ["view_id", "title"]
      },
      "smart_defaults": {
        "static_fallback": { "view_id": "activity_log", "title": "Activity Log" },
        "ai_hint": "Generate sensible defaults for the activity log view."
      },
      "ai_enhancement": { "prompt_id": "activity_log_defaults", "fallback_to_static": true }
    },
    "export_config_block": {
      "id": "export_config_block",
      "display_name": "CSV / PDF Export",
      "description": "Enable data export from any entity to CSV or PDF. Runtime export execution requires a future WorkflowAction::Export.",
      "category": "semantic_dashboard",
      "implies_capability": "csv_pdf_export",
      "requires": {
        "entity_mixins": [],
        "view_kinds": [],
        "form_kinds": [],
        "page_kinds": []
      },
      "params_schema": {
        "type": "object",
        "properties": {
          "export_id": { "type": "string", "description": "Unique export identifier", "default": "orders_export" },
          "display_name": { "type": "string", "description": "User-facing export name", "default": "Orders Export" },
          "source_entity": { "type": "string", "description": "Entity to export data from", "default": "orders" }
        },
        "required": ["export_id", "display_name", "source_entity"]
      },
      "smart_defaults": {
        "static_fallback": { "export_id": "orders_export", "display_name": "Orders Export", "source_entity": "orders" },
        "ai_hint": "Generate sensible export config for the business's main data entity."
      },
      "ai_enhancement": { "prompt_id": "csv_pdf_export_defaults", "fallback_to_static": true }
    },
    "client_projects_list": {
      "id": "client_projects_list",
      "display_name": "Client Projects",
      "description": "Manage client projects with task assignment, tagging, and file attachments.",
      "category": "semantic_view",
      "implies_capability": "client_projects",
      "requires": {
        "entity_mixins": ["Assignable", "Taggable", "FileAttachable"],
        "view_kinds": ["list"],
        "form_kinds": [],
        "page_kinds": []
      },
      "params_schema": {
        "type": "object",
        "properties": {
          "display_name": { "type": "string", "description": "User-facing label for the projects entity", "default": "Projects" },
          "entity_id": { "type": "string", "description": "Machine-readable entity name", "default": "projects" }
        },
        "required": ["display_name", "entity_id"]
      },
      "smart_defaults": {
        "static_fallback": { "display_name": "Projects", "entity_id": "projects" },
        "ai_hint": "Generate sensible defaults for a client project management entity."
      },
      "ai_enhancement": { "prompt_id": "client_projects_defaults", "fallback_to_static": true }
    },
    "job_tracking_board": {
      "id": "job_tracking_board",
      "display_name": "Job Tracking",
      "description": "Track jobs through a status kanban board with time tracking and assignment.",
      "category": "semantic_view",
      "implies_capability": "job_tracking",
      "requires": {
        "entity_mixins": ["Assignable", "Timed"],
        "view_kinds": ["kanban"],
        "form_kinds": [],
        "page_kinds": []
      },
      "params_schema": {
        "type": "object",
        "properties": {
          "display_name": { "type": "string", "description": "User-facing label for the jobs entity", "default": "Jobs" },
          "entity_id": { "type": "string", "description": "Machine-readable entity name", "default": "jobs" }
        },
        "required": ["display_name", "entity_id"]
      },
      "smart_defaults": {
        "static_fallback": { "display_name": "Jobs", "entity_id": "jobs" },
        "ai_hint": "Generate sensible defaults for a job tracking kanban board."
      },
      "ai_enhancement": { "prompt_id": "job_tracking_defaults", "fallback_to_static": true }
    },
    "referral_list": {
      "id": "referral_list",
      "display_name": "Referrals",
      "description": "Track customer referrals with loyalty points and reward value.",
      "category": "semantic_view",
      "implies_capability": "referrals",
      "requires": {
        "entity_mixins": ["LoyaltyTracked", "Priceable"],
        "view_kinds": ["list"],
        "form_kinds": [],
        "page_kinds": []
      },
      "params_schema": {
        "type": "object",
        "properties": {
          "display_name": { "type": "string", "description": "User-facing label for the referrals entity", "default": "Referrals" },
          "entity_id": { "type": "string", "description": "Machine-readable entity name", "default": "referrals" }
        },
        "required": ["display_name", "entity_id"]
      },
      "smart_defaults": {
        "static_fallback": { "display_name": "Referrals", "entity_id": "referrals" },
        "ai_hint": "Generate sensible defaults for a referral tracking entity."
      },
      "ai_enhancement": { "prompt_id": "referrals_defaults", "fallback_to_static": true }
    },
    "hero_generative": {
      "id": "hero_generative",
      "display_name": "Generative hero",
      "description": "AI-enhanced hero block. Picks headline, subheadline, and call-to-action label within a fixed parameter space. Falls back to a deterministic welcome message if AI is unavailable.",
      "category": "semantic_generative",
      "requires": {
        "entity_mixins": [],
        "view_kinds": [],
        "form_kinds": [],
        "page_kinds": []
      },
      "params_schema": {
        "type": "object",
        "properties": {
          "headline": { "type": "string", "maxLength": 60, "description": "Primary headline" },
          "subheadline": { "type": "string", "maxLength": 500, "description": "Supporting subheadline" },
          "cta_label": { "type": "string", "maxLength": 60, "description": "Call-to-action button label" },
          "cta_variant": { "type": "string", "enum": ["primary", "ghost"], "default": "primary" }
        },
        "required": ["headline", "subheadline", "cta_label", "cta_variant"]
      },
      "smart_defaults": {
        "static_fallback": {
          "headline": "Welcome",
          "subheadline": "Discover what we do for our customers and how we can help.",
          "cta_label": "Book now",
          "cta_variant": "primary"
        },
        "ai_hint": "Write a concise, benefit-focused hero for the tenant's business."
      },
      "ai_enhancement": { "prompt_id": "hero_v1", "fallback_to_static": true }
    },
    "service_grid_generative": {
      "id": "service_grid_generative",
      "display_name": "Generative service grid",
      "description": "AI-enhanced service list with up to 12 cards. Picks names, summaries, and icons within a fixed enum. Falls back to three generic service cards.",
      "category": "semantic_generative",
      "requires": {
        "entity_mixins": [],
        "view_kinds": [],
        "form_kinds": [],
        "page_kinds": []
      },
      "params_schema": {
        "type": "object",
        "properties": {
          "service_names": {
            "type": "array",
            "items": { "type": "string", "maxLength": 60 },
            "maxItems": 12,
            "description": "Service name, one per card"
          },
          "service_summaries": {
            "type": "array",
            "items": { "type": "string", "maxLength": 500 },
            "maxItems": 12,
            "description": "Short summary, aligned by index with service_names"
          },
          "icon_enum": {
            "type": "array",
            "items": { "type": "string", "enum": ["scissors", "paw", "calendar"] },
            "maxItems": 12,
            "description": "Icon slug, aligned by index with service_names"
          }
        },
        "required": ["service_names", "service_summaries", "icon_enum"]
      },
      "smart_defaults": {
        "static_fallback": {
          "service_names": ["Service one", "Service two", "Service three"],
          "service_summaries": [
            "A short description of the first service.",
            "A short description of the second service.",
            "A short description of the third service."
          ],
          "icon_enum": ["scissors", "paw", "calendar"]
        },
        "ai_hint": "Pick 3 to 6 services for the tenant's business with short summaries."
      },
      "ai_enhancement": { "prompt_id": "service_grid_v1", "fallback_to_static": true }
    },
    "testimonial_carousel_generative": {
      "id": "testimonial_carousel_generative",
      "display_name": "Generative testimonials",
      "description": "AI-enhanced testimonial carousel with up to 6 quotes. Falls back to one placeholder testimonial.",
      "category": "semantic_generative",
      "requires": {
        "entity_mixins": [],
        "view_kinds": [],
        "form_kinds": [],
        "page_kinds": []
      },
      "params_schema": {
        "type": "object",
        "properties": {
          "quotes": {
            "type": "array",
            "items": { "type": "string", "maxLength": 500 },
            "maxItems": 6,
            "description": "Testimonial quote text"
          },
          "attribution_names": {
            "type": "array",
            "items": { "type": "string", "maxLength": 60 },
            "maxItems": 6,
            "description": "Attribution name aligned by index with quotes"
          }
        },
        "required": ["quotes", "attribution_names"]
      },
      "smart_defaults": {
        "static_fallback": {
          "quotes": ["Great service, highly recommended."],
          "attribution_names": ["Happy customer"]
        },
        "ai_hint": "Draft 3 to 6 realistic testimonials appropriate to the tenant's industry."
      },
      "ai_enhancement": { "prompt_id": "testimonial_carousel_v1", "fallback_to_static": true }
    },
    "faq_accordion_generative": {
      "id": "faq_accordion_generative",
      "display_name": "Generative FAQ",
      "description": "AI-enhanced FAQ accordion with up to 10 question/answer pairs. Answers capped at 500 characters. Falls back to three generic Q&A pairs.",
      "category": "semantic_generative",
      "requires": {
        "entity_mixins": [],
        "view_kinds": [],
        "form_kinds": [],
        "page_kinds": []
      },
      "params_schema": {
        "type": "object",
        "properties": {
          "questions": {
            "type": "array",
            "items": { "type": "string", "maxLength": 500 },
            "maxItems": 10,
            "description": "Question text"
          },
          "answers": {
            "type": "array",
            "items": { "type": "string", "maxLength": 500 },
            "maxItems": 10,
            "description": "Answer text, aligned by index with questions"
          }
        },
        "required": ["questions", "answers"]
      },
      "smart_defaults": {
        "static_fallback": {
          "questions": [
            "What do you offer?",
            "How do I book?",
            "Where are you located?"
          ],
          "answers": [
            "We offer a range of services tailored to our customers' needs.",
            "You can book directly through this site or contact us.",
            "See the contact section for our address and hours."
          ]
        },
        "ai_hint": "Draft common FAQ pairs for the tenant's business, 3 to 6 pairs."
      },
      "ai_enhancement": { "prompt_id": "faq_accordion_v1", "fallback_to_static": true }
    },
    "empty_state_generative": {
      "id": "empty_state_generative",
      "display_name": "Generative empty state",
      "description": "AI-enhanced empty-state block. Picks title, body, and action label scoped to the surrounding capability. Falls back to a deterministic welcome message.",
      "category": "semantic_generative",
      "requires": {
        "entity_mixins": [],
        "view_kinds": [],
        "form_kinds": [],
        "page_kinds": []
      },
      "params_schema": {
        "type": "object",
        "properties": {
          "title": { "type": "string", "maxLength": 60, "description": "Empty-state title" },
          "body": { "type": "string", "maxLength": 500, "description": "Empty-state body copy" },
          "action_label": { "type": "string", "maxLength": 60, "description": "Primary action label" }
        },
        "required": ["title", "body", "action_label"]
      },
      "smart_defaults": {
        "static_fallback": {
          "title": "Nothing here yet",
          "body": "Get started by adding your first item.",
          "action_label": "Add item"
        },
        "ai_hint": "Write a friendly empty-state message scoped to the surrounding capability."
      },
      "ai_enhancement": { "prompt_id": "empty_state_v1", "fallback_to_static": true }
    }
  }
}
