{
  "name": "Local Business",
  "description": "Use this schema type for any local business with a physical location. Enables rich results in Google Search and Google Maps with business hours, address, phone number, and reviews.",
  "schema_type": "LocalBusiness",
  "version": "1.0.0",
  "fields": [
    {
      "key": "name",
      "label": "Business Name",
      "type": "text",
      "required": true,
      "description": "The official name of the business.",
      "default": ""
    },
    {
      "key": "image",
      "label": "Business Image URL",
      "type": "url",
      "required": false,
      "description": "URL of a representative image of the business (storefront, logo, etc.).",
      "default": ""
    },
    {
      "key": "description",
      "label": "Description",
      "type": "textarea",
      "required": false,
      "description": "A description of the business and its services.",
      "default": ""
    },
    {
      "key": "address",
      "label": "Address",
      "type": "object",
      "required": true,
      "description": "The physical address of the business.",
      "default": "",
      "fields": [
        {
          "key": "streetAddress",
          "label": "Street Address",
          "type": "text",
          "required": true,
          "description": "The street address (e.g., '123 Main St, Suite 100').",
          "default": ""
        },
        {
          "key": "addressLocality",
          "label": "City",
          "type": "text",
          "required": true,
          "description": "The city or locality.",
          "default": ""
        },
        {
          "key": "addressRegion",
          "label": "State/Region",
          "type": "text",
          "required": true,
          "description": "The state, province, or region.",
          "default": ""
        },
        {
          "key": "postalCode",
          "label": "Postal Code",
          "type": "text",
          "required": true,
          "description": "The postal or ZIP code.",
          "default": ""
        },
        {
          "key": "addressCountry",
          "label": "Country",
          "type": "text",
          "required": true,
          "description": "The country in ISO 3166-1 alpha-2 format (e.g., 'US', 'GB', 'CA').",
          "default": "US"
        }
      ]
    },
    {
      "key": "geo",
      "label": "Geographic Coordinates",
      "type": "object",
      "required": false,
      "description": "The geographic coordinates of the business location.",
      "default": "",
      "fields": [
        {
          "key": "latitude",
          "label": "Latitude",
          "type": "number",
          "required": true,
          "description": "The latitude coordinate (e.g., 40.7128).",
          "default": ""
        },
        {
          "key": "longitude",
          "label": "Longitude",
          "type": "number",
          "required": true,
          "description": "The longitude coordinate (e.g., -74.0060).",
          "default": ""
        }
      ]
    },
    {
      "key": "telephone",
      "label": "Phone Number",
      "type": "text",
      "required": false,
      "description": "The business phone number in international format (e.g., '+1-555-555-5555').",
      "default": ""
    },
    {
      "key": "email",
      "label": "Email",
      "type": "email",
      "required": false,
      "description": "The business contact email address.",
      "default": ""
    },
    {
      "key": "url",
      "label": "Website URL",
      "type": "url",
      "required": false,
      "description": "The URL of the business website.",
      "default": ""
    },
    {
      "key": "openingHoursSpecification",
      "label": "Opening Hours",
      "type": "array",
      "required": false,
      "description": "The opening hours for the business. Define hours for each day or group of days.",
      "default": [],
      "items": {
        "type": "object",
        "fields": [
          {
            "key": "dayOfWeek",
            "label": "Day(s) of Week",
            "type": "select",
            "required": true,
            "description": "The day or days these hours apply to.",
            "default": "Monday",
            "options": [
              { "value": "Monday", "label": "Monday" },
              { "value": "Tuesday", "label": "Tuesday" },
              { "value": "Wednesday", "label": "Wednesday" },
              { "value": "Thursday", "label": "Thursday" },
              { "value": "Friday", "label": "Friday" },
              { "value": "Saturday", "label": "Saturday" },
              { "value": "Sunday", "label": "Sunday" }
            ]
          },
          {
            "key": "opens",
            "label": "Opens",
            "type": "text",
            "required": true,
            "description": "Opening time in 24-hour format (e.g., '09:00').",
            "default": "09:00"
          },
          {
            "key": "closes",
            "label": "Closes",
            "type": "text",
            "required": true,
            "description": "Closing time in 24-hour format (e.g., '17:00').",
            "default": "17:00"
          }
        ]
      }
    },
    {
      "key": "priceRange",
      "label": "Price Range",
      "type": "text",
      "required": false,
      "description": "The price range of the business (e.g., '$$', '$10-$50').",
      "default": ""
    },
    {
      "key": "aggregateRating",
      "label": "Aggregate Rating",
      "type": "object",
      "required": false,
      "description": "The overall rating of the business.",
      "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": "review",
      "label": "Featured Review",
      "type": "object",
      "required": false,
      "description": "A featured review of the business.",
      "default": "",
      "fields": [
        {
          "key": "author",
          "label": "Reviewer Name",
          "type": "text",
          "required": true,
          "description": "Name of the reviewer.",
          "default": ""
        },
        {
          "key": "reviewRating",
          "label": "Rating",
          "type": "number",
          "required": true,
          "description": "The rating given in this review.",
          "default": ""
        },
        {
          "key": "reviewBody",
          "label": "Review Text",
          "type": "textarea",
          "required": false,
          "description": "The text content of the review.",
          "default": ""
        }
      ]
    }
  ],
  "template": {
    "@context": "https://schema.org",
    "@type": "LocalBusiness",
    "name": "",
    "image": "",
    "description": "",
    "address": {
      "@type": "PostalAddress",
      "streetAddress": "",
      "addressLocality": "",
      "addressRegion": "",
      "postalCode": "",
      "addressCountry": "US"
    },
    "geo": {
      "@type": "GeoCoordinates",
      "latitude": "",
      "longitude": ""
    },
    "telephone": "",
    "email": "",
    "url": "",
    "openingHoursSpecification": [
      {
        "@type": "OpeningHoursSpecification",
        "dayOfWeek": "Monday",
        "opens": "09:00",
        "closes": "17:00"
      }
    ],
    "priceRange": "",
    "aggregateRating": {
      "@type": "AggregateRating",
      "ratingValue": "",
      "reviewCount": ""
    },
    "review": {
      "@type": "Review",
      "author": {
        "@type": "Person",
        "name": ""
      },
      "reviewRating": {
        "@type": "Rating",
        "ratingValue": ""
      },
      "reviewBody": ""
    }
  },
  "google_required": ["name", "address"],
  "google_recommended": ["telephone", "openingHoursSpecification", "geo", "image"]
}