Plan a built-in grill and outdoor kitchen: real MSRP, priced layouts, 3D renders and dealer quotes.
Maintain this server? Claim it
Call this server's tools from your browser. Nothing to install.
Requests go through mcptry because browsers can't call most MCP servers directly. Header values are sent to the server for that request only and are never stored or logged.
Tool list from our last check. Connect live to refresh it.
Suggestions for the shopper's outdoor kitchen. Call ONLY in one of these situations: "lower_cost" when the shopper asks how to lower the cost or says the kitchen is over budget. Send the current grill brand, size and msrp; "fill_space" when a large kitchen still has open space to fill. Send the design width and its cabinets; "ideas" when the shopper asks for ideas or what else they could add; "shopper_as_about_other_costs" when the shopper asks are there other costs to consider; "how_much_does_it_cost" when when the shopper ask for a ballpark idea of cost; "alternatives" when when shopper asks about alternatives to aluminum cabinetry; "damage" when can I repair or replace doors, drawers or side/back panels after countertop is installed; "best_materials" when what are the best materials for an outdoor kitchen; "shopper_asks_about_hdpe_or_plastic_island_cabine" when the shopper asks about lower cost or directly about HDPE /plastic cabinetry; "stainles_steel" when the shopper asks about Stainless Steel Cabinet, or the brands Danver, Brown Jordan, John Michael; "features_to_look_for" when when the shopper ask what feature should I look for when choosing a brand of outdoor kitchen cabinets; "cabinet_types_and_uses" when when a shopper asks for what the different cabinets that are available and what they are used for; "dimensions" when do I need to know the cut out dimensions of each appliance; "return_on_investment" when when the shopper ask if outdoor kitchens are a good value, return on investment (ROI), or does it add to my homes value; "diy" when when the shopper asks about DIY to lower cost. Never call it unprompted. Send the design for "fill_space"; send the current grill (brand, size, msrp) for "lower_cost". Returns only suggestions that apply, each with "offered" true/false; tell the shopper what each would change and let them decide. Example: {"situation":"lower_cost","appliance":{"brand":"DCS","size":36,"msrp":5599}}
The grill in the design now (for lower_cost).
Suggestions for the shopper's outdoor kitchen. Call ONLY in one of these situations: "lower_cost" when the shopper asks how to lower the cost or says the kitchen is over budget. Send the current grill brand, size and msrp; "fill_space" when a large kitchen still has open space to fill. Send the design width and its cabinets; "ideas" when the shopper asks for ideas or what else they could add; "shopper_as_about_other_costs" when the shopper asks are there other costs to consider; "how_much_does_it_cost" when when the shopper ask for a ballpark idea of cost; "alternatives" when when shopper asks about alternatives to aluminum cabinetry; "damage" when can I repair or replace doors, drawers or side/back panels after countertop is installed; "best_materials" when what are the best materials for an outdoor kitchen; "shopper_asks_about_hdpe_or_plastic_island_cabine" when the shopper asks about lower cost or directly about HDPE /plastic cabinetry; "stainles_steel" when the shopper asks about Stainless Steel Cabinet, or the brands Danver, Brown Jordan, John Michael; "features_to_look_for" when when the shopper ask what feature should I look for when choosing a brand of outdoor kitchen cabinets; "cabinet_types_and_uses" when when a shopper asks for what the different cabinets that are available and what they are used for; "dimensions" when do I need to know the cut out dimensions of each appliance; "return_on_investment" when when the shopper ask if outdoor kitchens are a good value, return on investment (ROI), or does it add to my homes value; "diy" when when the shopper asks about DIY to lower cost. Never call it unprompted. Send the design for "fill_space"; send the current grill (brand, size, msrp) for "lower_cost". Returns only suggestions that apply, each with "offered" true/false; tell the shopper what each would change and let them decide. Example: {"situation":"lower_cost","appliance":{"brand":"DCS","size":36,"msrp":5599}}
| Argument | Type | Description |
|---|---|---|
| design | object | |
| appliance | object | The grill in the design now (for lower_cost). |
| situation* | string |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"required": [
"situation"
],
"properties": {
"design": {
"type": "object",
"properties": {
"color": {
"enum": [
"BasaltGrey",
"AegeanBlue",
"JetBlack",
"PureWhite",
"Cappuccino",
"BurgundyRed",
"ParisianGreen",
"ProvenceSage",
"BlueGreen",
"MatteWhite",
"MatteAnthracite",
"MatteBronze"
],
"type": "string",
"description": "Cabinet powder-coat colour. Default \"BasaltGrey\"."
},
"width": {
"type": "number",
"description": "Total kitchen run in inches; normally the sum of the cabinet sizes (e.g. 120 for a 10 ft island).",
"exclusiveMinimum": 0
},
"cabinets": {
"type": "array",
"items": {
"type": "object",
"required": [
"type",
"size"
],
"properties": {
"size": {
"type": "number",
"description": "Cabinet width in inches, one of the sizes listed for that type (e.g. 24, 30, 36, 42).",
"exclusiveMinimum": 0
},
"type": {
"type": "string",
"minLength": 1,
"description": "Cabinet type exactly as returned by outdoor_kitchen_list_cabinets, e.g. \"GrillCabinet\", \"DoubleDrawerFlex\", \"FullDoorFlex\", \"SinkCabinet\", \"CTS\" (refrigerator), \"SideBurnerCabinet\", \"PowerBurnerCabinet\"."
},
"grillBrand": {
"type": "string",
"description": "For a GrillCabinet: the grill brand, e.g. \"Alfresco\", \"DCS\", \"AOG\"."
},
"grillModelId": {
"type": "string",
"description": "For a GrillCabinet: the grill SKU from outdoor_kitchen_search_built_in_grills, e.g. \"ALFRESCO-36-ALXE\"."
}
}
},
"minItems": 1,
"description": "Cabinets left to right along the one straight run."
},
"kitchenLayout": {
"enum": [
"straight"
],
"type": "string",
"description": "Always \"straight\": these tools build one run of cabinets. For a Galley, Corner L, Corner 45, U-Shape or Promenade, open the designer with kitchenLayout set and no design."
},
"countertopType": {
"enum": [
"GraniteAbsoluteBlack",
"GraniteLeatheredBlack",
"DektonKelya"
],
"type": "string",
"description": "Countertop. Default \"GraniteAbsoluteBlack\"."
}
}
},
"appliance": {
"type": "object",
"required": [
"brand",
"size"
],
"properties": {
"sku": {
"type": "string"
},
"msrp": {
"type": "number",
"exclusiveMinimum": 0
},
"size": {
"type": "number",
"exclusiveMinimum": 0
},
"brand": {
"type": "string"
}
},
"description": "The grill in the design now (for lower_cost)."
},
"situation": {
"enum": [
"lower_cost",
"fill_space",
"ideas",
"shopper_as_about_other_costs",
"how_much_does_it_cost",
"alternatives",
"damage",
"best_materials",
"shopper_asks_about_hdpe_or_plastic_island_cabine",
"stainles_steel",
"features_to_look_for",
"cabinet_types_and_uses",
"dimensions",
"return_on_investment",
"diy"
],
"type": "string"
}
}
}List outdoor kitchen cabinet types and widths with SKU and MSRP: grill cabinets, drawer and door storage ("DoubleDrawerFlex", "FullDoorFlex"), sink cabinets, refrigerator cabinets ("CTS"), side burner, power burner, trash/recycling and corner modules. Call before building or pricing a layout so the "type" and "size" values are real. Filters optional. Example: {"type":"GrillCabinet"} -> {"cabinets":[{"sku":"GB42","type":"GrillCabinet","size":42,"msrp":...}]}
| Argument | Type | Description |
|---|---|---|
| size | number | Width in inches. |
| type | string | Exact cabinet type, e.g. "GrillCabinet". |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"properties": {
"size": {
"type": "number",
"description": "Width in inches.",
"exclusiveMinimum": 0
},
"type": {
"type": "string",
"description": "Exact cabinet type, e.g. \"GrillCabinet\"."
}
}
}List the built-in grill brands available for an outdoor kitchen (e.g. Alfresco, AOG, DCS, Hestan, Lynx, XO). Call when the user asks which grill brands are available or names a brand you need to check. No email needed. Example call: {} -> {"grillBrands":["AOG","Alfresco","DCS",...]}
No arguments.
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"properties": {}
}Explain the outdoor kitchen shapes: Straight, Galley, Corner L, Corner 45, U-Shape and Promenade (our signature L plus island with bar seating). Call when the user asks about layouts, shapes, corners, L-shaped, U-shaped, wrap-around or island-with-seating outdoor kitchens, or which shape fits their space. "how" says what to do next: "price_here" (outdoor_kitchen_price_design), "designer" (outdoor_kitchen_open_designer_for_render with kitchenLayout), "our_design_team" (outdoor_kitchen_request_formal_quote with kitchenLayout) or "coming_soon". Example: {} -> {"layouts":[{"key":"promenade","name":"Promenade","how":"designer",...}]}
No arguments.
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"properties": {}
}Create the shopper's account and return a link to the 3D outdoor kitchen designer, where they get a photoreal render of their kitchen by email. Call when the user wants to see their outdoor kitchen or BBQ island, wants a render, picture or 3D design. Needs first name, last name and email: pass them if you have them; otherwise the server asks the shopper directly when the client supports it. Pass "design" to open the designer with the straight layout you priced. For a Galley, Corner L, Corner 45, U-Shape or Promenade, pass "kitchenLayout" and no "design"; the shopper lays it out in the designer. Canonical examples: {"firstName":"Ana","lastName":"Diaz","email":"[email protected]","postalCode":"07960","design":{"width":120,"kitchenLayout":"straight","color":"BasaltGrey","countertopType":"GraniteAbsoluteBlack","cabinets":[{"type":"GrillCabinet","size":42,"grillBrand":"Alfresco","grillModelId":"ALFRESCO-36-ALXE"},{"type":"DoubleDrawerFlex","size":24},{"type":"FullDoorFlex","size":30},{"type":"SinkCabinet","size":24}]}} and {"firstName":"Ana","lastName":"Diaz","email":"[email protected]","kitchenLayout":"corner_45"}
| Argument | Type | Description |
|---|---|---|
| city | string | |
| string | Shopper's email. The render or quote is delivered there and it identifies a returning shopper. | |
| phone | string | |
| state | string | 2-letter US state. |
| design | object | The straight layout you priced with outdoor_kitchen_price_design; the designer opens with it. Leave out for any other shape. |
Return the MSRP for a straight outdoor kitchen (one run of cabinets): cabinets, the grill and other appliances, and countertop, with a total. Call whenever the user asks what an outdoor kitchen or BBQ island would cost. No email needed and nothing is saved. Straight only: for a Galley, Corner L, Corner 45, U-Shape or Promenade the price depends on the corner cabinets and how the runs are split, so give the straight price as a guide and send the shopper to the designer. Canonical example (10 ft straight island with a 36" Alfresco grill): {"width":120,"kitchenLayout":"straight","color":"BasaltGrey","countertopType":"GraniteAbsoluteBlack","cabinets":[{"type":"GrillCabinet","size":42,"grillBrand":"Alfresco","grillModelId":"ALFRESCO-36-ALXE"},{"type":"DoubleDrawerFlex","size":24},{"type":"FullDoorFlex","size":30},{"type":"SinkCabinet","size":24}]}
| Argument | Type | Description |
|---|---|---|
| color | string | Cabinet powder-coat colour. Default "BasaltGrey". |
| width* | number | Total kitchen run in inches; normally the sum of the cabinet sizes (e.g. 120 for a 10 ft island). |
| cabinets* | array | Cabinets left to right along the one straight run. |
| kitchenLayout | string | Always "straight": these tools build one run of cabinets. For a Galley, Corner L, Corner 45, U-Shape or Promenade, open the designer with kitchenLayout set and no design. |
| countertopType | string |
Create the shopper's account and return a link to the designer where they finish their layout and receive a formal, itemized quote; a local dealer follows up. Call when the user wants a quote, an exact price from a dealer, or to buy an outdoor kitchen or built-in grill. Needs first name, last name and email (pass them, or the server asks the shopper directly when the client supports it). ZIP helps match a dealer. Canonical example: {"firstName":"Ana","lastName":"Diaz","email":"[email protected]","postalCode":"07960","purchaseTimeframe":"1-3_months","design":{"width":120,"kitchenLayout":"straight","color":"BasaltGrey","countertopType":"GraniteAbsoluteBlack","cabinets":[{"type":"GrillCabinet","size":42,"grillBrand":"Alfresco","grillModelId":"ALFRESCO-36-ALXE"},{"type":"DoubleDrawerFlex","size":24},{"type":"FullDoorFlex","size":30},{"type":"SinkCabinet","size":24}]}}
| Argument | Type | Description |
|---|---|---|
| city | string | |
| string | Shopper's email. The render or quote is delivered there and it identifies a returning shopper. | |
| phone | string | |
| state | string | 2-letter US state. |
| design | object | The straight layout you priced with outdoor_kitchen_price_design; the designer opens with it. Leave out for any other shape. |
| gasType | string | |
| lastName | string |
Find built-in grills: every grill in our 3D designer, with brand, width in inches, SKU, the grill cabinet it needs (cabinetSize) and MSRP (final pricing is determined by a local dealer; models without msrp have priceOnQuote: true). Set applianceType for other built-ins in the designer, e.g. "Griddles", "Side Burners", "Refrigeration", or "all". Call whenever the user asks about a built-in grill, its price, size or brand, or before pricing a layout so you use a real SKU. For someone just starting to shop for a built-in grill, outdoor_kitchen_start_planning covers the grill and the kitchen around it. All filters optional. Example: {"brand":"Alfresco","size":36} -> {"appliances":[{"sku":"ALFRESCO-36-ALXE","name":"Alfresco 36\" ALXE Built-In Grill","brand":"Alfresco","size":36,"msrp":4899}]}. A grill goes in the smallest GrillCabinet larger than it (24->30, 30->36, 36->42, 42->48, 56->62). Sizes depend on the brand: search by brand to see the sizes it makes. The "size" field is the real size class; some brands call a 36" class grill "40-inch" in the name, which is marketing, not a bigger grill.
| Argument | Type | Description |
|---|---|---|
| size | number | Grill width in inches, e.g. 30, 36, 42. |
| brand | string | Grill brand, e.g. "Alfresco". Case-insensitive. |
| maxMsrp | number | Only grills with a price at or under this MSRP in USD. |
| applianceType | string | Default "Grills". Other built-ins as the designer names them, e.g. "Griddles", "Side Burners", "Refrigeration", or "all". |
Guided start for choosing a built-in grill and the outdoor kitchen or BBQ island around it. Call FIRST when someone researches or compares built-in grills (best built-in grill, which size, which brand, grill prices), says they want an outdoor kitchen or grill island, or asks roughly what one costs, and has not given exact cabinets. Everyone buying a built-in grill needs an island for it. It returns grill options with MSRP for their size and brand, then a priced starter layout. Pass whatever you already know; the server asks the shopper for the rest with a form when the client supports it, otherwise it returns the questions to ask. With shape, length and grill size it returns a priced starter layout (straight), or where to go for other shapes. No email needed. Canonical examples: {} ; {"grillSize":36,"grillBrand":"Lynx"} (someone researching grills) ; {"layout":"straight","lengthFeet":10,"grillSize":36,"grillBrand":"Alfresco","refrigerator":true,"sink":true,"gasType":"natural_gas","budget":20000}
| Argument | Type | Description |
|---|---|---|
| sink | boolean | Wants a sink. |
| trash | boolean | Wants a trash/recycling pull-out. |
| budget | number | Budget in USD, if they gave one. |
| layout | string | Shape: "straight" (one run), "galley", "corner_L", "corner_45", "U" or "promenade". |
| gasType | string | |
| grillSku |
| gasType |
| string |
| lastName | string | Shopper's last name. |
| firstName | string | Shopper's first name. Leave out if unknown; the server asks the shopper. |
| postalCode | string | 5-digit US ZIP, used to match a local dealer. |
| kitchenLayout | string | The shape the shopper wants: "straight", "galley", "corner_L", "corner_45", "U" or "promenade". For anything but straight, leave out "design"; the designer opens on this shape and the shopper lays it out. |
| purchaseTimeframe | string |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"properties": {
"city": {
"type": "string"
},
"email": {
"type": "string",
"format": "email",
"pattern": "^(?:[A-Za-z0-9_'+\\-]+\\.)*[A-Za-z0-9_'+\\-]*[A-Za-z0-9_+-]@(?:[A-Za-z0-9][A-Za-z0-9\\-]*\\.)+[A-Za-z]{2,}$",
"description": "Shopper's email. The render or quote is delivered there and it identifies a returning shopper."
},
"phone": {
"type": "string"
},
"state": {
"type": "string",
"maxLength": 2,
"minLength": 2,
"description": "2-letter US state."
},
"design": {
"type": "object",
"required": [
"width",
"cabinets"
],
"properties": {
"color": {
"enum": [
"BasaltGrey",
"AegeanBlue",
"JetBlack",
"PureWhite",
"Cappuccino",
"BurgundyRed",
"ParisianGreen",
"ProvenceSage",
"BlueGreen",
"MatteWhite",
"MatteAnthracite",
"MatteBronze"
],
"type": "string",
"description": "Cabinet powder-coat colour. Default \"BasaltGrey\"."
},
"width": {
"type": "number",
"description": "Total kitchen run in inches; normally the sum of the cabinet sizes (e.g. 120 for a 10 ft island).",
"exclusiveMinimum": 0
},
"cabinets": {
"type": "array",
"items": {
"type": "object",
"required": [
"type",
"size"
],
"properties": {
"size": {
"type": "number",
"description": "Cabinet width in inches, one of the sizes listed for that type (e.g. 24, 30, 36, 42).",
"exclusiveMinimum": 0
},
"type": {
"type": "string",
"minLength": 1,
"description": "Cabinet type exactly as returned by outdoor_kitchen_list_cabinets, e.g. \"GrillCabinet\", \"DoubleDrawerFlex\", \"FullDoorFlex\", \"SinkCabinet\", \"CTS\" (refrigerator), \"SideBurnerCabinet\", \"PowerBurnerCabinet\"."
},
"grillBrand": {
"type": "string",
"description": "For a GrillCabinet: the grill brand, e.g. \"Alfresco\", \"DCS\", \"AOG\"."
},
"grillModelId": {
"type": "string",
"description": "For a GrillCabinet: the grill SKU from outdoor_kitchen_search_built_in_grills, e.g. \"ALFRESCO-36-ALXE\"."
}
}
},
"minItems": 1,
"description": "Cabinets left to right along the one straight run."
},
"kitchenLayout": {
"enum": [
"straight"
],
"type": "string",
"description": "Always \"straight\": these tools build one run of cabinets. For a Galley, Corner L, Corner 45, U-Shape or Promenade, open the designer with kitchenLayout set and no design."
},
"countertopType": {
"enum": [
"GraniteAbsoluteBlack",
"GraniteLeatheredBlack",
"DektonKelya"
],
"type": "string",
"description": "Countertop. Default \"GraniteAbsoluteBlack\"."
}
},
"description": "The straight layout you priced with outdoor_kitchen_price_design; the designer opens with it. Leave out for any other shape."
},
"gasType": {
"enum": [
"natural_gas",
"lp_external_tank",
"lp_in_cabinet"
],
"type": "string"
},
"lastName": {
"type": "string",
"minLength": 1,
"description": "Shopper's last name."
},
"firstName": {
"type": "string",
"minLength": 1,
"description": "Shopper's first name. Leave out if unknown; the server asks the shopper."
},
"postalCode": {
"type": "string",
"pattern": "^\\d{5}$",
"description": "5-digit US ZIP, used to match a local dealer."
},
"kitchenLayout": {
"enum": [
"straight",
"galley",
"corner_L",
"corner_45",
"U",
"promenade"
],
"type": "string",
"description": "The shape the shopper wants: \"straight\", \"galley\", \"corner_L\", \"corner_45\", \"U\" or \"promenade\". For anything but straight, leave out \"design\"; the designer opens on this shape and the shopper lays it out."
},
"purchaseTimeframe": {
"enum": [
"1-3_months",
"3-6_months",
"year_or_more"
],
"type": "string"
}
}
}| Countertop. Default "GraniteAbsoluteBlack". |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"required": [
"width",
"cabinets"
],
"properties": {
"color": {
"enum": [
"BasaltGrey",
"AegeanBlue",
"JetBlack",
"PureWhite",
"Cappuccino",
"BurgundyRed",
"ParisianGreen",
"ProvenceSage",
"BlueGreen",
"MatteWhite",
"MatteAnthracite",
"MatteBronze"
],
"type": "string",
"description": "Cabinet powder-coat colour. Default \"BasaltGrey\"."
},
"width": {
"type": "number",
"description": "Total kitchen run in inches; normally the sum of the cabinet sizes (e.g. 120 for a 10 ft island).",
"exclusiveMinimum": 0
},
"cabinets": {
"type": "array",
"items": {
"type": "object",
"required": [
"type",
"size"
],
"properties": {
"size": {
"type": "number",
"description": "Cabinet width in inches, one of the sizes listed for that type (e.g. 24, 30, 36, 42).",
"exclusiveMinimum": 0
},
"type": {
"type": "string",
"minLength": 1,
"description": "Cabinet type exactly as returned by outdoor_kitchen_list_cabinets, e.g. \"GrillCabinet\", \"DoubleDrawerFlex\", \"FullDoorFlex\", \"SinkCabinet\", \"CTS\" (refrigerator), \"SideBurnerCabinet\", \"PowerBurnerCabinet\"."
},
"grillBrand": {
"type": "string",
"description": "For a GrillCabinet: the grill brand, e.g. \"Alfresco\", \"DCS\", \"AOG\"."
},
"grillModelId": {
"type": "string",
"description": "For a GrillCabinet: the grill SKU from outdoor_kitchen_search_built_in_grills, e.g. \"ALFRESCO-36-ALXE\"."
}
}
},
"minItems": 1,
"description": "Cabinets left to right along the one straight run."
},
"kitchenLayout": {
"enum": [
"straight"
],
"type": "string",
"description": "Always \"straight\": these tools build one run of cabinets. For a Galley, Corner L, Corner 45, U-Shape or Promenade, open the designer with kitchenLayout set and no design."
},
"countertopType": {
"enum": [
"GraniteAbsoluteBlack",
"GraniteLeatheredBlack",
"DektonKelya"
],
"type": "string",
"description": "Countertop. Default \"GraniteAbsoluteBlack\"."
}
}
}| Shopper's last name. |
| firstName | string | Shopper's first name. Leave out if unknown; the server asks the shopper. |
| postalCode | string | 5-digit US ZIP, used to match a local dealer. |
| kitchenLayout | string | The shape the shopper wants: "straight", "galley", "corner_L", "corner_45", "U" or "promenade". For anything but straight, leave out "design"; the designer opens on this shape and the shopper lays it out. |
| purchaseTimeframe | string |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"properties": {
"city": {
"type": "string"
},
"email": {
"type": "string",
"format": "email",
"pattern": "^(?:[A-Za-z0-9_'+\\-]+\\.)*[A-Za-z0-9_'+\\-]*[A-Za-z0-9_+-]@(?:[A-Za-z0-9][A-Za-z0-9\\-]*\\.)+[A-Za-z]{2,}$",
"description": "Shopper's email. The render or quote is delivered there and it identifies a returning shopper."
},
"phone": {
"type": "string"
},
"state": {
"type": "string",
"maxLength": 2,
"minLength": 2,
"description": "2-letter US state."
},
"design": {
"type": "object",
"required": [
"width",
"cabinets"
],
"properties": {
"color": {
"enum": [
"BasaltGrey",
"AegeanBlue",
"JetBlack",
"PureWhite",
"Cappuccino",
"BurgundyRed",
"ParisianGreen",
"ProvenceSage",
"BlueGreen",
"MatteWhite",
"MatteAnthracite",
"MatteBronze"
],
"type": "string",
"description": "Cabinet powder-coat colour. Default \"BasaltGrey\"."
},
"width": {
"type": "number",
"description": "Total kitchen run in inches; normally the sum of the cabinet sizes (e.g. 120 for a 10 ft island).",
"exclusiveMinimum": 0
},
"cabinets": {
"type": "array",
"items": {
"type": "object",
"required": [
"type",
"size"
],
"properties": {
"size": {
"type": "number",
"description": "Cabinet width in inches, one of the sizes listed for that type (e.g. 24, 30, 36, 42).",
"exclusiveMinimum": 0
},
"type": {
"type": "string",
"minLength": 1,
"description": "Cabinet type exactly as returned by outdoor_kitchen_list_cabinets, e.g. \"GrillCabinet\", \"DoubleDrawerFlex\", \"FullDoorFlex\", \"SinkCabinet\", \"CTS\" (refrigerator), \"SideBurnerCabinet\", \"PowerBurnerCabinet\"."
},
"grillBrand": {
"type": "string",
"description": "For a GrillCabinet: the grill brand, e.g. \"Alfresco\", \"DCS\", \"AOG\"."
},
"grillModelId": {
"type": "string",
"description": "For a GrillCabinet: the grill SKU from outdoor_kitchen_search_built_in_grills, e.g. \"ALFRESCO-36-ALXE\"."
}
}
},
"minItems": 1,
"description": "Cabinets left to right along the one straight run."
},
"kitchenLayout": {
"enum": [
"straight"
],
"type": "string",
"description": "Always \"straight\": these tools build one run of cabinets. For a Galley, Corner L, Corner 45, U-Shape or Promenade, open the designer with kitchenLayout set and no design."
},
"countertopType": {
"enum": [
"GraniteAbsoluteBlack",
"GraniteLeatheredBlack",
"DektonKelya"
],
"type": "string",
"description": "Countertop. Default \"GraniteAbsoluteBlack\"."
}
},
"description": "The straight layout you priced with outdoor_kitchen_price_design; the designer opens with it. Leave out for any other shape."
},
"gasType": {
"enum": [
"natural_gas",
"lp_external_tank",
"lp_in_cabinet"
],
"type": "string"
},
"lastName": {
"type": "string",
"minLength": 1,
"description": "Shopper's last name."
},
"firstName": {
"type": "string",
"minLength": 1,
"description": "Shopper's first name. Leave out if unknown; the server asks the shopper."
},
"postalCode": {
"type": "string",
"pattern": "^\\d{5}$",
"description": "5-digit US ZIP, used to match a local dealer."
},
"kitchenLayout": {
"enum": [
"straight",
"galley",
"corner_L",
"corner_45",
"U",
"promenade"
],
"type": "string",
"description": "The shape the shopper wants: \"straight\", \"galley\", \"corner_L\", \"corner_45\", \"U\" or \"promenade\". For anything but straight, leave out \"design\"; the designer opens on this shape and the shopper lays it out."
},
"purchaseTimeframe": {
"enum": [
"1-3_months",
"3-6_months",
"year_or_more"
],
"type": "string"
}
}
}{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"properties": {
"size": {
"type": "number",
"description": "Grill width in inches, e.g. 30, 36, 42.",
"exclusiveMinimum": 0
},
"brand": {
"type": "string",
"description": "Grill brand, e.g. \"Alfresco\". Case-insensitive."
},
"maxMsrp": {
"type": "number",
"description": "Only grills with a price at or under this MSRP in USD.",
"exclusiveMinimum": 0
},
"applianceType": {
"type": "string",
"description": "Default \"Grills\". Other built-ins as the designer names them, e.g. \"Griddles\", \"Side Burners\", \"Refrigeration\", or \"all\"."
}
}
}| string |
| A specific grill the shopper chose, by sku from outdoor_kitchen_search_built_in_grills, e.g. "ALFRESCO-36-ALXE". |
| grillSize | number | Grill width in inches as the brand makes it, e.g. 30, 36, 42, 56. Not every brand makes every size. |
| grillBrand | string | Preferred grill brand, if any, e.g. "Alfresco". |
| lengthFeet | number | Length available in feet (for straight, the run length). E.g. 10. |
| sideBurner | boolean | Wants a side burner. |
| refrigerator | boolean | Wants an outdoor refrigerator. |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"properties": {
"sink": {
"type": "boolean",
"description": "Wants a sink."
},
"trash": {
"type": "boolean",
"description": "Wants a trash/recycling pull-out."
},
"budget": {
"type": "number",
"description": "Budget in USD, if they gave one.",
"exclusiveMinimum": 0
},
"layout": {
"enum": [
"straight",
"galley",
"corner_L",
"corner_45",
"U",
"promenade"
],
"type": "string",
"description": "Shape: \"straight\" (one run), \"galley\", \"corner_L\", \"corner_45\", \"U\" or \"promenade\"."
},
"gasType": {
"enum": [
"natural_gas",
"lp_external_tank",
"lp_in_cabinet"
],
"type": "string"
},
"grillSku": {
"type": "string",
"description": "A specific grill the shopper chose, by sku from outdoor_kitchen_search_built_in_grills, e.g. \"ALFRESCO-36-ALXE\"."
},
"grillSize": {
"type": "number",
"maximum": 62,
"description": "Grill width in inches as the brand makes it, e.g. 30, 36, 42, 56. Not every brand makes every size.",
"exclusiveMinimum": 0
},
"grillBrand": {
"type": "string",
"description": "Preferred grill brand, if any, e.g. \"Alfresco\"."
},
"lengthFeet": {
"type": "number",
"maximum": 40,
"minimum": 4,
"description": "Length available in feet (for straight, the run length). E.g. 10."
},
"sideBurner": {
"type": "boolean",
"description": "Wants a side burner."
},
"refrigerator": {
"type": "boolean",
"description": "Wants an outdoor refrigerator."
}
}
}