{
  "name": "Recipe",
  "description": "Use this schema type for recipe pages including cooking and baking instructions. Enables rich recipe results in Google Search with images, ratings, cooking times, and ingredients.",
  "schema_type": "Recipe",
  "version": "1.0.0",
  "fields": [
    {
      "key": "name",
      "label": "Recipe Name",
      "type": "text",
      "required": true,
      "description": "The name of the recipe.",
      "default": ""
    },
    {
      "key": "image",
      "label": "Recipe Image URL",
      "type": "url",
      "required": true,
      "description": "URL of the finished dish image. Use high-quality images in 16:9, 4:3, and 1:1 aspect ratios.",
      "default": ""
    },
    {
      "key": "description",
      "label": "Description",
      "type": "textarea",
      "required": false,
      "description": "A short summary of the recipe.",
      "default": ""
    },
    {
      "key": "author",
      "label": "Author",
      "type": "object",
      "required": false,
      "description": "The person or organization who created the recipe.",
      "default": "",
      "fields": [
        {
          "key": "name",
          "label": "Author Name",
          "type": "text",
          "required": true,
          "description": "Full name of the recipe author.",
          "default": ""
        },
        {
          "key": "url",
          "label": "Author URL",
          "type": "url",
          "required": false,
          "description": "URL of the author's profile or website.",
          "default": ""
        }
      ]
    },
    {
      "key": "prepTime",
      "label": "Prep Time",
      "type": "text",
      "required": false,
      "description": "The preparation time in ISO 8601 duration format (e.g., PT15M for 15 minutes, PT1H for 1 hour).",
      "default": ""
    },
    {
      "key": "cookTime",
      "label": "Cook Time",
      "type": "text",
      "required": false,
      "description": "The cooking time in ISO 8601 duration format (e.g., PT30M for 30 minutes).",
      "default": ""
    },
    {
      "key": "totalTime",
      "label": "Total Time",
      "type": "text",
      "required": false,
      "description": "The total time to prepare and cook in ISO 8601 duration format (e.g., PT45M for 45 minutes).",
      "default": ""
    },
    {
      "key": "recipeYield",
      "label": "Recipe Yield",
      "type": "text",
      "required": false,
      "description": "The number of servings or quantity produced (e.g., '4 servings', '1 loaf').",
      "default": ""
    },
    {
      "key": "recipeCategory",
      "label": "Recipe Category",
      "type": "text",
      "required": false,
      "description": "The type of meal or course (e.g., 'Dinner', 'Dessert', 'Appetizer').",
      "default": ""
    },
    {
      "key": "recipeCuisine",
      "label": "Cuisine",
      "type": "text",
      "required": false,
      "description": "The cuisine style (e.g., 'Italian', 'Mexican', 'French').",
      "default": ""
    },
    {
      "key": "recipeIngredient",
      "label": "Ingredients",
      "type": "array",
      "required": false,
      "description": "List of ingredients used in the recipe. Each ingredient should be a complete text string including quantity and unit.",
      "default": []
    },
    {
      "key": "recipeInstructions",
      "label": "Instructions",
      "type": "array",
      "required": false,
      "description": "Step-by-step instructions for preparing the recipe. Each step should have a name and descriptive text.",
      "default": [],
      "items": {
        "type": "object",
        "fields": [
          {
            "key": "name",
            "label": "Step Name",
            "type": "text",
            "required": false,
            "description": "A short title for this step.",
            "default": ""
          },
          {
            "key": "text",
            "label": "Step Text",
            "type": "textarea",
            "required": true,
            "description": "The detailed instruction for this step.",
            "default": ""
          }
        ]
      }
    },
    {
      "key": "nutrition",
      "label": "Nutrition Information",
      "type": "object",
      "required": false,
      "description": "Nutritional information for the recipe.",
      "default": "",
      "fields": [
        {
          "key": "calories",
          "label": "Calories",
          "type": "text",
          "required": false,
          "description": "The number of calories per serving (e.g., '250 calories').",
          "default": ""
        }
      ]
    },
    {
      "key": "aggregateRating",
      "label": "Aggregate Rating",
      "type": "object",
      "required": false,
      "description": "The overall rating of the recipe based on multiple reviews.",
      "default": "",
      "fields": [
        {
          "key": "ratingValue",
          "label": "Rating Value",
          "type": "number",
          "required": true,
          "description": "The average rating value.",
          "default": ""
        },
        {
          "key": "ratingCount",
          "label": "Rating Count",
          "type": "number",
          "required": true,
          "description": "The total number of ratings.",
          "default": ""
        }
      ]
    },
    {
      "key": "video",
      "label": "Video",
      "type": "object",
      "required": false,
      "description": "A video showing how to prepare the recipe.",
      "default": "",
      "fields": [
        {
          "key": "name",
          "label": "Video Title",
          "type": "text",
          "required": true,
          "description": "The title of the video.",
          "default": ""
        },
        {
          "key": "description",
          "label": "Video Description",
          "type": "textarea",
          "required": true,
          "description": "A description of the video content.",
          "default": ""
        },
        {
          "key": "thumbnailUrl",
          "label": "Thumbnail URL",
          "type": "url",
          "required": true,
          "description": "URL of the video thumbnail image.",
          "default": ""
        },
        {
          "key": "contentUrl",
          "label": "Video URL",
          "type": "url",
          "required": false,
          "description": "Direct URL to the video file.",
          "default": ""
        },
        {
          "key": "uploadDate",
          "label": "Upload Date",
          "type": "date",
          "required": true,
          "description": "The date the video was uploaded in ISO 8601 format.",
          "default": ""
        }
      ]
    }
  ],
  "template": {
    "@context": "https://schema.org",
    "@type": "Recipe",
    "name": "",
    "image": "",
    "description": "",
    "author": {
      "@type": "Person",
      "name": "",
      "url": ""
    },
    "prepTime": "",
    "cookTime": "",
    "totalTime": "",
    "recipeYield": "",
    "recipeCategory": "",
    "recipeCuisine": "",
    "recipeIngredient": [],
    "recipeInstructions": [
      {
        "@type": "HowToStep",
        "name": "",
        "text": ""
      }
    ],
    "nutrition": {
      "@type": "NutritionInformation",
      "calories": ""
    },
    "aggregateRating": {
      "@type": "AggregateRating",
      "ratingValue": "",
      "ratingCount": ""
    },
    "video": {
      "@type": "VideoObject",
      "name": "",
      "description": "",
      "thumbnailUrl": "",
      "contentUrl": "",
      "uploadDate": ""
    }
  },
  "google_required": ["name", "image"],
  "google_recommended": ["author", "prepTime", "cookTime", "recipeIngredient", "recipeInstructions"]
}