{
  "name": "Service",
  "description": "Use this schema type for pages describing professional services offered by a business or individual. Helps search engines understand the type of service, provider, pricing, and service area.",
  "schema_type": "Service",
  "version": "1.0.0",
  "fields": [
    {
      "key": "name",
      "label": "Service Name",
      "type": "text",
      "required": true,
      "description": "The name of the service being offered.",
      "default": ""
    },
    {
      "key": "description",
      "label": "Description",
      "type": "textarea",
      "required": false,
      "description": "A detailed description of the service.",
      "default": ""
    },
    {
      "key": "provider",
      "label": "Provider",
      "type": "object",
      "required": false,
      "description": "The organization or person providing the service.",
      "default": "",
      "fields": [
        {
          "key": "@type",
          "label": "Provider Type",
          "type": "select",
          "required": true,
          "description": "Whether the provider is an organization or an individual.",
          "default": "Organization",
          "options": [
            { "value": "Organization", "label": "Organization" },
            { "value": "Person", "label": "Person" }
          ]
        },
        {
          "key": "name",
          "label": "Provider Name",
          "type": "text",
          "required": true,
          "description": "Name of the service provider.",
          "default": ""
        },
        {
          "key": "url",
          "label": "Provider URL",
          "type": "url",
          "required": false,
          "description": "Website URL of the service provider.",
          "default": ""
        },
        {
          "key": "telephone",
          "label": "Phone Number",
          "type": "text",
          "required": false,
          "description": "Contact phone number of the provider.",
          "default": ""
        }
      ]
    },
    {
      "key": "serviceType",
      "label": "Service Type",
      "type": "text",
      "required": false,
      "description": "The type or category of service (e.g., 'Plumbing', 'Web Design', 'Tax Preparation').",
      "default": ""
    },
    {
      "key": "areaServed",
      "label": "Area Served",
      "type": "text",
      "required": false,
      "description": "The geographic area where the service is available (e.g., city name, state, or region).",
      "default": ""
    },
    {
      "key": "hasOfferCatalog",
      "label": "Service Catalog",
      "type": "object",
      "required": false,
      "description": "A catalog of service offerings with pricing tiers.",
      "default": "",
      "fields": [
        {
          "key": "name",
          "label": "Catalog Name",
          "type": "text",
          "required": true,
          "description": "Name of the service catalog or pricing tier.",
          "default": ""
        },
        {
          "key": "itemListElement",
          "label": "Service Items",
          "type": "array",
          "required": false,
          "description": "Individual service offerings within the catalog.",
          "default": []
        }
      ]
    },
    {
      "key": "offers",
      "label": "Offers",
      "type": "object",
      "required": false,
      "description": "Pricing information for the service.",
      "default": "",
      "fields": [
        {
          "key": "price",
          "label": "Price",
          "type": "number",
          "required": false,
          "description": "The price of the service.",
          "default": ""
        },
        {
          "key": "priceCurrency",
          "label": "Currency",
          "type": "text",
          "required": false,
          "description": "The currency in ISO 4217 format (e.g., 'USD').",
          "default": "USD"
        },
        {
          "key": "priceSpecification",
          "label": "Price Details",
          "type": "text",
          "required": false,
          "description": "Additional price specification details (e.g., 'per hour', 'per project').",
          "default": ""
        }
      ]
    },
    {
      "key": "aggregateRating",
      "label": "Aggregate Rating",
      "type": "object",
      "required": false,
      "description": "The overall rating of the service.",
      "default": "",
      "fields": [
        {
          "key": "ratingValue",
          "label": "Rating Value",
          "type": "number",
          "required": true,
          "description": "The average rating value.",
          "default": ""
        },
        {
          "key": "reviewCount",
          "label": "Review Count",
          "type": "number",
          "required": true,
          "description": "The total number of reviews.",
          "default": ""
        }
      ]
    },
    {
      "key": "image",
      "label": "Service Image URL",
      "type": "url",
      "required": false,
      "description": "URL of an image representing the service.",
      "default": ""
    },
    {
      "key": "url",
      "label": "Service Page URL",
      "type": "url",
      "required": false,
      "description": "URL of the service page on your website.",
      "default": ""
    }
  ],
  "template": {
    "@context": "https://schema.org",
    "@type": "Service",
    "name": "",
    "description": "",
    "provider": {
      "@type": "Organization",
      "name": "",
      "url": "",
      "telephone": ""
    },
    "serviceType": "",
    "areaServed": "",
    "hasOfferCatalog": {
      "@type": "OfferCatalog",
      "name": "",
      "itemListElement": []
    },
    "offers": {
      "@type": "Offer",
      "price": "",
      "priceCurrency": "USD"
    },
    "aggregateRating": {
      "@type": "AggregateRating",
      "ratingValue": "",
      "reviewCount": ""
    },
    "image": "",
    "url": ""
  },
  "google_required": ["name"],
  "google_recommended": ["description", "provider", "offers"]
}