{"schema":"singularity.program-execution-image.v10","version":"15","runtime":{"abi":"singularity.program-runtime.v1","securityPolicy":"singularity.execution-security.v1"},"posture":"aeecc0551e810aab","identity":{"id":"program:dfd9bedc5acf30c2","contractId":"program-contract:e37eababf83779fd","resourceContractId":"program-resource-contract:72827727c0112325","environment":"world-contract:01c8bac583878623","selectedEnvironment":"world-contract:d64559d959df499f","references":"references:f52a3336ac1159d8","capabilityIR":"ir:b796d90516103d7b","operations":"operations:2312419359bbb3ad","problems":"problem-catalog:8f08053776166309","sources":{"formEmail":"source:298d46816ed88713","googleMaps":"source:142cf20c8fb9e0fa","opehub":"source:562a17210b9ea3a7"}},"worlds":{"construction":"world-contract:01c8bac583878623","selected":"world-contract:d64559d959df499f"},"products":{"expressions":{"nodes":[["root","state"],["literal","$inst"],["member",0,1,true],["literal","FaqItem__u0"],["member",2,3,true],["root","f"],["literal","id"],["member",5,6,true],["member",4,7,true],["literal","open"],["member",8,9,true],["literal","$default"],["member",0,11,true],["member",12,3,true],["member",13,9,true],["binary","??",10,14],["unary","!",15],["literal","FaqItem__u1"],["member",2,17,true],["member",18,7,true],["member",19,9,true],["member",12,17,true],["member",21,9,true],["binary","??",20,22],["unary","!",23],["literal","FaqItem__u2"],["member",2,25,true],["member",26,7,true],["member",27,9,true],["member",12,25,true],["member",29,9,true],["binary","??",28,30],["unary","!",31],["literal","commercialDemo"],["member",2,33,true],["literal","_"],["member",34,35,true],["literal","sent"],["member",36,37,true],["member",12,33,true],["member",39,37,true],["binary","??",38,40],["unary","!",41],["literal","contactMap"],["member",2,43,true],["member",44,35,true],["literal","failed"],["member",45,46,true],["member",12,43,true],["member",48,46,true],["binary","??",47,49],["unary","!",50],["literal","equipmentSnowSale"],["member",2,52,true],["member",53,35,true],["member",54,37,true],["member",12,52,true],["member",56,37,true],["binary","??",55,57],["unary","!",58],["literal","equipmentTradeIn"],["member",2,60,true],["member",61,35,true],["literal","photo"],["member",62,63,true],["member",12,60,true],["member",65,63,true],["binary","??",64,66],["unary","!",67],["member",62,37,true],["member",65,37,true],["binary","??",69,70],["unary","!",71],["literal","homeOffer"],["member",2,73,true],["member",74,35,true],["member",75,37,true],["member",12,73,true],["member",77,37,true],["binary","??",76,78],["unary","!",79],["literal","homeSnowSale"],["member",2,81,true],["member",82,35,true],["member",83,37,true],["member",12,81,true],["member",85,37,true],["binary","??",84,86],["unary","!",87],["literal","quickAnswers"],["member",2,89,true],["member",90,35,true],["member",91,9,true],["member",12,89,true],["member",93,9,true],["binary","??",92,94],["unary","!",95],["literal","serviceOffer"],["member",2,97,true],["member",98,35,true],["member",99,37,true],["member",12,97,true],["member",101,37,true],["binary","??",100,102],["unary","!",103],["root","fx"],["literal","inventory"],["member",105,106,true],["literal","loaded"],["member",107,108,true],["unary","!",109],["root","inventoryShown"],["call","count",[111]],["literal",0],["binary","==",112,113],["binary","&&",110,114],["root","inventoryItem"],["literal",null],["binary","==",116,117],["binary","&&",110,118],["literal","reviewSearch"],["member",105,120,true],["member",121,108,true],["unary","!",122],["root","reviewList"],["call","count",[124]],["binary","==",125,113],["binary","&&",123,126],["literal","wholegoods"],["member",105,128,true],["member",129,108,true],["unary","!",130],["root","itemWholegood"],["binary","==",132,117],["binary","&&",131,133],["root","media"],["literal","reducedMotion"],["member",135,136,true],["unary","!",137],["literal","finance.disclosure"],["literal",""],["call","get",[116,139,140]],["literal","http"],["call","startsWith",[141,142]],["unary","!",143],["literal","heroPaused"],["member",0,145,true],["unary","!",146],["binary","!=",140,140],["literal","Call with your model and serial number and we’ll check availability or order what you need."],["binary","!=",149,140],["literal","Mower make & model"],["literal","Save on select Toro Z Master® 2000 and 4000 Series mowers, or ask about low monthly payment options. Call or stop in to see which models qualify."],["binary","!=",152,140],["literal","We aim to meet the Web Content Accessibility Guidelines (WCAG) 2.1 Level AA, the widely used standard for accessible websites. Accessibility is ongoing work, and we review the site as we add new pages, photos and offers."],["binary","!=",154,140],["literal","We don’t just sell equipment—we keep it running year after year. Call to get your machine on the schedule."],["binary","!=",156,140],["literal","Which model?"],["literal","asset://media/v2/public/generated/25a5ceb2108516d6370342a549dce0b9a21f710738f55cba2ea4ed3749e7e104.png"],["binary","!=",159,140],["literal","asset://media/v2/public/generated/29d2670a339fc1f7e9222535a1318071f054240b0577aed2058995aef7c51a15.png"],["binary","!=",161,140],["literal","asset://media/v2/public/sha256/3d08d1f56931c06fbdc19d0deda87b3ba78f37b77154318ddac1264a5f77b2d5"],["binary","!=",163,140],["literal","asset://media/v2/public/sha256/6ac8d9684a4a899c6bac37dffe10aa5b2eb4ed5d83a624808842eaf8381d187f"],["binary","!=",165,140],["literal","asset://media/v2/public/sha256/eba0e538fc73e5a46c83600e993635896d8a162f5ce3ae46da773ddfcfb4f122"],["binary","!=",167,140],["literal","cover"],["literal","contain"],["binary","==",169,170],["literal","#ffffff"],["literal","transparent"],["ternary",171,172,173],["literal","row"],["literal","list"],["binary","!=",175,176],["binary","==",175,176],["literal","snow"],["literal","tune"],["root","$3639076c$valid"],["literal","tuneupRequest"],["member",105,182,true],["literal","pending"],["member",183,184,true],["unary","!",185],["binary","&&",181,186],["root","$42268c8c$valid"],["binary","&&",188,186],["root","$51381f10$valid"],["binary","&&",190,186],["root","$57f4bd5c$valid"],["binary","&&",192,186],["root","$7258290e$valid"],["binary","&&",194,186],["root","$f049eda0$valid"],["binary","&&",196,186],["literal","tradePhotos"],["member",105,198,true],["literal","busy"],["member",199,200,true],["unary","!",201],["binary","&&",197,202],["literal","mui-v-FaqItem-toggle--open"],["ternary",15,204,140],["ternary",23,204,140],["ternary",31,204,140],["literal","active"],["member",91,208,true],["member",93,208,true],["binary","??",209,210],["root","qa"],["member",212,6,true],["binary","==",211,213],["literal","mui-v-QuickAnswers-chev--on"],["ternary",214,215,140],["literal","mui-v-QuickAnswers-q--on"],["ternary",214,217,140],["literal","mui-v-QuickAnswers-launch--on"],["ternary",95,219,140],["literal",false],["literal","mui-v-GoogleReviews-section--sunken"],["ternary",221,222,140],["root","item"],["member",224,6,true],["root","route"],["literal","name"],["member",226,227,true],["binary","??",228,140],["binary","==",225,229],["literal","mui-v-SiteHeader-drawerLink--active"],["ternary",230,231,140],["literal","mui-v-SiteHeader-link--active"],["ternary",230,233,140],["root","row"],["literal","cashPrice"],["member",235,236,true],["binary","!=",237,117],["binary",">",237,113],["binary","&&",238,239],["literal","price"],["member",235,241,true],["binary","<",237,242],["binary","&&",240,243],["ternary",244,237,242],["literal","kAttachment"],["member",235,246,true],["literal","kAccessory"],["member",235,248,true],["binary","||",247,249],["literal","kBagger"],["member",235,251,true],["binary","||",250,252],["literal","kKit"],["member",235,254,true],["binary","||",253,255],["literal","attachments"],["literal","kSnow"],["member",235,258,true],["literal","kPowerClear"],["member",235,260,true],["binary","||",259,261],["literal","kPowerMax"],["member",235,263,true],["binary","||",262,264],["literal","snowblowers"],["literal","kBlower"],["member",235,267,true],["literal","kTrimmer"],["member",235,269,true],["binary","||",268,270],["literal","kChainsaw"],["member",235,272,true],["binary","||",271,273],["literal","kEdger"],["member",235,275,true],["binary","||",274,276],["literal","kYardTool"],["member",235,278,true],["binary","||",277,279],["literal","kHandheld"],["member",235,281,true],["binary","||",280,282],["literal","kTiller"],["member",235,284,true],["binary","||",283,285],["literal","yardTools"],["literal","kCommercial"],["member",235,288,true],["literal","kContractor"],["member",235,290,true],["binary","||",289,291],["literal","kZMaster"],["member",235,293,true],["binary","||",292,294],["literal","kGrandstand"],["member",235,296,true],["binary","||",295,297],["literal","commercialLawn"],["literal","residentialLawn"],["ternary",298,299,300],["ternary",286,287,301],["ternary",265,266,302],["ternary",256,257,303],["literal","true"],["literal","false"],["ternary",15,305,306],["ternary",23,305,306],["ternary",31,305,306],["literal","email"],["member",36,310,true],["member",39,310,true],["binary","??",311,312],["literal","machine"],["member",36,314,true],["member",39,314,true],["binary","??",315,316],["member",36,227,true],["member",39,227,true],["binary","??",318,319],["literal","notes"],["member",36,321,true],["member",39,321,true],["binary","??",322,323],["member",36,9,true],["member",39,9,true],["binary","??",325,326],["literal","phone"],["member",36,328,true],["member",39,328,true],["binary","??",329,330],["literal","tried"],["member",36,332,true],["member",39,332,true],["binary","??",333,334],["unary","!",192],["binary","&&",335,336],["binary","&&",335,185],["literal","Sending…"],["literal","Request my demo"],["ternary",338,339,340],["literal","problem"],["member",183,342,true],["binary","&&",335,343],["literal","effect"],["member",183,345,true],["literal","write"],["binary","==",346,347],["binary","&&",344,348],["literal","when"],["member",36,350,true],["member",39,350,true],["binary","??",351,352],["member",54,310,true],["member",56,310,true],["binary","??",354,355],["literal","equipment"],["member",54,357,true],["member",56,357,true],["binary","??",358,359],["member",54,227,true],["member",56,227,true],["binary","??",361,362],["member",54,321,true],["member",56,321,true],["binary","??",364,365],["member",54,328,true],["member",56,328,true],["binary","??",367,368],["member",54,332,true],["member",56,332,true],["binary","??",370,371],["unary","!",190],["binary","&&",372,373],["binary","&&",372,185],["literal","Send my request"],["ternary",375,339,376],["binary","&&",372,343],["binary","&&",378,348],["member",62,310,true],["member",65,310,true],["binary","??",380,381],["literal","mower"],["member",62,383,true],["member",65,383,true],["binary","??",384,385],["member",62,227,true],["member",65,227,true],["binary","??",387,388],["member",62,321,true],["member",65,321,true],["binary","??",390,391],["member",62,328,true],["member",65,328,true],["binary","??",393,394],["member",64,227,true],["member",66,227,true],["binary","??",396,397],["literal","Your photo"],["binary","??",398,399],["literal","ref"],["member",64,401,true],["member",66,401,true],["binary","??",402,403],["literal","Photo added"],["literal","Uploading… "],["literal","progress"],["member",64,407,true],["member",66,407,true],["binary","??",408,409],["binary","??",410,113],["literal",100],["binary","*",411,412],["call","round",[413]],["binary","+",406,414],["literal","%"],["binary","+",415,416],["ternary",404,405,417],["literal",1600],["call","tenant_media__imageUrl",[404,419]],["call","startsWith",[420,142]],["literal","origin"],["member",226,422,true],["binary","+",423,420],["ternary",421,420,424],["ternary",404,425,140],["literal","url"],["member",64,427,true],["member",66,427,true],["binary","??",428,429],["member",62,332,true],["member",65,332,true],["binary","??",431,432],["unary","!",196],["binary","&&",433,434],["binary","&&",433,185],["literal","Send trade-in details"],["ternary",436,339,437],["binary","&&",433,343],["binary","&&",439,348],["member",75,310,true],["member",77,310,true],["binary","??",441,442],["member",75,357,true],["member",77,357,true],["binary","??",444,445],["member",75,227,true],["member",77,227,true],["binary","??",447,448],["member",75,321,true],["member",77,321,true],["binary","??",450,451],["member",75,328,true],["member",77,328,true],["binary","??",453,454],["member",75,332,true],["member",77,332,true],["binary","??",456,457],["unary","!",194],["binary","&&",458,459],["binary","&&",458,185],["literal","Request my tune-up"],["ternary",461,339,462],["binary","&&",458,343],["binary","&&",464,348],["member",83,310,true],["member",85,310,true],["binary","??",466,467],["member",83,357,true],["member",85,357,true],["binary","??",469,470],["member",83,227,true],["member",85,227,true],["binary","??",472,473],["member",83,321,true],["member",85,321,true],["binary","??",475,476],["member",83,328,true],["member",85,328,true],["binary","??",478,479],["member",83,332,true],["member",85,332,true],["binary","??",481,482],["unary","!",188],["binary","&&",483,484],["binary","&&",483,185],["ternary",486,339,376],["binary","&&",483,343],["binary","&&",488,348],["binary","!=",211,213],["ternary",214,140,213],["ternary",214,305,306],["literal","Close quick answers"],["literal","Open quick answers"],["ternary",95,493,494],["ternary",95,305,306],["member",99,310,true],["member",101,310,true],["binary","??",497,498],["member",99,357,true],["member",101,357,true],["binary","??",500,501],["member",99,227,true],["member",101,227,true],["binary","??",503,504],["member",99,321,true],["member",101,321,true],["binary","??",506,507],["member",99,328,true],["member",101,328,true],["binary","??",509,510],["member",99,332,true],["member",101,332,true],["binary","??",512,513],["unary","!",181],["binary","&&",514,515],["binary","&&",514,185],["ternary",517,339,462],["binary","&&",514,343],["binary","&&",519,348],["literal","inventoryCategory"],["member",0,521,true],["literal","all"],["binary","==",522,523],["literal","mui-v-InventoryPage-cat--active"],["ternary",524,525,140],["root","c"],["member",527,6,true],["binary","==",522,528],["ternary",529,525,140],["literal","inventoryCondition"],["member",0,531,true],["binary","==",532,7],["literal","mui-v-InventoryPage-chip--active"],["ternary",533,534,140],["root","tab"],["literal","n"],["member",536,537,true],["literal","heroSlide"],["member",0,539,true],["binary","==",538,540],["literal","mui-v-Home-tab--active"],["ternary",541,542,140],["literal",true],["ternary",544,222,140],["literal",1080],["literal",1122],["literal",1402],["root","constants"],["literal","toroLogo"],["member",549,550,true],["call","assetUrl",[551]],["root","businessProfileUri"],["member",527,227,true],["literal","condition"],["member",116,555,true],["call","capitalize",[556]],["root","u"],["member",558,555,true],["call","capitalize",[559]],["literal","fallTuneUp"],["member",549,561,true],["literal","body"],["member",562,563,true],["literal","finePrint"],["member",562,565,true],["literal","imageAlt"],["member",562,567,true],["literal","kicker"],["member",562,569,true],["literal","offer"],["member",562,571,true],["literal","title"],["member",562,573,true],["literal","fallTuneUpPoints"],["member",549,575,true],["literal","faqParts"],["member",549,577,true],["literal","faqSales"],["member",549,579,true],["literal","faqService"],["member",549,581,true],["literal","heroTabs"],["member",549,583,true],["literal","hours"],["member",549,585,true],["literal","inventoryFilters"],["member",549,587,true],["literal","mowerLines"],["member",549,589,true],["literal","mowerPhoto"],["member",549,591,true],["binary","!=",592,140],["literal","mowerTips"],["member",549,594,true],["literal","navItems"],["member",549,596,true],["member",549,89,true],["literal","shopGroups"],["member",549,599,true],["literal","snowLines"],["member",549,601,true],["literal","snowSale"],["member",549,603,true],["member",604,563,true],["member",604,565,true],["member",604,567,true],["member",604,569,true],["member",604,571,true],["member",604,573,true],["literal","snowSalePoints"],["member",549,611,true],["literal","snowTips"],["member",549,613,true],["binary","!=",551,140],["literal","tradeSteps"],["member",549,616,true],["root","copyrightYear"],["root","inventoryWithCategory"],["literal","categoryId"],["call","filterBy",[619,620,528]],["call","count",[621]],["root","inventoryInStock"],["call","count",[623]],["binary","==",624,113],["literal","No machines are listed online right now. Call (563) 689-3003 or text (563) 320-0072 to ask what’s on the floor."],["literal","inventorySearch"],["member",0,627,true],["call","trim",[628]],["binary","!=",629,140],["literal","No machines match “"],["binary","+",631,629],["literal","” here. Check the model number or name, try All equipment, or call (563) 689-3003."],["binary","+",632,633],["literal","Nothing in this category right now. Try All, or call (563) 689-3003."],["ternary",630,634,635],["ternary",625,626,636],["binary",">",624,113],["binary",">",112,113],["call","count",[619]],["root","itemFeatures"],["call","count",[641]],["binary",">",642,113],["root","itemGallery"],["call","count",[644]],["binary",">",645,113],["root","itemResources"],["call","count",[647]],["binary",">",648,113],["root","itemSpecGroups"],["call","count",[650]],["binary",">",651,113],["binary",">",125,113],["literal","finance.payment"],["call","get",[116,654,113]],["literal","USD"],["literal","symbol"],["call","currency",[655,656,657]],["call","get",[558,654,113]],["call","currency",[659,656,657]],["literal","finance"],["member",116,661,true],["binary","!=",662,117],["member",116,236,true],["binary","!=",664,117],["binary","&&",663,665],["member",116,241,true],["binary","<",664,667],["binary","&&",666,668],["ternary",669,664,667],["call","currency",[670,656,657]],["call","currency",[667,656,657]],["member",558,661,true],["binary","!=",673,117],["member",558,236,true],["binary","!=",675,117],["binary","&&",674,676],["member",558,241,true],["binary","<",675,678],["binary","&&",677,679],["ternary",680,675,678],["call","currency",[681,656,657]],["call","currency",[678,656,657]],["root","event"],["literal","value"],["member",684,685,true],["literal","a"],["member",5,687,true],["literal","label"],["member",5,689,true],["literal","q"],["member",5,691,true],["root","fallTuneUpActive"],["root","feat"],["literal","description"],["member",694,695,true],["member",694,227,true],["member",0,106,true],["list"],["binary","??",698,699],["literal","status"],["literal","available"],["call","filterBy",[700,701,702]],["literal","params"],["member",226,704,true],["member",705,6,true],["call","findBy",[700,6,706]],["member",0,128,true],["binary","??",708,699],["root","inventoryItemWholegoodId"],["call","findBy",[709,6,710]],["root","reviewRating"],["literal",1],["call","fixed",[712,713]],["literal","catalogs"],["member",0,715,true],["binary","??",716,699],["call","pluck",[717,6]],["call","pluck",[717,227]],["call","zip",[718,719]],["call","fromEntries",[720]],["literal","categories"],["member",0,722,true],["binary","??",723,699],["call","pluck",[724,6]],["call","pluck",[724,227]],["call","zip",[725,726]],["call","fromEntries",[727]],["binary","&&",109,114],["binary","&&",109,118],["binary","&&",122,126],["member",199,342,true],["literal","hint"],["member",732,733,true],["binary","||",185,201],["member",343,733,true],["binary","==",642,113],["binary","&&",130,737],["binary","==",651,113],["binary","&&",738,739],["root","g"],["literal","key"],["member",741,742,true],["literal","rows"],["member",741,744,true],["literal","mediaFile.urls.card"],["call","get",[694,746,140]],["binary","!=",747,140],["literal","finance.applyUrl"],["call","get",[116,749,140]],["binary","!=",750,140],["literal","finance.apr"],["call","get",[116,752,113]],["binary","!=",141,140],["literal","finance.name"],["call","get",[116,755,140]],["literal","finance.termMonths"],["call","get",[116,757,113]],["literal","media"],["call","get",[116,759,699]],["literal","mediaFile.urls.page"],["call","get",[116,761,140]],["binary","!=",762,140],["literal","wholegood.catalogId"],["call","get",[116,764,140]],["literal","wholegood.id"],["call","get",[116,766,140]],["literal","wholegood.sku"],["call","get",[116,768,140]],["literal","wholegood.subtitle"],["call","get",[116,770,140]],["binary","!=",771,140],["literal","features"],["call","get",[132,773,699]],["literal","resources"],["call","get",[132,775,699]],["root","m"],["call","get",[777,746,140]],["root","sp"],["literal","display.imperial"],["call","get",[779,780,140]],["member",0,120,true],["literal","[0].places[0].googleMapsLinks.placeUri"],["call","get",[782,783,140]],["literal","[0].places[0].googleMapsUri"],["call","get",[782,785,140]],["binary","||",784,786],["literal","https://www.google.com/maps/search/?api=1&query=Gerardy+Outdoor+Power+103+1st+Ave+Preston+IA+52069"],["binary","||",787,788],["literal","[0].places[0].googleMapsLinks.reviewsUri"],["call","get",[782,790,140]],["binary","||",791,788],["literal","[0].places[0].googleMapsLinks.writeAReviewUri"],["call","get",[782,793,140]],["literal","[0].places[0].rating"],["call","get",[782,795,117]],["literal","[0].places[0].userRatingCount"],["call","get",[782,797,113]],["call","get",[558,746,140]],["binary","!=",799,140],["call","get",[558,768,140]],["binary","!=",801,140],["call","get",[558,227,140]],["literal"," "],["binary","+",803,804],["call","get",[558,770,140]],["binary","+",805,806],["call","contains",[807,801]],["unary","!",808],["binary","&&",802,809],["binary","!=",806,140],["literal","specs"],["call","get",[132,812,699]],["literal","group"],["call","groupRows",[813,814]],["root","h"],["literal","days"],["member",816,817,true],["literal","schema"],["member",816,819,true],["binary","!=",820,117],["binary","==",820,117],["literal","time"],["member",816,823,true],["root","invKeyAccessory"],["root","invKeyAttachment"],["root","invKeyBagger"],["root","invKeyBlower"],["root","invKeyChainsaw"],["root","invKeyCommercial"],["root","invKeyContractor"],["root","invKeyEdger"],["root","invKeyGrandstand"],["root","invKeyHandheld"],["root","invKeyKit"],["root","invKeyPowerClear"],["root","invKeyPowerMax"],["root","invKeySnow"],["root","invKeyTiller"],["root","invKeyTrimmer"],["root","invKeyYardTool"],["root","invKeyZMaster"],["root","inventoryFiltered"],["binary","!=",116,117],["member",116,695,true],["binary","!=",845,140],["literal","Cash price"],["literal","Price"],["ternary",663,847,848],["literal","Financing available"],["literal","Toro financing"],["ternary",663,850,851],["binary","==",662,117],["member",116,585,true],["binary","!=",854,117],["binary",">",854,113],["binary","&&",855,856],["literal"," · "],["call","thousands",[854]],["binary","+",858,859],["literal"," hours"],["binary","+",860,861],["ternary",857,862,140],["member",116,227,true],["member",116,701,true],["literal","sold"],["binary","==",865,866],["literal","stockNumber"],["member",116,868,true],["binary","!=",869,117],["binary","!=",869,140],["binary","&&",870,871],["root","inventoryItemCatalog"],["root","inventoryPriced"],["root","inventoryText"],["literal","href"],["member",224,876,true],["literal","page"],["ternary",230,878,221],["member",224,689,true],["root","limits"],["member",881,198,true],["literal","accept"],["member",882,883,true],["binary","??",884,699],["literal",","],["call","join",[885,886]],["root","line"],["member",888,563,true],["literal","image"],["member",888,890,true],["binary","!=",891,140],["member",888,567,true],["literal","imageFit"],["member",888,894,true],["binary","==",895,170],["ternary",896,172,173],["literal","index"],["member",888,898,true],["member",888,227,true],["literal","segment"],["member",888,901,true],["root","r"],["literal","type"],["member",903,904,true],["literal","resourceLabels"],["member",549,906,true],["literal","More info"],["call","lookup",[905,907,908]],["member",777,695,true],["member",777,227,true],["binary","??",910,911],["literal"," photo "],["binary","+",864,913],["root","mi"],["binary","+",915,713],["binary","+",914,916],["binary","??",912,917],["binary","+",540,713],["literal",3],["call","mod",[919,920]],["literal",2],["binary","+",540,922],["call","mod",[923,920]],["root","reviewCount"],["literal","review"],["call","pluralize",[925,926]],["root","pt"],["member",212,687,true],["member",212,876,true],["binary","!=",930,140],["literal","linkLabel"],["member",212,932,true],["member",212,691,true],["literal","authorAttribution"],["member",903,935,true],["literal","displayName"],["member",936,937,true],["literal","Google user"],["binary","??",938,939],["literal","uri"],["member",936,941,true],["root","reviewsUri"],["binary","??",942,943],["literal","rating"],["member",903,945,true],["literal","relativePublishTimeDescription"],["member",903,947,true],["binary","??",948,140],["member",903,427,true],["literal","★"],["binary","??",946,113],["call","repeat",[951,952]],["call","round",[712]],["call","repeat",[951,954]],["binary","!=",712,117],["literal","accessibility"],["binary","==",228,957],["literal","contact"],["binary","==",228,959],["binary","==",228,357],["literal","faq"],["binary","==",228,962],["literal","home"],["binary","==",228,964],["binary","==",228,106],["literal","inventoryListing"],["binary","==",228,967],["literal","parts"],["binary","==",228,969],["literal","service"],["binary","==",228,971],["literal","query"],["member",226,973,true],["literal","category"],["member",974,975,true],["binary","!=",976,117],["call","pluck",[600,6]],["call","includes",[978,976]],["binary","&&",977,979],["member",235,227,true],["binary","+",981,804],["literal","wholegood"],["member",235,983,true],["member",984,227,true],["binary","??",985,140],["binary","+",982,986],["binary","+",987,804],["literal","subtitle"],["member",984,989,true],["binary","??",990,140],["binary","+",988,991],["binary","+",992,804],["root","categoryNames"],["member",984,620,true],["member",994,995,true],["binary","??",996,140],["binary","+",993,997],["binary","+",998,804],["root","catalogNames"],["literal","catalogId"],["member",984,1001,true],["member",1000,1002,true],["binary","??",1003,140],["binary","+",999,1004],["literal","sku"],["member",984,1006,true],["binary","??",1007,140],["binary","+",982,1008],["binary","+",1009,804],["binary","+",1010,991],["binary","+",1011,804],["member",235,868,true],["binary","??",1013,140],["binary","+",1012,1014],["literal","searchText"],["member",235,1016,true],["root","s"],["member",1018,563,true],["literal","num"],["member",1018,1020,true],["member",1018,573,true],["root","snowSaleActive"],["root","inventoryMatched"],["literal","lowPrice"],["literal","asc"],["call","sortBy",[1024,1025,1026]],["member",779,689,true],["member",779,227,true],["binary","??",1028,1029],["literal","financeDisclosureOpen"],["member",0,1031,true],["literal","Play banners"],["literal","Pause banners"],["ternary",146,1033,1034],["binary","||",146,137],["literal","polite"],["literal","off"],["ternary",1036,1037,1038],["binary","==",540,113],["binary","==",540,713],["binary","==",540,922],["ternary",524,305,306],["call","filterBy",[619,620,522]],["ternary",524,619,1044],["binary","==",522,299],["ternary",529,305,306],["binary","==",532,523],["root","inventoryByCategory"],["call","filterBy",[1049,555,532]],["ternary",1048,1049,1050],["ternary",533,305,306],["binary","!=",628,140],["literal","navOpen"],["member",0,1054,true],["ternary",1055,305,306],["literal","renderedAt"],["member",0,1057,true],["binary","==",1058,117],["literal",2026],["literal",360],["unary","-",1061],["literal","minute"],["call","addTime",[1058,1062,1063]],["literal","year"],["call","datePart",[1064,1065]],["ternary",1059,1060,1066],["literal","2026-11-01T06:00:00Z"],["call","isBefore",[1058,1068]],["binary","||",1059,1069],["root","t"],["member",536,689,true],["binary","&&",541,147],["binary","&&",1073,138],["ternary",541,305,306],["member",536,1020,true],["literal","[0].places[0].reviews"],["call","get",[782,1077,699]],["binary","??",1078,699],["call","take",[1079,920]],["literal",1024],["call","tenant_media__imageUrl",[140,1081]],["call","tenant_media__imageUrl",[159,1081]],["call","tenant_media__imageUrl",[161,1081]],["call","tenant_media__imageUrl",[163,1081]],["call","tenant_media__imageUrl",[165,1081]],["call","tenant_media__imageUrl",[167,1081]],["literal","asset://media/v2/public/sha256/66028fc70105e7006618b1b7dca653b177b7a49e957daeee375537c8f830ddec"],["call","tenant_media__imageUrl",[1088,1081]],["literal","asset://media/v2/public/sha256/ec4f749d83b1c466f4cffccf19485a26063f9b18351b14ccc0c2c580ff1cdcf7"],["call","tenant_media__imageUrl",[1090,419]],["literal","dealerLogo"],["member",549,1092,true],["literal",256],["call","tenant_media__imageUrl",[1093,1094]],["member",562,890,true],["call","tenant_media__imageUrl",[1096,1081]],["literal","heroImage"],["member",549,1098,true],["literal",2048],["call","tenant_media__imageUrl",[1099,1100]],["call","tenant_media__imageUrl",[592,1081]],["literal",768],["call","tenant_media__imageUrl",[592,1103]],["literal","ownerPhoto"],["member",549,1105,true],["call","tenant_media__imageUrl",[1106,1103]],["literal","serviceBanner"],["member",549,1108,true],["call","tenant_media__imageUrl",[1109,1100]],["literal","snowBanner"],["member",549,1111,true],["call","tenant_media__imageUrl",[1112,1100]],["member",604,890,true],["call","tenant_media__imageUrl",[1114,1081]],["call","tenant_media__imageUrl",[891,1103]],["call","thousands",[925]],["member",558,585,true],["call","thousands",[1118]],["call","trim",[313]],["call","trim",[317]],["call","trim",[320]],["binary","!=",1122,140],["call","trim",[331]],["call","length",[1124]],["literal",7],["binary",">=",1125,1126],["binary","&&",1123,1127],["call","trim",[353]],["binary","!=",1129,140],["literal","Preferred day/time: "],["binary","+",1131,1129],["call","trim",[324]],["binary","!=",1133,140],["literal"," | "],["binary","+",1135,1133],["ternary",1134,1136,140],["binary","+",1132,1137],["ternary",1130,1138,1133],["call","trim",[356]],["call","trim",[360]],["call","trim",[363]],["binary","!=",1142,140],["call","trim",[369]],["call","length",[1144]],["binary",">=",1145,1126],["binary","&&",1143,1146],["call","trim",[366]],["call","trim",[382]],["call","trim",[386]],["call","trim",[389]],["binary","!=",1151,140],["call","trim",[395]],["call","length",[1153]],["binary",">=",1154,1126],["binary","&&",1152,1155],["call","trim",[392]],["call","trim",[443]],["call","trim",[446]],["call","trim",[449]],["binary","!=",1160,140],["call","trim",[455]],["call","length",[1162]],["binary",">=",1163,1126],["binary","&&",1161,1164],["call","trim",[452]],["call","trim",[468]],["call","trim",[471]],["call","trim",[474]],["binary","!=",1169,140],["call","trim",[480]],["call","length",[1171]],["binary",">=",1172,1126],["binary","&&",1170,1173],["call","trim",[477]],["call","trim",[499]],["call","trim",[502]],["call","trim",[505]],["binary","!=",1178,140],["call","trim",[511]],["call","length",[1180]],["binary",">=",1181,1126],["binary","&&",1179,1182],["call","trim",[508]],["binary","==",629,140],["binary","==",112,713],["literal"," machine matches “"],["literal"," machines match “"],["ternary",1186,1187,1188],["binary","+",112,1189],["binary","+",1190,629],["literal","”"],["binary","+",1191,1192],["ternary",1185,140,1193],["root","inventorySearchable"],["call","searchBy",[1195,1016,629]],["ternary",1185,1195,1196],["literal","text"],["member",903,1198,true],["member",1199,1198,true],["binary","??",1200,140],["literal",320],["literal","…"],["call","truncate",[1201,1202,1203]],["member",558,695,true],["literal",180],["call","truncate",[1205,1206,1203]],["binary","!=",1205,140],["binary","!=",1118,117],["binary",">",1118,113],["binary","&&",1209,1210],["member",558,6,true],["member",558,227,true],["member",558,868,true],["binary","!=",1214,117],["binary","!=",1214,140],["binary","&&",1215,1216],["root","value"],["root","writeReviewUri"],["binary","!=",1219,140],["root","zMasterSaleActive"]],"expressions":[16,24,32,42,51,59,68,72,80,88,96,104,115,119,127,134,138,144,147,148,150,151,153,155,157,158,160,162,164,166,168,174,177,178,179,180,187,189,191,193,195,203,205,206,207,216,218,220,223,232,234,245,304,307,308,309,313,317,320,324,327,331,41,337,341,349,353,50,356,360,363,366,369,58,374,377,379,382,386,389,392,395,67,400,418,426,430,71,435,438,440,443,446,449,452,455,79,460,463,465,468,471,474,477,480,87,485,487,489,490,491,492,95,495,496,499,502,505,508,511,103,516,518,520,526,530,535,543,545,546,547,548,552,553,528,554,557,560,564,566,568,570,572,574,576,578,580,582,584,586,588,590,593,595,597,598,600,602,605,606,607,608,609,610,612,614,615,617,618,622,637,638,639,640,643,646,649,652,653,658,660,671,672,682,683,686,688,7,690,692,693,221,696,697,703,707,711,714,721,728,729,730,731,201,732,734,185,735,736,740,743,745,747,748,750,751,753,141,754,756,758,760,762,763,765,767,769,771,772,774,776,778,781,789,792,794,796,798,799,800,801,810,806,811,815,818,820,821,822,824,825,826,827,828,829,830,831,832,833,834,835,836,837,838,839,840,841,842,843,623,844,845,846,663,849,852,853,863,864,867,869,872,873,874,111,875,877,879,880,641,644,647,650,887,889,892,893,895,897,899,900,902,909,918,921,924,927,928,929,930,931,213,933,934,940,944,946,949,950,953,955,124,956,943,958,960,961,963,965,966,968,970,972,976,980,1005,1015,1017,1019,1021,1022,1023,1027,1030,143,1032,146,1035,1039,1040,1041,1042,1043,1045,1046,1047,1051,1052,628,1053,1055,1056,1067,1070,1071,1072,538,1074,1075,1076,1080,1082,1083,1084,1085,1086,1087,1089,1091,1095,1097,1101,1102,1104,1107,1110,1113,1115,1116,1117,1119,1120,1121,1122,1128,1124,1139,1140,1141,1142,1147,1148,1144,1149,1150,1151,1156,1157,1153,1158,1159,1160,1165,1166,1162,1167,1168,1169,1174,1175,1171,1176,1177,1178,1183,1184,1180,629,1194,1197,544,1204,1207,1208,674,1211,1212,1213,1214,1217,1218,1219,1220,1221],"spelled":[["$3639076c$valid && !fx.tuneupRequest.pending",36],["$42268c8c$valid && !fx.tuneupRequest.pending",37],["$51381f10$valid && !fx.tuneupRequest.pending",38],["$57f4bd5c$valid && !fx.tuneupRequest.pending",39],["$7258290e$valid && !fx.tuneupRequest.pending",40],["$f049eda0$valid && !fx.tuneupRequest.pending && !fx.tradePhotos.busy",41],["(row.cashPrice != null && row.cashPrice > 0 && row.cashPrice < row.price) ? row.cashPrice : row.price",51],["(row.kAttachment || row.kAccessory || row.kBagger || row.kKit) ? 'attachments' : ((row.kSnow || row.kPowerClear || row.kPowerMax) ? 'snowblowers' : ((row.kBlower || row.kTrimmer || row.kChainsaw || row.kEdger || row.kYardTool || row.kHandheld || row.kTiller) ? 'yardTools' : ((row.kCommercial || row.kContractor || row.kZMaster || row.kGrandstand) ? 'commercialLawn' : 'residentialLawn')))",52],["(state.$inst.commercialDemo['_'].email ?? state.$default.commercialDemo.email)",56],["(state.$inst.commercialDemo['_'].machine ?? state.$default.commercialDemo.machine)",57],["(state.$inst.commercialDemo['_'].name ?? state.$default.commercialDemo.name)",58],["(state.$inst.commercialDemo['_'].notes ?? state.$default.commercialDemo.notes)",59],["(state.$inst.commercialDemo['_'].phone ?? state.$default.commercialDemo.phone)",61],["(state.$inst.commercialDemo['_'].when ?? state.$default.commercialDemo.when)",66],["(state.$inst.equipmentSnowSale['_'].email ?? state.$default.equipmentSnowSale.email)",68],["(state.$inst.equipmentSnowSale['_'].equipment ?? state.$default.equipmentSnowSale.equipment)",69],["(state.$inst.equipmentSnowSale['_'].name ?? state.$default.equipmentSnowSale.name)",70],["(state.$inst.equipmentSnowSale['_'].notes ?? state.$default.equipmentSnowSale.notes)",71],["(state.$inst.equipmentSnowSale['_'].phone ?? state.$default.equipmentSnowSale.phone)",72],["(state.$inst.equipmentTradeIn['_'].email ?? state.$default.equipmentTradeIn.email)",77],["(state.$inst.equipmentTradeIn['_'].mower ?? state.$default.equipmentTradeIn.mower)",78],["(state.$inst.equipmentTradeIn['_'].name ?? state.$default.equipmentTradeIn.name)",79],["(state.$inst.equipmentTradeIn['_'].notes ?? state.$default.equipmentTradeIn.notes)",80],["(state.$inst.equipmentTradeIn['_'].phone ?? state.$default.equipmentTradeIn.phone)",81],["(state.$inst.equipmentTradeIn['_'].photo.ref ?? state.$default.equipmentTradeIn.photo.ref) ? (startsWith(tenant_media__imageUrl((state.$inst.equipmentTradeIn['_'].photo.ref ?? state.$default.equipmentTradeIn.photo.ref), 1600), 'http') ? tenant_media__imageUrl((state.$inst.equipmentTradeIn['_'].photo.ref ?? state.$default.equipmentTradeIn.photo.ref), 1600) : route.origin + tenant_media__imageUrl((state.$inst.equipmentTradeIn['_'].photo.ref ?? state.$default.equipmentTradeIn.photo.ref), 1600)) : ''",85],["(state.$inst.homeOffer['_'].email ?? state.$default.homeOffer.email)",91],["(state.$inst.homeOffer['_'].equipment ?? state.$default.homeOffer.equipment)",92],["(state.$inst.homeOffer['_'].name ?? state.$default.homeOffer.name)",93],["(state.$inst.homeOffer['_'].notes ?? state.$default.homeOffer.notes)",94],["(state.$inst.homeOffer['_'].phone ?? state.$default.homeOffer.phone)",95],["(state.$inst.homeSnowSale['_'].email ?? state.$default.homeSnowSale.email)",100],["(state.$inst.homeSnowSale['_'].equipment ?? state.$default.homeSnowSale.equipment)",101],["(state.$inst.homeSnowSale['_'].name ?? state.$default.homeSnowSale.name)",102],["(state.$inst.homeSnowSale['_'].notes ?? state.$default.homeSnowSale.notes)",103],["(state.$inst.homeSnowSale['_'].phone ?? state.$default.homeSnowSale.phone)",104],["(state.$inst.quickAnswers['_'].active ?? state.$default.quickAnswers.active) == qa.id ? '' : qa.id",110],["(state.$inst.serviceOffer['_'].email ?? state.$default.serviceOffer.email)",115],["(state.$inst.serviceOffer['_'].equipment ?? state.$default.serviceOffer.equipment)",116],["(state.$inst.serviceOffer['_'].name ?? state.$default.serviceOffer.name)",117],["(state.$inst.serviceOffer['_'].notes ?? state.$default.serviceOffer.notes)",118],["(state.$inst.serviceOffer['_'].phone ?? state.$default.serviceOffer.phone)",119],["businessProfileUri",133],["c.id",134],["constants.fallTuneUp.offer",142],["constants.navItems",154],["constants.quickAnswers",155],["constants.snowSale.offer",162],["copyrightYear",168],["event.value",185],["f.id",187],["fallTuneUpActive",190],["false",191],["filterBy(state.inventory ?? [], 'status', 'available')",194],["findBy(state.inventory ?? [], 'id', route.params.id)",195],["findBy(state.wholegoods ?? [], 'id', inventoryItemWholegoodId)",196],["fromEntries(zip(pluck(state.catalogs ?? [], 'id'), pluck(state.catalogs ?? [], 'name')))",198],["fromEntries(zip(pluck(state.categories ?? [], 'id'), pluck(state.categories ?? [], 'name')))",199],["fx.tradePhotos.busy",203],["fx.tuneupRequest.pending",206],["get(inventoryItem, 'media', [])",221],["get(inventoryItem, 'wholegood.catalogId', '')",224],["get(inventoryItem, 'wholegood.id', '')",225],["get(itemWholegood, 'features', [])",229],["get(itemWholegood, 'resources', [])",230],["get(state.reviewSearch, '[0].places[0].googleMapsLinks.placeUri', '') || get(state.reviewSearch, '[0].places[0].googleMapsUri', '') || 'https://www.google.com/maps/search/?api=1&query=Gerardy+Outdoor+Power+103+1st+Ave+Preston+IA+52069'",233],["get(state.reviewSearch, '[0].places[0].googleMapsLinks.reviewsUri', '') || 'https://www.google.com/maps/search/?api=1&query=Gerardy+Outdoor+Power+103+1st+Ave+Preston+IA+52069'",234],["get(state.reviewSearch, '[0].places[0].googleMapsLinks.writeAReviewUri', '')",235],["get(state.reviewSearch, '[0].places[0].rating', null)",236],["get(state.reviewSearch, '[0].places[0].userRatingCount', 0)",237],["groupRows(get(itemWholegood, 'specs', []), 'group')",244],["invKeyAccessory",250],["invKeyAttachment",251],["invKeyBagger",252],["invKeyBlower",253],["invKeyChainsaw",254],["invKeyCommercial",255],["invKeyContractor",256],["invKeyEdger",257],["invKeyGrandstand",258],["invKeyHandheld",259],["invKeyKit",260],["invKeyPowerClear",261],["invKeyPowerMax",262],["invKeySnow",263],["invKeyTiller",264],["invKeyTrimmer",265],["invKeyYardTool",266],["invKeyZMaster",267],["inventoryFiltered",268],["inventoryInStock",269],["inventoryItemCatalog",282],["inventoryPriced",283],["inventoryShown",284],["inventoryText",285],["item.href",286],["itemFeatures",289],["itemGallery",290],["itemResources",291],["itemSpecGroups",292],["mod(state.heroSlide + 1, 3)",304],["mod(state.heroSlide + 2, 3)",305],["pt",307],["qa.href",309],["qa.id",311],["reviewList",321],["reviewsUri",323],["route.query.category",333],["row.name + ' ' + (row.wholegood.name ?? '') + ' ' + (row.wholegood.subtitle ?? '') + ' ' + (categoryNames[row.wholegood.categoryId] ?? '') + ' ' + (catalogNames[row.wholegood.catalogId] ?? '')",335],["row.name + ' ' + (row.wholegood.sku ?? '') + ' ' + (row.wholegood.subtitle ?? '') + ' ' + (row.stockNumber ?? '')",336],["row.searchText",337],["snowSaleActive",341],["sortBy(inventoryMatched, 'lowPrice', 'asc')",342],["state.inventoryCategory == 'all' ? inventoryWithCategory : filterBy(inventoryWithCategory, 'categoryId', state.inventoryCategory)",353],["state.inventoryCondition == 'all' ? inventoryByCategory : filterBy(inventoryByCategory, 'condition', state.inventoryCondition)",356],["state.inventorySearch",358],["state.renderedAt == null ? 2026 : datePart(addTime(state.renderedAt, -360, 'minute'), 'year')",362],["state.renderedAt == null || isBefore(state.renderedAt, '2026-11-01T06:00:00Z')",363],["t",364],["tab.n",366],["take(get(state.reviewSearch, '[0].places[0].reviews', []) ?? [], 3)",370],["trim((state.$inst.commercialDemo['_'].email ?? state.$default.commercialDemo.email))",391],["trim((state.$inst.commercialDemo['_'].machine ?? state.$default.commercialDemo.machine))",392],["trim((state.$inst.commercialDemo['_'].name ?? state.$default.commercialDemo.name))",393],["trim((state.$inst.commercialDemo['_'].name ?? state.$default.commercialDemo.name)) != '' && length(trim((state.$inst.commercialDemo['_'].phone ?? state.$default.commercialDemo.phone))) >= 7",394],["trim((state.$inst.commercialDemo['_'].phone ?? state.$default.commercialDemo.phone))",395],["trim((state.$inst.commercialDemo['_'].when ?? state.$default.commercialDemo.when)) != '' ? 'Preferred day/time: ' + trim((state.$inst.commercialDemo['_'].when ?? state.$default.commercialDemo.when)) + (trim((state.$inst.commercialDemo['_'].notes ?? state.$default.commercialDemo.notes)) != '' ? ' | ' + trim((state.$inst.commercialDemo['_'].notes ?? state.$default.commercialDemo.notes)) : '') : trim((state.$inst.commercialDemo['_'].notes ?? state.$default.commercialDemo.notes))",396],["trim((state.$inst.equipmentSnowSale['_'].email ?? state.$default.equipmentSnowSale.email))",397],["trim((state.$inst.equipmentSnowSale['_'].equipment ?? state.$default.equipmentSnowSale.equipment))",398],["trim((state.$inst.equipmentSnowSale['_'].name ?? state.$default.equipmentSnowSale.name))",399],["trim((state.$inst.equipmentSnowSale['_'].name ?? state.$default.equipmentSnowSale.name)) != '' && length(trim((state.$inst.equipmentSnowSale['_'].phone ?? state.$default.equipmentSnowSale.phone))) >= 7",400],["trim((state.$inst.equipmentSnowSale['_'].notes ?? state.$default.equipmentSnowSale.notes))",401],["trim((state.$inst.equipmentSnowSale['_'].phone ?? state.$default.equipmentSnowSale.phone))",402],["trim((state.$inst.equipmentTradeIn['_'].email ?? state.$default.equipmentTradeIn.email))",403],["trim((state.$inst.equipmentTradeIn['_'].mower ?? state.$default.equipmentTradeIn.mower))",404],["trim((state.$inst.equipmentTradeIn['_'].name ?? state.$default.equipmentTradeIn.name))",405],["trim((state.$inst.equipmentTradeIn['_'].name ?? state.$default.equipmentTradeIn.name)) != '' && length(trim((state.$inst.equipmentTradeIn['_'].phone ?? state.$default.equipmentTradeIn.phone))) >= 7",406],["trim((state.$inst.equipmentTradeIn['_'].notes ?? state.$default.equipmentTradeIn.notes))",407],["trim((state.$inst.equipmentTradeIn['_'].phone ?? state.$default.equipmentTradeIn.phone))",408],["trim((state.$inst.homeOffer['_'].email ?? state.$default.homeOffer.email))",409],["trim((state.$inst.homeOffer['_'].equipment ?? state.$default.homeOffer.equipment))",410],["trim((state.$inst.homeOffer['_'].name ?? state.$default.homeOffer.name))",411],["trim((state.$inst.homeOffer['_'].name ?? state.$default.homeOffer.name)) != '' && length(trim((state.$inst.homeOffer['_'].phone ?? state.$default.homeOffer.phone))) >= 7",412],["trim((state.$inst.homeOffer['_'].notes ?? state.$default.homeOffer.notes))",413],["trim((state.$inst.homeOffer['_'].phone ?? state.$default.homeOffer.phone))",414],["trim((state.$inst.homeSnowSale['_'].email ?? state.$default.homeSnowSale.email))",415],["trim((state.$inst.homeSnowSale['_'].equipment ?? state.$default.homeSnowSale.equipment))",416],["trim((state.$inst.homeSnowSale['_'].name ?? state.$default.homeSnowSale.name))",417],["trim((state.$inst.homeSnowSale['_'].name ?? state.$default.homeSnowSale.name)) != '' && length(trim((state.$inst.homeSnowSale['_'].phone ?? state.$default.homeSnowSale.phone))) >= 7",418],["trim((state.$inst.homeSnowSale['_'].notes ?? state.$default.homeSnowSale.notes))",419],["trim((state.$inst.homeSnowSale['_'].phone ?? state.$default.homeSnowSale.phone))",420],["trim((state.$inst.serviceOffer['_'].email ?? state.$default.serviceOffer.email))",421],["trim((state.$inst.serviceOffer['_'].equipment ?? state.$default.serviceOffer.equipment))",422],["trim((state.$inst.serviceOffer['_'].name ?? state.$default.serviceOffer.name))",423],["trim((state.$inst.serviceOffer['_'].name ?? state.$default.serviceOffer.name)) != '' && length(trim((state.$inst.serviceOffer['_'].phone ?? state.$default.serviceOffer.phone))) >= 7",424],["trim((state.$inst.serviceOffer['_'].notes ?? state.$default.serviceOffer.notes))",425],["trim((state.$inst.serviceOffer['_'].phone ?? state.$default.serviceOffer.phone))",426],["trim(state.inventorySearch)",427],["trim(state.inventorySearch) == '' ? inventorySearchable : searchBy(inventorySearchable, 'searchText', trim(state.inventorySearch))",429],["true",430],["u.id",436],["value",440],["writeReviewUri",441],["zMasterSaleActive",443]],"templates":[[{"type":"text","value":"--mui-v-ProductLineCard-img-bg: "},{"type":"expr","expression":31,"padding":[" "," "]},{"type":"text","value":"; --mui-v-ProductLineCard-img-fit: cover"}],[{"type":"text","value":"--mui-v-ProductLineCard-img-bg: "},{"type":"expr","expression":298,"padding":[" "," "]},{"type":"text","value":"; --mui-v-ProductLineCard-img-fit: "},{"type":"expr","expression":297,"padding":[" "," "]}],[{"type":"text","value":"/listing/"},{"type":"expr","expression":436,"padding":[" "," "]}],[{"type":"text","value":"Banner "},{"type":"expr","expression":369,"padding":[" "," "]},{"type":"text","value":": "},{"type":"expr","expression":365,"padding":[" "," "]}],[{"type":"text","value":"Call (563) 689-3003 about "},{"type":"expr","expression":278,"padding":[" "," "]}],[{"type":"text","value":"Call about "},{"type":"expr","expression":437,"padding":[" "," "]}],[{"type":"text","value":"Financed price "},{"type":"expr","expression":182,"padding":[" "," "]}],[{"type":"text","value":"Financed price "},{"type":"expr","expression":184,"padding":[" "," "]}],[{"type":"text","value":"Model "},{"type":"expr","expression":226,"padding":[" "," "]},{"type":"expr","expression":277,"padding":[" "," "]}],[{"type":"text","value":"Model "},{"type":"expr","expression":240,"padding":[" "," "]}],[{"type":"text","value":"Or "},{"type":"expr","expression":180,"padding":[" "," "]},{"type":"text","value":"/mo with financing"}],[{"type":"text","value":"Specs, features and financing for "},{"type":"expr","expression":437,"padding":[" "," "]}],[{"type":"text","value":"Stock #"},{"type":"expr","expression":280,"padding":[" "," "]}],[{"type":"text","value":"Stock #"},{"type":"expr","expression":438,"padding":[" "," "]}],[{"type":"text","value":"Text (563) 320-0072 about "},{"type":"expr","expression":278,"padding":[" "," "]}],[{"type":"text","value":"Text about "},{"type":"expr","expression":437,"padding":[" "," "]}],[{"type":"text","value":"Your details didn’t send. "},{"type":"expr","expression":208,"padding":[" "," "]},{"type":"text","value":" You can also call (563) 689-3003."}],[{"type":"text","value":"Your photo didn’t upload. "},{"type":"expr","expression":205,"padding":[" "," "]},{"type":"text","value":" You can still send your details without it."}],[{"type":"text","value":"Your request didn’t send. "},{"type":"expr","expression":208,"padding":[" "," "]},{"type":"text","value":" You can also call (563) 689-3003."}],[{"type":"text","value":"mui-v-FaqItem-toggle "},{"type":"expr","expression":42,"padding":[" "," "]}],[{"type":"text","value":"mui-v-FaqItem-toggle "},{"type":"expr","expression":43,"padding":[" "," "]}],[{"type":"text","value":"mui-v-FaqItem-toggle "},{"type":"expr","expression":44,"padding":[" "," "]}],[{"type":"text","value":"mui-v-GoogleReviews-section "},{"type":"expr","expression":48,"padding":[" "," "]}],[{"type":"text","value":"mui-v-GoogleReviews-section "},{"type":"expr","expression":128,"padding":[" "," "]}],[{"type":"text","value":"mui-v-Home-tab "},{"type":"expr","expression":127,"padding":[" "," "]}],[{"type":"text","value":"mui-v-InventoryPage-cat "},{"type":"expr","expression":124,"padding":[" "," "]}],[{"type":"text","value":"mui-v-InventoryPage-cat "},{"type":"expr","expression":125,"padding":[" "," "]}],[{"type":"text","value":"mui-v-InventoryPage-chip "},{"type":"expr","expression":126,"padding":[" "," "]}],[{"type":"text","value":"mui-v-QuickAnswers-chev "},{"type":"expr","expression":45,"padding":[" "," "]}],[{"type":"text","value":"mui-v-QuickAnswers-launch "},{"type":"expr","expression":47,"padding":[" "," "]}],[{"type":"text","value":"mui-v-QuickAnswers-q "},{"type":"expr","expression":46,"padding":[" "," "]}],[{"type":"text","value":"mui-v-SiteHeader-drawerLink "},{"type":"expr","expression":49,"padding":[" "," "]}],[{"type":"text","value":"mui-v-SiteHeader-link "},{"type":"expr","expression":50,"padding":[" "," "]}],[{"type":"expr","expression":0,"padding":[" "," "]}],[{"type":"expr","expression":1,"padding":[" "," "]}],[{"type":"expr","expression":2,"padding":[" "," "]}],[{"type":"expr","expression":3,"padding":[" "," "]}],[{"type":"expr","expression":4,"padding":[" "," "]}],[{"type":"expr","expression":5,"padding":[" "," "]}],[{"type":"expr","expression":6,"padding":[" "," "]}],[{"type":"expr","expression":7,"padding":[" "," "]}],[{"type":"expr","expression":8,"padding":[" "," "]}],[{"type":"expr","expression":9,"padding":[" "," "]}],[{"type":"expr","expression":10,"padding":[" "," "]}],[{"type":"expr","expression":11,"padding":[" "," "]}],[{"type":"expr","expression":12,"padding":[" "," "]}],[{"type":"expr","expression":13,"padding":[" "," "]}],[{"type":"expr","expression":14,"padding":[" "," "]}],[{"type":"expr","expression":15,"padding":[" "," "]}],[{"type":"expr","expression":16,"padding":[" "," "]}],[{"type":"expr","expression":17,"padding":[" "," "]}],[{"type":"expr","expression":18,"padding":[" "," "]}],[{"type":"expr","expression":19,"padding":[" "," "]}],[{"type":"expr","expression":20,"padding":[" "," "]}],[{"type":"expr","expression":21,"padding":[" "," "]},{"type":"text","value":" "}],[{"type":"expr","expression":22,"padding":[" "," "]}],[{"type":"expr","expression":23,"padding":[" "," "]}],[{"type":"expr","expression":24,"padding":[" "," "]}],[{"type":"expr","expression":25,"padding":[" "," "]},{"type":"text","value":" "}],[{"type":"expr","expression":26,"padding":[" "," "]}],[{"type":"expr","expression":27,"padding":[" "," "]}],[{"type":"expr","expression":28,"padding":[" "," "]}],[{"type":"expr","expression":29,"padding":[" "," "]}],[{"type":"expr","expression":30,"padding":[" "," "]}],[{"type":"expr","expression":32,"padding":[" "," "]}],[{"type":"expr","expression":33,"padding":[" "," "]}],[{"type":"expr","expression":34,"padding":[" "," "]},{"type":"text","value":"-email"}],[{"type":"expr","expression":34,"padding":[" "," "]},{"type":"text","value":"-equipment"}],[{"type":"expr","expression":34,"padding":[" "," "]},{"type":"text","value":"-form-title"}],[{"type":"expr","expression":34,"padding":[" "," "]},{"type":"text","value":"-name"}],[{"type":"expr","expression":34,"padding":[" "," "]},{"type":"text","value":"-notes"}],[{"type":"expr","expression":34,"padding":[" "," "]},{"type":"text","value":"-phone"}],[{"type":"expr","expression":34,"padding":[" "," "]},{"type":"text","value":"-title"}],[{"type":"expr","expression":35,"padding":[" "," "]},{"type":"text","value":"-email"}],[{"type":"expr","expression":35,"padding":[" "," "]},{"type":"text","value":"-equipment"}],[{"type":"expr","expression":35,"padding":[" "," "]},{"type":"text","value":"-form-title"}],[{"type":"expr","expression":35,"padding":[" "," "]},{"type":"text","value":"-name"}],[{"type":"expr","expression":35,"padding":[" "," "]},{"type":"text","value":"-notes"}],[{"type":"expr","expression":35,"padding":[" "," "]},{"type":"text","value":"-phone"}],[{"type":"expr","expression":35,"padding":[" "," "]},{"type":"text","value":"-title"}],[{"type":"expr","expression":36,"padding":[" "," "]}],[{"type":"expr","expression":37,"padding":[" "," "]}],[{"type":"expr","expression":38,"padding":[" "," "]}],[{"type":"expr","expression":39,"padding":[" "," "]}],[{"type":"expr","expression":40,"padding":[" "," "]}],[{"type":"expr","expression":41,"padding":[" "," "]}],[{"type":"expr","expression":51,"padding":[" "," "]}],[{"type":"expr","expression":52,"padding":[" "," "]}],[{"type":"expr","expression":53,"padding":[" "," "]}],[{"type":"expr","expression":54,"padding":[" "," "]}],[{"type":"expr","expression":55,"padding":[" "," "]}],[{"type":"expr","expression":56,"padding":[" "," "]}],[{"type":"expr","expression":57,"padding":[" "," "]}],[{"type":"expr","expression":58,"padding":[" "," "]}],[{"type":"expr","expression":59,"padding":[" "," "]}],[{"type":"expr","expression":60,"padding":[" "," "]}],[{"type":"expr","expression":61,"padding":[" "," "]}],[{"type":"expr","expression":62,"padding":[" "," "]}],[{"type":"expr","expression":63,"padding":[" "," "]}],[{"type":"expr","expression":64,"padding":[" "," "]}],[{"type":"expr","expression":65,"padding":[" "," "]}],[{"type":"expr","expression":66,"padding":[" "," "]}],[{"type":"expr","expression":67,"padding":[" "," "]}],[{"type":"expr","expression":68,"padding":[" "," "]}],[{"type":"expr","expression":69,"padding":[" "," "]}],[{"type":"expr","expression":70,"padding":[" "," "]}],[{"type":"expr","expression":71,"padding":[" "," "]}],[{"type":"expr","expression":72,"padding":[" "," "]}],[{"type":"expr","expression":73,"padding":[" "," "]}],[{"type":"expr","expression":74,"padding":[" "," "]}],[{"type":"expr","expression":75,"padding":[" "," "]}],[{"type":"expr","expression":76,"padding":[" "," "]}],[{"type":"expr","expression":77,"padding":[" "," "]}],[{"type":"expr","expression":78,"padding":[" "," "]}],[{"type":"expr","expression":79,"padding":[" "," "]}],[{"type":"expr","expression":80,"padding":[" "," "]}],[{"type":"expr","expression":81,"padding":[" "," "]}],[{"type":"expr","expression":82,"padding":[" "," "]}],[{"type":"expr","expression":83,"padding":[" "," "]}],[{"type":"expr","expression":84,"padding":[" "," "]}],[{"type":"expr","expression":85,"padding":[" "," "]}],[{"type":"expr","expression":86,"padding":[" "," "]}],[{"type":"expr","expression":87,"padding":[" "," "]}],[{"type":"expr","expression":88,"padding":[" "," "]}],[{"type":"expr","expression":89,"padding":[" "," "]}],[{"type":"expr","expression":90,"padding":[" "," "]}],[{"type":"expr","expression":91,"padding":[" "," "]}],[{"type":"expr","expression":92,"padding":[" "," "]}],[{"type":"expr","expression":93,"padding":[" "," "]}],[{"type":"expr","expression":94,"padding":[" "," "]}],[{"type":"expr","expression":95,"padding":[" "," "]}],[{"type":"expr","expression":96,"padding":[" "," "]}],[{"type":"expr","expression":97,"padding":[" "," "]}],[{"type":"expr","expression":98,"padding":[" "," "]}],[{"type":"expr","expression":99,"padding":[" "," "]}],[{"type":"expr","expression":100,"padding":[" "," "]}],[{"type":"expr","expression":101,"padding":[" "," "]}],[{"type":"expr","expression":102,"padding":[" "," "]}],[{"type":"expr","expression":103,"padding":[" "," "]}],[{"type":"expr","expression":104,"padding":[" "," "]}],[{"type":"expr","expression":105,"padding":[" "," "]}],[{"type":"expr","expression":106,"padding":[" "," "]}],[{"type":"expr","expression":107,"padding":[" "," "]}],[{"type":"expr","expression":108,"padding":[" "," "]}],[{"type":"expr","expression":109,"padding":[" "," "]}],[{"type":"expr","expression":110,"padding":[" "," "]}],[{"type":"expr","expression":111,"padding":[" "," "]}],[{"type":"expr","expression":113,"padding":[" "," "]}],[{"type":"expr","expression":114,"padding":[" "," "]}],[{"type":"expr","expression":112,"padding":[" "," "]}],[{"type":"expr","expression":115,"padding":[" "," "]}],[{"type":"expr","expression":116,"padding":[" "," "]}],[{"type":"expr","expression":117,"padding":[" "," "]}],[{"type":"expr","expression":118,"padding":[" "," "]}],[{"type":"expr","expression":119,"padding":[" "," "]}],[{"type":"expr","expression":120,"padding":[" "," "]}],[{"type":"expr","expression":121,"padding":[" "," "]}],[{"type":"expr","expression":122,"padding":[" "," "]}],[{"type":"expr","expression":123,"padding":[" "," "]}],[{"type":"expr","expression":129,"padding":[" "," "]}],[{"type":"expr","expression":130,"padding":[" "," "]}],[{"type":"expr","expression":131,"padding":[" "," "]}],[{"type":"expr","expression":132,"padding":[" "," "]}],[{"type":"expr","expression":133,"padding":[" "," "]}],[{"type":"expr","expression":134,"padding":[" "," "]}],[{"type":"expr","expression":135,"padding":[" "," "]}],[{"type":"expr","expression":136,"padding":[" "," "]}],[{"type":"expr","expression":137,"padding":[" "," "]}],[{"type":"expr","expression":138,"padding":[" "," "]}],[{"type":"expr","expression":139,"padding":[" "," "]}],[{"type":"expr","expression":140,"padding":[" "," "]}],[{"type":"expr","expression":141,"padding":[" "," "]}],[{"type":"expr","expression":142,"padding":[" "," "]}],[{"type":"expr","expression":143,"padding":[" "," "]}],[{"type":"expr","expression":144,"padding":[" "," "]}],[{"type":"expr","expression":145,"padding":[" "," "]}],[{"type":"expr","expression":146,"padding":[" "," "]}],[{"type":"expr","expression":147,"padding":[" "," "]}],[{"type":"expr","expression":148,"padding":[" "," "]}],[{"type":"expr","expression":149,"padding":[" "," "]}],[{"type":"expr","expression":150,"padding":[" "," "]}],[{"type":"expr","expression":151,"padding":[" "," "]}],[{"type":"expr","expression":152,"padding":[" "," "]}],[{"type":"expr","expression":153,"padding":[" "," "]}],[{"type":"expr","expression":154,"padding":[" "," "]}],[{"type":"expr","expression":155,"padding":[" "," "]}],[{"type":"expr","expression":156,"padding":[" "," "]}],[{"type":"expr","expression":157,"padding":[" "," "]}],[{"type":"expr","expression":158,"padding":[" "," "]}],[{"type":"expr","expression":159,"padding":[" "," "]}],[{"type":"expr","expression":160,"padding":[" "," "]}],[{"type":"expr","expression":161,"padding":[" "," "]}],[{"type":"expr","expression":162,"padding":[" "," "]}],[{"type":"expr","expression":163,"padding":[" "," "]}],[{"type":"expr","expression":164,"padding":[" "," "]}],[{"type":"expr","expression":165,"padding":[" "," "]}],[{"type":"expr","expression":166,"padding":[" "," "]}],[{"type":"expr","expression":167,"padding":[" "," "]}],[{"type":"expr","expression":169,"padding":[" "," "]},{"type":"text","value":" in stock"}],[{"type":"expr","expression":170,"padding":[" "," "]}],[{"type":"expr","expression":171,"padding":[" "," "]}],[{"type":"expr","expression":172,"padding":[" "," "]}],[{"type":"expr","expression":173,"padding":[" "," "]},{"type":"text","value":" in stock"}],[{"type":"expr","expression":174,"padding":[" "," "]}],[{"type":"expr","expression":175,"padding":[" "," "]}],[{"type":"expr","expression":176,"padding":[" "," "]}],[{"type":"expr","expression":177,"padding":[" "," "]}],[{"type":"expr","expression":178,"padding":[" "," "]}],[{"type":"expr","expression":179,"padding":[" "," "]}],[{"type":"expr","expression":181,"padding":[" "," "]}],[{"type":"expr","expression":183,"padding":[" "," "]}],[{"type":"expr","expression":185,"padding":[" "," "]}],[{"type":"expr","expression":186,"padding":[" "," "]}],[{"type":"expr","expression":187,"padding":[" "," "]}],[{"type":"expr","expression":187,"padding":[" "," "]},{"type":"text","value":"-a"}],[{"type":"expr","expression":187,"padding":[" "," "]},{"type":"text","value":"-q"}],[{"type":"expr","expression":188,"padding":[" "," "]}],[{"type":"expr","expression":189,"padding":[" "," "]}],[{"type":"expr","expression":190,"padding":[" "," "]}],[{"type":"expr","expression":191,"padding":[" "," "]}],[{"type":"expr","expression":192,"padding":[" "," "]}],[{"type":"expr","expression":193,"padding":[" "," "]}],[{"type":"expr","expression":194,"padding":[" "," "]}],[{"type":"expr","expression":195,"padding":[" "," "]}],[{"type":"expr","expression":196,"padding":[" "," "]}],[{"type":"expr","expression":197,"padding":[" "," "]}],[{"type":"expr","expression":197,"padding":[" "," "]},{"type":"text","value":" out of 5 stars"}],[{"type":"expr","expression":198,"padding":[" "," "]}],[{"type":"expr","expression":199,"padding":[" "," "]}],[{"type":"expr","expression":200,"padding":[" "," "]}],[{"type":"expr","expression":201,"padding":[" "," "]}],[{"type":"expr","expression":202,"padding":[" "," "]}],[{"type":"expr","expression":203,"padding":[" "," "]}],[{"type":"expr","expression":204,"padding":[" "," "]}],[{"type":"expr","expression":207,"padding":[" "," "]}],[{"type":"expr","expression":206,"padding":[" "," "]}],[{"type":"expr","expression":209,"padding":[" "," "]}],[{"type":"expr","expression":210,"padding":[" "," "]}],[{"type":"expr","expression":211,"padding":[" "," "]}],[{"type":"expr","expression":213,"padding":[" "," "]}],[{"type":"expr","expression":212,"padding":[" "," "]}],[{"type":"expr","expression":215,"padding":[" "," "]}],[{"type":"expr","expression":214,"padding":[" "," "]}],[{"type":"expr","expression":218,"padding":[" "," "]}],[{"type":"expr","expression":217,"padding":[" "," "]}],[{"type":"expr","expression":219,"padding":[" "," "]},{"type":"text","value":" · "},{"type":"expr","expression":179,"padding":[" "," "]},{"type":"text","value":"/mo for "},{"type":"expr","expression":220,"padding":[" "," "]},{"type":"text","value":" months at "},{"type":"expr","expression":216,"padding":[" "," "]},{"type":"text","value":"% APR"}],[{"type":"expr","expression":220,"padding":[" "," "]},{"type":"text","value":" months at "},{"type":"expr","expression":216,"padding":[" "," "]},{"type":"text","value":"% APR · "},{"type":"expr","expression":219,"padding":[" "," "]}],[{"type":"expr","expression":221,"padding":[" "," "]}],[{"type":"expr","expression":223,"padding":[" "," "]}],[{"type":"expr","expression":222,"padding":[" "," "]}],[{"type":"expr","expression":224,"padding":[" "," "]}],[{"type":"expr","expression":225,"padding":[" "," "]}],[{"type":"expr","expression":228,"padding":[" "," "]}],[{"type":"expr","expression":227,"padding":[" "," "]}],[{"type":"expr","expression":229,"padding":[" "," "]}],[{"type":"expr","expression":230,"padding":[" "," "]}],[{"type":"expr","expression":231,"padding":[" "," "]}],[{"type":"expr","expression":232,"padding":[" "," "]}],[{"type":"expr","expression":233,"padding":[" "," "]}],[{"type":"expr","expression":234,"padding":[" "," "]}],[{"type":"expr","expression":235,"padding":[" "," "]}],[{"type":"expr","expression":236,"padding":[" "," "]}],[{"type":"expr","expression":237,"padding":[" "," "]}],[{"type":"expr","expression":239,"padding":[" "," "]}],[{"type":"expr","expression":238,"padding":[" "," "]}],[{"type":"expr","expression":241,"padding":[" "," "]}],[{"type":"expr","expression":243,"padding":[" "," "]}],[{"type":"expr","expression":242,"padding":[" "," "]}],[{"type":"expr","expression":244,"padding":[" "," "]}],[{"type":"expr","expression":245,"padding":[" "," "]}],[{"type":"expr","expression":247,"padding":[" "," "]}],[{"type":"expr","expression":248,"padding":[" "," "]}],[{"type":"expr","expression":246,"padding":[" "," "]}],[{"type":"expr","expression":249,"padding":[" "," "]}],[{"type":"expr","expression":270,"padding":[" "," "]}],[{"type":"expr","expression":272,"padding":[" "," "]}],[{"type":"expr","expression":271,"padding":[" "," "]}],[{"type":"expr","expression":274,"padding":[" "," "]}],[{"type":"expr","expression":275,"padding":[" "," "]}],[{"type":"expr","expression":273,"padding":[" "," "]}],[{"type":"expr","expression":276,"padding":[" "," "]}],[{"type":"expr","expression":278,"padding":[" "," "]}],[{"type":"expr","expression":279,"padding":[" "," "]}],[{"type":"expr","expression":281,"padding":[" "," "]}],[{"type":"expr","expression":282,"padding":[" "," "]}],[{"type":"expr","expression":284,"padding":[" "," "]}],[{"type":"expr","expression":286,"padding":[" "," "]}],[{"type":"expr","expression":287,"padding":[" "," "]}],[{"type":"expr","expression":288,"padding":[" "," "]}],[{"type":"expr","expression":289,"padding":[" "," "]}],[{"type":"expr","expression":290,"padding":[" "," "]}],[{"type":"expr","expression":291,"padding":[" "," "]}],[{"type":"expr","expression":292,"padding":[" "," "]}],[{"type":"expr","expression":293,"padding":[" "," "]}],[{"type":"expr","expression":294,"padding":[" "," "]}],[{"type":"expr","expression":295,"padding":[" "," "]}],[{"type":"expr","expression":296,"padding":[" "," "]}],[{"type":"expr","expression":299,"padding":[" "," "]}],[{"type":"expr","expression":300,"padding":[" "," "]}],[{"type":"expr","expression":301,"padding":[" "," "]}],[{"type":"expr","expression":302,"padding":[" "," "]}],[{"type":"expr","expression":303,"padding":[" "," "]}],[{"type":"expr","expression":304,"padding":[" "," "]}],[{"type":"expr","expression":305,"padding":[" "," "]}],[{"type":"expr","expression":307,"padding":[" "," "]}],[{"type":"expr","expression":308,"padding":[" "," "]}],[{"type":"expr","expression":310,"padding":[" "," "]}],[{"type":"expr","expression":309,"padding":[" "," "]}],[{"type":"expr","expression":311,"padding":[" "," "]},{"type":"text","value":"-answer"}],[{"type":"expr","expression":312,"padding":[" "," "]}],[{"type":"expr","expression":313,"padding":[" "," "]}],[{"type":"expr","expression":314,"padding":[" "," "]}],[{"type":"expr","expression":315,"padding":[" "," "]}],[{"type":"expr","expression":316,"padding":[" "," "]},{"type":"text","value":" out of 5 stars"}],[{"type":"expr","expression":317,"padding":[" "," "]}],[{"type":"expr","expression":318,"padding":[" "," "]}],[{"type":"expr","expression":319,"padding":[" "," "]}],[{"type":"expr","expression":320,"padding":[" "," "]}],[{"type":"expr","expression":321,"padding":[" "," "]}],[{"type":"expr","expression":322,"padding":[" "," "]}],[{"type":"expr","expression":323,"padding":[" "," "]}],[{"type":"expr","expression":324,"padding":[" "," "]}],[{"type":"expr","expression":325,"padding":[" "," "]}],[{"type":"expr","expression":326,"padding":[" "," "]}],[{"type":"expr","expression":327,"padding":[" "," "]}],[{"type":"expr","expression":328,"padding":[" "," "]}],[{"type":"expr","expression":329,"padding":[" "," "]}],[{"type":"expr","expression":330,"padding":[" "," "]}],[{"type":"expr","expression":331,"padding":[" "," "]}],[{"type":"expr","expression":332,"padding":[" "," "]}],[{"type":"expr","expression":334,"padding":[" "," "]}],[{"type":"expr","expression":333,"padding":[" "," "]}],[{"type":"expr","expression":335,"padding":[" "," "]}],[{"type":"expr","expression":336,"padding":[" "," "]}],[{"type":"expr","expression":338,"padding":[" "," "]}],[{"type":"expr","expression":339,"padding":[" "," "]}],[{"type":"expr","expression":340,"padding":[" "," "]}],[{"type":"expr","expression":341,"padding":[" "," "]}],[{"type":"expr","expression":342,"padding":[" "," "]}],[{"type":"expr","expression":343,"padding":[" "," "]}],[{"type":"expr","expression":344,"padding":[" "," "]}],[{"type":"expr","expression":345,"padding":[" "," "]}],[{"type":"expr","expression":347,"padding":[" "," "]}],[{"type":"expr","expression":348,"padding":[" "," "]}],[{"type":"expr","expression":346,"padding":[" "," "]}],[{"type":"expr","expression":349,"padding":[" "," "]}],[{"type":"expr","expression":350,"padding":[" "," "]}],[{"type":"expr","expression":351,"padding":[" "," "]}],[{"type":"expr","expression":352,"padding":[" "," "]}],[{"type":"expr","expression":353,"padding":[" "," "]}],[{"type":"expr","expression":354,"padding":[" "," "]}],[{"type":"expr","expression":355,"padding":[" "," "]}],[{"type":"expr","expression":356,"padding":[" "," "]}],[{"type":"expr","expression":357,"padding":[" "," "]}],[{"type":"expr","expression":359,"padding":[" "," "]}],[{"type":"expr","expression":358,"padding":[" "," "]}],[{"type":"expr","expression":361,"padding":[" "," "]}],[{"type":"expr","expression":360,"padding":[" "," "]}],[{"type":"expr","expression":362,"padding":[" "," "]}],[{"type":"expr","expression":363,"padding":[" "," "]}],[{"type":"expr","expression":364,"padding":[" "," "]}],[{"type":"expr","expression":365,"padding":[" "," "]}],[{"type":"expr","expression":367,"padding":[" "," "]}],[{"type":"expr","expression":368,"padding":[" "," "]}],[{"type":"expr","expression":366,"padding":[" "," "]}],[{"type":"expr","expression":369,"padding":[" "," "]}],[{"type":"expr","expression":370,"padding":[" "," "]}],[{"type":"expr","expression":371,"padding":[" "," "]}],[{"type":"expr","expression":372,"padding":[" "," "]}],[{"type":"expr","expression":373,"padding":[" "," "]}],[{"type":"expr","expression":374,"padding":[" "," "]}],[{"type":"expr","expression":375,"padding":[" "," "]}],[{"type":"expr","expression":376,"padding":[" "," "]}],[{"type":"expr","expression":377,"padding":[" "," "]}],[{"type":"expr","expression":378,"padding":[" "," "]}],[{"type":"expr","expression":379,"padding":[" "," "]}],[{"type":"expr","expression":380,"padding":[" "," "]}],[{"type":"expr","expression":381,"padding":[" "," "]}],[{"type":"expr","expression":382,"padding":[" "," "]}],[{"type":"expr","expression":383,"padding":[" "," "]}],[{"type":"expr","expression":384,"padding":[" "," "]}],[{"type":"expr","expression":385,"padding":[" "," "]}],[{"type":"expr","expression":386,"padding":[" "," "]}],[{"type":"expr","expression":387,"padding":[" "," "]}],[{"type":"expr","expression":388,"padding":[" "," "]}],[{"type":"expr","expression":389,"padding":[" "," "]},{"type":"text","value":" "},{"type":"expr","expression":306,"padding":[" "," "]},{"type":"text","value":" on Google"}],[{"type":"expr","expression":390,"padding":[" "," "]},{"type":"text","value":" hours"}],[{"type":"expr","expression":391,"padding":[" "," "]}],[{"type":"expr","expression":392,"padding":[" "," "]}],[{"type":"expr","expression":394,"padding":[" "," "]}],[{"type":"expr","expression":393,"padding":[" "," "]}],[{"type":"expr","expression":395,"padding":[" "," "]}],[{"type":"expr","expression":396,"padding":[" "," "]}],[{"type":"expr","expression":397,"padding":[" "," "]}],[{"type":"expr","expression":398,"padding":[" "," "]}],[{"type":"expr","expression":400,"padding":[" "," "]}],[{"type":"expr","expression":399,"padding":[" "," "]}],[{"type":"expr","expression":401,"padding":[" "," "]}],[{"type":"expr","expression":402,"padding":[" "," "]}],[{"type":"expr","expression":403,"padding":[" "," "]}],[{"type":"expr","expression":404,"padding":[" "," "]}],[{"type":"expr","expression":406,"padding":[" "," "]}],[{"type":"expr","expression":405,"padding":[" "," "]}],[{"type":"expr","expression":407,"padding":[" "," "]}],[{"type":"expr","expression":408,"padding":[" "," "]}],[{"type":"expr","expression":409,"padding":[" "," "]}],[{"type":"expr","expression":410,"padding":[" "," "]}],[{"type":"expr","expression":412,"padding":[" "," "]}],[{"type":"expr","expression":411,"padding":[" "," "]}],[{"type":"expr","expression":413,"padding":[" "," "]}],[{"type":"expr","expression":414,"padding":[" "," "]}],[{"type":"expr","expression":415,"padding":[" "," "]}],[{"type":"expr","expression":416,"padding":[" "," "]}],[{"type":"expr","expression":418,"padding":[" "," "]}],[{"type":"expr","expression":417,"padding":[" "," "]}],[{"type":"expr","expression":419,"padding":[" "," "]}],[{"type":"expr","expression":420,"padding":[" "," "]}],[{"type":"expr","expression":421,"padding":[" "," "]}],[{"type":"expr","expression":422,"padding":[" "," "]}],[{"type":"expr","expression":424,"padding":[" "," "]}],[{"type":"expr","expression":423,"padding":[" "," "]}],[{"type":"expr","expression":425,"padding":[" "," "]}],[{"type":"expr","expression":426,"padding":[" "," "]}],[{"type":"expr","expression":428,"padding":[" "," "]}],[{"type":"expr","expression":429,"padding":[" "," "]}],[{"type":"expr","expression":427,"padding":[" "," "]}],[{"type":"expr","expression":430,"padding":[" "," "]}],[{"type":"expr","expression":431,"padding":[" "," "]}],[{"type":"expr","expression":432,"padding":[" "," "]}],[{"type":"expr","expression":433,"padding":[" "," "]}],[{"type":"expr","expression":434,"padding":[" "," "]}],[{"type":"expr","expression":435,"padding":[" "," "]}],[{"type":"expr","expression":437,"padding":[" "," "]}],[{"type":"expr","expression":439,"padding":[" "," "]}],[{"type":"expr","expression":442,"padding":[" "," "]}],[{"type":"expr","expression":441,"padding":[" "," "]}],[{"type":"expr","expression":443,"padding":[" "," "]}],[{"type":"text","value":"© "},{"type":"expr","expression":168,"padding":[" "," "]},{"type":"text","value":" Gerardy Outdoor Power. All rights reserved."}]]},"state":{"identities":[],"contracts":{"version":null,"invariants":[],"migrations":[]},"analysis":{"version":null,"invariants":[],"migrations":[]},"invariants":[],"migrations":[]},"routes":{"declared":true,"table":[{"pattern":"/","segs":[],"name":"home","chain":["home"],"params":{},"query":{},"guard":null,"redirect":null,"layouts":[],"screen":{"component":"Home"},"warm":false},{"pattern":"/accessibility","segs":["accessibility"],"name":"accessibility","chain":["accessibility"],"params":{},"query":{},"guard":null,"redirect":null,"layouts":[],"screen":{"component":"AccessibilityPage"},"warm":false},{"pattern":"/contact","segs":["contact"],"name":"contact","chain":["contact"],"params":{},"query":{},"guard":null,"redirect":null,"layouts":[],"screen":{"component":"ContactPage"},"warm":false},{"pattern":"/equipment","segs":["equipment"],"name":"equipment","chain":["equipment"],"params":{},"query":{},"guard":null,"redirect":null,"layouts":[],"screen":{"component":"EquipmentPage"},"warm":false},{"pattern":"/faq","segs":["faq"],"name":"faq","chain":["faq"],"params":{},"query":{},"guard":null,"redirect":null,"layouts":[],"screen":{"component":"FaqPage"},"warm":false},{"pattern":"/inventory","segs":["inventory"],"name":"inventory","chain":["inventory"],"params":{},"query":{"category":"string"},"guard":null,"redirect":null,"layouts":[],"screen":{"component":"InventoryPage"},"warm":false},{"pattern":"/listing/:id","segs":["listing",":id"],"name":"inventoryListing","chain":["inventoryListing"],"params":{"id":"string"},"query":{},"guard":null,"redirect":null,"layouts":[],"screen":{"component":"InventoryListingPage","props":{"listingId":"{{ route.params.id }}"}},"warm":false},{"pattern":"/parts","segs":["parts"],"name":"parts","chain":["parts"],"params":{},"query":{},"guard":null,"redirect":null,"layouts":[],"screen":{"component":"PartsPage"},"warm":false},{"pattern":"/service","segs":["service"],"name":"service","chain":["service"],"params":{},"query":{},"guard":null,"redirect":null,"layouts":[],"screen":{"component":"ServicePage"},"warm":false}],"analysis":{"routes":[{"pattern":"/","name":"home","params":{},"query":{},"guard":null,"redirect":null,"layouts":[],"screen":{"component":"Home"},"warm":false,"chain":["home"],"parent":null,"dynamic":false,"shadowedBy":null},{"pattern":"/accessibility","name":"accessibility","params":{},"query":{},"guard":null,"redirect":null,"layouts":[],"screen":{"component":"AccessibilityPage"},"warm":false,"chain":["accessibility"],"parent":null,"dynamic":false,"shadowedBy":null},{"pattern":"/contact","name":"contact","params":{},"query":{},"guard":null,"redirect":null,"layouts":[],"screen":{"component":"ContactPage"},"warm":false,"chain":["contact"],"parent":null,"dynamic":false,"shadowedBy":null},{"pattern":"/equipment","name":"equipment","params":{},"query":{},"guard":null,"redirect":null,"layouts":[],"screen":{"component":"EquipmentPage"},"warm":false,"chain":["equipment"],"parent":null,"dynamic":false,"shadowedBy":null},{"pattern":"/faq","name":"faq","params":{},"query":{},"guard":null,"redirect":null,"layouts":[],"screen":{"component":"FaqPage"},"warm":false,"chain":["faq"],"parent":null,"dynamic":false,"shadowedBy":null},{"pattern":"/inventory","name":"inventory","params":{},"query":{"category":"string"},"guard":null,"redirect":null,"layouts":[],"screen":{"component":"InventoryPage"},"warm":false,"chain":["inventory"],"parent":null,"dynamic":false,"shadowedBy":null},{"pattern":"/listing/:id","name":"inventoryListing","params":{"id":"string"},"query":{},"guard":null,"redirect":null,"layouts":[],"screen":{"component":"InventoryListingPage","props":{"listingId":"{{ route.params.id }}"}},"warm":false,"chain":["inventoryListing"],"parent":null,"dynamic":true,"shadowedBy":null},{"pattern":"/parts","name":"parts","params":{},"query":{},"guard":null,"redirect":null,"layouts":[],"screen":{"component":"PartsPage"},"warm":false,"chain":["parts"],"parent":null,"dynamic":false,"shadowedBy":null},{"pattern":"/service","name":"service","params":{},"query":{},"guard":null,"redirect":null,"layouts":[],"screen":{"component":"ServicePage"},"warm":false,"chain":["service"],"parent":null,"dynamic":false,"shadowedBy":null}],"componentEdges":[{"from":"/","to":"Home","rel":"screen"},{"from":"/accessibility","to":"AccessibilityPage","rel":"screen"},{"from":"/contact","to":"ContactPage","rel":"screen"},{"from":"/equipment","to":"EquipmentPage","rel":"screen"},{"from":"/faq","to":"FaqPage","rel":"screen"},{"from":"/inventory","to":"InventoryPage","rel":"screen"},{"from":"/listing/:id","to":"InventoryListingPage","rel":"screen"},{"from":"/parts","to":"PartsPage","rel":"screen"},{"from":"/service","to":"ServicePage","rel":"screen"}],"guarded":[],"redirects":[],"names":["home","accessibility","contact","equipment","faq","inventory","inventoryListing","parts","service"]},"reachability":{"nodes":[{"pattern":"/","name":"home","params":{},"query":{},"guard":null,"redirect":null,"layouts":[],"screen":{"component":"Home"},"warm":false,"chain":["home"],"parent":null,"dynamic":false,"shadowedBy":null,"deepLinkable":true},{"pattern":"/accessibility","name":"accessibility","params":{},"query":{},"guard":null,"redirect":null,"layouts":[],"screen":{"component":"AccessibilityPage"},"warm":false,"chain":["accessibility"],"parent":null,"dynamic":false,"shadowedBy":null,"deepLinkable":true},{"pattern":"/contact","name":"contact","params":{},"query":{},"guard":null,"redirect":null,"layouts":[],"screen":{"component":"ContactPage"},"warm":false,"chain":["contact"],"parent":null,"dynamic":false,"shadowedBy":null,"deepLinkable":true},{"pattern":"/equipment","name":"equipment","params":{},"query":{},"guard":null,"redirect":null,"layouts":[],"screen":{"component":"EquipmentPage"},"warm":false,"chain":["equipment"],"parent":null,"dynamic":false,"shadowedBy":null,"deepLinkable":true},{"pattern":"/faq","name":"faq","params":{},"query":{},"guard":null,"redirect":null,"layouts":[],"screen":{"component":"FaqPage"},"warm":false,"chain":["faq"],"parent":null,"dynamic":false,"shadowedBy":null,"deepLinkable":true},{"pattern":"/inventory","name":"inventory","params":{},"query":{"category":"string"},"guard":null,"redirect":null,"layouts":[],"screen":{"component":"InventoryPage"},"warm":false,"chain":["inventory"],"parent":null,"dynamic":false,"shadowedBy":null,"deepLinkable":true},{"pattern":"/listing/:id","name":"inventoryListing","params":{"id":"string"},"query":{},"guard":null,"redirect":null,"layouts":[],"screen":{"component":"InventoryListingPage","props":{"listingId":"{{ route.params.id }}"}},"warm":false,"chain":["inventoryListing"],"parent":null,"dynamic":true,"shadowedBy":null,"deepLinkable":true},{"pattern":"/parts","name":"parts","params":{},"query":{},"guard":null,"redirect":null,"layouts":[],"screen":{"component":"PartsPage"},"warm":false,"chain":["parts"],"parent":null,"dynamic":false,"shadowedBy":null,"deepLinkable":true},{"pattern":"/service","name":"service","params":{},"query":{},"guard":null,"redirect":null,"layouts":[],"screen":{"component":"ServicePage"},"warm":false,"chain":["service"],"parent":null,"dynamic":false,"shadowedBy":null,"deepLinkable":true}],"edges":[{"from":null,"to":["home"],"via":"/","dynamic":false},{"from":null,"to":["home","accessibility","contact","equipment","faq","inventory","inventoryListing","parts","service"],"via":"{{ item.href }}","dynamic":true,"repeat":{"as":"item","items":"{{ constants.navItems }}"}},{"from":null,"to":["home","accessibility","contact","equipment","faq","inventory","inventoryListing","parts","service"],"via":"{{ item.href }}","dynamic":true,"repeat":{"as":"item","items":"{{ constants.navItems }}"}},{"from":["home"],"to":["inventory"],"via":"/inventory","dynamic":false},{"from":["home"],"to":["inventory"],"via":"/inventory?category=snowblowers#in-stock","dynamic":false},{"from":["home"],"to":["service"],"via":"/service","dynamic":false},{"from":["home"],"to":["inventory"],"via":"/inventory?category=commercialLawn#in-stock","dynamic":false},{"from":["home"],"to":["inventory"],"via":"/inventory?category=residentialLawn#in-stock","dynamic":false},{"from":["home"],"to":["inventory"],"via":"/inventory?category=snowblowers#in-stock","dynamic":false},{"from":["home"],"to":["service"],"via":"/service","dynamic":false},{"from":["inventory"],"to":["inventoryListing"],"via":"/listing/{{ u.id }}","dynamic":true,"repeat":{"as":"u","items":"{{ inventoryShown }}"}},{"from":["inventory"],"to":["inventoryListing"],"via":"/listing/{{ u.id }}","dynamic":true,"repeat":{"as":"u","items":"{{ inventoryShown }}"}},{"from":["inventory"],"to":["inventoryListing"],"via":"/listing/{{ u.id }}","dynamic":true,"repeat":{"as":"u","items":"{{ inventoryShown }}"}},{"from":["inventoryListing"],"to":["inventory"],"via":"/inventory","dynamic":false},{"from":["inventoryListing"],"to":["inventory"],"via":"/inventory","dynamic":false},{"from":null,"to":["home","accessibility","contact","equipment","faq","inventory","inventoryListing","parts","service"],"via":"{{ item.href }}","dynamic":true,"repeat":{"as":"item","items":"{{ constants.navItems }}"}},{"from":null,"to":["accessibility"],"via":"/accessibility","dynamic":false},{"from":null,"to":["home","accessibility","contact","equipment","faq","inventory","inventoryListing","parts","service"],"via":"{{ qa.href }}","dynamic":true,"repeat":{"as":"qa","items":"{{ constants.quickAnswers }}"}}],"componentEdges":[{"from":"/","to":"Home","rel":"screen"},{"from":"/accessibility","to":"AccessibilityPage","rel":"screen"},{"from":"/contact","to":"ContactPage","rel":"screen"},{"from":"/equipment","to":"EquipmentPage","rel":"screen"},{"from":"/faq","to":"FaqPage","rel":"screen"},{"from":"/inventory","to":"InventoryPage","rel":"screen"},{"from":"/listing/:id","to":"InventoryListingPage","rel":"screen"},{"from":"/parts","to":"PartsPage","rel":"screen"},{"from":"/service","to":"ServicePage","rel":"screen"}],"entry":"home","reachable":["home","accessibility","contact","equipment","faq","inventory","inventoryListing","parts","service"],"orphans":[],"deadEnds":[],"guarded":[],"summary":{"routes":9,"reachable":9,"orphans":0,"deadEnds":0,"guarded":0,"edges":18}}},"head":{"base":{"og":{},"twitter":{},"meta":[],"links":[],"title":"Gerardy Outdoor Power","description":"Gerardy Outdoor Power in Preston, Iowa — authorized Toro dealer for lawn mowers and snow blowers, with factory-trained service, repairs and genuine Toro parts. Call (563) 689-3003.","lang":"en","viewport":"width=device-width, initial-scale=1","colorScheme":"light dark"},"baseFields":["colorScheme","description","lang","title","viewport"],"routes":[{"pattern":"/accessibility","name":"accessibility","head":{"og":{},"twitter":{},"meta":[],"links":[],"title":"Accessibility Statement · Gerardy Outdoor Power, Preston IA","description":"Gerardy Outdoor Power’s commitment to an accessible website, and how to get help: call (563) 689-3003."}},{"pattern":"/contact","name":"contact","head":{"og":{},"twitter":{},"meta":[],"links":[],"title":"Contact & Location · Gerardy Outdoor Power, Preston IA","description":"Gerardy Outdoor Power, 103 1st Ave, Preston, IA 52069. Call (563) 689-3003. Open Mon–Thu 7–5, Fri 7–4."}},{"pattern":"/equipment","name":"equipment","head":{"og":{},"twitter":{},"meta":[],"links":[],"title":"Toro Mowers & Snow Blowers · Gerardy Outdoor Power, Preston IA","description":"Toro Recycler, TimeCutter and Titan mowers and Power Clear and Power Max snow blowers, set up and tested at Gerardy Outdoor Power in Preston, Iowa."}},{"pattern":"/faq","name":"faq","head":{"og":{},"twitter":{},"meta":[],"links":[],"title":"Toro FAQ · Gerardy Outdoor Power, Preston IA","description":"Answers about buying, financing, servicing and finding parts for Toro mowers and snow blowers at Gerardy Outdoor Power, your authorized Toro dealer in Preston, Iowa."}},{"pattern":"/inventory","name":"inventory","head":{"og":{},"twitter":{},"meta":[],"links":[],"title":"In-Stock Toro Inventory · Gerardy Outdoor Power, Preston IA","description":"Browse in-stock Toro mowers and snow blowers at Gerardy Outdoor Power in Preston, Iowa. Call (563) 689-3003 or text (563) 320-0072."}},{"pattern":"/listing/:id","name":"inventoryListing","head":{"og":{},"twitter":{},"meta":[],"links":[],"title":"Toro Equipment Specs & Financing · Gerardy Outdoor Power","description":"Specs, features, price and financing for in-stock Toro equipment at Gerardy Outdoor Power in Preston, Iowa. Call (563) 689-3003."}},{"pattern":"/parts","name":"parts","head":{"og":{},"twitter":{},"meta":[],"links":[],"title":"Parts & Maintenance · Gerardy Outdoor Power, Preston IA","description":"Genuine Toro OEM parts and seasonal maintenance help for mowers and snow blowers at Gerardy Outdoor Power in Preston, Iowa."}},{"pattern":"/service","name":"service","head":{"og":{},"twitter":{},"meta":[],"links":[],"title":"Service & Repair · Gerardy Outdoor Power, Preston IA","description":"Master Service Dealer in Preston, Iowa: Toro small engine diagnostics, seasonal tune-ups, blade sharpening, carburetor rebuilds and warranty repairs."}}]},"resume":{"events":["change","click","input","keydown","submit"],"hasUse":true},"triggers":{"decls":[],"attachments":{"clock":[],"commit":[],"inbox":[],"durable-schedule":[]},"durableCount":0,"durableSchedules":[]},"agents":{"decls":[],"declared":false,"webSearchGranted":false},"motion":{"structural":{"exit":[],"move":[]},"runtime":[]},"dataDemand":{"bindings":[{"slot":"catalogs","collection":"catalogs","key":"id","name":"catalogs","source":"opehub","live":false,"access":{"read":[{"actors":["visitor"]}]},"scopes":{},"fields":{"id":{"type":"string","optional":false},"name":{"type":"string","optional":false},"weight":{"type":"number","optional":false}},"mutations":{},"paged":false,"notify":{"ok":null,"problem":"silent"}},{"slot":"categories","collection":"categories","key":"id","name":"categories","source":"opehub","live":false,"access":{"read":[{"actors":["visitor"]}]},"scopes":{},"fields":{"id":{"type":"string","optional":false},"mediaFile":{"type":"object","optional":true},"name":{"type":"string","optional":false},"weight":{"type":"number","optional":false}},"mutations":{},"paged":false,"notify":{"ok":null,"problem":"silent"}},{"slot":"inventory","collection":"inventory","key":"id","name":"inventory","source":"opehub","live":false,"access":{"read":[{"actors":["visitor"]}]},"scopes":{},"fields":{"cashPrice":{"type":"number","optional":true},"condition":{"type":"string","optional":false},"description":{"type":"string","optional":false},"finance":{"type":"object","optional":true},"hours":{"type":"number","optional":true},"id":{"type":"string","optional":false},"media":{"type":"array","optional":false},"mediaFile":{"type":"object","optional":true},"name":{"type":"string","optional":false},"price":{"type":"number","optional":false},"status":{"type":"string","optional":false},"stockNumber":{"type":"string","optional":true},"wholegood":{"type":"object","optional":false}},"mutations":{},"paged":false,"notify":{"ok":null,"problem":"silent"}},{"slot":"reviewSearch","collection":"searchText","key":"id","name":"reviewSearch","source":"googleMaps","query":{"languageCode":"en","maxResultCount":1,"textQuery":"Gerardy Outdoor Power, 103 1st Ave, Preston, IA 52069"},"live":false,"access":{"read":[{"actors":["visitor"]}]},"scopes":{},"fields":{"places":{"type":"array","optional":true},"searchUri":{"type":"string","optional":true}},"mutations":{},"paged":false,"notify":{"ok":null,"problem":"silent"}},{"slot":"tuneupRequest","collection":"messages","key":"id","name":"tuneupRequest","source":"formEmail","live":false,"access":{"read":[{"actors":["visitor"]}],"create":[{"actors":["visitor"]}]},"scopes":{},"fields":{"email":{"type":"string","optional":true},"equipment":{"type":"string","optional":true},"id":{"type":"string","optional":false},"message":{"type":"string","optional":true},"name":{"type":"string","optional":false},"offer":{"type":"string","optional":false},"phone":{"type":"string","optional":false},"photo":{"type":"string","optional":true}},"mutations":{"create":{"fields":["name","phone","email","equipment","message","offer","photo"],"required":[]}},"paged":false,"notify":{"ok":null,"problem":"silent"}},{"slot":"wholegoods","collection":"wholegoods","key":"id","name":"wholegoods","source":"opehub","query":{"catalog":"{{ inventoryItemCatalog }}"},"live":false,"access":{"read":[{"actors":["visitor"]}]},"scopes":{},"fields":{"features":{"type":"array","optional":false},"id":{"type":"string","optional":false},"name":{"type":"string","optional":false},"resources":{"type":"array","optional":false},"sku":{"type":"string","optional":false},"specs":{"type":"array","optional":false},"subtitle":{"type":"string","optional":true}},"mutations":{},"paged":false,"notify":{"ok":null,"problem":"silent"}}],"computed":[{"cell":"businessProfileUri","data":["reviewSearch"],"computed":[],"conservative":false},{"cell":"catalogNames","data":["catalogs"],"computed":[],"conservative":false},{"cell":"categoryNames","data":["categories"],"computed":[],"conservative":false},{"cell":"copyrightYear","data":[],"computed":[],"conservative":false},{"cell":"fallTuneUpActive","data":[],"computed":[],"conservative":false},{"cell":"invKeyAccessory","data":[],"computed":["invKeyAttachment"],"conservative":false},{"cell":"invKeyAttachment","data":[],"computed":["invKeyTiller"],"conservative":false},{"cell":"invKeyBagger","data":[],"computed":["invKeyAccessory"],"conservative":false},{"cell":"invKeyBlower","data":[],"computed":["invKeyGrandstand"],"conservative":false},{"cell":"invKeyChainsaw","data":[],"computed":["invKeyTrimmer"],"conservative":false},{"cell":"invKeyCommercial","data":[],"computed":["invKeyPowerMax"],"conservative":false},{"cell":"invKeyContractor","data":[],"computed":["invKeyCommercial"],"conservative":false},{"cell":"invKeyEdger","data":[],"computed":["invKeyChainsaw"],"conservative":false},{"cell":"invKeyGrandstand","data":[],"computed":["invKeyZMaster"],"conservative":false},{"cell":"invKeyHandheld","data":[],"computed":["invKeyYardTool"],"conservative":false},{"cell":"invKeyKit","data":[],"computed":["invKeyBagger"],"conservative":false},{"cell":"invKeyPowerClear","data":[],"computed":["invKeySnow"],"conservative":false},{"cell":"invKeyPowerMax","data":[],"computed":["invKeyPowerClear"],"conservative":false},{"cell":"invKeySnow","data":[],"computed":["inventoryText"],"conservative":false},{"cell":"invKeyTiller","data":[],"computed":["invKeyHandheld"],"conservative":false},{"cell":"invKeyTrimmer","data":[],"computed":["invKeyBlower"],"conservative":false},{"cell":"invKeyYardTool","data":[],"computed":["invKeyEdger"],"conservative":false},{"cell":"invKeyZMaster","data":[],"computed":["invKeyContractor"],"conservative":false},{"cell":"inventoryByCategory","data":[],"computed":["inventoryWithCategory"],"conservative":false},{"cell":"inventoryFiltered","data":[],"computed":["inventoryByCategory"],"conservative":false},{"cell":"inventoryInStock","data":["inventory"],"computed":[],"conservative":false},{"cell":"inventoryItem","data":["inventory"],"computed":[],"conservative":false},{"cell":"inventoryItemCatalog","data":[],"computed":["inventoryItem"],"conservative":false},{"cell":"inventoryItemWholegoodId","data":[],"computed":["inventoryItem"],"conservative":false},{"cell":"inventoryMatched","data":[],"computed":["inventorySearchable"],"conservative":false},{"cell":"inventoryPriced","data":[],"computed":["inventoryFiltered"],"conservative":false},{"cell":"inventorySearchable","data":[],"computed":["inventoryPriced"],"conservative":false},{"cell":"inventoryShown","data":[],"computed":["inventoryMatched"],"conservative":false},{"cell":"inventoryText","data":[],"computed":["catalogNames","categoryNames","inventoryInStock"],"conservative":false},{"cell":"inventoryWithCategory","data":[],"computed":["invKeyKit"],"conservative":false},{"cell":"itemFeatures","data":[],"computed":["itemWholegood"],"conservative":false},{"cell":"itemGallery","data":[],"computed":["inventoryItem"],"conservative":false},{"cell":"itemResources","data":[],"computed":["itemWholegood"],"conservative":false},{"cell":"itemSpecGroups","data":[],"computed":["itemWholegood"],"conservative":false},{"cell":"itemWholegood","data":["wholegoods"],"computed":["inventoryItemWholegoodId"],"conservative":false},{"cell":"reviewCount","data":["reviewSearch"],"computed":[],"conservative":false},{"cell":"reviewList","data":["reviewSearch"],"computed":[],"conservative":false},{"cell":"reviewRating","data":["reviewSearch"],"computed":[],"conservative":false},{"cell":"reviewsUri","data":["reviewSearch"],"computed":[],"conservative":false},{"cell":"snowSaleActive","data":[],"computed":[],"conservative":false},{"cell":"writeReviewUri","data":["reviewSearch"],"computed":[],"conservative":false},{"cell":"zMasterSaleActive","data":[],"computed":[],"conservative":false}],"queries":[{"slot":"catalogs","data":[]},{"slot":"categories","data":[]},{"slot":"inventory","data":[]},{"slot":"reviewSearch","data":[]},{"slot":"tuneupRequest","data":[]},{"slot":"wholegoods","data":["inventory"]}],"standing":[],"triggers":[],"agents":[]},"scope":{"computed":{"cells":{"businessProfileUri":"{{ get(state.reviewSearch, '[0].places[0].googleMapsLinks.placeUri', '') || get(state.reviewSearch, '[0].places[0].googleMapsUri', '') || 'https://www.google.com/maps/search/?api=1&query=Gerardy+Outdoor+Power+103+1st+Ave+Preston+IA+52069' }}","catalogNames":"{{ fromEntries(zip(pluck(state.catalogs ?? [], 'id'), pluck(state.catalogs ?? [], 'name'))) }}","categoryNames":"{{ fromEntries(zip(pluck(state.categories ?? [], 'id'), pluck(state.categories ?? [], 'name'))) }}","copyrightYear":"{{ state.renderedAt == null ? 2026 : datePart(addTime(state.renderedAt, -360, 'minute'), 'year') }}","fallTuneUpActive":"{{ state.renderedAt == null || isBefore(state.renderedAt, '2026-11-01T06:00:00Z') }}","invKeyAccessory":{"args":{"p":"accessor","s":"$row.searchText"},"fn":"contains","over":{"as":"row","items":"$invKeyAttachment"},"set":"kAccessory"},"invKeyAttachment":{"args":{"p":"attachment","s":"$row.searchText"},"fn":"contains","over":{"as":"row","items":"$invKeyTiller"},"set":"kAttachment"},"invKeyBagger":{"args":{"p":"bagger","s":"$row.searchText"},"fn":"contains","over":{"as":"row","items":"$invKeyAccessory"},"set":"kBagger"},"invKeyBlower":{"args":{"p":"blower","s":"$row.searchText"},"fn":"contains","over":{"as":"row","items":"$invKeyGrandstand"},"set":"kBlower"},"invKeyChainsaw":{"args":{"p":"chainsaw","s":"$row.searchText"},"fn":"contains","over":{"as":"row","items":"$invKeyTrimmer"},"set":"kChainsaw"},"invKeyCommercial":{"args":{"p":"commercial","s":"$row.searchText"},"fn":"contains","over":{"as":"row","items":"$invKeyPowerMax"},"set":"kCommercial"},"invKeyContractor":{"args":{"p":"contractor","s":"$row.searchText"},"fn":"contains","over":{"as":"row","items":"$invKeyCommercial"},"set":"kContractor"},"invKeyEdger":{"args":{"p":"edger","s":"$row.searchText"},"fn":"contains","over":{"as":"row","items":"$invKeyChainsaw"},"set":"kEdger"},"invKeyGrandstand":{"args":{"p":"grandstand","s":"$row.searchText"},"fn":"contains","over":{"as":"row","items":"$invKeyZMaster"},"set":"kGrandstand"},"invKeyHandheld":{"args":{"p":"handheld","s":"$row.searchText"},"fn":"contains","over":{"as":"row","items":"$invKeyYardTool"},"set":"kHandheld"},"invKeyKit":{"args":{"p":" kit","s":"$row.searchText"},"fn":"contains","over":{"as":"row","items":"$invKeyBagger"},"set":"kKit"},"invKeyPowerClear":{"args":{"p":"power clear","s":"$row.searchText"},"fn":"contains","over":{"as":"row","items":"$invKeySnow"},"set":"kPowerClear"},"invKeyPowerMax":{"args":{"p":"power max","s":"$row.searchText"},"fn":"contains","over":{"as":"row","items":"$invKeyPowerClear"},"set":"kPowerMax"},"invKeySnow":{"args":{"p":"snow","s":"$row.searchText"},"fn":"contains","over":{"as":"row","items":"$inventoryText"},"set":"kSnow"},"invKeyTiller":{"args":{"p":"tiller","s":"$row.searchText"},"fn":"contains","over":{"as":"row","items":"$invKeyHandheld"},"set":"kTiller"},"invKeyTrimmer":{"args":{"p":"trimmer","s":"$row.searchText"},"fn":"contains","over":{"as":"row","items":"$invKeyBlower"},"set":"kTrimmer"},"invKeyYardTool":{"args":{"p":"yard tool","s":"$row.searchText"},"fn":"contains","over":{"as":"row","items":"$invKeyEdger"},"set":"kYardTool"},"invKeyZMaster":{"args":{"p":"z master","s":"$row.searchText"},"fn":"contains","over":{"as":"row","items":"$invKeyContractor"},"set":"kZMaster"},"inventoryByCategory":"{{ state.inventoryCategory == 'all' ? inventoryWithCategory : filterBy(inventoryWithCategory, 'categoryId', state.inventoryCategory) }}","inventoryFiltered":"{{ state.inventoryCondition == 'all' ? inventoryByCategory : filterBy(inventoryByCategory, 'condition', state.inventoryCondition) }}","inventoryInStock":"{{ filterBy(state.inventory ?? [], 'status', 'available') }}","inventoryItem":"{{ findBy(state.inventory ?? [], 'id', route.params.id) }}","inventoryItemCatalog":"{{ get(inventoryItem, 'wholegood.catalogId', '') }}","inventoryItemWholegoodId":"{{ get(inventoryItem, 'wholegood.id', '') }}","inventoryMatched":"{{ trim(state.inventorySearch) == '' ? inventorySearchable : searchBy(inventorySearchable, 'searchText', trim(state.inventorySearch)) }}","inventoryPriced":{"expr":"{{ (row.cashPrice != null && row.cashPrice > 0 && row.cashPrice < row.price) ? row.cashPrice : row.price }}","over":{"as":"row","items":"$inventoryFiltered"},"set":"lowPrice"},"inventorySearchable":{"expr":"{{ row.name + ' ' + (row.wholegood.sku ?? '') + ' ' + (row.wholegood.subtitle ?? '') + ' ' + (row.stockNumber ?? '') }}","over":{"as":"row","items":"$inventoryPriced"},"set":"searchText"},"inventoryShown":"{{ sortBy(inventoryMatched, 'lowPrice', 'asc') }}","inventoryText":{"args":{"s":"$value"},"expr":"{{ row.name + ' ' + (row.wholegood.name ?? '') + ' ' + (row.wholegood.subtitle ?? '') + ' ' + (categoryNames[row.wholegood.categoryId] ?? '') + ' ' + (catalogNames[row.wholegood.catalogId] ?? '') }}","fn":"lower","over":{"as":"row","items":"$inventoryInStock"},"set":"searchText"},"inventoryWithCategory":{"expr":"{{ (row.kAttachment || row.kAccessory || row.kBagger || row.kKit) ? 'attachments' : ((row.kSnow || row.kPowerClear || row.kPowerMax) ? 'snowblowers' : ((row.kBlower || row.kTrimmer || row.kChainsaw || row.kEdger || row.kYardTool || row.kHandheld || row.kTiller) ? 'yardTools' : ((row.kCommercial || row.kContractor || row.kZMaster || row.kGrandstand) ? 'commercialLawn' : 'residentialLawn'))) }}","over":{"as":"row","items":"$invKeyKit"},"set":"categoryId"},"itemFeatures":"{{ get(itemWholegood, 'features', []) }}","itemGallery":"{{ get(inventoryItem, 'media', []) }}","itemResources":"{{ get(itemWholegood, 'resources', []) }}","itemSpecGroups":"{{ groupRows(get(itemWholegood, 'specs', []), 'group') }}","itemWholegood":"{{ findBy(state.wholegoods ?? [], 'id', inventoryItemWholegoodId) }}","reviewCount":"{{ get(state.reviewSearch, '[0].places[0].userRatingCount', 0) }}","reviewList":"{{ take(get(state.reviewSearch, '[0].places[0].reviews', []) ?? [], 3) }}","reviewRating":"{{ get(state.reviewSearch, '[0].places[0].rating', null) }}","reviewsUri":"{{ get(state.reviewSearch, '[0].places[0].googleMapsLinks.reviewsUri', '') || 'https://www.google.com/maps/search/?api=1&query=Gerardy+Outdoor+Power+103+1st+Ave+Preston+IA+52069' }}","snowSaleActive":"{{ state.renderedAt == null || isBefore(state.renderedAt, '2026-11-01T06:00:00Z') }}","writeReviewUri":"{{ get(state.reviewSearch, '[0].places[0].googleMapsLinks.writeAReviewUri', '') }}","zMasterSaleActive":"{{ state.renderedAt == null || isBefore(state.renderedAt, '2026-11-01T06:00:00Z') }}","$7258290e$valid":"{{ trim((state.$inst.homeOffer['_'].name ?? state.$default.homeOffer.name)) != '' && length(trim((state.$inst.homeOffer['_'].phone ?? state.$default.homeOffer.phone))) >= 7 }}","$42268c8c$valid":"{{ trim((state.$inst.homeSnowSale['_'].name ?? state.$default.homeSnowSale.name)) != '' && length(trim((state.$inst.homeSnowSale['_'].phone ?? state.$default.homeSnowSale.phone))) >= 7 }}","$51381f10$valid":"{{ trim((state.$inst.equipmentSnowSale['_'].name ?? state.$default.equipmentSnowSale.name)) != '' && length(trim((state.$inst.equipmentSnowSale['_'].phone ?? state.$default.equipmentSnowSale.phone))) >= 7 }}","$f049eda0$valid":"{{ trim((state.$inst.equipmentTradeIn['_'].name ?? state.$default.equipmentTradeIn.name)) != '' && length(trim((state.$inst.equipmentTradeIn['_'].phone ?? state.$default.equipmentTradeIn.phone))) >= 7 }}","$57f4bd5c$valid":"{{ trim((state.$inst.commercialDemo['_'].name ?? state.$default.commercialDemo.name)) != '' && length(trim((state.$inst.commercialDemo['_'].phone ?? state.$default.commercialDemo.phone))) >= 7 }}","$3639076c$valid":"{{ trim((state.$inst.serviceOffer['_'].name ?? state.$default.serviceOffer.name)) != '' && length(trim((state.$inst.serviceOffer['_'].phone ?? state.$default.serviceOffer.phone))) >= 7 }}"},"order":["businessProfileUri","catalogNames","categoryNames","copyrightYear","fallTuneUpActive","inventoryInStock","inventoryItem","inventoryItemCatalog","inventoryItemWholegoodId","inventoryText","invKeySnow","invKeyPowerClear","invKeyPowerMax","invKeyCommercial","invKeyContractor","invKeyZMaster","invKeyGrandstand","invKeyBlower","invKeyTrimmer","invKeyChainsaw","invKeyEdger","invKeyYardTool","invKeyHandheld","invKeyTiller","invKeyAttachment","invKeyAccessory","invKeyBagger","invKeyKit","inventoryWithCategory","inventoryByCategory","inventoryFiltered","inventoryPriced","inventorySearchable","inventoryMatched","inventoryShown","itemGallery","itemWholegood","itemFeatures","itemResources","itemSpecGroups","reviewCount","reviewList","reviewRating","reviewsUri","snowSaleActive","writeReviewUri","zMasterSaleActive"]},"constants":{"dealerLogo":"asset://media/v2/public/sha256/d9d62392d124fc2d1fa61110ad53f838b0612fc91240449ac9bc1c8c679a83cf","fallTuneUp":{"body":"Get your mower serviced before it goes into storage. Book a full fall tune-up in October and we’ll pick it up and bring it back for free.","finePrint":"*Valid 10/1/26–10/31/26. Tax additional. Free pickup & delivery valid within our standard radius of dealership with purchase of a full fall tune-up. Parts, fluids, and additional repairs billed separately. Limited time offer. Contact us for details.","image":"asset://media/v2/public/sha256/b2a27311b6a1f50bcade068b44bbad36e0521d90cdd02b84d6b72865127d728a","imageAlt":"Fall Tune-Up Specials on lawn mowers at Gerardy Outdoor Power, 103 1st Ave, Preston: 12-point inspection, book now, and free pickup and delivery this month only. A red Toro zero-turn mower in a shop garage.","kicker":"This month only · Oct 1–31, 2026","offer":"Fall Tune-Up Special (Oct 2026)","title":"Fall Tune‑Up Specials on Lawn Mowers"},"fallTuneUpPoints":["12-point inspection","Free pickup & delivery with a full fall tune-up","Factory-trained service right here in Preston"],"faqParts":[{"a":"Yes. We stock authentic Toro OEM blades, drive belts, air filters, fuel filters, spark plugs, shear pins, and scraper bars. To check part availability, call our parts counter at (563) 689-3003 with your equipment model and serial number.","id":"faq-oem-parts","q":"Do you sell genuine Toro OEM replacement parts?"},{"a":"Our shop is based in Preston, IA. We regularly provide equipment sales, repair, and parts support to homeowners, farmers, and commercial contractors throughout Jackson, Clinton, and Dubuque Counties, including Maquoketa, Bellevue, Clinton, DeWitt, and Miles.","id":"faq-areas","q":"What areas does Gerardy Outdoor Power serve?"}],"faqSales":[{"a":"Yes. Gerardy Outdoor Power is an authorized sales and servicing Toro dealer located at 103 1st Ave in Preston, Iowa. We carry official Toro residential and commercial lawn care and snow removal machinery, backed by manufacturer promotions, Toro financing offers, and genuine warranty registration.","id":"faq-authorized","q":"Is Gerardy Outdoor Power an authorized Toro dealer?"},{"a":"Yes. Unlike big-box stores that sell equipment in shipping crates, every Toro mower and snow blower purchased at Gerardy Outdoor Power is fully uncrated, assembled, leveled, fueled, oil-checked, and run-tested before pickup or delivery.","id":"faq-assembled","q":"Do new Toro mowers and snow blowers come fully assembled?"},{"a":"Yes. We participate in official Toro manufacturer financing programs for qualified residential and commercial equipment buyers. Financing terms, interest promotions, and seasonal discounts can be applied directly at our dealership by calling (563) 689-3003.","id":"faq-financing","q":"Does Gerardy Outdoor Power offer equipment financing?"},{"a":"Yes. Browse the attachments we have in stock under the Attachments category on our In-Stock Inventory page, or call (563) 689-3003 to ask about an attachment for your machine.","id":"faq-attachments","q":"Do you sell attachments and accessories?"},{"a":"Yes. Gerardy Outdoor Power accepts used mowers and snowblowers as trade. Terms apply. Send your mower’s details through the trade-in form on our Equipment Sales page, or call (563) 689-3003, and we’ll talk through your options.","id":"faq-trade","q":"Do you accept used mowers and snowblowers as a trade-in?"}],"faqService":[{"a":"Yes. We are an authorized Toro warranty repair center. If your machine is within its original Toro manufacturer warranty period, bring your machine to our Preston shop. We diagnose defects in materials or workmanship and file warranty claims directly with Toro on your behalf.","id":"faq-warranty-repairs","q":"Can Gerardy Outdoor Power perform Toro warranty repairs?"},{"a":"No. Routine seasonal maintenance—including engine oil changes, spark plug replacements, fuel filter refreshes, blade sharpening, and normal wear on belts or tires—is not covered under the manufacturer's limited warranty. We provide complete seasonal maintenance packages for these items out of our service bay.","id":"faq-warranty-tuneups","q":"Does Toro warranty cover routine tune-ups or blade sharpening?"},{"a":"We service small engines found on Toro equipment and other major outdoor power brands, including Toro, Kohler, Kawasaki, Briggs & Stratton, and Honda engines.","id":"faq-engines","q":"What engine brands do you service?"}],"heroImage":"asset://media/v2/public/generated/976224ec486ad3d04405440126c90f39d3ffae447069ffed4f67cf61c90dccbd.png","heroTabs":[{"id":"mowers","label":"Zero-turn mowers","n":0,"num":"01"},{"id":"snow","label":"Snow blowers","n":1,"num":"02"},{"id":"service","label":"Service & repair","n":2,"num":"03"}],"hours":[{"days":"Monday – Thursday","id":"mth","schema":"Mo-Th 07:00-17:00","time":"7:00 AM – 5:00 PM"},{"days":"Friday","id":"fri","schema":"Fr 07:00-16:00","time":"7:00 AM – 4:00 PM"},{"days":"Saturday","id":"sat","time":"Closed"},{"days":"Sunday","id":"sun","time":"Closed"}],"inventoryFilters":[{"id":"all","label":"All"},{"id":"new","label":"New"},{"id":"used","label":"Used"}],"mowerLines":[{"body":"Ideal for residential yards wanting premium cut quality, easy self-propel drive systems (Personal Pace®), and long-lasting cast-aluminum or steel decks.","id":"recycler","image":"asset://media/v2/public/generated/f0884428a2c9b74ca5e536db08a50efc4261d7e12c4d4723ee21f4b60a0be017.png","imageAlt":"Red Toro Recycler Personal Pace self-propelled mower with a rear bag on a freshly striped backyard lawn","imageFit":"cover","index":"01","name":"Toro Recycler® & Super Recycler®","segment":"Residential walk-behind"},{"body":"Cut mowing time significantly with responsive steering, heavy-duty fabricated decks, and Smart Speed® control for precise trim work.","id":"timecutter","image":"asset://media/v2/public/generated/4b190e0c2c4d47d1a2c4a92f0119ef58cffdd9173d4afbea2120967b01e60055.png","imageAlt":"Red and black Toro TimeCutter zero-turn mower with MyRide suspension on a striped lawn at sunset","imageFit":"cover","index":"02","name":"Toro TimeCutter® Zero‑Turns","segment":"Residential zero-turn"},{"body":"Unflinching strength, laser precision and extraordinary power to devour acre after acre and keep your property looking its best","id":"titan","image":"asset://media/v2/public/generated/f1ddd170bbb3da0566ac201947e9beede9f837e797d69373e9d49200f065fd4c.png","imageAlt":"Red and black Toro Titan zero-turn mower on a freshly striped lawn with trees and blue sky behind it","imageFit":"cover","index":"03","name":"Toro Titan®","segment":"Residential Zero Turn"},{"body":"Take on any task with the Z Master® 2000 zero-turn mower. Constructed for professional use with a 7 gauge steel TURBO FORCE® cutting deck for fast, clean work. Plus, with a high-back suspension comfort seat you'll enjoy the ride, too.","id":"series2000","image":"asset://media/v2/public/sha256/0a702c1b7a29e05e688c6d151cf4658d84da9bfedd62cb50453c2900ba0133ff","imageAlt":"Man mowing a backyard lawn on a red Toro Z Master 2000 zero-turn mower beside a white fence","imageFit":"cover","index":"04","name":"Toro 2000 Series Zero‑Turns","segment":"Commercial Zero Turn Mowers"},{"body":"Constructed with high-strength materials and engineered with proven technologies, the TURBO FORCE cutting deck is built from 100 years of experience and over 100 million unrelenting hours of real world results. Every Z Master 4000 is loaded with a heavy-duty front-end design, TURBO FORCE deck with bullnose bumper, and pro-grade engine transforming a battlefield of brutal vegetation into a pristine pro cut.","id":"series4000","image":"asset://media/v2/public/sha256/921115844d5359b255e35a12da814e7affd7b2efc8fdc9c551cd7b65a4d4c25b","imageAlt":"Man mowing a leaf-strewn lawn on a red Toro Z Master 4000 zero-turn mower in front of dense green trees","imageFit":"cover","index":"05","name":"Toro 4000 Series Zero‑Turns","segment":"Commercial Zero Turn Mowers"},{"body":"Toro stand-on professional lawn mowers help you save time, money and trailer space with multi-season flexibility and a foldable operator platform that instantly converts to a walk-behind. Browse the full line of professional stand-on mowers.","id":"grandstand","image":"asset://media/v2/public/sha256/954f6cd935177df0b2d6ab4bef1e582f16c1239c0923d5b593916bff1bcde59c","imageAlt":"Landscaper in a safety vest mowing a park lawn on a red Toro GrandStand stand-on mower beside a curved path and tall trees","imageFit":"cover","index":"06","name":"Toro GrandStand® Stand-On Mowers","segment":"Commercial stand-on"}],"mowerPhoto":"asset://media/v2/public/sha256/6ac8d9684a4a899c6bac37dffe10aa5b2eb4ed5d83a624808842eaf8381d187f","mowerTips":["Sharpen or replace the blade each season","Change the oil and air filter","Replace the spark plug","Use fresh fuel and a stabilizer before storage","Clean grass build-up from under the deck"],"navItems":[{"href":"/","id":"home","label":"Home"},{"href":"/inventory","id":"inventory","label":"In-Stock Inventory"},{"href":"/equipment","id":"equipment","label":"Equipment Sales"},{"href":"/service","id":"service","label":"Service & Repair"},{"href":"/parts","id":"parts","label":"Parts & Maintenance"},{"href":"/faq","id":"faq","label":"FAQ"},{"href":"/contact","id":"contact","label":"Contact & Location"}],"ownerPhoto":"asset://media/v2/public/sha256/b4ffa0be3fbb251aff8e5f18a94f2309cd3f071cd097f0f3d182f140c5f86d16","quickAnswers":[{"a":"Yes. Gerardy Outdoor Power provides pick-up and delivery. Call (563) 689‑3003 or text (563) 320‑0072 to set it up.","href":"","id":"qa-pickup","linkLabel":"","q":"Do you offer pick-up and delivery?"},{"a":"Monday – Thursday 7:00 AM – 5:00 PM and Friday 7:00 AM – 4:00 PM. We're closed Saturday and Sunday.","href":"","id":"qa-hours","linkLabel":"","q":"What are your hours?"},{"a":"Yes. Our In-Stock Inventory page lists the machines on the lot right now, with prices, specs and financing.","href":"/inventory","id":"qa-stock","linkLabel":"Browse in-stock inventory","q":"Can I see what's in stock?"},{"a":"Yes. See the attachments we have in stock under Attachments on our In-Stock Inventory page, or call (563) 689‑3003 to ask about one for your machine.","href":"/inventory?category=attachments#in-stock","id":"qa-attachments","linkLabel":"Browse attachments in stock","q":"Do you sell attachments?"},{"a":"Yes. Gerardy Outdoor Power accepts used mowers and snowblowers as trade. Terms apply. Send your details through the trade-in form on our Equipment Sales page, or call (563) 689‑3003, and we'll talk through your options.","href":"/equipment","id":"qa-trade","linkLabel":"Go to Equipment Sales","q":"Do you take trade-ins?"},{"a":"Yes. We participate in official Toro manufacturer financing programs for qualified residential and commercial equipment buyers. Call (563) 689‑3003 to talk through financing terms and current promotions.","href":"","id":"qa-financing","linkLabel":"","q":"Do you offer financing?"},{"a":"Yes. We are an authorized Toro warranty repair center. Bring your machine to our Preston shop and we'll diagnose it and file the warranty claim with Toro on your behalf.","href":"/service","id":"qa-warranty","linkLabel":"See Service & Repair","q":"Can you do Toro warranty repairs?"},{"a":"Yes. We stock authentic Toro OEM blades, belts, filters, spark plugs, shear pins and scraper bars. Call our parts counter at (563) 689‑3003 with your model and serial number.","href":"","id":"qa-parts","linkLabel":"","q":"Do you sell genuine Toro parts?"},{"a":"103 1st Ave, Preston, IA 52069. We serve homeowners, farmers and contractors throughout Jackson, Clinton and Dubuque Counties.","href":"/contact","id":"qa-where","linkLabel":"Map & directions","q":"Where are you located?"}],"resourceLabels":{"product-page":"Toro product page","sell-sheet":"Spec sheet","warranty-statement":"Warranty statement"},"serviceBanner":"asset://media/v2/public/generated/29d2670a339fc1f7e9222535a1318071f054240b0577aed2058995aef7c51a15.png","shopGroups":[{"id":"residentialLawn","name":"Residential Lawn"},{"id":"commercialLawn","name":"Commercial Lawn"},{"id":"snowblowers","name":"Snowblowers"},{"id":"yardTools","name":"Yard Tools"},{"id":"attachments","name":"Attachments"}],"snowBanner":"asset://media/v2/public/generated/2f6333677e4ae5822180e2adcd4e9555ccb3aba50558024d45b5770f5b9ce66a.png","snowLines":[{"body":"Compact, easy-starting, and maneuverable—designed to throw snow clean down to the pavement on standard 2-to-8 car driveways.","id":"powerclear","image":"asset://media/v2/public/generated/23d2c11e599c0f4e5fd8f6e306fd2594296f263d3b1d2272ab490e73e34953e6.png","imageAlt":"Red and black Toro Power Clear single-stage snow blower clearing a snowy home driveway down to the pavement","index":"01","name":"Toro Power Clear®","segment":"Single-stage"},{"body":"Built for long driveways, heavy wet snow, and the packed berm the plow leaves at the end of the drive—two-stage power to clear what Eastern Iowa winters throw at you.","id":"powermax","image":"asset://media/v2/public/generated/3d9c724574b1b2e572ad04e5b34f9737614c676dc88056af7df9fb8041b63d6d.png","imageAlt":"Red and black Toro two-stage snow blower cutting through deep snow on a fenced rural driveway","index":"02","name":"Toro Power Max® & Power Max HD®","segment":"Two-stage heavy-duty"}],"snowSale":{"body":"Save $50 on select gas 18\" single-stage Toro snow blowers this October. Get yours set up, tested and ready before the first Eastern Iowa storm.","finePrint":"*Valid October 1–31, 2026 on select gas 18\" single-stage Toro snow blowers. Qualifying models: 38472, 38473, 38474, 38475. Contact us for details.","image":"asset://media/v2/public/sha256/62396bcf074e51090ae0d466acee49a0d30850f3514398d10b1fdbba3b73b2c7","imageAlt":"Toro Snow Savings Sale: $50 off select gas 18-inch single-stage snow blowers, October 1–31, 2026. Qualifying models 38472, 38473, 38474, 38475. A red Toro single-stage snow blower on a snowy residential street.","kicker":"Snow Savings Sale · Oct 1–31, 2026","offer":"Snow Savings Sale – $50 off single-stage snow blower (Oct 2026)","title":"$50 Off Select Toro Snow Blowers"},"snowSalePoints":["$50 off select gas 18\" single-stage snow blowers","Qualifying models: 38472, 38473, 38474, 38475","Uncrated, fueled and run-tested before you take it home"],"snowTips":["Check scraper bar, skid shoes and paddles for wear","Keep spare shear pins on hand (two-stage)","Change the oil and replace the spark plug","Run the tank dry or stabilize fuel before summer","Check tire pressure and the auger drive belt"],"toroLogo":"asset://media/v2/public/sha256/17b72a4d9cbeb90909be31f9d0e69e7136db0c25eccc1679ffa33ff64a3a4d75","tradeSteps":[{"body":"Send the make, model, age and condition of your mower or snowblower, or call the shop","id":"t1","num":"01","title":"Tell us what you have"},{"body":"The shop looks over the details and may ask to see the mower or snowblower in person.","id":"t2","num":"02","title":"We review it"},{"body":"We’ll go over your trade options and the terms that apply.","id":"t3","num":"03","title":"Talk through your trade"}]},"limits":{"media":{"accept":[],"maxBytes":26214400,"capacityBytes":null},"tradePhotos":{"accept":["image/jpeg","image/png","image/webp","image/heic","image/heif"],"maxBytes":10485760,"capacityBytes":null}},"idleFx":{"catalogs":{"status":"idle","busy":false,"pending":false,"ok":false,"effect":null,"occurrence":null,"result":null,"problem":null},"categories":{"status":"idle","busy":false,"pending":false,"ok":false,"effect":null,"occurrence":null,"result":null,"problem":null},"inventory":{"status":"idle","busy":false,"pending":false,"ok":false,"effect":null,"occurrence":null,"result":null,"problem":null},"reviewSearch":{"status":"idle","busy":false,"pending":false,"ok":false,"effect":null,"occurrence":null,"result":null,"problem":null},"tuneupRequest":{"status":"idle","busy":false,"pending":false,"ok":false,"effect":null,"occurrence":null,"result":null,"problem":null},"wholegoods":{"status":"idle","busy":false,"pending":false,"ok":false,"effect":null,"occurrence":null,"result":null,"problem":null},"media":{"status":"idle","busy":false,"pending":false,"ok":false,"effect":null,"occurrence":null,"result":null,"problem":null},"tradePhotos":{"status":"idle","busy":false,"pending":false,"ok":false,"effect":null,"occurrence":null,"result":null,"problem":null}}},"capabilities":{"rows":[{"entry":{"capability":{"name":"analytics","kind":"tracking.google-tag"},"target":"browser","packContractAddress":"5512aed67189a6bc","outputNames":{},"dependencies":[],"associatedAssets":[]},"declaration":{"name":"analytics","kind":"tracking.google-tag","target":null,"config":{},"secrets":{},"using":{},"as":{}},"contract":{"target":"browser","desc":"Google tag measurement on published sites. The manager saves a G-, GT- or AW- public tag ID in Features. The host installs it automatically after the relevant analytics/advertising consent using basic Consent Mode v2; previews never track. Google handles automatic page views and configured history measurement. Do not add gtag code or tracking elements to the site's manifest. GTM containers, Universal Analytics IDs, custom conversion events and arbitrary scripts are not supported.","product":{"label":"Google Tag","summary":"Connect Google Analytics or Google Ads with visitor-controlled cookie preferences.","category":"business","useCases":[{"id":"measure-google-visits","label":"Measure visits with Google"}]},"config":{"tagId":{"label":"Tag ID","value":{"type":"string","pattern":"^(?:(?:G|GT)-[A-Z0-9]{4,32}|AW-[0-9]{4,20})$","desc":"Your Google tag ID: G- for Analytics, AW- for Ads, or GT- for a connected Google tag. Enter the ID only; GTM containers are not supported."},"settable":true}}},"configFields":[{"name":"tagId","label":"Tag ID","contract":{"type":"string","optional":false,"desc":"Your Google tag ID: G- for Analytics, AW- for Ads, or GT- for a connected Google tag. Enter the ID only; GTM containers are not supported.","pattern":"^(?:(?:G|GT)-[A-Z0-9]{4,32}|AW-[0-9]{4,20})$"},"required":true,"settable":true}],"publicConfigQuestions":[{"capability":{"name":"analytics","kind":"tracking.google-tag"},"path":"config.tagId","target":"browser","ref":{"$configRef":"platform","name":"tagId","optional":true}}],"secretInputs":[],"sourceBindingPlan":[],"assetSources":{},"hostRequirements":{"server":{"appId":false,"mounts":[],"inputs":[]},"browser":{"appId":false,"mounts":[],"inputs":[]},"both":{"appId":false,"mounts":[],"inputs":[]}}},{"entry":{"capability":{"name":"firstLight","kind":"first-light.builder"},"target":"server","packContractAddress":"9578004954889d2b","outputNames":{},"dependencies":[],"associatedAssets":[]},"declaration":{"name":"firstLight","kind":"first-light.builder","target":null,"config":{},"secrets":{},"using":{},"as":{}},"contract":{"desc":"Grants First Light's builder (the app's hosting actor) the authority to author this app's manifest. Every edit lands as an attributed, undoable version on the app's own journal; the app's lifecycle never runs where it is edited. Remove this capability to detach the app from the builder.","product":{"label":"Build with AI","summary":"Describe what you want to create or change, and First Light will build and refine your app with you.","category":"automation","useCases":[{"id":"build-with-ai","label":"Build with AI"}]},"target":"server"},"configFields":[],"publicConfigQuestions":[],"secretInputs":[],"sourceBindingPlan":[],"assetSources":{},"hostRequirements":{"server":{"appId":false,"mounts":[],"inputs":[]},"browser":{"appId":false,"mounts":[],"inputs":[]},"both":{"appId":false,"mounts":[],"inputs":[]}}},{"entry":{"capability":{"name":"forms","kind":"app.form-email.web"},"target":"both","packContractAddress":"fc4c3ca2bab52bc0","outputNames":{"data":["formEmail"]},"dependencies":[],"associatedAssets":[]},"declaration":{"name":"forms","kind":"app.form-email.web","target":null,"config":{},"secrets":{},"using":{},"as":{}},"contract":{"desc":"Email from an app. Each create durably queues one message; success means queued, not provider delivery. Contact, quote and lead forms email the inbox its manager chooses in Features (defaulting to the site contact or owner) with the visitor's email as Reply-To. Staff or an explicitly granted server automation may queue customer updates with to and subject. Keep workflow stages in App data; this source exposes no message list or delivery status.","product":{"label":"Form emails","summary":"Email form submissions to your chosen inbox, without keeping them on the site.","category":"business","useCases":[{"id":"email-form-submissions","label":"Receive form submissions by email"},{"id":"email-customer-updates","label":"Send customer updates"}]},"target":"both","targetPolicy":"fixed","host":{"appId":true,"mounts":{"capabilityData":{"desc":"the app host's capability-data door; the browser reads and writes through `<mount>/<appId>/<source>` and the host holds the credentials"}}},"config":{"recipientEmail":{"label":"Form inbox","value":{"type":"string","optional":true,"maxLength":254,"pattern":"^[^\\s@]+@[^\\s@]+\\.[^\\s@]+$","desc":"Send submissions to this inbox. Leave blank to use the site’s default contact, usually its First Light owner."},"settable":true,"target":"server"}},"outputs":{"data":{"default":"formEmail","source":{"desc":"Each create durably queues one email: to its configured form inbox (or default site contact), or to the to address an authorized verified sender or server automation gives. Nothing can be read back; a successful create confirms queuing, not delivery.","maxRows":1,"collections":{"messages":{"desc":"One message per create. Without to it goes to the form inbox set privately by a site manager in Features, falling back to the site contact or owner; name the visitor's address field email so Reply answers them. With to (one address, such as a customer's saved email), optional subject supplies the subject and replies reach the site contact. Every other field is listed in the email. Grant create to staff or an explicit server-automation actor; a signed-out visitor cannot set to. A recipient who stopped this app's emails is refused. Grant read to the same actors as create; there is nothing to read. Success confirms that the message was queued, not delivered: describe a resulting app stage as Quote queued rather than Quote sent. Recovering one accepted command reuses its original receipt, but a later schedule firing is a separate command; persist per-record workflow progress before repeating work.","ops":["create"],"inputs":{"create":["*"]},"enforcedBy":{"create":"the host data proxy and the app's write rules; then Control owes one email per command key, refuses `to` from a signed-out sender or a stopped recipient, and caps `to` mail per app per hour"}}}},"binding":{"sharing":"shareable","authorityIdentity":true},"desc":"Data sources \"formEmail\"."}}},"configFields":[{"name":"recipientEmail","label":"Form inbox","contract":{"type":"string","optional":true,"desc":"Send submissions to this inbox. Leave blank to use the site’s default contact, usually its First Light owner.","maxLength":254,"pattern":"^[^\\s@]+@[^\\s@]+\\.[^\\s@]+$"},"required":false,"settable":true,"target":"server"}],"publicConfigQuestions":[{"capability":{"name":"forms","kind":"app.form-email.web"},"path":"config.recipientEmail","target":"server","ref":{"$configRef":"platform","name":"recipientEmail","optional":true}}],"secretInputs":[],"sourceBindingPlan":[{"logicalName":"formEmail","providerName":"formEmail","definition":{"schema":"singularity.source-definition.v1","id":"source:298d46816ed88713","descriptor":{"schema":"singularity.source-definition.v1","namespace":"app.form-email.web","version":"1.0.0","name":"formEmail","contract":{"desc":"Each create durably queues one email: to its configured form inbox (or default site contact), or to the to address an authorized verified sender or server automation gives. Nothing can be read back; a successful create confirms queuing, not delivery.","maxRows":1,"collections":{"messages":{"desc":"One message per create. Without to it goes to the form inbox set privately by a site manager in Features, falling back to the site contact or owner; name the visitor's address field email so Reply answers them. With to (one address, such as a customer's saved email), optional subject supplies the subject and replies reach the site contact. Every other field is listed in the email. Grant create to staff or an explicit server-automation actor; a signed-out visitor cannot set to. A recipient who stopped this app's emails is refused. Grant read to the same actors as create; there is nothing to read. Success confirms that the message was queued, not delivered: describe a resulting app stage as Quote queued rather than Quote sent. Recovering one accepted command reuses its original receipt, but a later schedule firing is a separate command; persist per-record workflow progress before repeating work.","ops":["create"],"inputs":{"create":["*"]},"enforcedBy":{"create":"the host data proxy and the app's write rules; then Control owes one email per command key, refuses `to` from a signed-out sender or a stopped recipient, and caps `to` mail per app per hour"},"read":"reviewed"}}},"result":{"kind":"rows","maxRows":1,"maxBytes":4194304,"classification":"private"},"stream":{"semantics":"none","recovery":"none"},"authority":{"mode":"lease"},"id":"source:298d46816ed88713"},"contract":{"desc":"Each create durably queues one email: to its configured form inbox (or default site contact), or to the to address an authorized verified sender or server automation gives. Nothing can be read back; a successful create confirms queuing, not delivery.","maxRows":1,"collections":{"messages":{"desc":"One message per create. Without to it goes to the form inbox set privately by a site manager in Features, falling back to the site contact or owner; name the visitor's address field email so Reply answers them. With to (one address, such as a customer's saved email), optional subject supplies the subject and replies reach the site contact. Every other field is listed in the email. Grant create to staff or an explicit server-automation actor; a signed-out visitor cannot set to. A recipient who stopped this app's emails is refused. Grant read to the same actors as create; there is nothing to read. Success confirms that the message was queued, not delivered: describe a resulting app stage as Quote queued rather than Quote sent. Recovering one accepted command reuses its original receipt, but a later schedule firing is a separate command; persist per-record workflow progress before repeating work.","ops":["create"],"inputs":{"create":["*"]},"enforcedBy":{"create":"the host data proxy and the app's write rules; then Control owes one email per command key, refuses `to` from a signed-out sender or a stopped recipient, and caps `to` mail per app per hour"},"read":"reviewed"}}},"result":{"kind":"rows","maxRows":1,"maxBytes":4194304,"classification":"private"},"stream":{"semantics":"none","recovery":"none"},"authority":{"mode":"lease"}},"sharing":"shareable","requires":{"authority":true,"authorityIdentity":true,"resourceIdentity":true}}],"assetSources":{},"hostRequirements":{"server":{"appId":true,"mounts":[],"inputs":[]},"browser":{"appId":true,"mounts":[{"name":"capabilityData","desc":"the app host's capability-data door; the browser reads and writes through `<mount>/<appId>/<source>` and the host holds the credentials"}],"inputs":[]},"both":{"appId":true,"mounts":[],"inputs":[]}}},{"entry":{"capability":{"name":"maps","kind":"google.maps.rest"},"target":"both","packContractAddress":"ee8517af2ce9ea59","outputNames":{"data":["googleMaps"]},"dependencies":[],"associatedAssets":[]},"declaration":{"name":"maps","kind":"google.maps.rest","target":null,"config":{},"secrets":{},"using":{},"as":{}},"contract":{"desc":"Google Maps services: Places API (New) autocomplete, place details and search; Geocoding API v4; address validation; Routes API directions, waypoint ordering and matrices. Credentials stay on the server. Collections are calculations read through the normal data source; POST does not create records. Store application accounts in your own data source. Public-eligible reads still require app read grants. Configure a private server key; google.maps-browser.web separately takes a public referrer-restricted browser key. Autocomplete sessions reuse sessionToken through placeDetails, then rotate. Preserve Google/third-party attribution; Place IDs may be persisted, while other Google content follows service retention policies. Google charges the connected project. Fixed field masks include contact/opening-hours fields and may select a higher SKU. Connection verification checks Places New autocomplete acceptance; enable Geocoding, Address Validation and Routes separately when used.","product":{"label":"Addresses and directions","summary":"Check addresses as visitors type them, look up places, and work out directions and travel times.","category":"business","useCases":[{"id":"find-addresses","label":"Find addresses and places"},{"id":"plan-routes","label":"Calculate directions and stop order"}]},"verification":{"scope":"Places API (New) autocomplete access","failureFields":["secret:apiKey"]},"target":"both","host":{"appId":true,"mounts":{"capabilityData":{"desc":"the app host's capability-data door; the browser reads and writes through `<mount>/<appId>/<source>` and the host holds the credentials"}}},"secrets":{"apiKey":{"label":"Server API key","desc":"A Google Maps Platform server key with Places API (New), Geocoding API v4, Address Validation API and Routes API enabled as needed. Restrict the key by API and by server network where supported. It stays encrypted and never reaches a page.","required":true,"sources":["platform"],"defaultSource":"platform"}},"outputs":{"data":{"default":"googleMaps","source":{"desc":"Google address, place and routing calculations under the app owner’s server key. Input values belong in query descriptor parameters. Persist accounts and routes in the app’s own durable source.","maxRows":10000,"collections":{"autocomplete":{"desc":"Places API (New) address and business predictions. Reuse sessionToken through the chosen placeDetails call.","ops":["query"],"queryFields":[],"params":["includeFutureOpeningBusinesses","includeQueryPredictions","locationRestriction","sessionToken","origin","languageCode","locationBias","input","inputOffset","includedRegionCodes","includePureServiceAreaBusinesses","regionCode","includedPrimaryTypes"],"parameterFields":{"includeFutureOpeningBusinesses":{"type":"boolean","optional":true},"includeQueryPredictions":{"type":"boolean","optional":true},"locationRestriction":{"type":"object","members":{"rectangle":{"type":"object","members":{"low":{"type":"object","members":{"longitude":{"type":"number","optional":true},"latitude":{"type":"number","optional":true}},"optional":true},"high":{"type":"object","members":{"longitude":{"type":"number","optional":true},"latitude":{"type":"number","optional":true}},"optional":true}},"optional":true},"circle":{"type":"object","members":{"center":{"type":"object","members":{"longitude":{"type":"number","optional":true},"latitude":{"type":"number","optional":true}},"optional":true},"radius":{"type":"number","optional":true}},"optional":true}},"optional":true},"sessionToken":{"type":"string","optional":true},"origin":{"type":"object","members":{"longitude":{"type":"number","optional":true},"latitude":{"type":"number","optional":true}},"optional":true},"languageCode":{"type":"string","optional":true},"locationBias":{"type":"object","members":{"rectangle":{"type":"object","members":{"low":{"type":"object","members":{"longitude":{"type":"number","optional":true},"latitude":{"type":"number","optional":true}},"optional":true},"high":{"type":"object","members":{"longitude":{"type":"number","optional":true},"latitude":{"type":"number","optional":true}},"optional":true}},"optional":true},"circle":{"type":"object","members":{"center":{"type":"object","members":{"longitude":{"type":"number","optional":true},"latitude":{"type":"number","optional":true}},"optional":true},"radius":{"type":"number","optional":true}},"optional":true}},"optional":true},"input":{"type":"string"},"inputOffset":{"type":"number","optional":true},"includedRegionCodes":{"type":"array","items":{"type":"string"},"optional":true},"includePureServiceAreaBusinesses":{"type":"boolean","optional":true},"regionCode":{"type":"string","optional":true},"includedPrimaryTypes":{"type":"array","items":{"type":"string"},"optional":true}},"requiredParams":["input"],"read":"anonymous","anonymous":["read"],"enforcedBy":{"read":"the provider at places.googleapis.com, under the app's configured credentials"},"fields":{"suggestions":{"type":"array","items":{"type":"object","members":{"placePrediction":{"type":"object","members":{"place":{"type":"string","optional":true},"structuredFormat":{"type":"object","members":{"mainText":{"type":"object","members":{"text":{"type":"string","optional":true},"matches":{"type":"array","items":{"type":"object","members":{"startOffset":{"type":"number","optional":true},"endOffset":{"type":"number","optional":true}}},"optional":true}},"optional":true},"secondaryText":{"type":"object","members":{"text":{"type":"string","optional":true},"matches":{"type":"array","items":{"type":"object","members":{"startOffset":{"type":"number","optional":true},"endOffset":{"type":"number","optional":true}}},"optional":true}},"optional":true}},"optional":true},"types":{"type":"array","items":{"type":"string"},"optional":true},"text":{"type":"object","members":{"text":{"type":"string","optional":true},"matches":{"type":"array","items":{"type":"object","members":{"startOffset":{"type":"number","optional":true},"endOffset":{"type":"number","optional":true}}},"optional":true}},"optional":true},"distanceMeters":{"type":"number","optional":true},"placeId":{"type":"string","optional":true}},"optional":true},"queryPrediction":{"type":"object","members":{"structuredFormat":{"type":"object","members":{"mainText":{"type":"object","members":{"text":{"type":"string","optional":true},"matches":{"type":"array","items":{"type":"object","members":{"startOffset":{"type":"number","optional":true},"endOffset":{"type":"number","optional":true}}},"optional":true}},"optional":true},"secondaryText":{"type":"object","members":{"text":{"type":"string","optional":true},"matches":{"type":"array","items":{"type":"object","members":{"startOffset":{"type":"number","optional":true},"endOffset":{"type":"number","optional":true}}},"optional":true}},"optional":true}},"optional":true},"text":{"type":"object","members":{"text":{"type":"string","optional":true},"matches":{"type":"array","items":{"type":"object","members":{"startOffset":{"type":"number","optional":true},"endOffset":{"type":"number","optional":true}}},"optional":true}},"optional":true}},"optional":true}}},"optional":true}}},"placeDetails":{"desc":"A selected place with address, location, contact, opening-hours and attribution fields from a fixed mask.","ops":["query"],"queryFields":[],"params":["placeId","languageCode","regionCode","sessionToken"],"parameterFields":{"placeId":{"type":"string","minLength":1,"maxLength":1024},"languageCode":{"type":"string","optional":true},"regionCode":{"type":"string","optional":true},"sessionToken":{"type":"string","optional":true}},"requiredParams":["placeId"],"read":"anonymous","anonymous":["read"],"enforcedBy":{"read":"the provider at places.googleapis.com, under the app's configured credentials"},"fields":{"currentSecondaryOpeningHours":{"type":"array","items":{"type":"object","members":{"nextCloseTime":{"type":"string","optional":true},"weekdayDescriptions":{"type":"array","items":{"type":"string"},"optional":true},"openNow":{"type":"boolean","optional":true},"nextOpenTime":{"type":"string","optional":true},"secondaryHoursType":{"type":"string","enum":["SECONDARY_HOURS_TYPE_UNSPECIFIED","DRIVE_THROUGH","HAPPY_HOUR","DELIVERY","TAKEOUT","KITCHEN","BREAKFAST","LUNCH","DINNER","BRUNCH","PICKUP","ACCESS","SENIOR_HOURS","ONLINE_SERVICE_HOURS"],"optional":true},"specialDays":{"type":"array","items":{"type":"object","members":{"date":{"type":"object","members":{"month":{"type":"number","optional":true},"year":{"type":"number","optional":true},"day":{"type":"number","optional":true}},"optional":true}}},"optional":true},"periods":{"type":"array","items":{"type":"object","members":{"close":{"type":"object","members":{"hour":{"type":"number","optional":true},"day":{"type":"number","optional":true},"minute":{"type":"number","optional":true},"date":{"type":"object","members":{"month":{"type":"number","optional":true},"year":{"type":"number","optional":true},"day":{"type":"number","optional":true}},"optional":true},"truncated":{"type":"boolean","optional":true}},"optional":true},"open":{"type":"object","members":{"hour":{"type":"number","optional":true},"day":{"type":"number","optional":true},"minute":{"type":"number","optional":true},"date":{"type":"object","members":{"month":{"type":"number","optional":true},"year":{"type":"number","optional":true},"day":{"type":"number","optional":true}},"optional":true},"truncated":{"type":"boolean","optional":true}},"optional":true}}},"optional":true}}},"optional":true},"addressDescriptor":{"type":"object","members":{"landmarks":{"type":"array","items":{"type":"object","members":{"spatialRelationship":{"type":"string","enum":["NEAR","WITHIN","BESIDE","ACROSS_THE_ROAD","DOWN_THE_ROAD","AROUND_THE_CORNER","BEHIND"],"optional":true},"placeId":{"type":"string","optional":true},"displayName":{"type":"object","members":{"languageCode":{"type":"string","optional":true},"text":{"type":"string","optional":true}},"optional":true},"straightLineDistanceMeters":{"type":"number","optional":true},"name":{"type":"string","optional":true},"travelDistanceMeters":{"type":"number","optional":true},"types":{"type":"array","items":{"type":"string"},"optional":true}}},"optional":true},"areas":{"type":"array","items":{"type":"object","members":{"placeId":{"type":"string","optional":true},"containment":{"type":"string","enum":["CONTAINMENT_UNSPECIFIED","WITHIN","OUTSKIRTS","NEAR"],"optional":true},"displayName":{"type":"object","members":{"languageCode":{"type":"string","optional":true},"text":{"type":"string","optional":true}},"optional":true},"name":{"type":"string","optional":true}}},"optional":true}},"optional":true},"primaryType":{"type":"string","optional":true},"servesBrunch":{"type":"boolean","optional":true},"openingDate":{"type":"object","members":{"month":{"type":"number","optional":true},"year":{"type":"number","optional":true},"day":{"type":"number","optional":true}},"optional":true},"neighborhoodSummary":{"type":"object","members":{"overview":{"type":"object","members":{"referencedPlaces":{"type":"array","items":{"type":"string"},"optional":true},"content":{"type":"object","members":{"languageCode":{"type":"string","optional":true},"text":{"type":"string","optional":true}},"optional":true}},"optional":true},"flagContentUri":{"type":"string","optional":true},"disclosureText":{"type":"object","members":{"languageCode":{"type":"string","optional":true},"text":{"type":"string","optional":true}},"optional":true},"description":{"type":"object","members":{"referencedPlaces":{"type":"array","items":{"type":"string"},"optional":true},"content":{"type":"object","members":{"languageCode":{"type":"string","optional":true},"text":{"type":"string","optional":true}},"optional":true}},"optional":true}},"optional":true},"servesBeer":{"type":"boolean","optional":true},"primaryTypeDisplayName":{"type":"object","members":{"languageCode":{"type":"string","optional":true},"text":{"type":"string","optional":true}},"optional":true},"location":{"type":"object","members":{"longitude":{"type":"number","optional":true},"latitude":{"type":"number","optional":true}},"optional":true},"googleMapsTypeLabel":{"type":"object","members":{"languageCode":{"type":"string","optional":true},"text":{"type":"string","optional":true}},"optional":true},"takeout":{"type":"boolean","optional":true},"iconBackgroundColor":{"type":"string","optional":true},"containingPlaces":{"type":"array","items":{"type":"object","members":{"name":{"type":"string","optional":true},"id":{"type":"string","optional":true}}},"optional":true},"viewport":{"type":"object","members":{"low":{"type":"object","members":{"longitude":{"type":"number","optional":true},"latitude":{"type":"number","optional":true}},"optional":true},"high":{"type":"object","members":{"longitude":{"type":"number","optional":true},"latitude":{"type":"number","optional":true}},"optional":true}},"optional":true},"timeZone":{"type":"object","members":{"version":{"type":"string","optional":true},"id":{"type":"string","optional":true}},"optional":true},"dineIn":{"type":"boolean","optional":true},"servesCocktails":{"type":"boolean","optional":true},"shortFormattedAddress":{"type":"string","optional":true},"reviewSummary":{"type":"object","members":{"text":{"type":"object","members":{"languageCode":{"type":"string","optional":true},"text":{"type":"string","optional":true}},"optional":true},"flagContentUri":{"type":"string","optional":true},"disclosureText":{"type":"object","members":{"languageCode":{"type":"string","optional":true},"text":{"type":"string","optional":true}},"optional":true},"reviewsUri":{"type":"string","optional":true}},"optional":true},"photos":{"type":"array","items":{"type":"object","members":{"googleMapsUri":{"type":"string","optional":true},"name":{"type":"string","optional":true},"flagContentUri":{"type":"string","optional":true},"heightPx":{"type":"number","optional":true},"authorAttributions":{"type":"array","items":{"type":"object","members":{"photoUri":{"type":"string","optional":true},"uri":{"type":"string","optional":true},"displayName":{"type":"string","optional":true}}},"optional":true},"widthPx":{"type":"number","optional":true}}},"optional":true},"generativeSummary":{"type":"object","members":{"disclosureText":{"type":"object","members":{"languageCode":{"type":"string","optional":true},"text":{"type":"string","optional":true}},"optional":true},"overview":{"type":"object","members":{"languageCode":{"type":"string","optional":true},"text":{"type":"string","optional":true}},"optional":true},"overviewFlagContentUri":{"type":"string","optional":true}},"optional":true},"movedPlaceId":{"type":"string","optional":true},"userRatingCount":{"type":"number","optional":true},"servesBreakfast":{"type":"boolean","optional":true},"regularOpeningHours":{"type":"object","members":{"nextCloseTime":{"type":"string","optional":true},"weekdayDescriptions":{"type":"array","items":{"type":"string"},"optional":true},"openNow":{"type":"boolean","optional":true},"nextOpenTime":{"type":"string","optional":true},"secondaryHoursType":{"type":"string","enum":["SECONDARY_HOURS_TYPE_UNSPECIFIED","DRIVE_THROUGH","HAPPY_HOUR","DELIVERY","TAKEOUT","KITCHEN","BREAKFAST","LUNCH","DINNER","BRUNCH","PICKUP","ACCESS","SENIOR_HOURS","ONLINE_SERVICE_HOURS"],"optional":true},"specialDays":{"type":"array","items":{"type":"object","members":{"date":{"type":"object","members":{"month":{"type":"number","optional":true},"year":{"type":"number","optional":true},"day":{"type":"number","optional":true}},"optional":true}}},"optional":true},"periods":{"type":"array","items":{"type":"object","members":{"close":{"type":"object","members":{"hour":{"type":"number","optional":true},"day":{"type":"number","optional":true},"minute":{"type":"number","optional":true},"date":{"type":"object","members":{"month":{"type":"number","optional":true},"year":{"type":"number","optional":true},"day":{"type":"number","optional":true}},"optional":true},"truncated":{"type":"boolean","optional":true}},"optional":true},"open":{"type":"object","members":{"hour":{"type":"number","optional":true},"day":{"type":"number","optional":true},"minute":{"type":"number","optional":true},"date":{"type":"object","members":{"month":{"type":"number","optional":true},"year":{"type":"number","optional":true},"day":{"type":"number","optional":true}},"optional":true},"truncated":{"type":"boolean","optional":true}},"optional":true}}},"optional":true}},"optional":true},"servesWine":{"type":"boolean","optional":true},"postalAddress":{"type":"object","members":{"regionCode":{"type":"string","optional":true},"sublocality":{"type":"string","optional":true},"postalCode":{"type":"string","optional":true},"revision":{"type":"number","optional":true},"locality":{"type":"string","optional":true},"recipients":{"type":"array","items":{"type":"string"},"optional":true},"addressLines":{"type":"array","items":{"type":"string"},"optional":true},"organization":{"type":"string","optional":true},"languageCode":{"type":"string","optional":true},"administrativeArea":{"type":"string","optional":true},"sortingCode":{"type":"string","optional":true}},"optional":true},"types":{"type":"array","items":{"type":"string"},"optional":true},"restroom":{"type":"boolean","optional":true},"websiteUri":{"type":"string","optional":true},"plusCode":{"type":"object","members":{"globalCode":{"type":"string","optional":true},"compoundCode":{"type":"string","optional":true}},"optional":true},"servesLunch":{"type":"boolean","optional":true},"regularSecondaryOpeningHours":{"type":"array","items":{"type":"object","members":{"nextCloseTime":{"type":"string","optional":true},"weekdayDescriptions":{"type":"array","items":{"type":"string"},"optional":true},"openNow":{"type":"boolean","optional":true},"nextOpenTime":{"type":"string","optional":true},"secondaryHoursType":{"type":"string","enum":["SECONDARY_HOURS_TYPE_UNSPECIFIED","DRIVE_THROUGH","HAPPY_HOUR","DELIVERY","TAKEOUT","KITCHEN","BREAKFAST","LUNCH","DINNER","BRUNCH","PICKUP","ACCESS","SENIOR_HOURS","ONLINE_SERVICE_HOURS"],"optional":true},"specialDays":{"type":"array","items":{"type":"object","members":{"date":{"type":"object","members":{"month":{"type":"number","optional":true},"year":{"type":"number","optional":true},"day":{"type":"number","optional":true}},"optional":true}}},"optional":true},"periods":{"type":"array","items":{"type":"object","members":{"close":{"type":"object","members":{"hour":{"type":"number","optional":true},"day":{"type":"number","optional":true},"minute":{"type":"number","optional":true},"date":{"type":"object","members":{"month":{"type":"number","optional":true},"year":{"type":"number","optional":true},"day":{"type":"number","optional":true}},"optional":true},"truncated":{"type":"boolean","optional":true}},"optional":true},"open":{"type":"object","members":{"hour":{"type":"number","optional":true},"day":{"type":"number","optional":true},"minute":{"type":"number","optional":true},"date":{"type":"object","members":{"month":{"type":"number","optional":true},"year":{"type":"number","optional":true},"day":{"type":"number","optional":true}},"optional":true},"truncated":{"type":"boolean","optional":true}},"optional":true}}},"optional":true}}},"optional":true},"reservable":{"type":"boolean","optional":true},"navigationPoints":{"type":"array","items":{"type":"object","members":{"displayName":{"type":"object","members":{"languageCode":{"type":"string","optional":true},"text":{"type":"string","optional":true}},"optional":true},"travelModes":{"type":"array","items":{"type":"string","enum":["TRAVEL_MODE_UNSPECIFIED","DRIVE","WALK"]},"optional":true},"location":{"type":"object","members":{"longitude":{"type":"number","optional":true},"latitude":{"type":"number","optional":true}},"optional":true},"usages":{"type":"array","items":{"type":"string","enum":["USAGE_UNSPECIFIED","DROPOFF","PICKUP","PARKING"]},"optional":true},"navigationPointToken":{"type":"string","optional":true}}},"optional":true},"delivery":{"type":"boolean","optional":true},"servesCoffee":{"type":"boolean","optional":true},"currentOpeningHours":{"type":"object","members":{"nextCloseTime":{"type":"string","optional":true},"weekdayDescriptions":{"type":"array","items":{"type":"string"},"optional":true},"openNow":{"type":"boolean","optional":true},"nextOpenTime":{"type":"string","optional":true},"secondaryHoursType":{"type":"string","enum":["SECONDARY_HOURS_TYPE_UNSPECIFIED","DRIVE_THROUGH","HAPPY_HOUR","DELIVERY","TAKEOUT","KITCHEN","BREAKFAST","LUNCH","DINNER","BRUNCH","PICKUP","ACCESS","SENIOR_HOURS","ONLINE_SERVICE_HOURS"],"optional":true},"specialDays":{"type":"array","items":{"type":"object","members":{"date":{"type":"object","members":{"month":{"type":"number","optional":true},"year":{"type":"number","optional":true},"day":{"type":"number","optional":true}},"optional":true}}},"optional":true},"periods":{"type":"array","items":{"type":"object","members":{"close":{"type":"object","members":{"hour":{"type":"number","optional":true},"day":{"type":"number","optional":true},"minute":{"type":"number","optional":true},"date":{"type":"object","members":{"month":{"type":"number","optional":true},"year":{"type":"number","optional":true},"day":{"type":"number","optional":true}},"optional":true},"truncated":{"type":"boolean","optional":true}},"optional":true},"open":{"type":"object","members":{"hour":{"type":"number","optional":true},"day":{"type":"number","optional":true},"minute":{"type":"number","optional":true},"date":{"type":"object","members":{"month":{"type":"number","optional":true},"year":{"type":"number","optional":true},"day":{"type":"number","optional":true}},"optional":true},"truncated":{"type":"boolean","optional":true}},"optional":true}}},"optional":true}},"optional":true},"name":{"type":"string","optional":true},"goodForWatchingSports":{"type":"boolean","optional":true},"iconMaskBaseUri":{"type":"string","optional":true},"internationalPhoneNumber":{"type":"string","optional":true},"subDestinations":{"type":"array","items":{"type":"object","members":{"name":{"type":"string","optional":true},"id":{"type":"string","optional":true}}},"optional":true},"parkingOptions":{"type":"object","members":{"paidGarageParking":{"type":"boolean","optional":true},"paidParkingLot":{"type":"boolean","optional":true},"freeGarageParking":{"type":"boolean","optional":true},"valetParking":{"type":"boolean","optional":true},"freeParkingLot":{"type":"boolean","optional":true},"freeStreetParking":{"type":"boolean","optional":true},"paidStreetParking":{"type":"boolean","optional":true}},"optional":true},"paymentOptions":{"type":"object","members":{"acceptsDebitCards":{"type":"boolean","optional":true},"acceptsCashOnly":{"type":"boolean","optional":true},"acceptsCreditCards":{"type":"boolean","optional":true},"acceptsNfc":{"type":"boolean","optional":true}},"optional":true},"evChargeAmenitySummary":{"type":"object","members":{"disclosureText":{"type":"object","members":{"languageCode":{"type":"string","optional":true},"text":{"type":"string","optional":true}},"optional":true},"restaurant":{"type":"object","members":{"referencedPlaces":{"type":"array","items":{"type":"string"},"optional":true},"content":{"type":"object","members":{"languageCode":{"type":"string","optional":true},"text":{"type":"string","optional":true}},"optional":true}},"optional":true},"store":{"type":"object","members":{"referencedPlaces":{"type":"array","items":{"type":"string"},"optional":true},"content":{"type":"object","members":{"languageCode":{"type":"string","optional":true},"text":{"type":"string","optional":true}},"optional":true}},"optional":true},"coffee":{"type":"object","members":{"referencedPlaces":{"type":"array","items":{"type":"string"},"optional":true},"content":{"type":"object","members":{"languageCode":{"type":"string","optional":true},"text":{"type":"string","optional":true}},"optional":true}},"optional":true},"overview":{"type":"object","members":{"referencedPlaces":{"type":"array","items":{"type":"string"},"optional":true},"content":{"type":"object","members":{"languageCode":{"type":"string","optional":true},"text":{"type":"string","optional":true}},"optional":true}},"optional":true},"flagContentUri":{"type":"string","optional":true}},"optional":true},"formattedAddress":{"type":"string","optional":true},"googleMapsLinks":{"type":"object","members":{"placeUri":{"type":"string","optional":true},"writeAReviewUri":{"type":"string","optional":true},"photosUri":{"type":"string","optional":true},"reviewsUri":{"type":"string","optional":true},"directionsUri":{"type":"string","optional":true}},"optional":true},"evChargeOptions":{"type":"object","members":{"connectorCount":{"type":"number","optional":true},"connectorAggregation":{"type":"array","items":{"type":"object","members":{"outOfServiceCount":{"type":"number","optional":true},"maxChargeRateKw":{"type":"number","optional":true},"availabilityLastUpdateTime":{"type":"string","optional":true},"type":{"type":"string","enum":["EV_CONNECTOR_TYPE_UNSPECIFIED","EV_CONNECTOR_TYPE_OTHER","EV_CONNECTOR_TYPE_J1772","EV_CONNECTOR_TYPE_TYPE_2","EV_CONNECTOR_TYPE_CHADEMO","EV_CONNECTOR_TYPE_CCS_COMBO_1","EV_CONNECTOR_TYPE_CCS_COMBO_2","EV_CONNECTOR_TYPE_TESLA","EV_CONNECTOR_TYPE_UNSPECIFIED_GB_T","EV_CONNECTOR_TYPE_UNSPECIFIED_WALL_OUTLET","EV_CONNECTOR_TYPE_NACS"],"optional":true},"count":{"type":"number","optional":true},"availableCount":{"type":"number","optional":true}}},"optional":true}},"optional":true},"nationalPhoneNumber":{"type":"string","optional":true},"goodForGroups":{"type":"boolean","optional":true},"entrances":{"type":"array","items":{"type":"object","members":{"tags":{"type":"array","items":{"type":"string","enum":["TAG_UNSPECIFIED","PREFERRED"]},"optional":true},"location":{"type":"object","members":{"longitude":{"type":"number","optional":true},"latitude":{"type":"number","optional":true}},"optional":true}}},"optional":true},"outdoorSeating":{"type":"boolean","optional":true},"servesDinner":{"type":"boolean","optional":true},"attributions":{"type":"array","items":{"type":"object","members":{"provider":{"type":"string","optional":true},"providerUri":{"type":"string","optional":true}}},"optional":true},"servesVegetarianFood":{"type":"boolean","optional":true},"displayName":{"type":"object","members":{"languageCode":{"type":"string","optional":true},"text":{"type":"string","optional":true}},"optional":true},"googleMapsUri":{"type":"string","optional":true},"curbsidePickup":{"type":"boolean","optional":true},"utcOffsetMinutes":{"type":"number","optional":true},"transitStation":{"type":"object","members":{"agencies":{"type":"array","items":{"type":"object","members":{"lines":{"type":"array","items":{"type":"object","members":{"textColor":{"type":"string","optional":true},"vehicleIcon":{"type":"object","members":{"nameIncluded":{"type":"boolean","optional":true},"url":{"type":"string","optional":true}},"optional":true},"url":{"type":"string","optional":true},"id":{"type":"string","optional":true},"icon":{"type":"object","members":{"nameIncluded":{"type":"boolean","optional":true},"url":{"type":"string","optional":true}},"optional":true},"backgroundColor":{"type":"string","optional":true},"vehicleType":{"type":"string","enum":["VEHICLE_TYPE_UNSPECIFIED","RAIL","METRO_RAIL","SUBWAY","TRAM","MONORAIL","HEAVY_RAIL","COMMUTER_TRAIN","HIGH_SPEED_TRAIN","LONG_DISTANCE_TRAIN","BUS","INTERCITY_BUS","TROLLEYBUS","SHARE_TAXI","COACH","FERRY","CABLE_CAR","GONDOLA_LIFT","FUNICULAR","SPECIAL","HORSE_CARRIAGE","AIRPLANE"],"optional":true},"displayName":{"type":"object","members":{"languageCode":{"type":"string","optional":true},"text":{"type":"string","optional":true}},"optional":true},"shortDisplayName":{"type":"object","members":{"languageCode":{"type":"string","optional":true},"text":{"type":"string","optional":true}},"optional":true}}},"optional":true},"fareUrl":{"type":"string","optional":true},"displayName":{"type":"object","members":{"languageCode":{"type":"string","optional":true},"text":{"type":"string","optional":true}},"optional":true},"url":{"type":"string","optional":true},"icon":{"type":"object","members":{"nameIncluded":{"type":"boolean","optional":true},"url":{"type":"string","optional":true}},"optional":true}}},"optional":true},"stops":{"type":"array","items":{"type":"object","members":{"displayName":{"type":"object","members":{"languageCode":{"type":"string","optional":true},"text":{"type":"string","optional":true}},"optional":true},"stopCode":{"type":"object","members":{"languageCode":{"type":"string","optional":true},"text":{"type":"string","optional":true}},"optional":true},"id":{"type":"string","optional":true},"platformCode":{"type":"object","members":{"languageCode":{"type":"string","optional":true},"text":{"type":"string","optional":true}},"optional":true},"wheelchairAccessibleEntrance":{"type":"boolean","optional":true},"signageText":{"type":"object","members":{"languageCode":{"type":"string","optional":true},"text":{"type":"string","optional":true}},"optional":true},"location":{"type":"object","members":{"longitude":{"type":"number","optional":true},"latitude":{"type":"number","optional":true}},"optional":true}}},"optional":true},"displayName":{"type":"object","members":{"languageCode":{"type":"string","optional":true},"text":{"type":"string","optional":true}},"optional":true}},"optional":true},"priceRange":{"type":"object","members":{"startPrice":{"type":"object","members":{"currencyCode":{"type":"string","optional":true},"units":{"type":"string","optional":true},"nanos":{"type":"number","optional":true}},"optional":true},"endPrice":{"type":"object","members":{"currencyCode":{"type":"string","optional":true},"units":{"type":"string","optional":true},"nanos":{"type":"number","optional":true}},"optional":true}},"optional":true},"businessStatus":{"type":"string","enum":["BUSINESS_STATUS_UNSPECIFIED","OPERATIONAL","CLOSED_TEMPORARILY","CLOSED_PERMANENTLY","FUTURE_OPENING"],"optional":true},"addressComponents":{"type":"array","items":{"type":"object","members":{"languageCode":{"type":"string","optional":true},"types":{"type":"array","items":{"type":"string"},"optional":true},"shortText":{"type":"string","optional":true},"longText":{"type":"string","optional":true}}},"optional":true},"allowsDogs":{"type":"boolean","optional":true},"servesDessert":{"type":"boolean","optional":true},"movedPlace":{"type":"string","optional":true},"id":{"type":"string","optional":true},"consumerAlert":{"type":"object","members":{"details":{"type":"object","members":{"title":{"type":"string","optional":true},"aboutLink":{"type":"object","members":{"title":{"type":"string","optional":true},"uri":{"type":"string","optional":true}},"optional":true},"description":{"type":"string","optional":true}},"optional":true},"languageCode":{"type":"string","optional":true},"overview":{"type":"string","optional":true}},"optional":true},"accessibilityOptions":{"type":"object","members":{"wheelchairAccessibleParking":{"type":"boolean","optional":true},"wheelchairAccessibleSeating":{"type":"boolean","optional":true},"wheelchairAccessibleEntrance":{"type":"boolean","optional":true},"wheelchairAccessibleRestroom":{"type":"boolean","optional":true}},"optional":true},"fuelOptions":{"type":"object","members":{"fuelPrices":{"type":"array","items":{"type":"object","members":{"updateTime":{"type":"string","optional":true},"price":{"type":"object","members":{"currencyCode":{"type":"string","optional":true},"units":{"type":"string","optional":true},"nanos":{"type":"number","optional":true}},"optional":true},"type":{"type":"string","enum":["FUEL_TYPE_UNSPECIFIED","DIESEL","DIESEL_PLUS","REGULAR_UNLEADED","MIDGRADE","PREMIUM","SP91","SP91_E10","SP92","SP95","SP95_E10","SP98","SP99","SP100","LPG","E80","E85","E100","METHANE","BIO_DIESEL","TRUCK_DIESEL"],"optional":true}}},"optional":true}},"optional":true},"goodForChildren":{"type":"boolean","optional":true},"liveMusic":{"type":"boolean","optional":true},"menuForChildren":{"type":"boolean","optional":true},"adrFormatAddress":{"type":"string","optional":true},"rating":{"type":"number","optional":true},"priceLevel":{"type":"string","enum":["PRICE_LEVEL_UNSPECIFIED","PRICE_LEVEL_FREE","PRICE_LEVEL_INEXPENSIVE","PRICE_LEVEL_MODERATE","PRICE_LEVEL_EXPENSIVE","PRICE_LEVEL_VERY_EXPENSIVE"],"optional":true},"pureServiceAreaBusiness":{"type":"boolean","optional":true},"editorialSummary":{"type":"object","members":{"languageCode":{"type":"string","optional":true},"text":{"type":"string","optional":true}},"optional":true},"reviews":{"type":"array","items":{"type":"object","members":{"originalText":{"type":"object","members":{"languageCode":{"type":"string","optional":true},"text":{"type":"string","optional":true}},"optional":true},"googleMapsUri":{"type":"string","optional":true},"visitDate":{"type":"object","members":{"month":{"type":"number","optional":true},"year":{"type":"number","optional":true},"day":{"type":"number","optional":true}},"optional":true},"rating":{"type":"number","optional":true},"relativePublishTimeDescription":{"type":"string","optional":true},"text":{"type":"object","members":{"languageCode":{"type":"string","optional":true},"text":{"type":"string","optional":true}},"optional":true},"authorAttribution":{"type":"object","members":{"photoUri":{"type":"string","optional":true},"uri":{"type":"string","optional":true},"displayName":{"type":"string","optional":true}},"optional":true},"name":{"type":"string","optional":true},"publishTime":{"type":"string","optional":true},"flagContentUri":{"type":"string","optional":true}}},"optional":true}}},"searchText":{"desc":"Places API (New) text search including pagination and regional/location filters.","ops":["query"],"queryFields":[],"params":["routingParameters","priceLevels","locationRestriction","pageToken","minRating","searchAlongRouteParameters","maxResultCount","includeFutureOpeningBusinesses","includePureServiceAreaBusinesses","evOptions","includedType","openNow","regionCode","rankPreference","strictTypeFiltering","locationBias","pageSize","languageCode","textQuery"],"parameterFields":{"routingParameters":{"type":"object","members":{"routeModifiers":{"type":"object","members":{"avoidIndoor":{"type":"boolean","optional":true},"avoidFerries":{"type":"boolean","optional":true},"avoidHighways":{"type":"boolean","optional":true},"avoidTolls":{"type":"boolean","optional":true}},"optional":true},"origin":{"type":"object","members":{"longitude":{"type":"number","optional":true},"latitude":{"type":"number","optional":true}},"optional":true},"routingPreference":{"type":"string","enum":["ROUTING_PREFERENCE_UNSPECIFIED","TRAFFIC_UNAWARE","TRAFFIC_AWARE","TRAFFIC_AWARE_OPTIMAL"],"optional":true},"travelMode":{"type":"string","enum":["TRAVEL_MODE_UNSPECIFIED","DRIVE","BICYCLE","WALK","TWO_WHEELER"],"optional":true}},"optional":true},"priceLevels":{"type":"array","items":{"type":"string","enum":["PRICE_LEVEL_UNSPECIFIED","PRICE_LEVEL_FREE","PRICE_LEVEL_INEXPENSIVE","PRICE_LEVEL_MODERATE","PRICE_LEVEL_EXPENSIVE","PRICE_LEVEL_VERY_EXPENSIVE"]},"optional":true},"locationRestriction":{"type":"object","members":{"rectangle":{"type":"object","members":{"low":{"type":"object","members":{"longitude":{"type":"number","optional":true},"latitude":{"type":"number","optional":true}},"optional":true},"high":{"type":"object","members":{"longitude":{"type":"number","optional":true},"latitude":{"type":"number","optional":true}},"optional":true}},"optional":true}},"optional":true},"pageToken":{"type":"string","optional":true},"minRating":{"type":"number","optional":true},"searchAlongRouteParameters":{"type":"object","members":{"polyline":{"type":"object","members":{"encodedPolyline":{"type":"string","optional":true}},"optional":true}},"optional":true},"maxResultCount":{"type":"number","optional":true},"includeFutureOpeningBusinesses":{"type":"boolean","optional":true},"includePureServiceAreaBusinesses":{"type":"boolean","optional":true},"evOptions":{"type":"object","members":{"connectorTypes":{"type":"array","items":{"type":"string","enum":["EV_CONNECTOR_TYPE_UNSPECIFIED","EV_CONNECTOR_TYPE_OTHER","EV_CONNECTOR_TYPE_J1772","EV_CONNECTOR_TYPE_TYPE_2","EV_CONNECTOR_TYPE_CHADEMO","EV_CONNECTOR_TYPE_CCS_COMBO_1","EV_CONNECTOR_TYPE_CCS_COMBO_2","EV_CONNECTOR_TYPE_TESLA","EV_CONNECTOR_TYPE_UNSPECIFIED_GB_T","EV_CONNECTOR_TYPE_UNSPECIFIED_WALL_OUTLET","EV_CONNECTOR_TYPE_NACS"]},"optional":true},"minimumChargingRateKw":{"type":"number","optional":true}},"optional":true},"includedType":{"type":"string","optional":true},"openNow":{"type":"boolean","optional":true},"regionCode":{"type":"string","optional":true},"rankPreference":{"type":"string","enum":["RANK_PREFERENCE_UNSPECIFIED","DISTANCE","RELEVANCE"],"optional":true},"strictTypeFiltering":{"type":"boolean","optional":true},"locationBias":{"type":"object","members":{"rectangle":{"type":"object","members":{"low":{"type":"object","members":{"longitude":{"type":"number","optional":true},"latitude":{"type":"number","optional":true}},"optional":true},"high":{"type":"object","members":{"longitude":{"type":"number","optional":true},"latitude":{"type":"number","optional":true}},"optional":true}},"optional":true},"circle":{"type":"object","members":{"center":{"type":"object","members":{"longitude":{"type":"number","optional":true},"latitude":{"type":"number","optional":true}},"optional":true},"radius":{"type":"number","optional":true}},"optional":true}},"optional":true},"pageSize":{"type":"number","optional":true},"languageCode":{"type":"string","optional":true},"textQuery":{"type":"string"}},"requiredParams":["textQuery"],"read":"anonymous","anonymous":["read"],"enforcedBy":{"read":"the provider at places.googleapis.com, under the app's configured credentials"},"fields":{"nextPageToken":{"type":"string","optional":true},"routingSummaries":{"type":"array","items":{"type":"object","members":{"legs":{"type":"array","items":{"type":"object","members":{"duration":{"type":"string","optional":true},"distanceMeters":{"type":"number","optional":true}}},"optional":true},"directionsUri":{"type":"string","optional":true}}},"optional":true},"contextualContents":{"type":"array","items":{"type":"object","members":{"reviews":{"type":"array","items":{"type":"object","members":{"originalText":{"type":"object","members":{"languageCode":{"type":"string","optional":true},"text":{"type":"string","optional":true}},"optional":true},"googleMapsUri":{"type":"string","optional":true},"visitDate":{"type":"object","members":{"month":{"type":"number","optional":true},"year":{"type":"number","optional":true},"day":{"type":"number","optional":true}},"optional":true},"rating":{"type":"number","optional":true},"relativePublishTimeDescription":{"type":"string","optional":true},"text":{"type":"object","members":{"languageCode":{"type":"string","optional":true},"text":{"type":"string","optional":true}},"optional":true},"authorAttribution":{"type":"object","members":{"photoUri":{"type":"string","optional":true},"uri":{"type":"string","optional":true},"displayName":{"type":"string","optional":true}},"optional":true},"name":{"type":"string","optional":true},"publishTime":{"type":"string","optional":true},"flagContentUri":{"type":"string","optional":true}}},"optional":true},"justifications":{"type":"array","items":{"type":"object","members":{"businessAvailabilityAttributesJustification":{"type":"object","members":{"takeout":{"type":"boolean","optional":true},"delivery":{"type":"boolean","optional":true},"dineIn":{"type":"boolean","optional":true}},"optional":true},"reviewJustification":{"type":"object","members":{"highlightedText":{"type":"object","members":{"text":{"type":"string","optional":true},"highlightedTextRanges":{"type":"array","items":{"type":"object","members":{"startIndex":{"type":"number","optional":true},"endIndex":{"type":"number","optional":true}}},"optional":true}},"optional":true},"review":{"type":"object","members":{"originalText":{"type":"object","members":{"languageCode":{"type":"string","optional":true},"text":{"type":"string","optional":true}},"optional":true},"googleMapsUri":{"type":"string","optional":true},"visitDate":{"type":"object","members":{"month":{"type":"number","optional":true},"year":{"type":"number","optional":true},"day":{"type":"number","optional":true}},"optional":true},"rating":{"type":"number","optional":true},"relativePublishTimeDescription":{"type":"string","optional":true},"text":{"type":"object","members":{"languageCode":{"type":"string","optional":true},"text":{"type":"string","optional":true}},"optional":true},"authorAttribution":{"type":"object","members":{"photoUri":{"type":"string","optional":true},"uri":{"type":"string","optional":true},"displayName":{"type":"string","optional":true}},"optional":true},"name":{"type":"string","optional":true},"publishTime":{"type":"string","optional":true},"flagContentUri":{"type":"string","optional":true}},"optional":true}},"optional":true}}},"optional":true},"photos":{"type":"array","items":{"type":"object","members":{"googleMapsUri":{"type":"string","optional":true},"name":{"type":"string","optional":true},"flagContentUri":{"type":"string","optional":true},"heightPx":{"type":"number","optional":true},"authorAttributions":{"type":"array","items":{"type":"object","members":{"photoUri":{"type":"string","optional":true},"uri":{"type":"string","optional":true},"displayName":{"type":"string","optional":true}}},"optional":true},"widthPx":{"type":"number","optional":true}}},"optional":true}}},"optional":true},"searchUri":{"type":"string","optional":true},"places":{"type":"array","items":{"type":"object","members":{"currentSecondaryOpeningHours":{"type":"array","items":{"type":"object","members":{"nextCloseTime":{"type":"string","optional":true},"weekdayDescriptions":{"type":"array","items":{"type":"string"},"optional":true},"openNow":{"type":"boolean","optional":true},"nextOpenTime":{"type":"string","optional":true},"secondaryHoursType":{"type":"string","enum":["SECONDARY_HOURS_TYPE_UNSPECIFIED","DRIVE_THROUGH","HAPPY_HOUR","DELIVERY","TAKEOUT","KITCHEN","BREAKFAST","LUNCH","DINNER","BRUNCH","PICKUP","ACCESS","SENIOR_HOURS","ONLINE_SERVICE_HOURS"],"optional":true},"specialDays":{"type":"array","items":{"type":"object","members":{"date":{"type":"object","members":{"month":{"type":"number","optional":true},"year":{"type":"number","optional":true},"day":{"type":"number","optional":true}},"optional":true}}},"optional":true},"periods":{"type":"array","items":{"type":"object","members":{"close":{"type":"object","members":{"hour":{"type":"number","optional":true},"day":{"type":"number","optional":true},"minute":{"type":"number","optional":true},"date":{"type":"object","members":{"month":{"type":"number","optional":true},"year":{"type":"number","optional":true},"day":{"type":"number","optional":true}},"optional":true},"truncated":{"type":"boolean","optional":true}},"optional":true},"open":{"type":"object","members":{"hour":{"type":"number","optional":true},"day":{"type":"number","optional":true},"minute":{"type":"number","optional":true},"date":{"type":"object","members":{"month":{"type":"number","optional":true},"year":{"type":"number","optional":true},"day":{"type":"number","optional":true}},"optional":true},"truncated":{"type":"boolean","optional":true}},"optional":true}}},"optional":true}}},"optional":true},"addressDescriptor":{"type":"object","members":{"landmarks":{"type":"array","items":{"type":"object","members":{"spatialRelationship":{"type":"string","enum":["NEAR","WITHIN","BESIDE","ACROSS_THE_ROAD","DOWN_THE_ROAD","AROUND_THE_CORNER","BEHIND"],"optional":true},"placeId":{"type":"string","optional":true},"displayName":{"type":"object","members":{"languageCode":{"type":"string","optional":true},"text":{"type":"string","optional":true}},"optional":true},"straightLineDistanceMeters":{"type":"number","optional":true},"name":{"type":"string","optional":true},"travelDistanceMeters":{"type":"number","optional":true},"types":{"type":"array","items":{"type":"string"},"optional":true}}},"optional":true},"areas":{"type":"array","items":{"type":"object","members":{"placeId":{"type":"string","optional":true},"containment":{"type":"string","enum":["CONTAINMENT_UNSPECIFIED","WITHIN","OUTSKIRTS","NEAR"],"optional":true},"displayName":{"type":"object","members":{"languageCode":{"type":"string","optional":true},"text":{"type":"string","optional":true}},"optional":true},"name":{"type":"string","optional":true}}},"optional":true}},"optional":true},"primaryType":{"type":"string","optional":true},"servesBrunch":{"type":"boolean","optional":true},"openingDate":{"type":"object","members":{"month":{"type":"number","optional":true},"year":{"type":"number","optional":true},"day":{"type":"number","optional":true}},"optional":true},"neighborhoodSummary":{"type":"object","members":{"overview":{"type":"object","members":{"referencedPlaces":{"type":"array","items":{"type":"string"},"optional":true},"content":{"type":"object","members":{"languageCode":{"type":"string","optional":true},"text":{"type":"string","optional":true}},"optional":true}},"optional":true},"flagContentUri":{"type":"string","optional":true},"disclosureText":{"type":"object","members":{"languageCode":{"type":"string","optional":true},"text":{"type":"string","optional":true}},"optional":true},"description":{"type":"object","members":{"referencedPlaces":{"type":"array","items":{"type":"string"},"optional":true},"content":{"type":"object","members":{"languageCode":{"type":"string","optional":true},"text":{"type":"string","optional":true}},"optional":true}},"optional":true}},"optional":true},"servesBeer":{"type":"boolean","optional":true},"primaryTypeDisplayName":{"type":"object","members":{"languageCode":{"type":"string","optional":true},"text":{"type":"string","optional":true}},"optional":true},"location":{"type":"object","members":{"longitude":{"type":"number","optional":true},"latitude":{"type":"number","optional":true}},"optional":true},"googleMapsTypeLabel":{"type":"object","members":{"languageCode":{"type":"string","optional":true},"text":{"type":"string","optional":true}},"optional":true},"takeout":{"type":"boolean","optional":true},"iconBackgroundColor":{"type":"string","optional":true},"containingPlaces":{"type":"array","items":{"type":"object","members":{"name":{"type":"string","optional":true},"id":{"type":"string","optional":true}}},"optional":true},"viewport":{"type":"object","members":{"low":{"type":"object","members":{"longitude":{"type":"number","optional":true},"latitude":{"type":"number","optional":true}},"optional":true},"high":{"type":"object","members":{"longitude":{"type":"number","optional":true},"latitude":{"type":"number","optional":true}},"optional":true}},"optional":true},"timeZone":{"type":"object","members":{"version":{"type":"string","optional":true},"id":{"type":"string","optional":true}},"optional":true},"dineIn":{"type":"boolean","optional":true},"servesCocktails":{"type":"boolean","optional":true},"shortFormattedAddress":{"type":"string","optional":true},"reviewSummary":{"type":"object","members":{"text":{"type":"object","members":{"languageCode":{"type":"string","optional":true},"text":{"type":"string","optional":true}},"optional":true},"flagContentUri":{"type":"string","optional":true},"disclosureText":{"type":"object","members":{"languageCode":{"type":"string","optional":true},"text":{"type":"string","optional":true}},"optional":true},"reviewsUri":{"type":"string","optional":true}},"optional":true},"photos":{"type":"array","items":{"type":"object","members":{"googleMapsUri":{"type":"string","optional":true},"name":{"type":"string","optional":true},"flagContentUri":{"type":"string","optional":true},"heightPx":{"type":"number","optional":true},"authorAttributions":{"type":"array","items":{"type":"object","members":{"photoUri":{"type":"string","optional":true},"uri":{"type":"string","optional":true},"displayName":{"type":"string","optional":true}}},"optional":true},"widthPx":{"type":"number","optional":true}}},"optional":true},"generativeSummary":{"type":"object","members":{"disclosureText":{"type":"object","members":{"languageCode":{"type":"string","optional":true},"text":{"type":"string","optional":true}},"optional":true},"overview":{"type":"object","members":{"languageCode":{"type":"string","optional":true},"text":{"type":"string","optional":true}},"optional":true},"overviewFlagContentUri":{"type":"string","optional":true}},"optional":true},"movedPlaceId":{"type":"string","optional":true},"userRatingCount":{"type":"number","optional":true},"servesBreakfast":{"type":"boolean","optional":true},"regularOpeningHours":{"type":"object","members":{"nextCloseTime":{"type":"string","optional":true},"weekdayDescriptions":{"type":"array","items":{"type":"string"},"optional":true},"openNow":{"type":"boolean","optional":true},"nextOpenTime":{"type":"string","optional":true},"secondaryHoursType":{"type":"string","enum":["SECONDARY_HOURS_TYPE_UNSPECIFIED","DRIVE_THROUGH","HAPPY_HOUR","DELIVERY","TAKEOUT","KITCHEN","BREAKFAST","LUNCH","DINNER","BRUNCH","PICKUP","ACCESS","SENIOR_HOURS","ONLINE_SERVICE_HOURS"],"optional":true},"specialDays":{"type":"array","items":{"type":"object","members":{"date":{"type":"object","members":{"month":{"type":"number","optional":true},"year":{"type":"number","optional":true},"day":{"type":"number","optional":true}},"optional":true}}},"optional":true},"periods":{"type":"array","items":{"type":"object","members":{"close":{"type":"object","members":{"hour":{"type":"number","optional":true},"day":{"type":"number","optional":true},"minute":{"type":"number","optional":true},"date":{"type":"object","members":{"month":{"type":"number","optional":true},"year":{"type":"number","optional":true},"day":{"type":"number","optional":true}},"optional":true},"truncated":{"type":"boolean","optional":true}},"optional":true},"open":{"type":"object","members":{"hour":{"type":"number","optional":true},"day":{"type":"number","optional":true},"minute":{"type":"number","optional":true},"date":{"type":"object","members":{"month":{"type":"number","optional":true},"year":{"type":"number","optional":true},"day":{"type":"number","optional":true}},"optional":true},"truncated":{"type":"boolean","optional":true}},"optional":true}}},"optional":true}},"optional":true},"servesWine":{"type":"boolean","optional":true},"postalAddress":{"type":"object","members":{"regionCode":{"type":"string","optional":true},"sublocality":{"type":"string","optional":true},"postalCode":{"type":"string","optional":true},"revision":{"type":"number","optional":true},"locality":{"type":"string","optional":true},"recipients":{"type":"array","items":{"type":"string"},"optional":true},"addressLines":{"type":"array","items":{"type":"string"},"optional":true},"organization":{"type":"string","optional":true},"languageCode":{"type":"string","optional":true},"administrativeArea":{"type":"string","optional":true},"sortingCode":{"type":"string","optional":true}},"optional":true},"types":{"type":"array","items":{"type":"string"},"optional":true},"restroom":{"type":"boolean","optional":true},"websiteUri":{"type":"string","optional":true},"plusCode":{"type":"object","members":{"globalCode":{"type":"string","optional":true},"compoundCode":{"type":"string","optional":true}},"optional":true},"servesLunch":{"type":"boolean","optional":true},"regularSecondaryOpeningHours":{"type":"array","items":{"type":"object","members":{"nextCloseTime":{"type":"string","optional":true},"weekdayDescriptions":{"type":"array","items":{"type":"string"},"optional":true},"openNow":{"type":"boolean","optional":true},"nextOpenTime":{"type":"string","optional":true},"secondaryHoursType":{"type":"string","enum":["SECONDARY_HOURS_TYPE_UNSPECIFIED","DRIVE_THROUGH","HAPPY_HOUR","DELIVERY","TAKEOUT","KITCHEN","BREAKFAST","LUNCH","DINNER","BRUNCH","PICKUP","ACCESS","SENIOR_HOURS","ONLINE_SERVICE_HOURS"],"optional":true},"specialDays":{"type":"array","items":{"type":"object","members":{"date":{"type":"object","members":{"month":{"type":"number","optional":true},"year":{"type":"number","optional":true},"day":{"type":"number","optional":true}},"optional":true}}},"optional":true},"periods":{"type":"array","items":{"type":"object","members":{"close":{"type":"object","members":{"hour":{"type":"number","optional":true},"day":{"type":"number","optional":true},"minute":{"type":"number","optional":true},"date":{"type":"object","members":{"month":{"type":"number","optional":true},"year":{"type":"number","optional":true},"day":{"type":"number","optional":true}},"optional":true},"truncated":{"type":"boolean","optional":true}},"optional":true},"open":{"type":"object","members":{"hour":{"type":"number","optional":true},"day":{"type":"number","optional":true},"minute":{"type":"number","optional":true},"date":{"type":"object","members":{"month":{"type":"number","optional":true},"year":{"type":"number","optional":true},"day":{"type":"number","optional":true}},"optional":true},"truncated":{"type":"boolean","optional":true}},"optional":true}}},"optional":true}}},"optional":true},"reservable":{"type":"boolean","optional":true},"navigationPoints":{"type":"array","items":{"type":"object","members":{"displayName":{"type":"object","members":{"languageCode":{"type":"string","optional":true},"text":{"type":"string","optional":true}},"optional":true},"travelModes":{"type":"array","items":{"type":"string","enum":["TRAVEL_MODE_UNSPECIFIED","DRIVE","WALK"]},"optional":true},"location":{"type":"object","members":{"longitude":{"type":"number","optional":true},"latitude":{"type":"number","optional":true}},"optional":true},"usages":{"type":"array","items":{"type":"string","enum":["USAGE_UNSPECIFIED","DROPOFF","PICKUP","PARKING"]},"optional":true},"navigationPointToken":{"type":"string","optional":true}}},"optional":true},"delivery":{"type":"boolean","optional":true},"servesCoffee":{"type":"boolean","optional":true},"currentOpeningHours":{"type":"object","members":{"nextCloseTime":{"type":"string","optional":true},"weekdayDescriptions":{"type":"array","items":{"type":"string"},"optional":true},"openNow":{"type":"boolean","optional":true},"nextOpenTime":{"type":"string","optional":true},"secondaryHoursType":{"type":"string","enum":["SECONDARY_HOURS_TYPE_UNSPECIFIED","DRIVE_THROUGH","HAPPY_HOUR","DELIVERY","TAKEOUT","KITCHEN","BREAKFAST","LUNCH","DINNER","BRUNCH","PICKUP","ACCESS","SENIOR_HOURS","ONLINE_SERVICE_HOURS"],"optional":true},"specialDays":{"type":"array","items":{"type":"object","members":{"date":{"type":"object","members":{"month":{"type":"number","optional":true},"year":{"type":"number","optional":true},"day":{"type":"number","optional":true}},"optional":true}}},"optional":true},"periods":{"type":"array","items":{"type":"object","members":{"close":{"type":"object","members":{"hour":{"type":"number","optional":true},"day":{"type":"number","optional":true},"minute":{"type":"number","optional":true},"date":{"type":"object","members":{"month":{"type":"number","optional":true},"year":{"type":"number","optional":true},"day":{"type":"number","optional":true}},"optional":true},"truncated":{"type":"boolean","optional":true}},"optional":true},"open":{"type":"object","members":{"hour":{"type":"number","optional":true},"day":{"type":"number","optional":true},"minute":{"type":"number","optional":true},"date":{"type":"object","members":{"month":{"type":"number","optional":true},"year":{"type":"number","optional":true},"day":{"type":"number","optional":true}},"optional":true},"truncated":{"type":"boolean","optional":true}},"optional":true}}},"optional":true}},"optional":true},"name":{"type":"string","optional":true},"goodForWatchingSports":{"type":"boolean","optional":true},"iconMaskBaseUri":{"type":"string","optional":true},"internationalPhoneNumber":{"type":"string","optional":true},"subDestinations":{"type":"array","items":{"type":"object","members":{"name":{"type":"string","optional":true},"id":{"type":"string","optional":true}}},"optional":true},"parkingOptions":{"type":"object","members":{"paidGarageParking":{"type":"boolean","optional":true},"paidParkingLot":{"type":"boolean","optional":true},"freeGarageParking":{"type":"boolean","optional":true},"valetParking":{"type":"boolean","optional":true},"freeParkingLot":{"type":"boolean","optional":true},"freeStreetParking":{"type":"boolean","optional":true},"paidStreetParking":{"type":"boolean","optional":true}},"optional":true},"paymentOptions":{"type":"object","members":{"acceptsDebitCards":{"type":"boolean","optional":true},"acceptsCashOnly":{"type":"boolean","optional":true},"acceptsCreditCards":{"type":"boolean","optional":true},"acceptsNfc":{"type":"boolean","optional":true}},"optional":true},"evChargeAmenitySummary":{"type":"object","members":{"disclosureText":{"type":"object","members":{"languageCode":{"type":"string","optional":true},"text":{"type":"string","optional":true}},"optional":true},"restaurant":{"type":"object","members":{"referencedPlaces":{"type":"array","items":{"type":"string"},"optional":true},"content":{"type":"object","members":{"languageCode":{"type":"string","optional":true},"text":{"type":"string","optional":true}},"optional":true}},"optional":true},"store":{"type":"object","members":{"referencedPlaces":{"type":"array","items":{"type":"string"},"optional":true},"content":{"type":"object","members":{"languageCode":{"type":"string","optional":true},"text":{"type":"string","optional":true}},"optional":true}},"optional":true},"coffee":{"type":"object","members":{"referencedPlaces":{"type":"array","items":{"type":"string"},"optional":true},"content":{"type":"object","members":{"languageCode":{"type":"string","optional":true},"text":{"type":"string","optional":true}},"optional":true}},"optional":true},"overview":{"type":"object","members":{"referencedPlaces":{"type":"array","items":{"type":"string"},"optional":true},"content":{"type":"object","members":{"languageCode":{"type":"string","optional":true},"text":{"type":"string","optional":true}},"optional":true}},"optional":true},"flagContentUri":{"type":"string","optional":true}},"optional":true},"formattedAddress":{"type":"string","optional":true},"googleMapsLinks":{"type":"object","members":{"placeUri":{"type":"string","optional":true},"writeAReviewUri":{"type":"string","optional":true},"photosUri":{"type":"string","optional":true},"reviewsUri":{"type":"string","optional":true},"directionsUri":{"type":"string","optional":true}},"optional":true},"evChargeOptions":{"type":"object","members":{"connectorCount":{"type":"number","optional":true},"connectorAggregation":{"type":"array","items":{"type":"object","members":{"outOfServiceCount":{"type":"number","optional":true},"maxChargeRateKw":{"type":"number","optional":true},"availabilityLastUpdateTime":{"type":"string","optional":true},"type":{"type":"string","enum":["EV_CONNECTOR_TYPE_UNSPECIFIED","EV_CONNECTOR_TYPE_OTHER","EV_CONNECTOR_TYPE_J1772","EV_CONNECTOR_TYPE_TYPE_2","EV_CONNECTOR_TYPE_CHADEMO","EV_CONNECTOR_TYPE_CCS_COMBO_1","EV_CONNECTOR_TYPE_CCS_COMBO_2","EV_CONNECTOR_TYPE_TESLA","EV_CONNECTOR_TYPE_UNSPECIFIED_GB_T","EV_CONNECTOR_TYPE_UNSPECIFIED_WALL_OUTLET","EV_CONNECTOR_TYPE_NACS"],"optional":true},"count":{"type":"number","optional":true},"availableCount":{"type":"number","optional":true}}},"optional":true}},"optional":true},"nationalPhoneNumber":{"type":"string","optional":true},"goodForGroups":{"type":"boolean","optional":true},"entrances":{"type":"array","items":{"type":"object","members":{"tags":{"type":"array","items":{"type":"string","enum":["TAG_UNSPECIFIED","PREFERRED"]},"optional":true},"location":{"type":"object","members":{"longitude":{"type":"number","optional":true},"latitude":{"type":"number","optional":true}},"optional":true}}},"optional":true},"outdoorSeating":{"type":"boolean","optional":true},"servesDinner":{"type":"boolean","optional":true},"attributions":{"type":"array","items":{"type":"object","members":{"provider":{"type":"string","optional":true},"providerUri":{"type":"string","optional":true}}},"optional":true},"servesVegetarianFood":{"type":"boolean","optional":true},"displayName":{"type":"object","members":{"languageCode":{"type":"string","optional":true},"text":{"type":"string","optional":true}},"optional":true},"googleMapsUri":{"type":"string","optional":true},"curbsidePickup":{"type":"boolean","optional":true},"utcOffsetMinutes":{"type":"number","optional":true},"transitStation":{"type":"object","members":{"agencies":{"type":"array","items":{"type":"object","members":{"lines":{"type":"array","items":{"type":"object","members":{"textColor":{"type":"string","optional":true},"vehicleIcon":{"type":"object","members":{"nameIncluded":{"type":"boolean","optional":true},"url":{"type":"string","optional":true}},"optional":true},"url":{"type":"string","optional":true},"id":{"type":"string","optional":true},"icon":{"type":"object","members":{"nameIncluded":{"type":"boolean","optional":true},"url":{"type":"string","optional":true}},"optional":true},"backgroundColor":{"type":"string","optional":true},"vehicleType":{"type":"string","enum":["VEHICLE_TYPE_UNSPECIFIED","RAIL","METRO_RAIL","SUBWAY","TRAM","MONORAIL","HEAVY_RAIL","COMMUTER_TRAIN","HIGH_SPEED_TRAIN","LONG_DISTANCE_TRAIN","BUS","INTERCITY_BUS","TROLLEYBUS","SHARE_TAXI","COACH","FERRY","CABLE_CAR","GONDOLA_LIFT","FUNICULAR","SPECIAL","HORSE_CARRIAGE","AIRPLANE"],"optional":true},"displayName":{"type":"object","members":{"languageCode":{"type":"string","optional":true},"text":{"type":"string","optional":true}},"optional":true},"shortDisplayName":{"type":"object","members":{"languageCode":{"type":"string","optional":true},"text":{"type":"string","optional":true}},"optional":true}}},"optional":true},"fareUrl":{"type":"string","optional":true},"displayName":{"type":"object","members":{"languageCode":{"type":"string","optional":true},"text":{"type":"string","optional":true}},"optional":true},"url":{"type":"string","optional":true},"icon":{"type":"object","members":{"nameIncluded":{"type":"boolean","optional":true},"url":{"type":"string","optional":true}},"optional":true}}},"optional":true},"stops":{"type":"array","items":{"type":"object","members":{"displayName":{"type":"object","members":{"languageCode":{"type":"string","optional":true},"text":{"type":"string","optional":true}},"optional":true},"stopCode":{"type":"object","members":{"languageCode":{"type":"string","optional":true},"text":{"type":"string","optional":true}},"optional":true},"id":{"type":"string","optional":true},"platformCode":{"type":"object","members":{"languageCode":{"type":"string","optional":true},"text":{"type":"string","optional":true}},"optional":true},"wheelchairAccessibleEntrance":{"type":"boolean","optional":true},"signageText":{"type":"object","members":{"languageCode":{"type":"string","optional":true},"text":{"type":"string","optional":true}},"optional":true},"location":{"type":"object","members":{"longitude":{"type":"number","optional":true},"latitude":{"type":"number","optional":true}},"optional":true}}},"optional":true},"displayName":{"type":"object","members":{"languageCode":{"type":"string","optional":true},"text":{"type":"string","optional":true}},"optional":true}},"optional":true},"priceRange":{"type":"object","members":{"startPrice":{"type":"object","members":{"currencyCode":{"type":"string","optional":true},"units":{"type":"string","optional":true},"nanos":{"type":"number","optional":true}},"optional":true},"endPrice":{"type":"object","members":{"currencyCode":{"type":"string","optional":true},"units":{"type":"string","optional":true},"nanos":{"type":"number","optional":true}},"optional":true}},"optional":true},"businessStatus":{"type":"string","enum":["BUSINESS_STATUS_UNSPECIFIED","OPERATIONAL","CLOSED_TEMPORARILY","CLOSED_PERMANENTLY","FUTURE_OPENING"],"optional":true},"addressComponents":{"type":"array","items":{"type":"object","members":{"languageCode":{"type":"string","optional":true},"types":{"type":"array","items":{"type":"string"},"optional":true},"shortText":{"type":"string","optional":true},"longText":{"type":"string","optional":true}}},"optional":true},"allowsDogs":{"type":"boolean","optional":true},"servesDessert":{"type":"boolean","optional":true},"movedPlace":{"type":"string","optional":true},"id":{"type":"string","optional":true},"consumerAlert":{"type":"object","members":{"details":{"type":"object","members":{"title":{"type":"string","optional":true},"aboutLink":{"type":"object","members":{"title":{"type":"string","optional":true},"uri":{"type":"string","optional":true}},"optional":true},"description":{"type":"string","optional":true}},"optional":true},"languageCode":{"type":"string","optional":true},"overview":{"type":"string","optional":true}},"optional":true},"accessibilityOptions":{"type":"object","members":{"wheelchairAccessibleParking":{"type":"boolean","optional":true},"wheelchairAccessibleSeating":{"type":"boolean","optional":true},"wheelchairAccessibleEntrance":{"type":"boolean","optional":true},"wheelchairAccessibleRestroom":{"type":"boolean","optional":true}},"optional":true},"fuelOptions":{"type":"object","members":{"fuelPrices":{"type":"array","items":{"type":"object","members":{"updateTime":{"type":"string","optional":true},"price":{"type":"object","members":{"currencyCode":{"type":"string","optional":true},"units":{"type":"string","optional":true},"nanos":{"type":"number","optional":true}},"optional":true},"type":{"type":"string","enum":["FUEL_TYPE_UNSPECIFIED","DIESEL","DIESEL_PLUS","REGULAR_UNLEADED","MIDGRADE","PREMIUM","SP91","SP91_E10","SP92","SP95","SP95_E10","SP98","SP99","SP100","LPG","E80","E85","E100","METHANE","BIO_DIESEL","TRUCK_DIESEL"],"optional":true}}},"optional":true}},"optional":true},"goodForChildren":{"type":"boolean","optional":true},"liveMusic":{"type":"boolean","optional":true},"menuForChildren":{"type":"boolean","optional":true},"adrFormatAddress":{"type":"string","optional":true},"rating":{"type":"number","optional":true},"priceLevel":{"type":"string","enum":["PRICE_LEVEL_UNSPECIFIED","PRICE_LEVEL_FREE","PRICE_LEVEL_INEXPENSIVE","PRICE_LEVEL_MODERATE","PRICE_LEVEL_EXPENSIVE","PRICE_LEVEL_VERY_EXPENSIVE"],"optional":true},"pureServiceAreaBusiness":{"type":"boolean","optional":true},"editorialSummary":{"type":"object","members":{"languageCode":{"type":"string","optional":true},"text":{"type":"string","optional":true}},"optional":true},"reviews":{"type":"array","items":{"type":"object","members":{"originalText":{"type":"object","members":{"languageCode":{"type":"string","optional":true},"text":{"type":"string","optional":true}},"optional":true},"googleMapsUri":{"type":"string","optional":true},"visitDate":{"type":"object","members":{"month":{"type":"number","optional":true},"year":{"type":"number","optional":true},"day":{"type":"number","optional":true}},"optional":true},"rating":{"type":"number","optional":true},"relativePublishTimeDescription":{"type":"string","optional":true},"text":{"type":"object","members":{"languageCode":{"type":"string","optional":true},"text":{"type":"string","optional":true}},"optional":true},"authorAttribution":{"type":"object","members":{"photoUri":{"type":"string","optional":true},"uri":{"type":"string","optional":true},"displayName":{"type":"string","optional":true}},"optional":true},"name":{"type":"string","optional":true},"publishTime":{"type":"string","optional":true},"flagContentUri":{"type":"string","optional":true}}},"optional":true}}},"optional":true}}},"searchNearby":{"desc":"Places API (New) nearby search within a circle, with included/excluded place types.","ops":["query"],"queryFields":[],"params":["includedTypes","excludedPrimaryTypes","rankPreference","regionCode","locationRestriction","includedPrimaryTypes","routingParameters","languageCode","maxResultCount","includeFutureOpeningBusinesses","excludedTypes"],"parameterFields":{"includedTypes":{"type":"array","items":{"type":"string"},"optional":true},"excludedPrimaryTypes":{"type":"array","items":{"type":"string"},"optional":true},"rankPreference":{"type":"string","enum":["RANK_PREFERENCE_UNSPECIFIED","DISTANCE","POPULARITY"],"optional":true},"regionCode":{"type":"string","optional":true},"locationRestriction":{"type":"object","members":{"circle":{"type":"object","members":{"center":{"type":"object","members":{"longitude":{"type":"number","optional":true},"latitude":{"type":"number","optional":true}},"optional":true},"radius":{"type":"number","optional":true}},"optional":true}}},"includedPrimaryTypes":{"type":"array","items":{"type":"string"},"optional":true},"routingParameters":{"type":"object","members":{"routeModifiers":{"type":"object","members":{"avoidIndoor":{"type":"boolean","optional":true},"avoidFerries":{"type":"boolean","optional":true},"avoidHighways":{"type":"boolean","optional":true},"avoidTolls":{"type":"boolean","optional":true}},"optional":true},"origin":{"type":"object","members":{"longitude":{"type":"number","optional":true},"latitude":{"type":"number","optional":true}},"optional":true},"routingPreference":{"type":"string","enum":["ROUTING_PREFERENCE_UNSPECIFIED","TRAFFIC_UNAWARE","TRAFFIC_AWARE","TRAFFIC_AWARE_OPTIMAL"],"optional":true},"travelMode":{"type":"string","enum":["TRAVEL_MODE_UNSPECIFIED","DRIVE","BICYCLE","WALK","TWO_WHEELER"],"optional":true}},"optional":true},"languageCode":{"type":"string","optional":true},"maxResultCount":{"type":"number","optional":true},"includeFutureOpeningBusinesses":{"type":"boolean","optional":true},"excludedTypes":{"type":"array","items":{"type":"string"},"optional":true}},"requiredParams":["locationRestriction"],"read":"anonymous","anonymous":["read"],"enforcedBy":{"read":"the provider at places.googleapis.com, under the app's configured credentials"},"fields":{"routingSummaries":{"type":"array","items":{"type":"object","members":{"legs":{"type":"array","items":{"type":"object","members":{"duration":{"type":"string","optional":true},"distanceMeters":{"type":"number","optional":true}}},"optional":true},"directionsUri":{"type":"string","optional":true}}},"optional":true},"places":{"type":"array","items":{"type":"object","members":{"currentSecondaryOpeningHours":{"type":"array","items":{"type":"object","members":{"nextCloseTime":{"type":"string","optional":true},"weekdayDescriptions":{"type":"array","items":{"type":"string"},"optional":true},"openNow":{"type":"boolean","optional":true},"nextOpenTime":{"type":"string","optional":true},"secondaryHoursType":{"type":"string","enum":["SECONDARY_HOURS_TYPE_UNSPECIFIED","DRIVE_THROUGH","HAPPY_HOUR","DELIVERY","TAKEOUT","KITCHEN","BREAKFAST","LUNCH","DINNER","BRUNCH","PICKUP","ACCESS","SENIOR_HOURS","ONLINE_SERVICE_HOURS"],"optional":true},"specialDays":{"type":"array","items":{"type":"object","members":{"date":{"type":"object","members":{"month":{"type":"number","optional":true},"year":{"type":"number","optional":true},"day":{"type":"number","optional":true}},"optional":true}}},"optional":true},"periods":{"type":"array","items":{"type":"object","members":{"close":{"type":"object","members":{"hour":{"type":"number","optional":true},"day":{"type":"number","optional":true},"minute":{"type":"number","optional":true},"date":{"type":"object","members":{"month":{"type":"number","optional":true},"year":{"type":"number","optional":true},"day":{"type":"number","optional":true}},"optional":true},"truncated":{"type":"boolean","optional":true}},"optional":true},"open":{"type":"object","members":{"hour":{"type":"number","optional":true},"day":{"type":"number","optional":true},"minute":{"type":"number","optional":true},"date":{"type":"object","members":{"month":{"type":"number","optional":true},"year":{"type":"number","optional":true},"day":{"type":"number","optional":true}},"optional":true},"truncated":{"type":"boolean","optional":true}},"optional":true}}},"optional":true}}},"optional":true},"addressDescriptor":{"type":"object","members":{"landmarks":{"type":"array","items":{"type":"object","members":{"spatialRelationship":{"type":"string","enum":["NEAR","WITHIN","BESIDE","ACROSS_THE_ROAD","DOWN_THE_ROAD","AROUND_THE_CORNER","BEHIND"],"optional":true},"placeId":{"type":"string","optional":true},"displayName":{"type":"object","members":{"languageCode":{"type":"string","optional":true},"text":{"type":"string","optional":true}},"optional":true},"straightLineDistanceMeters":{"type":"number","optional":true},"name":{"type":"string","optional":true},"travelDistanceMeters":{"type":"number","optional":true},"types":{"type":"array","items":{"type":"string"},"optional":true}}},"optional":true},"areas":{"type":"array","items":{"type":"object","members":{"placeId":{"type":"string","optional":true},"containment":{"type":"string","enum":["CONTAINMENT_UNSPECIFIED","WITHIN","OUTSKIRTS","NEAR"],"optional":true},"displayName":{"type":"object","members":{"languageCode":{"type":"string","optional":true},"text":{"type":"string","optional":true}},"optional":true},"name":{"type":"string","optional":true}}},"optional":true}},"optional":true},"primaryType":{"type":"string","optional":true},"servesBrunch":{"type":"boolean","optional":true},"openingDate":{"type":"object","members":{"month":{"type":"number","optional":true},"year":{"type":"number","optional":true},"day":{"type":"number","optional":true}},"optional":true},"neighborhoodSummary":{"type":"object","members":{"overview":{"type":"object","members":{"referencedPlaces":{"type":"array","items":{"type":"string"},"optional":true},"content":{"type":"object","members":{"languageCode":{"type":"string","optional":true},"text":{"type":"string","optional":true}},"optional":true}},"optional":true},"flagContentUri":{"type":"string","optional":true},"disclosureText":{"type":"object","members":{"languageCode":{"type":"string","optional":true},"text":{"type":"string","optional":true}},"optional":true},"description":{"type":"object","members":{"referencedPlaces":{"type":"array","items":{"type":"string"},"optional":true},"content":{"type":"object","members":{"languageCode":{"type":"string","optional":true},"text":{"type":"string","optional":true}},"optional":true}},"optional":true}},"optional":true},"servesBeer":{"type":"boolean","optional":true},"primaryTypeDisplayName":{"type":"object","members":{"languageCode":{"type":"string","optional":true},"text":{"type":"string","optional":true}},"optional":true},"location":{"type":"object","members":{"longitude":{"type":"number","optional":true},"latitude":{"type":"number","optional":true}},"optional":true},"googleMapsTypeLabel":{"type":"object","members":{"languageCode":{"type":"string","optional":true},"text":{"type":"string","optional":true}},"optional":true},"takeout":{"type":"boolean","optional":true},"iconBackgroundColor":{"type":"string","optional":true},"containingPlaces":{"type":"array","items":{"type":"object","members":{"name":{"type":"string","optional":true},"id":{"type":"string","optional":true}}},"optional":true},"viewport":{"type":"object","members":{"low":{"type":"object","members":{"longitude":{"type":"number","optional":true},"latitude":{"type":"number","optional":true}},"optional":true},"high":{"type":"object","members":{"longitude":{"type":"number","optional":true},"latitude":{"type":"number","optional":true}},"optional":true}},"optional":true},"timeZone":{"type":"object","members":{"version":{"type":"string","optional":true},"id":{"type":"string","optional":true}},"optional":true},"dineIn":{"type":"boolean","optional":true},"servesCocktails":{"type":"boolean","optional":true},"shortFormattedAddress":{"type":"string","optional":true},"reviewSummary":{"type":"object","members":{"text":{"type":"object","members":{"languageCode":{"type":"string","optional":true},"text":{"type":"string","optional":true}},"optional":true},"flagContentUri":{"type":"string","optional":true},"disclosureText":{"type":"object","members":{"languageCode":{"type":"string","optional":true},"text":{"type":"string","optional":true}},"optional":true},"reviewsUri":{"type":"string","optional":true}},"optional":true},"photos":{"type":"array","items":{"type":"object","members":{"googleMapsUri":{"type":"string","optional":true},"name":{"type":"string","optional":true},"flagContentUri":{"type":"string","optional":true},"heightPx":{"type":"number","optional":true},"authorAttributions":{"type":"array","items":{"type":"object","members":{"photoUri":{"type":"string","optional":true},"uri":{"type":"string","optional":true},"displayName":{"type":"string","optional":true}}},"optional":true},"widthPx":{"type":"number","optional":true}}},"optional":true},"generativeSummary":{"type":"object","members":{"disclosureText":{"type":"object","members":{"languageCode":{"type":"string","optional":true},"text":{"type":"string","optional":true}},"optional":true},"overview":{"type":"object","members":{"languageCode":{"type":"string","optional":true},"text":{"type":"string","optional":true}},"optional":true},"overviewFlagContentUri":{"type":"string","optional":true}},"optional":true},"movedPlaceId":{"type":"string","optional":true},"userRatingCount":{"type":"number","optional":true},"servesBreakfast":{"type":"boolean","optional":true},"regularOpeningHours":{"type":"object","members":{"nextCloseTime":{"type":"string","optional":true},"weekdayDescriptions":{"type":"array","items":{"type":"string"},"optional":true},"openNow":{"type":"boolean","optional":true},"nextOpenTime":{"type":"string","optional":true},"secondaryHoursType":{"type":"string","enum":["SECONDARY_HOURS_TYPE_UNSPECIFIED","DRIVE_THROUGH","HAPPY_HOUR","DELIVERY","TAKEOUT","KITCHEN","BREAKFAST","LUNCH","DINNER","BRUNCH","PICKUP","ACCESS","SENIOR_HOURS","ONLINE_SERVICE_HOURS"],"optional":true},"specialDays":{"type":"array","items":{"type":"object","members":{"date":{"type":"object","members":{"month":{"type":"number","optional":true},"year":{"type":"number","optional":true},"day":{"type":"number","optional":true}},"optional":true}}},"optional":true},"periods":{"type":"array","items":{"type":"object","members":{"close":{"type":"object","members":{"hour":{"type":"number","optional":true},"day":{"type":"number","optional":true},"minute":{"type":"number","optional":true},"date":{"type":"object","members":{"month":{"type":"number","optional":true},"year":{"type":"number","optional":true},"day":{"type":"number","optional":true}},"optional":true},"truncated":{"type":"boolean","optional":true}},"optional":true},"open":{"type":"object","members":{"hour":{"type":"number","optional":true},"day":{"type":"number","optional":true},"minute":{"type":"number","optional":true},"date":{"type":"object","members":{"month":{"type":"number","optional":true},"year":{"type":"number","optional":true},"day":{"type":"number","optional":true}},"optional":true},"truncated":{"type":"boolean","optional":true}},"optional":true}}},"optional":true}},"optional":true},"servesWine":{"type":"boolean","optional":true},"postalAddress":{"type":"object","members":{"regionCode":{"type":"string","optional":true},"sublocality":{"type":"string","optional":true},"postalCode":{"type":"string","optional":true},"revision":{"type":"number","optional":true},"locality":{"type":"string","optional":true},"recipients":{"type":"array","items":{"type":"string"},"optional":true},"addressLines":{"type":"array","items":{"type":"string"},"optional":true},"organization":{"type":"string","optional":true},"languageCode":{"type":"string","optional":true},"administrativeArea":{"type":"string","optional":true},"sortingCode":{"type":"string","optional":true}},"optional":true},"types":{"type":"array","items":{"type":"string"},"optional":true},"restroom":{"type":"boolean","optional":true},"websiteUri":{"type":"string","optional":true},"plusCode":{"type":"object","members":{"globalCode":{"type":"string","optional":true},"compoundCode":{"type":"string","optional":true}},"optional":true},"servesLunch":{"type":"boolean","optional":true},"regularSecondaryOpeningHours":{"type":"array","items":{"type":"object","members":{"nextCloseTime":{"type":"string","optional":true},"weekdayDescriptions":{"type":"array","items":{"type":"string"},"optional":true},"openNow":{"type":"boolean","optional":true},"nextOpenTime":{"type":"string","optional":true},"secondaryHoursType":{"type":"string","enum":["SECONDARY_HOURS_TYPE_UNSPECIFIED","DRIVE_THROUGH","HAPPY_HOUR","DELIVERY","TAKEOUT","KITCHEN","BREAKFAST","LUNCH","DINNER","BRUNCH","PICKUP","ACCESS","SENIOR_HOURS","ONLINE_SERVICE_HOURS"],"optional":true},"specialDays":{"type":"array","items":{"type":"object","members":{"date":{"type":"object","members":{"month":{"type":"number","optional":true},"year":{"type":"number","optional":true},"day":{"type":"number","optional":true}},"optional":true}}},"optional":true},"periods":{"type":"array","items":{"type":"object","members":{"close":{"type":"object","members":{"hour":{"type":"number","optional":true},"day":{"type":"number","optional":true},"minute":{"type":"number","optional":true},"date":{"type":"object","members":{"month":{"type":"number","optional":true},"year":{"type":"number","optional":true},"day":{"type":"number","optional":true}},"optional":true},"truncated":{"type":"boolean","optional":true}},"optional":true},"open":{"type":"object","members":{"hour":{"type":"number","optional":true},"day":{"type":"number","optional":true},"minute":{"type":"number","optional":true},"date":{"type":"object","members":{"month":{"type":"number","optional":true},"year":{"type":"number","optional":true},"day":{"type":"number","optional":true}},"optional":true},"truncated":{"type":"boolean","optional":true}},"optional":true}}},"optional":true}}},"optional":true},"reservable":{"type":"boolean","optional":true},"navigationPoints":{"type":"array","items":{"type":"object","members":{"displayName":{"type":"object","members":{"languageCode":{"type":"string","optional":true},"text":{"type":"string","optional":true}},"optional":true},"travelModes":{"type":"array","items":{"type":"string","enum":["TRAVEL_MODE_UNSPECIFIED","DRIVE","WALK"]},"optional":true},"location":{"type":"object","members":{"longitude":{"type":"number","optional":true},"latitude":{"type":"number","optional":true}},"optional":true},"usages":{"type":"array","items":{"type":"string","enum":["USAGE_UNSPECIFIED","DROPOFF","PICKUP","PARKING"]},"optional":true},"navigationPointToken":{"type":"string","optional":true}}},"optional":true},"delivery":{"type":"boolean","optional":true},"servesCoffee":{"type":"boolean","optional":true},"currentOpeningHours":{"type":"object","members":{"nextCloseTime":{"type":"string","optional":true},"weekdayDescriptions":{"type":"array","items":{"type":"string"},"optional":true},"openNow":{"type":"boolean","optional":true},"nextOpenTime":{"type":"string","optional":true},"secondaryHoursType":{"type":"string","enum":["SECONDARY_HOURS_TYPE_UNSPECIFIED","DRIVE_THROUGH","HAPPY_HOUR","DELIVERY","TAKEOUT","KITCHEN","BREAKFAST","LUNCH","DINNER","BRUNCH","PICKUP","ACCESS","SENIOR_HOURS","ONLINE_SERVICE_HOURS"],"optional":true},"specialDays":{"type":"array","items":{"type":"object","members":{"date":{"type":"object","members":{"month":{"type":"number","optional":true},"year":{"type":"number","optional":true},"day":{"type":"number","optional":true}},"optional":true}}},"optional":true},"periods":{"type":"array","items":{"type":"object","members":{"close":{"type":"object","members":{"hour":{"type":"number","optional":true},"day":{"type":"number","optional":true},"minute":{"type":"number","optional":true},"date":{"type":"object","members":{"month":{"type":"number","optional":true},"year":{"type":"number","optional":true},"day":{"type":"number","optional":true}},"optional":true},"truncated":{"type":"boolean","optional":true}},"optional":true},"open":{"type":"object","members":{"hour":{"type":"number","optional":true},"day":{"type":"number","optional":true},"minute":{"type":"number","optional":true},"date":{"type":"object","members":{"month":{"type":"number","optional":true},"year":{"type":"number","optional":true},"day":{"type":"number","optional":true}},"optional":true},"truncated":{"type":"boolean","optional":true}},"optional":true}}},"optional":true}},"optional":true},"name":{"type":"string","optional":true},"goodForWatchingSports":{"type":"boolean","optional":true},"iconMaskBaseUri":{"type":"string","optional":true},"internationalPhoneNumber":{"type":"string","optional":true},"subDestinations":{"type":"array","items":{"type":"object","members":{"name":{"type":"string","optional":true},"id":{"type":"string","optional":true}}},"optional":true},"parkingOptions":{"type":"object","members":{"paidGarageParking":{"type":"boolean","optional":true},"paidParkingLot":{"type":"boolean","optional":true},"freeGarageParking":{"type":"boolean","optional":true},"valetParking":{"type":"boolean","optional":true},"freeParkingLot":{"type":"boolean","optional":true},"freeStreetParking":{"type":"boolean","optional":true},"paidStreetParking":{"type":"boolean","optional":true}},"optional":true},"paymentOptions":{"type":"object","members":{"acceptsDebitCards":{"type":"boolean","optional":true},"acceptsCashOnly":{"type":"boolean","optional":true},"acceptsCreditCards":{"type":"boolean","optional":true},"acceptsNfc":{"type":"boolean","optional":true}},"optional":true},"evChargeAmenitySummary":{"type":"object","members":{"disclosureText":{"type":"object","members":{"languageCode":{"type":"string","optional":true},"text":{"type":"string","optional":true}},"optional":true},"restaurant":{"type":"object","members":{"referencedPlaces":{"type":"array","items":{"type":"string"},"optional":true},"content":{"type":"object","members":{"languageCode":{"type":"string","optional":true},"text":{"type":"string","optional":true}},"optional":true}},"optional":true},"store":{"type":"object","members":{"referencedPlaces":{"type":"array","items":{"type":"string"},"optional":true},"content":{"type":"object","members":{"languageCode":{"type":"string","optional":true},"text":{"type":"string","optional":true}},"optional":true}},"optional":true},"coffee":{"type":"object","members":{"referencedPlaces":{"type":"array","items":{"type":"string"},"optional":true},"content":{"type":"object","members":{"languageCode":{"type":"string","optional":true},"text":{"type":"string","optional":true}},"optional":true}},"optional":true},"overview":{"type":"object","members":{"referencedPlaces":{"type":"array","items":{"type":"string"},"optional":true},"content":{"type":"object","members":{"languageCode":{"type":"string","optional":true},"text":{"type":"string","optional":true}},"optional":true}},"optional":true},"flagContentUri":{"type":"string","optional":true}},"optional":true},"formattedAddress":{"type":"string","optional":true},"googleMapsLinks":{"type":"object","members":{"placeUri":{"type":"string","optional":true},"writeAReviewUri":{"type":"string","optional":true},"photosUri":{"type":"string","optional":true},"reviewsUri":{"type":"string","optional":true},"directionsUri":{"type":"string","optional":true}},"optional":true},"evChargeOptions":{"type":"object","members":{"connectorCount":{"type":"number","optional":true},"connectorAggregation":{"type":"array","items":{"type":"object","members":{"outOfServiceCount":{"type":"number","optional":true},"maxChargeRateKw":{"type":"number","optional":true},"availabilityLastUpdateTime":{"type":"string","optional":true},"type":{"type":"string","enum":["EV_CONNECTOR_TYPE_UNSPECIFIED","EV_CONNECTOR_TYPE_OTHER","EV_CONNECTOR_TYPE_J1772","EV_CONNECTOR_TYPE_TYPE_2","EV_CONNECTOR_TYPE_CHADEMO","EV_CONNECTOR_TYPE_CCS_COMBO_1","EV_CONNECTOR_TYPE_CCS_COMBO_2","EV_CONNECTOR_TYPE_TESLA","EV_CONNECTOR_TYPE_UNSPECIFIED_GB_T","EV_CONNECTOR_TYPE_UNSPECIFIED_WALL_OUTLET","EV_CONNECTOR_TYPE_NACS"],"optional":true},"count":{"type":"number","optional":true},"availableCount":{"type":"number","optional":true}}},"optional":true}},"optional":true},"nationalPhoneNumber":{"type":"string","optional":true},"goodForGroups":{"type":"boolean","optional":true},"entrances":{"type":"array","items":{"type":"object","members":{"tags":{"type":"array","items":{"type":"string","enum":["TAG_UNSPECIFIED","PREFERRED"]},"optional":true},"location":{"type":"object","members":{"longitude":{"type":"number","optional":true},"latitude":{"type":"number","optional":true}},"optional":true}}},"optional":true},"outdoorSeating":{"type":"boolean","optional":true},"servesDinner":{"type":"boolean","optional":true},"attributions":{"type":"array","items":{"type":"object","members":{"provider":{"type":"string","optional":true},"providerUri":{"type":"string","optional":true}}},"optional":true},"servesVegetarianFood":{"type":"boolean","optional":true},"displayName":{"type":"object","members":{"languageCode":{"type":"string","optional":true},"text":{"type":"string","optional":true}},"optional":true},"googleMapsUri":{"type":"string","optional":true},"curbsidePickup":{"type":"boolean","optional":true},"utcOffsetMinutes":{"type":"number","optional":true},"transitStation":{"type":"object","members":{"agencies":{"type":"array","items":{"type":"object","members":{"lines":{"type":"array","items":{"type":"object","members":{"textColor":{"type":"string","optional":true},"vehicleIcon":{"type":"object","members":{"nameIncluded":{"type":"boolean","optional":true},"url":{"type":"string","optional":true}},"optional":true},"url":{"type":"string","optional":true},"id":{"type":"string","optional":true},"icon":{"type":"object","members":{"nameIncluded":{"type":"boolean","optional":true},"url":{"type":"string","optional":true}},"optional":true},"backgroundColor":{"type":"string","optional":true},"vehicleType":{"type":"string","enum":["VEHICLE_TYPE_UNSPECIFIED","RAIL","METRO_RAIL","SUBWAY","TRAM","MONORAIL","HEAVY_RAIL","COMMUTER_TRAIN","HIGH_SPEED_TRAIN","LONG_DISTANCE_TRAIN","BUS","INTERCITY_BUS","TROLLEYBUS","SHARE_TAXI","COACH","FERRY","CABLE_CAR","GONDOLA_LIFT","FUNICULAR","SPECIAL","HORSE_CARRIAGE","AIRPLANE"],"optional":true},"displayName":{"type":"object","members":{"languageCode":{"type":"string","optional":true},"text":{"type":"string","optional":true}},"optional":true},"shortDisplayName":{"type":"object","members":{"languageCode":{"type":"string","optional":true},"text":{"type":"string","optional":true}},"optional":true}}},"optional":true},"fareUrl":{"type":"string","optional":true},"displayName":{"type":"object","members":{"languageCode":{"type":"string","optional":true},"text":{"type":"string","optional":true}},"optional":true},"url":{"type":"string","optional":true},"icon":{"type":"object","members":{"nameIncluded":{"type":"boolean","optional":true},"url":{"type":"string","optional":true}},"optional":true}}},"optional":true},"stops":{"type":"array","items":{"type":"object","members":{"displayName":{"type":"object","members":{"languageCode":{"type":"string","optional":true},"text":{"type":"string","optional":true}},"optional":true},"stopCode":{"type":"object","members":{"languageCode":{"type":"string","optional":true},"text":{"type":"string","optional":true}},"optional":true},"id":{"type":"string","optional":true},"platformCode":{"type":"object","members":{"languageCode":{"type":"string","optional":true},"text":{"type":"string","optional":true}},"optional":true},"wheelchairAccessibleEntrance":{"type":"boolean","optional":true},"signageText":{"type":"object","members":{"languageCode":{"type":"string","optional":true},"text":{"type":"string","optional":true}},"optional":true},"location":{"type":"object","members":{"longitude":{"type":"number","optional":true},"latitude":{"type":"number","optional":true}},"optional":true}}},"optional":true},"displayName":{"type":"object","members":{"languageCode":{"type":"string","optional":true},"text":{"type":"string","optional":true}},"optional":true}},"optional":true},"priceRange":{"type":"object","members":{"startPrice":{"type":"object","members":{"currencyCode":{"type":"string","optional":true},"units":{"type":"string","optional":true},"nanos":{"type":"number","optional":true}},"optional":true},"endPrice":{"type":"object","members":{"currencyCode":{"type":"string","optional":true},"units":{"type":"string","optional":true},"nanos":{"type":"number","optional":true}},"optional":true}},"optional":true},"businessStatus":{"type":"string","enum":["BUSINESS_STATUS_UNSPECIFIED","OPERATIONAL","CLOSED_TEMPORARILY","CLOSED_PERMANENTLY","FUTURE_OPENING"],"optional":true},"addressComponents":{"type":"array","items":{"type":"object","members":{"languageCode":{"type":"string","optional":true},"types":{"type":"array","items":{"type":"string"},"optional":true},"shortText":{"type":"string","optional":true},"longText":{"type":"string","optional":true}}},"optional":true},"allowsDogs":{"type":"boolean","optional":true},"servesDessert":{"type":"boolean","optional":true},"movedPlace":{"type":"string","optional":true},"id":{"type":"string","optional":true},"consumerAlert":{"type":"object","members":{"details":{"type":"object","members":{"title":{"type":"string","optional":true},"aboutLink":{"type":"object","members":{"title":{"type":"string","optional":true},"uri":{"type":"string","optional":true}},"optional":true},"description":{"type":"string","optional":true}},"optional":true},"languageCode":{"type":"string","optional":true},"overview":{"type":"string","optional":true}},"optional":true},"accessibilityOptions":{"type":"object","members":{"wheelchairAccessibleParking":{"type":"boolean","optional":true},"wheelchairAccessibleSeating":{"type":"boolean","optional":true},"wheelchairAccessibleEntrance":{"type":"boolean","optional":true},"wheelchairAccessibleRestroom":{"type":"boolean","optional":true}},"optional":true},"fuelOptions":{"type":"object","members":{"fuelPrices":{"type":"array","items":{"type":"object","members":{"updateTime":{"type":"string","optional":true},"price":{"type":"object","members":{"currencyCode":{"type":"string","optional":true},"units":{"type":"string","optional":true},"nanos":{"type":"number","optional":true}},"optional":true},"type":{"type":"string","enum":["FUEL_TYPE_UNSPECIFIED","DIESEL","DIESEL_PLUS","REGULAR_UNLEADED","MIDGRADE","PREMIUM","SP91","SP91_E10","SP92","SP95","SP95_E10","SP98","SP99","SP100","LPG","E80","E85","E100","METHANE","BIO_DIESEL","TRUCK_DIESEL"],"optional":true}}},"optional":true}},"optional":true},"goodForChildren":{"type":"boolean","optional":true},"liveMusic":{"type":"boolean","optional":true},"menuForChildren":{"type":"boolean","optional":true},"adrFormatAddress":{"type":"string","optional":true},"rating":{"type":"number","optional":true},"priceLevel":{"type":"string","enum":["PRICE_LEVEL_UNSPECIFIED","PRICE_LEVEL_FREE","PRICE_LEVEL_INEXPENSIVE","PRICE_LEVEL_MODERATE","PRICE_LEVEL_EXPENSIVE","PRICE_LEVEL_VERY_EXPENSIVE"],"optional":true},"pureServiceAreaBusiness":{"type":"boolean","optional":true},"editorialSummary":{"type":"object","members":{"languageCode":{"type":"string","optional":true},"text":{"type":"string","optional":true}},"optional":true},"reviews":{"type":"array","items":{"type":"object","members":{"originalText":{"type":"object","members":{"languageCode":{"type":"string","optional":true},"text":{"type":"string","optional":true}},"optional":true},"googleMapsUri":{"type":"string","optional":true},"visitDate":{"type":"object","members":{"month":{"type":"number","optional":true},"year":{"type":"number","optional":true},"day":{"type":"number","optional":true}},"optional":true},"rating":{"type":"number","optional":true},"relativePublishTimeDescription":{"type":"string","optional":true},"text":{"type":"object","members":{"languageCode":{"type":"string","optional":true},"text":{"type":"string","optional":true}},"optional":true},"authorAttribution":{"type":"object","members":{"photoUri":{"type":"string","optional":true},"uri":{"type":"string","optional":true},"displayName":{"type":"string","optional":true}},"optional":true},"name":{"type":"string","optional":true},"publishTime":{"type":"string","optional":true},"flagContentUri":{"type":"string","optional":true}}},"optional":true}}},"optional":true}}},"photoMedia":{"desc":"Resolve temporary Places photo media URI; preserve author attribution from the Place photo metadata.","ops":["query"],"queryFields":[],"params":["placeId","photoId","maxHeightPx","maxWidthPx"],"parameterFields":{"placeId":{"type":"string","minLength":1},"photoId":{"type":"string","minLength":1},"maxHeightPx":{"type":"number","optional":true},"maxWidthPx":{"type":"number","optional":true}},"requiredParams":["placeId","photoId"],"read":"anonymous","anonymous":["read"],"enforcedBy":{"read":"the provider at places.googleapis.com, under the app's configured credentials"},"fields":{"photoUri":{"type":"string","optional":true},"name":{"type":"string","optional":true}}},"geocode":{"desc":"Geocoding API v4: convert a free-form address into coordinates and structured address results.","ops":["query"],"queryFields":[],"params":["addressQuery","languageCode","regionCode"],"parameterFields":{"addressQuery":{"type":"string","minLength":1,"maxLength":2048},"languageCode":{"type":"string","optional":true},"regionCode":{"type":"string","optional":true}},"requiredParams":["addressQuery"],"read":"anonymous","anonymous":["read"],"enforcedBy":{"read":"the provider at places.googleapis.com, under the app's configured credentials"},"fields":{"place":{"type":"string","optional":true},"placeId":{"type":"string","optional":true},"location":{"type":"object","members":{"latitude":{"type":"number","optional":true},"longitude":{"type":"number","optional":true}},"optional":true},"granularity":{"type":"string","optional":true},"viewport":{"type":"object","members":{"low":{"type":"object","members":{"latitude":{"type":"number","optional":true},"longitude":{"type":"number","optional":true}}},"high":{"type":"object","members":{"latitude":{"type":"number","optional":true},"longitude":{"type":"number","optional":true}}}},"optional":true},"formattedAddress":{"type":"string","optional":true},"postalAddress":{"type":"object","members":{"locality":{"type":"string","optional":true},"sublocality":{"type":"string","optional":true},"addressLines":{"type":"array","items":{"type":"string"},"optional":true},"organization":{"type":"string","optional":true},"sortingCode":{"type":"string","optional":true},"postalCode":{"type":"string","optional":true},"revision":{"type":"number","optional":true},"recipients":{"type":"array","items":{"type":"string"},"optional":true},"languageCode":{"type":"string","optional":true},"administrativeArea":{"type":"string","optional":true},"regionCode":{"type":"string","optional":true}},"optional":true},"addressComponents":{"type":"array","items":{"type":"object","members":{"longText":{"type":"string","optional":true},"shortText":{"type":"string","optional":true},"types":{"type":"array","items":{"type":"string"},"optional":true},"languageCode":{"type":"string","optional":true}}},"optional":true},"types":{"type":"array","items":{"type":"string"},"optional":true},"plusCode":{"type":"object","members":{"globalCode":{"type":"string","optional":true},"compoundCode":{"type":"string","optional":true}},"optional":true},"bounds":{"type":"object","members":{"low":{"type":"object","members":{"latitude":{"type":"number","optional":true},"longitude":{"type":"number","optional":true}},"optional":true},"high":{"type":"object","members":{"latitude":{"type":"number","optional":true},"longitude":{"type":"number","optional":true}},"optional":true}},"optional":true},"postalCodeLocalities":{"type":"array","items":{"type":"object","members":{"text":{"type":"string","optional":true},"languageCode":{"type":"string","optional":true}}},"optional":true}}},"reverseGeocode":{"desc":"Geocoding API v4: find addresses for a latitude,longitude coordinate pair.","ops":["query"],"queryFields":[],"params":["locationQuery","languageCode","regionCode","types","granularity"],"parameterFields":{"locationQuery":{"type":"string","pattern":"^-?[0-9]+(?:\\.[0-9]+)?,-?[0-9]+(?:\\.[0-9]+)?$"},"languageCode":{"type":"string","optional":true},"regionCode":{"type":"string","optional":true},"types":{"type":"array","items":{"type":"string"},"optional":true},"granularity":{"type":"array","items":{"type":"string"},"optional":true}},"requiredParams":["locationQuery"],"read":"anonymous","anonymous":["read"],"enforcedBy":{"read":"the provider at places.googleapis.com, under the app's configured credentials"},"fields":{"place":{"type":"string","optional":true},"placeId":{"type":"string","optional":true},"location":{"type":"object","members":{"latitude":{"type":"number","optional":true},"longitude":{"type":"number","optional":true}},"optional":true},"granularity":{"type":"string","optional":true},"viewport":{"type":"object","members":{"low":{"type":"object","members":{"latitude":{"type":"number","optional":true},"longitude":{"type":"number","optional":true}}},"high":{"type":"object","members":{"latitude":{"type":"number","optional":true},"longitude":{"type":"number","optional":true}}}},"optional":true},"formattedAddress":{"type":"string","optional":true},"postalAddress":{"type":"object","members":{"locality":{"type":"string","optional":true},"sublocality":{"type":"string","optional":true},"addressLines":{"type":"array","items":{"type":"string"},"optional":true},"organization":{"type":"string","optional":true},"sortingCode":{"type":"string","optional":true},"postalCode":{"type":"string","optional":true},"revision":{"type":"number","optional":true},"recipients":{"type":"array","items":{"type":"string"},"optional":true},"languageCode":{"type":"string","optional":true},"administrativeArea":{"type":"string","optional":true},"regionCode":{"type":"string","optional":true}},"optional":true},"addressComponents":{"type":"array","items":{"type":"object","members":{"longText":{"type":"string","optional":true},"shortText":{"type":"string","optional":true},"types":{"type":"array","items":{"type":"string"},"optional":true},"languageCode":{"type":"string","optional":true}}},"optional":true},"types":{"type":"array","items":{"type":"string"},"optional":true},"plusCode":{"type":"object","members":{"globalCode":{"type":"string","optional":true},"compoundCode":{"type":"string","optional":true}},"optional":true},"bounds":{"type":"object","members":{"low":{"type":"object","members":{"latitude":{"type":"number","optional":true},"longitude":{"type":"number","optional":true}},"optional":true},"high":{"type":"object","members":{"latitude":{"type":"number","optional":true},"longitude":{"type":"number","optional":true}},"optional":true}},"optional":true},"postalCodeLocalities":{"type":"array","items":{"type":"object","members":{"text":{"type":"string","optional":true},"languageCode":{"type":"string","optional":true}}},"optional":true}}},"placeGeocode":{"desc":"Geocoding API v4: retrieve the address and coordinates for a known Place ID.","ops":["query"],"queryFields":[],"params":["placeId","languageCode","regionCode"],"parameterFields":{"placeId":{"type":"string","minLength":1},"languageCode":{"type":"string","optional":true},"regionCode":{"type":"string","optional":true}},"requiredParams":["placeId"],"read":"anonymous","anonymous":["read"],"enforcedBy":{"read":"the provider at places.googleapis.com, under the app's configured credentials"},"fields":{"place":{"type":"string","optional":true},"placeId":{"type":"string","optional":true},"location":{"type":"object","members":{"latitude":{"type":"number","optional":true},"longitude":{"type":"number","optional":true}},"optional":true},"granularity":{"type":"string","optional":true},"viewport":{"type":"object","members":{"low":{"type":"object","members":{"latitude":{"type":"number","optional":true},"longitude":{"type":"number","optional":true}}},"high":{"type":"object","members":{"latitude":{"type":"number","optional":true},"longitude":{"type":"number","optional":true}}}},"optional":true},"formattedAddress":{"type":"string","optional":true},"postalAddress":{"type":"object","members":{"locality":{"type":"string","optional":true},"sublocality":{"type":"string","optional":true},"addressLines":{"type":"array","items":{"type":"string"},"optional":true},"organization":{"type":"string","optional":true},"sortingCode":{"type":"string","optional":true},"postalCode":{"type":"string","optional":true},"revision":{"type":"number","optional":true},"recipients":{"type":"array","items":{"type":"string"},"optional":true},"languageCode":{"type":"string","optional":true},"administrativeArea":{"type":"string","optional":true},"regionCode":{"type":"string","optional":true}},"optional":true},"addressComponents":{"type":"array","items":{"type":"object","members":{"longText":{"type":"string","optional":true},"shortText":{"type":"string","optional":true},"types":{"type":"array","items":{"type":"string"},"optional":true},"languageCode":{"type":"string","optional":true}}},"optional":true},"types":{"type":"array","items":{"type":"string"},"optional":true},"plusCode":{"type":"object","members":{"globalCode":{"type":"string","optional":true},"compoundCode":{"type":"string","optional":true}},"optional":true},"bounds":{"type":"object","members":{"low":{"type":"object","members":{"latitude":{"type":"number","optional":true},"longitude":{"type":"number","optional":true}},"optional":true},"high":{"type":"object","members":{"latitude":{"type":"number","optional":true},"longitude":{"type":"number","optional":true}},"optional":true}},"optional":true},"postalCodeLocalities":{"type":"array","items":{"type":"object","members":{"text":{"type":"string","optional":true},"languageCode":{"type":"string","optional":true}}},"optional":true}}},"validateAddress":{"desc":"Validate, standardize and enrich a postal address; expose verdict and component corrections for explicit user review.","ops":["query"],"queryFields":[],"params":["languageOptions","previousResponseId","sessionToken","enableUspsCass","address"],"parameterFields":{"languageOptions":{"type":"object","members":{"returnEnglishLatinAddress":{"type":"boolean","optional":true}},"optional":true},"previousResponseId":{"type":"string","optional":true},"sessionToken":{"type":"string","optional":true},"enableUspsCass":{"type":"boolean","optional":true},"address":{"type":"object","members":{"locality":{"type":"string","optional":true},"sublocality":{"type":"string","optional":true},"addressLines":{"type":"array","items":{"type":"string"},"optional":true},"organization":{"type":"string","optional":true},"sortingCode":{"type":"string","optional":true},"postalCode":{"type":"string","optional":true},"revision":{"type":"number","optional":true},"recipients":{"type":"array","items":{"type":"string"},"optional":true},"languageCode":{"type":"string","optional":true},"administrativeArea":{"type":"string","optional":true},"regionCode":{"type":"string","optional":true}}}},"requiredParams":["address"],"read":"anonymous","anonymous":["read"],"enforcedBy":{"read":"the provider at places.googleapis.com, under the app's configured credentials"},"fields":{"responseId":{"type":"string","optional":true},"result":{"type":"object","members":{"geocode":{"type":"object","members":{"featureSizeMeters":{"type":"number","optional":true},"bounds":{"type":"object","members":{"low":{"type":"object","members":{"longitude":{"type":"number","optional":true},"latitude":{"type":"number","optional":true}},"optional":true},"high":{"type":"object","members":{"longitude":{"type":"number","optional":true},"latitude":{"type":"number","optional":true}},"optional":true}},"optional":true},"placeTypes":{"type":"array","items":{"type":"string"},"optional":true},"plusCode":{"type":"object","members":{"globalCode":{"type":"string","optional":true},"compoundCode":{"type":"string","optional":true}},"optional":true},"placeId":{"type":"string","optional":true},"location":{"type":"object","members":{"longitude":{"type":"number","optional":true},"latitude":{"type":"number","optional":true}},"optional":true}},"optional":true},"verdict":{"type":"object","members":{"validationGranularity":{"type":"string","enum":["GRANULARITY_UNSPECIFIED","SUB_PREMISE","PREMISE","PREMISE_PROXIMITY","BLOCK","ROUTE","OTHER"],"optional":true},"geocodeGranularity":{"type":"string","enum":["GRANULARITY_UNSPECIFIED","SUB_PREMISE","PREMISE","PREMISE_PROXIMITY","BLOCK","ROUTE","OTHER"],"optional":true},"inputGranularity":{"type":"string","enum":["GRANULARITY_UNSPECIFIED","SUB_PREMISE","PREMISE","PREMISE_PROXIMITY","BLOCK","ROUTE","OTHER"],"optional":true},"hasSpellCorrectedComponents":{"type":"boolean","optional":true},"hasReplacedComponents":{"type":"boolean","optional":true},"hasUnconfirmedComponents":{"type":"boolean","optional":true},"hasInferredComponents":{"type":"boolean","optional":true},"addressComplete":{"type":"boolean","optional":true},"possibleNextAction":{"type":"string","enum":["POSSIBLE_NEXT_ACTION_UNSPECIFIED","FIX","CONFIRM_ADD_SUBPREMISES","CONFIRM","ACCEPT"],"optional":true}},"optional":true},"uspsData":{"type":"object","members":{"abbreviatedCity":{"type":"string","optional":true},"errorMessage":{"type":"string","optional":true},"dpvNonDeliveryDays":{"type":"string","optional":true},"fipsCountyCode":{"type":"string","optional":true},"ewsNoMatch":{"type":"boolean","optional":true},"dpvNonDeliveryDaysValues":{"type":"number","optional":true},"county":{"type":"string","optional":true},"dpvCmra":{"type":"string","optional":true},"elotFlag":{"type":"string","optional":true},"pmbNumber":{"type":"string","optional":true},"dpvNoSecureLocation":{"type":"string","optional":true},"dpvEnhancedDeliveryCode":{"type":"string","optional":true},"dpvVacant":{"type":"string","optional":true},"suitelinkFootnote":{"type":"string","optional":true},"deliveryPointCheckDigit":{"type":"string","optional":true},"carrierRoute":{"type":"string","optional":true},"dpvNoStat":{"type":"string","optional":true},"dpvDoorNotAccessible":{"type":"string","optional":true},"addressRecordType":{"type":"string","optional":true},"pmbDesignator":{"type":"string","optional":true},"carrierRouteIndicator":{"type":"string","optional":true},"standardizedAddress":{"type":"object","members":{"firm":{"type":"string","optional":true},"city":{"type":"string","optional":true},"cityStateZipAddressLine":{"type":"string","optional":true},"zipCode":{"type":"string","optional":true},"firstAddressLine":{"type":"string","optional":true},"zipCodeExtension":{"type":"string","optional":true},"state":{"type":"string","optional":true},"urbanization":{"type":"string","optional":true},"secondAddressLine":{"type":"string","optional":true}},"optional":true},"postOfficeState":{"type":"string","optional":true},"dpvDrop":{"type":"string","optional":true},"dpvThrowback":{"type":"string","optional":true},"cassProcessed":{"type":"boolean","optional":true},"dpvPbsa":{"type":"string","optional":true},"poBoxOnlyPostalCode":{"type":"boolean","optional":true},"dpvConfirmation":{"type":"string","optional":true},"deliveryPointCode":{"type":"string","optional":true},"dpvFootnote":{"type":"string","optional":true},"defaultAddress":{"type":"boolean","optional":true},"lacsLinkReturnCode":{"type":"string","optional":true},"dpvNoStatReasonCode":{"type":"number","optional":true},"lacsLinkIndicator":{"type":"string","optional":true},"elotNumber":{"type":"string","optional":true},"postOfficeCity":{"type":"string","optional":true}},"optional":true},"metadata":{"type":"object","members":{"residential":{"type":"boolean","optional":true},"poBox":{"type":"boolean","optional":true},"business":{"type":"boolean","optional":true}},"optional":true},"englishLatinAddress":{"type":"object","members":{"postalAddress":{"type":"object","members":{"locality":{"type":"string","optional":true},"sublocality":{"type":"string","optional":true},"addressLines":{"type":"array","items":{"type":"string"},"optional":true},"organization":{"type":"string","optional":true},"sortingCode":{"type":"string","optional":true},"postalCode":{"type":"string","optional":true},"revision":{"type":"number","optional":true},"recipients":{"type":"array","items":{"type":"string"},"optional":true},"languageCode":{"type":"string","optional":true},"administrativeArea":{"type":"string","optional":true},"regionCode":{"type":"string","optional":true}},"optional":true},"missingComponentTypes":{"type":"array","items":{"type":"string"},"optional":true},"formattedAddress":{"type":"string","optional":true},"addressComponents":{"type":"array","items":{"type":"object","members":{"spellCorrected":{"type":"boolean","optional":true},"componentName":{"type":"object","members":{"languageCode":{"type":"string","optional":true},"text":{"type":"string","optional":true}},"optional":true},"componentType":{"type":"string","optional":true},"unexpected":{"type":"boolean","optional":true},"replaced":{"type":"boolean","optional":true},"confirmationLevel":{"type":"string","enum":["CONFIRMATION_LEVEL_UNSPECIFIED","CONFIRMED","UNCONFIRMED_BUT_PLAUSIBLE","UNCONFIRMED_AND_SUSPICIOUS"],"optional":true},"inferred":{"type":"boolean","optional":true}}},"optional":true},"unresolvedTokens":{"type":"array","items":{"type":"string"},"optional":true},"unconfirmedComponentTypes":{"type":"array","items":{"type":"string"},"optional":true}},"optional":true},"address":{"type":"object","members":{"postalAddress":{"type":"object","members":{"locality":{"type":"string","optional":true},"sublocality":{"type":"string","optional":true},"addressLines":{"type":"array","items":{"type":"string"},"optional":true},"organization":{"type":"string","optional":true},"sortingCode":{"type":"string","optional":true},"postalCode":{"type":"string","optional":true},"revision":{"type":"number","optional":true},"recipients":{"type":"array","items":{"type":"string"},"optional":true},"languageCode":{"type":"string","optional":true},"administrativeArea":{"type":"string","optional":true},"regionCode":{"type":"string","optional":true}},"optional":true},"missingComponentTypes":{"type":"array","items":{"type":"string"},"optional":true},"formattedAddress":{"type":"string","optional":true},"addressComponents":{"type":"array","items":{"type":"object","members":{"spellCorrected":{"type":"boolean","optional":true},"componentName":{"type":"object","members":{"languageCode":{"type":"string","optional":true},"text":{"type":"string","optional":true}},"optional":true},"componentType":{"type":"string","optional":true},"unexpected":{"type":"boolean","optional":true},"replaced":{"type":"boolean","optional":true},"confirmationLevel":{"type":"string","enum":["CONFIRMATION_LEVEL_UNSPECIFIED","CONFIRMED","UNCONFIRMED_BUT_PLAUSIBLE","UNCONFIRMED_AND_SUSPICIOUS"],"optional":true},"inferred":{"type":"boolean","optional":true}}},"optional":true},"unresolvedTokens":{"type":"array","items":{"type":"string"},"optional":true},"unconfirmedComponentTypes":{"type":"array","items":{"type":"string"},"optional":true}},"optional":true}},"optional":true}}},"computeRoutes":{"desc":"Directions with traffic, alternatives, waypoint ordering, transit, tolls and route overlays. optimizeWaypointOrder returns optimizedIntermediateWaypointIndex.","ops":["query"],"queryFields":[],"params":["fieldMask","origin","destination","intermediates","travelMode","routingPreference","polylineQuality","polylineEncoding","departureTime","arrivalTime","computeAlternativeRoutes","routeModifiers","languageCode","regionCode","units","optimizeWaypointOrder","requestedReferenceRoutes","extraComputations","trafficModel","transitPreferences"],"parameterFields":{"fieldMask":{"type":"string","optional":true,"minLength":1,"maxLength":4096,"desc":"Optional response field mask. The default includes route geometry and turn instructions without repeated leg/step geometry. Request additional reviewed response fields explicitly when needed."},"origin":{"type":"object","members":{"location":{"type":"object","members":{"latLng":{"type":"object","members":{"latitude":{"type":"number","optional":true},"longitude":{"type":"number","optional":true}},"optional":true},"heading":{"type":"object","members":{"value":{"type":"number","optional":true}},"optional":true}},"optional":true},"placeId":{"type":"string","optional":true},"address":{"type":"string","optional":true},"navigationPointToken":{"type":"string","optional":true},"via":{"type":"boolean","optional":true},"vehicleStopover":{"type":"boolean","optional":true},"sideOfRoad":{"type":"boolean","optional":true}}},"destination":{"type":"object","members":{"location":{"type":"object","members":{"latLng":{"type":"object","members":{"latitude":{"type":"number","optional":true},"longitude":{"type":"number","optional":true}},"optional":true},"heading":{"type":"object","members":{"value":{"type":"number","optional":true}},"optional":true}},"optional":true},"placeId":{"type":"string","optional":true},"address":{"type":"string","optional":true},"navigationPointToken":{"type":"string","optional":true},"via":{"type":"boolean","optional":true},"vehicleStopover":{"type":"boolean","optional":true},"sideOfRoad":{"type":"boolean","optional":true}}},"intermediates":{"type":"array","items":{"type":"object","members":{"location":{"type":"object","members":{"latLng":{"type":"object","members":{"latitude":{"type":"number","optional":true},"longitude":{"type":"number","optional":true}},"optional":true},"heading":{"type":"object","members":{"value":{"type":"number","optional":true}},"optional":true}},"optional":true},"placeId":{"type":"string","optional":true},"address":{"type":"string","optional":true},"navigationPointToken":{"type":"string","optional":true},"via":{"type":"boolean","optional":true},"vehicleStopover":{"type":"boolean","optional":true},"sideOfRoad":{"type":"boolean","optional":true}}},"optional":true},"travelMode":{"type":"string","enum":["TRAVEL_MODE_UNSPECIFIED","DRIVE","BICYCLE","WALK","TWO_WHEELER","TRANSIT"],"optional":true},"routingPreference":{"type":"string","enum":["ROUTING_PREFERENCE_UNSPECIFIED","TRAFFIC_UNAWARE","TRAFFIC_AWARE","TRAFFIC_AWARE_OPTIMAL"],"optional":true},"polylineQuality":{"type":"string","enum":["POLYLINE_QUALITY_UNSPECIFIED","HIGH_QUALITY","OVERVIEW"],"optional":true},"polylineEncoding":{"type":"string","enum":["POLYLINE_ENCODING_UNSPECIFIED","ENCODED_POLYLINE","GEO_JSON_LINESTRING"],"optional":true},"departureTime":{"type":"string","optional":true},"arrivalTime":{"type":"string","optional":true},"computeAlternativeRoutes":{"type":"boolean","optional":true},"routeModifiers":{"type":"object","members":{"avoidTolls":{"type":"boolean","optional":true},"avoidHighways":{"type":"boolean","optional":true},"avoidFerries":{"type":"boolean","optional":true},"avoidIndoor":{"type":"boolean","optional":true},"vehicleInfo":{"type":"object","members":{"emissionType":{"type":"string","enum":["VEHICLE_EMISSION_TYPE_UNSPECIFIED","GASOLINE","ELECTRIC","HYBRID","DIESEL"],"optional":true}},"optional":true},"tollPasses":{"type":"array","items":{"type":"string","enum":["TOLL_PASS_UNSPECIFIED","AU_ETOLL_TAG","AU_EWAY_TAG","AU_LINKT","AR_TELEPASE","BR_AUTO_EXPRESO","BR_CONECTCAR","BR_MOVE_MAIS","BR_PASSA_RAPIDO","BR_SEM_PARAR","BR_TAGGY","BR_VELOE","CA_US_AKWASASNE_SEAWAY_CORPORATE_CARD","CA_US_AKWASASNE_SEAWAY_TRANSIT_CARD","CA_US_BLUE_WATER_EDGE_PASS","CA_US_CONNEXION","CA_US_NEXUS_CARD","ID_E_TOLL","IN_FASTAG","IN_LOCAL_HP_PLATE_EXEMPT","JP_ETC","JP_ETC2","MX_IAVE","MX_PASE","MX_QUICKPASS","MX_SISTEMA_TELEPEAJE_CHIHUAHUA","MX_TAG_IAVE","MX_TAG_TELEVIA","MX_TELEVIA","MX_VIAPASS","US_AL_FREEDOM_PASS","US_AK_ANTON_ANDERSON_TUNNEL_BOOK_OF_10_TICKETS","US_CA_FASTRAK","US_CA_FASTRAK_CAV_STICKER","US_CO_EXPRESSTOLL","US_CO_GO_PASS","US_DE_EZPASSDE","US_FL_BOB_SIKES_TOLL_BRIDGE_PASS","US_FL_DUNES_COMMUNITY_DEVELOPMENT_DISTRICT_EXPRESSCARD","US_FL_EPASS","US_FL_GIBA_TOLL_PASS","US_FL_LEEWAY","US_FL_SUNPASS","US_FL_SUNPASS_PRO","US_IL_EZPASSIL","US_IL_IPASS","US_IN_EZPASSIN","US_KS_BESTPASS_HORIZON","US_KS_KTAG","US_KS_NATIONALPASS","US_KS_PREPASS_ELITEPASS","US_KY_RIVERLINK","US_LA_GEAUXPASS","US_LA_TOLL_TAG","US_MA_EZPASSMA","US_MD_EZPASSMD","US_ME_EZPASSME","US_MI_AMBASSADOR_BRIDGE_PREMIER_COMMUTER_CARD","US_MI_BCPASS","US_MI_BREAKAWAY","US_MI_GROSSE_ILE_TOLL_BRIDGE_PASS_TAG","US_MI_IQ_PROX_CARD","US_MI_IQ_TAG","US_MI_MACKINAC_BRIDGE_MAC_PASS","US_MI_NEXPRESS_TOLL","US_MN_EZPASSMN","US_NC_EZPASSNC","US_NC_PEACH_PASS","US_NC_QUICK_PASS","US_NH_EZPASSNH","US_NJ_DOWNBEACH_EXPRESS_PASS","US_NJ_EZPASSNJ","US_NY_EXPRESSPASS","US_NY_EZPASSNY","US_OH_EZPASSOH","US_PA_EZPASSPA","US_RI_EZPASSRI","US_SC_PALPASS","US_TX_AVI_TAG","US_TX_BANCPASS","US_TX_DEL_RIO_PASS","US_TX_EFAST_PASS","US_TX_EAGLE_PASS_EXPRESS_CARD","US_TX_EPTOLL","US_TX_EZ_CROSS","US_TX_EZTAG","US_TX_FUEGO_TAG","US_TX_LAREDO_TRADE_TAG","US_TX_PLUSPASS","US_TX_TOLLTAG","US_TX_TXTAG","US_TX_XPRESS_CARD","US_UT_ADAMS_AVE_PARKWAY_EXPRESSCARD","US_VA_EZPASSVA","US_WA_BREEZEBY","US_WA_GOOD_TO_GO","US_WV_EZPASSWV","US_WV_MEMORIAL_BRIDGE_TICKETS","US_WV_MOV_PASS","US_WV_NEWELL_TOLL_BRIDGE_TICKET"]},"optional":true},"avoidTunnels":{"type":"boolean","optional":true}},"optional":true},"languageCode":{"type":"string","optional":true},"regionCode":{"type":"string","optional":true},"units":{"type":"string","enum":["UNITS_UNSPECIFIED","METRIC","IMPERIAL"],"optional":true},"optimizeWaypointOrder":{"type":"boolean","optional":true},"requestedReferenceRoutes":{"type":"array","items":{"type":"string","enum":["REFERENCE_ROUTE_UNSPECIFIED","FUEL_EFFICIENT","SHORTER_DISTANCE"]},"optional":true},"extraComputations":{"type":"array","items":{"type":"string","enum":["EXTRA_COMPUTATION_UNSPECIFIED","TOLLS","FUEL_CONSUMPTION","TRAFFIC_ON_POLYLINE","HTML_FORMATTED_NAVIGATION_INSTRUCTIONS","FLYOVER_INFO_ON_POLYLINE","NARROW_ROAD_INFO_ON_POLYLINE","TUNNEL_INFO_ON_POLYLINE","BRIDGE_INFO_ON_POLYLINE","SKYWAY_INFO_ON_POLYLINE"]},"optional":true},"trafficModel":{"type":"string","enum":["TRAFFIC_MODEL_UNSPECIFIED","BEST_GUESS","PESSIMISTIC","OPTIMISTIC"],"optional":true},"transitPreferences":{"type":"object","members":{"allowedTravelModes":{"type":"array","items":{"type":"string","enum":["TRANSIT_TRAVEL_MODE_UNSPECIFIED","BUS","SUBWAY","TRAIN","LIGHT_RAIL","RAIL"]},"optional":true},"routingPreference":{"type":"string","enum":["TRANSIT_ROUTING_PREFERENCE_UNSPECIFIED","LESS_WALKING","FEWER_TRANSFERS"],"optional":true}},"optional":true}},"requiredParams":["origin","destination"],"read":"anonymous","anonymous":["read"],"enforcedBy":{"read":"the provider at places.googleapis.com, under the app's configured credentials"},"fields":{"routes":{"type":"array","items":{"type":"object","members":{"routeLabels":{"type":"array","items":{"type":"string","enum":["ROUTE_LABEL_UNSPECIFIED","DEFAULT_ROUTE","DEFAULT_ROUTE_ALTERNATE","FUEL_EFFICIENT","SHORTER_DISTANCE"]},"optional":true},"legs":{"type":"array","items":{"type":"object","members":{"distanceMeters":{"type":"number","optional":true},"duration":{"type":"string","optional":true},"staticDuration":{"type":"string","optional":true},"polyline":{"type":"object","members":{"encodedPolyline":{"type":"string","optional":true},"geoJsonLinestring":{"type":"object","members":{"type":{"type":"string"},"coordinates":{"type":"array","items":{"type":"array","items":{"type":"number"}}}},"optional":true}},"optional":true},"startLocation":{"type":"object","members":{"latLng":{"type":"object","members":{"latitude":{"type":"number","optional":true},"longitude":{"type":"number","optional":true}},"optional":true},"heading":{"type":"object","members":{"value":{"type":"number","optional":true}},"optional":true}},"optional":true},"endLocation":{"type":"object","members":{"latLng":{"type":"object","members":{"latitude":{"type":"number","optional":true},"longitude":{"type":"number","optional":true}},"optional":true},"heading":{"type":"object","members":{"value":{"type":"number","optional":true}},"optional":true}},"optional":true},"steps":{"type":"array","items":{"type":"object","members":{"distanceMeters":{"type":"number","optional":true},"staticDuration":{"type":"string","optional":true},"polyline":{"type":"object","members":{"encodedPolyline":{"type":"string","optional":true},"geoJsonLinestring":{"type":"object","members":{"type":{"type":"string"},"coordinates":{"type":"array","items":{"type":"array","items":{"type":"number"}}}},"optional":true}},"optional":true},"startLocation":{"type":"object","members":{"latLng":{"type":"object","members":{"latitude":{"type":"number","optional":true},"longitude":{"type":"number","optional":true}},"optional":true},"heading":{"type":"object","members":{"value":{"type":"number","optional":true}},"optional":true}},"optional":true},"endLocation":{"type":"object","members":{"latLng":{"type":"object","members":{"latitude":{"type":"number","optional":true},"longitude":{"type":"number","optional":true}},"optional":true},"heading":{"type":"object","members":{"value":{"type":"number","optional":true}},"optional":true}},"optional":true},"navigationInstruction":{"type":"object","members":{"maneuver":{"type":"string","enum":["MANEUVER_UNSPECIFIED","TURN_SLIGHT_LEFT","TURN_SHARP_LEFT","UTURN_LEFT","TURN_LEFT","TURN_SLIGHT_RIGHT","TURN_SHARP_RIGHT","UTURN_RIGHT","TURN_RIGHT","STRAIGHT","RAMP_LEFT","RAMP_RIGHT","MERGE","FORK_LEFT","FORK_RIGHT","FERRY","FERRY_TRAIN","ROUNDABOUT_LEFT","ROUNDABOUT_RIGHT","DEPART","NAME_CHANGE"],"optional":true},"instructions":{"type":"string","optional":true}},"optional":true},"travelAdvisory":{"type":"object","members":{"speedReadingIntervals":{"type":"array","items":{"type":"object","members":{"startPolylinePointIndex":{"type":"number","optional":true},"endPolylinePointIndex":{"type":"number","optional":true},"speed":{"type":"string","enum":["SPEED_UNSPECIFIED","NORMAL","SLOW","TRAFFIC_JAM"],"optional":true}}},"optional":true}},"optional":true},"localizedValues":{"type":"object","members":{"distance":{"type":"object","members":{"text":{"type":"string","optional":true},"languageCode":{"type":"string","optional":true}},"optional":true},"staticDuration":{"type":"object","members":{"text":{"type":"string","optional":true},"languageCode":{"type":"string","optional":true}},"optional":true}},"optional":true},"transitDetails":{"type":"object","members":{"stopDetails":{"type":"object","members":{"arrivalStop":{"type":"object","members":{"name":{"type":"string","optional":true},"location":{"type":"object","members":{"latLng":{"type":"object","members":{"latitude":{"type":"number","optional":true},"longitude":{"type":"number","optional":true}},"optional":true},"heading":{"type":"object","members":{"value":{"type":"number","optional":true}},"optional":true}},"optional":true}},"optional":true},"arrivalTime":{"type":"string","optional":true},"departureStop":{"type":"object","members":{"name":{"type":"string","optional":true},"location":{"type":"object","members":{"latLng":{"type":"object","members":{"latitude":{"type":"number","optional":true},"longitude":{"type":"number","optional":true}},"optional":true},"heading":{"type":"object","members":{"value":{"type":"number","optional":true}},"optional":true}},"optional":true}},"optional":true},"departureTime":{"type":"string","optional":true}},"optional":true},"localizedValues":{"type":"object","members":{"arrivalTime":{"type":"object","members":{"time":{"type":"object","members":{"text":{"type":"string","optional":true},"languageCode":{"type":"string","optional":true}},"optional":true},"timeZone":{"type":"string","optional":true}},"optional":true},"departureTime":{"type":"object","members":{"time":{"type":"object","members":{"text":{"type":"string","optional":true},"languageCode":{"type":"string","optional":true}},"optional":true},"timeZone":{"type":"string","optional":true}},"optional":true}},"optional":true},"headsign":{"type":"string","optional":true},"headway":{"type":"string","optional":true},"transitLine":{"type":"object","members":{"agencies":{"type":"array","items":{"type":"object","members":{"name":{"type":"string","optional":true},"phoneNumber":{"type":"string","optional":true},"uri":{"type":"string","optional":true}}},"optional":true},"name":{"type":"string","optional":true},"uri":{"type":"string","optional":true},"color":{"type":"string","optional":true},"iconUri":{"type":"string","optional":true},"nameShort":{"type":"string","optional":true},"textColor":{"type":"string","optional":true},"vehicle":{"type":"object","members":{"name":{"type":"object","members":{"text":{"type":"string","optional":true},"languageCode":{"type":"string","optional":true}},"optional":true},"type":{"type":"string","enum":["TRANSIT_VEHICLE_TYPE_UNSPECIFIED","BUS","CABLE_CAR","COMMUTER_TRAIN","FERRY","FUNICULAR","GONDOLA_LIFT","HEAVY_RAIL","HIGH_SPEED_TRAIN","INTERCITY_BUS","LONG_DISTANCE_TRAIN","METRO_RAIL","MONORAIL","OTHER","RAIL","SHARE_TAXI","SUBWAY","TRAM","TROLLEYBUS"],"optional":true},"iconUri":{"type":"string","optional":true},"localIconUri":{"type":"string","optional":true}},"optional":true}},"optional":true},"stopCount":{"type":"number","optional":true},"tripShortText":{"type":"string","optional":true}},"optional":true},"travelMode":{"type":"string","enum":["TRAVEL_MODE_UNSPECIFIED","DRIVE","BICYCLE","WALK","TWO_WHEELER","TRANSIT"],"optional":true}}},"optional":true},"travelAdvisory":{"type":"object","members":{"tollInfo":{"type":"object","members":{"estimatedPrice":{"type":"array","items":{"type":"object","members":{"currencyCode":{"type":"string","optional":true},"units":{"type":"string","pattern":"^-?[0-9]+$","optional":true},"nanos":{"type":"number","optional":true}}},"optional":true}},"optional":true},"speedReadingIntervals":{"type":"array","items":{"type":"object","members":{"startPolylinePointIndex":{"type":"number","optional":true},"endPolylinePointIndex":{"type":"number","optional":true},"speed":{"type":"string","enum":["SPEED_UNSPECIFIED","NORMAL","SLOW","TRAFFIC_JAM"],"optional":true}}},"optional":true}},"optional":true},"localizedValues":{"type":"object","members":{"distance":{"type":"object","members":{"text":{"type":"string","optional":true},"languageCode":{"type":"string","optional":true}},"optional":true},"duration":{"type":"object","members":{"text":{"type":"string","optional":true},"languageCode":{"type":"string","optional":true}},"optional":true},"staticDuration":{"type":"object","members":{"text":{"type":"string","optional":true},"languageCode":{"type":"string","optional":true}},"optional":true}},"optional":true},"stepsOverview":{"type":"object","members":{"multiModalSegments":{"type":"array","items":{"type":"object","members":{"stepStartIndex":{"type":"number","optional":true},"stepEndIndex":{"type":"number","optional":true},"navigationInstruction":{"type":"object","members":{"maneuver":{"type":"string","enum":["MANEUVER_UNSPECIFIED","TURN_SLIGHT_LEFT","TURN_SHARP_LEFT","UTURN_LEFT","TURN_LEFT","TURN_SLIGHT_RIGHT","TURN_SHARP_RIGHT","UTURN_RIGHT","TURN_RIGHT","STRAIGHT","RAMP_LEFT","RAMP_RIGHT","MERGE","FORK_LEFT","FORK_RIGHT","FERRY","FERRY_TRAIN","ROUNDABOUT_LEFT","ROUNDABOUT_RIGHT","DEPART","NAME_CHANGE"],"optional":true},"instructions":{"type":"string","optional":true}},"optional":true},"travelMode":{"type":"string","enum":["TRAVEL_MODE_UNSPECIFIED","DRIVE","BICYCLE","WALK","TWO_WHEELER","TRANSIT"],"optional":true}}},"optional":true}},"optional":true}}},"optional":true},"distanceMeters":{"type":"number","optional":true},"duration":{"type":"string","optional":true},"staticDuration":{"type":"string","optional":true},"polyline":{"type":"object","members":{"encodedPolyline":{"type":"string","optional":true},"geoJsonLinestring":{"type":"object","members":{"type":{"type":"string"},"coordinates":{"type":"array","items":{"type":"array","items":{"type":"number"}}}},"optional":true}},"optional":true},"description":{"type":"string","optional":true},"warnings":{"type":"array","items":{"type":"string"},"optional":true},"viewport":{"type":"object","members":{"low":{"type":"object","members":{"latitude":{"type":"number","optional":true},"longitude":{"type":"number","optional":true}},"optional":true},"high":{"type":"object","members":{"latitude":{"type":"number","optional":true},"longitude":{"type":"number","optional":true}},"optional":true}},"optional":true},"travelAdvisory":{"type":"object","members":{"tollInfo":{"type":"object","members":{"estimatedPrice":{"type":"array","items":{"type":"object","members":{"currencyCode":{"type":"string","optional":true},"units":{"type":"string","pattern":"^-?[0-9]+$","optional":true},"nanos":{"type":"number","optional":true}}},"optional":true}},"optional":true},"speedReadingIntervals":{"type":"array","items":{"type":"object","members":{"startPolylinePointIndex":{"type":"number","optional":true},"endPolylinePointIndex":{"type":"number","optional":true},"speed":{"type":"string","enum":["SPEED_UNSPECIFIED","NORMAL","SLOW","TRAFFIC_JAM"],"optional":true}}},"optional":true},"fuelConsumptionMicroliters":{"type":"string","pattern":"^-?[0-9]+$","optional":true},"routeRestrictionsPartiallyIgnored":{"type":"boolean","optional":true},"transitFare":{"type":"object","members":{"currencyCode":{"type":"string","optional":true},"units":{"type":"string","pattern":"^-?[0-9]+$","optional":true},"nanos":{"type":"number","optional":true}},"optional":true}},"optional":true},"optimizedIntermediateWaypointIndex":{"type":"array","items":{"type":"number"},"optional":true},"localizedValues":{"type":"object","members":{"distance":{"type":"object","members":{"text":{"type":"string","optional":true},"languageCode":{"type":"string","optional":true}},"optional":true},"duration":{"type":"object","members":{"text":{"type":"string","optional":true},"languageCode":{"type":"string","optional":true}},"optional":true},"staticDuration":{"type":"object","members":{"text":{"type":"string","optional":true},"languageCode":{"type":"string","optional":true}},"optional":true},"transitFare":{"type":"object","members":{"text":{"type":"string","optional":true},"languageCode":{"type":"string","optional":true}},"optional":true}},"optional":true},"routeToken":{"type":"string","optional":true},"polylineDetails":{"type":"object","members":{"tunnelInfo":{"type":"array","items":{"type":"object","members":{"tunnelPresence":{"type":"string","enum":["ROAD_FEATURE_STATE_UNSPECIFIED","EXISTS","DOES_NOT_EXIST"],"optional":true},"polylinePointIndex":{"type":"object","members":{"startIndex":{"type":"number","optional":true},"endIndex":{"type":"number","optional":true}},"optional":true}}},"optional":true},"flyoverInfo":{"type":"array","items":{"type":"object","members":{"flyoverPresence":{"type":"string","enum":["ROAD_FEATURE_STATE_UNSPECIFIED","EXISTS","DOES_NOT_EXIST"],"optional":true},"polylinePointIndex":{"type":"object","members":{"startIndex":{"type":"number","optional":true},"endIndex":{"type":"number","optional":true}},"optional":true}}},"optional":true},"narrowRoadInfo":{"type":"array","items":{"type":"object","members":{"narrowRoadPresence":{"type":"string","enum":["ROAD_FEATURE_STATE_UNSPECIFIED","EXISTS","DOES_NOT_EXIST"],"optional":true},"polylinePointIndex":{"type":"object","members":{"startIndex":{"type":"number","optional":true},"endIndex":{"type":"number","optional":true}},"optional":true}}},"optional":true},"bridgeInfo":{"type":"array","items":{"type":"object","members":{"bridgePresence":{"type":"string","enum":["ROAD_FEATURE_STATE_UNSPECIFIED","EXISTS","DOES_NOT_EXIST"],"optional":true},"polylinePointIndex":{"type":"object","members":{"startIndex":{"type":"number","optional":true},"endIndex":{"type":"number","optional":true}},"optional":true}}},"optional":true},"skywayInfo":{"type":"array","items":{"type":"object","members":{"skywayPresence":{"type":"string","enum":["ROAD_FEATURE_STATE_UNSPECIFIED","EXISTS","DOES_NOT_EXIST"],"optional":true},"polylinePointIndex":{"type":"object","members":{"startIndex":{"type":"number","optional":true},"endIndex":{"type":"number","optional":true}},"optional":true}}},"optional":true}},"optional":true}}},"optional":true},"fallbackInfo":{"type":"object","members":{"routingMode":{"type":"string","enum":["FALLBACK_ROUTING_MODE_UNSPECIFIED","FALLBACK_TRAFFIC_UNAWARE","FALLBACK_TRAFFIC_AWARE"],"optional":true},"reason":{"type":"string","enum":["FALLBACK_REASON_UNSPECIFIED","SERVER_ERROR","LATENCY_EXCEEDED"],"optional":true}},"optional":true},"geocodingResults":{"type":"object","members":{"origin":{"type":"object","members":{"geocoderStatus":{"type":"object","members":{"code":{"type":"number","optional":true},"message":{"type":"string","optional":true}},"optional":true},"intermediateWaypointRequestIndex":{"type":"number","optional":true},"type":{"type":"array","items":{"type":"string"},"optional":true},"partialMatch":{"type":"boolean","optional":true},"placeId":{"type":"string","optional":true}},"optional":true},"destination":{"type":"object","members":{"geocoderStatus":{"type":"object","members":{"code":{"type":"number","optional":true},"message":{"type":"string","optional":true}},"optional":true},"intermediateWaypointRequestIndex":{"type":"number","optional":true},"type":{"type":"array","items":{"type":"string"},"optional":true},"partialMatch":{"type":"boolean","optional":true},"placeId":{"type":"string","optional":true}},"optional":true},"intermediates":{"type":"array","items":{"type":"object","members":{"geocoderStatus":{"type":"object","members":{"code":{"type":"number","optional":true},"message":{"type":"string","optional":true}},"optional":true},"intermediateWaypointRequestIndex":{"type":"number","optional":true},"type":{"type":"array","items":{"type":"string"},"optional":true},"partialMatch":{"type":"boolean","optional":true},"placeId":{"type":"string","optional":true}}},"optional":true}},"optional":true}}},"computeRouteMatrix":{"desc":"Travel times and distances between origins and destinations. Each result identifies originIndex, destinationIndex and status.","ops":["query"],"queryFields":[],"params":["origins","destinations","travelMode","routingPreference","departureTime","arrivalTime","languageCode","regionCode","units","extraComputations","trafficModel","transitPreferences"],"parameterFields":{"origins":{"type":"array","items":{"type":"object","members":{"waypoint":{"type":"object","members":{"location":{"type":"object","members":{"latLng":{"type":"object","members":{"latitude":{"type":"number","optional":true},"longitude":{"type":"number","optional":true}},"optional":true},"heading":{"type":"object","members":{"value":{"type":"number","optional":true}},"optional":true}},"optional":true},"placeId":{"type":"string","optional":true},"address":{"type":"string","optional":true},"navigationPointToken":{"type":"string","optional":true},"via":{"type":"boolean","optional":true},"vehicleStopover":{"type":"boolean","optional":true},"sideOfRoad":{"type":"boolean","optional":true}}},"routeModifiers":{"type":"object","members":{"avoidTolls":{"type":"boolean","optional":true},"avoidHighways":{"type":"boolean","optional":true},"avoidFerries":{"type":"boolean","optional":true},"avoidIndoor":{"type":"boolean","optional":true},"vehicleInfo":{"type":"object","members":{"emissionType":{"type":"string","enum":["VEHICLE_EMISSION_TYPE_UNSPECIFIED","GASOLINE","ELECTRIC","HYBRID","DIESEL"],"optional":true}},"optional":true},"tollPasses":{"type":"array","items":{"type":"string","enum":["TOLL_PASS_UNSPECIFIED","AU_ETOLL_TAG","AU_EWAY_TAG","AU_LINKT","AR_TELEPASE","BR_AUTO_EXPRESO","BR_CONECTCAR","BR_MOVE_MAIS","BR_PASSA_RAPIDO","BR_SEM_PARAR","BR_TAGGY","BR_VELOE","CA_US_AKWASASNE_SEAWAY_CORPORATE_CARD","CA_US_AKWASASNE_SEAWAY_TRANSIT_CARD","CA_US_BLUE_WATER_EDGE_PASS","CA_US_CONNEXION","CA_US_NEXUS_CARD","ID_E_TOLL","IN_FASTAG","IN_LOCAL_HP_PLATE_EXEMPT","JP_ETC","JP_ETC2","MX_IAVE","MX_PASE","MX_QUICKPASS","MX_SISTEMA_TELEPEAJE_CHIHUAHUA","MX_TAG_IAVE","MX_TAG_TELEVIA","MX_TELEVIA","MX_VIAPASS","US_AL_FREEDOM_PASS","US_AK_ANTON_ANDERSON_TUNNEL_BOOK_OF_10_TICKETS","US_CA_FASTRAK","US_CA_FASTRAK_CAV_STICKER","US_CO_EXPRESSTOLL","US_CO_GO_PASS","US_DE_EZPASSDE","US_FL_BOB_SIKES_TOLL_BRIDGE_PASS","US_FL_DUNES_COMMUNITY_DEVELOPMENT_DISTRICT_EXPRESSCARD","US_FL_EPASS","US_FL_GIBA_TOLL_PASS","US_FL_LEEWAY","US_FL_SUNPASS","US_FL_SUNPASS_PRO","US_IL_EZPASSIL","US_IL_IPASS","US_IN_EZPASSIN","US_KS_BESTPASS_HORIZON","US_KS_KTAG","US_KS_NATIONALPASS","US_KS_PREPASS_ELITEPASS","US_KY_RIVERLINK","US_LA_GEAUXPASS","US_LA_TOLL_TAG","US_MA_EZPASSMA","US_MD_EZPASSMD","US_ME_EZPASSME","US_MI_AMBASSADOR_BRIDGE_PREMIER_COMMUTER_CARD","US_MI_BCPASS","US_MI_BREAKAWAY","US_MI_GROSSE_ILE_TOLL_BRIDGE_PASS_TAG","US_MI_IQ_PROX_CARD","US_MI_IQ_TAG","US_MI_MACKINAC_BRIDGE_MAC_PASS","US_MI_NEXPRESS_TOLL","US_MN_EZPASSMN","US_NC_EZPASSNC","US_NC_PEACH_PASS","US_NC_QUICK_PASS","US_NH_EZPASSNH","US_NJ_DOWNBEACH_EXPRESS_PASS","US_NJ_EZPASSNJ","US_NY_EXPRESSPASS","US_NY_EZPASSNY","US_OH_EZPASSOH","US_PA_EZPASSPA","US_RI_EZPASSRI","US_SC_PALPASS","US_TX_AVI_TAG","US_TX_BANCPASS","US_TX_DEL_RIO_PASS","US_TX_EFAST_PASS","US_TX_EAGLE_PASS_EXPRESS_CARD","US_TX_EPTOLL","US_TX_EZ_CROSS","US_TX_EZTAG","US_TX_FUEGO_TAG","US_TX_LAREDO_TRADE_TAG","US_TX_PLUSPASS","US_TX_TOLLTAG","US_TX_TXTAG","US_TX_XPRESS_CARD","US_UT_ADAMS_AVE_PARKWAY_EXPRESSCARD","US_VA_EZPASSVA","US_WA_BREEZEBY","US_WA_GOOD_TO_GO","US_WV_EZPASSWV","US_WV_MEMORIAL_BRIDGE_TICKETS","US_WV_MOV_PASS","US_WV_NEWELL_TOLL_BRIDGE_TICKET"]},"optional":true},"avoidTunnels":{"type":"boolean","optional":true}},"optional":true}}}},"destinations":{"type":"array","items":{"type":"object","members":{"waypoint":{"type":"object","members":{"location":{"type":"object","members":{"latLng":{"type":"object","members":{"latitude":{"type":"number","optional":true},"longitude":{"type":"number","optional":true}},"optional":true},"heading":{"type":"object","members":{"value":{"type":"number","optional":true}},"optional":true}},"optional":true},"placeId":{"type":"string","optional":true},"address":{"type":"string","optional":true},"navigationPointToken":{"type":"string","optional":true},"via":{"type":"boolean","optional":true},"vehicleStopover":{"type":"boolean","optional":true},"sideOfRoad":{"type":"boolean","optional":true}}}}}},"travelMode":{"type":"string","enum":["TRAVEL_MODE_UNSPECIFIED","DRIVE","BICYCLE","WALK","TWO_WHEELER","TRANSIT"],"optional":true},"routingPreference":{"type":"string","enum":["ROUTING_PREFERENCE_UNSPECIFIED","TRAFFIC_UNAWARE","TRAFFIC_AWARE","TRAFFIC_AWARE_OPTIMAL"],"optional":true},"departureTime":{"type":"string","optional":true},"arrivalTime":{"type":"string","optional":true},"languageCode":{"type":"string","optional":true},"regionCode":{"type":"string","optional":true},"units":{"type":"string","enum":["UNITS_UNSPECIFIED","METRIC","IMPERIAL"],"optional":true},"extraComputations":{"type":"array","items":{"type":"string","enum":["EXTRA_COMPUTATION_UNSPECIFIED","TOLLS"]},"optional":true},"trafficModel":{"type":"string","enum":["TRAFFIC_MODEL_UNSPECIFIED","BEST_GUESS","PESSIMISTIC","OPTIMISTIC"],"optional":true},"transitPreferences":{"type":"object","members":{"allowedTravelModes":{"type":"array","items":{"type":"string","enum":["TRANSIT_TRAVEL_MODE_UNSPECIFIED","BUS","SUBWAY","TRAIN","LIGHT_RAIL","RAIL"]},"optional":true},"routingPreference":{"type":"string","enum":["TRANSIT_ROUTING_PREFERENCE_UNSPECIFIED","LESS_WALKING","FEWER_TRANSFERS"],"optional":true}},"optional":true}},"requiredParams":["origins","destinations"],"read":"anonymous","anonymous":["read"],"enforcedBy":{"read":"the provider at places.googleapis.com, under the app's configured credentials"},"fields":{"originIndex":{"type":"number","optional":true},"destinationIndex":{"type":"number","optional":true},"status":{"type":"object","members":{"code":{"type":"number","optional":true},"message":{"type":"string","optional":true}},"optional":true},"condition":{"type":"string","enum":["ROUTE_MATRIX_ELEMENT_CONDITION_UNSPECIFIED","ROUTE_EXISTS","ROUTE_NOT_FOUND"],"optional":true},"distanceMeters":{"type":"number","optional":true},"duration":{"type":"string","optional":true},"staticDuration":{"type":"string","optional":true},"travelAdvisory":{"type":"object","members":{"tollInfo":{"type":"object","members":{"estimatedPrice":{"type":"array","items":{"type":"object","members":{"currencyCode":{"type":"string","optional":true},"units":{"type":"string","pattern":"^-?[0-9]+$","optional":true},"nanos":{"type":"number","optional":true}}},"optional":true}},"optional":true},"speedReadingIntervals":{"type":"array","items":{"type":"object","members":{"startPolylinePointIndex":{"type":"number","optional":true},"endPolylinePointIndex":{"type":"number","optional":true},"speed":{"type":"string","enum":["SPEED_UNSPECIFIED","NORMAL","SLOW","TRAFFIC_JAM"],"optional":true}}},"optional":true},"fuelConsumptionMicroliters":{"type":"string","pattern":"^-?[0-9]+$","optional":true},"routeRestrictionsPartiallyIgnored":{"type":"boolean","optional":true},"transitFare":{"type":"object","members":{"currencyCode":{"type":"string","optional":true},"units":{"type":"string","pattern":"^-?[0-9]+$","optional":true},"nanos":{"type":"number","optional":true}},"optional":true}},"optional":true},"fallbackInfo":{"type":"object","members":{"routingMode":{"type":"string","enum":["FALLBACK_ROUTING_MODE_UNSPECIFIED","FALLBACK_TRAFFIC_UNAWARE","FALLBACK_TRAFFIC_AWARE"],"optional":true},"reason":{"type":"string","enum":["FALLBACK_REASON_UNSPECIFIED","SERVER_ERROR","LATENCY_EXCEEDED"],"optional":true}},"optional":true},"localizedValues":{"type":"object","members":{"distance":{"type":"object","members":{"text":{"type":"string","optional":true},"languageCode":{"type":"string","optional":true}},"optional":true},"duration":{"type":"object","members":{"text":{"type":"string","optional":true},"languageCode":{"type":"string","optional":true}},"optional":true},"staticDuration":{"type":"object","members":{"text":{"type":"string","optional":true},"languageCode":{"type":"string","optional":true}},"optional":true},"transitFare":{"type":"object","members":{"text":{"type":"string","optional":true},"languageCode":{"type":"string","optional":true}},"optional":true}},"optional":true}}}}},"binding":{"sharing":"shareable"},"desc":"Data sources \"googleMaps\". The host holds the credentials."}}},"configFields":[],"publicConfigQuestions":[],"secretInputs":[{"input":"apiKey","contractRef":{"from":"platform","optional":false},"manifestRef":{"from":"platform","optional":false}}],"sourceBindingPlan":[{"logicalName":"googleMaps","providerName":"googleMaps","definition":{"schema":"singularity.source-definition.v1","id":"source:142cf20c8fb9e0fa","descriptor":{"schema":"singularity.source-definition.v1","namespace":"google.maps.rest","version":"0.1.0","name":"googleMaps","contract":{"desc":"Google address, place and routing calculations under the app owner’s server key. Input values belong in query descriptor parameters. Persist accounts and routes in the app’s own durable source.","maxRows":10000,"collections":{"autocomplete":{"desc":"Places API (New) address and business predictions. Reuse sessionToken through the chosen placeDetails call.","ops":["query"],"queryFields":[],"params":["includeFutureOpeningBusinesses","includeQueryPredictions","locationRestriction","sessionToken","origin","languageCode","locationBias","input","inputOffset","includedRegionCodes","includePureServiceAreaBusinesses","regionCode","includedPrimaryTypes"],"parameterFields":{"includeFutureOpeningBusinesses":{"type":"boolean","optional":true},"includeQueryPredictions":{"type":"boolean","optional":true},"locationRestriction":{"type":"object","members":{"rectangle":{"type":"object","members":{"low":{"type":"object","members":{"longitude":{"type":"number","optional":true},"latitude":{"type":"number","optional":true}},"optional":true},"high":{"type":"object","members":{"longitude":{"type":"number","optional":true},"latitude":{"type":"number","optional":true}},"optional":true}},"optional":true},"circle":{"type":"object","members":{"center":{"type":"object","members":{"longitude":{"type":"number","optional":true},"latitude":{"type":"number","optional":true}},"optional":true},"radius":{"type":"number","optional":true}},"optional":true}},"optional":true},"sessionToken":{"type":"string","optional":true},"origin":{"type":"object","members":{"longitude":{"type":"number","optional":true},"latitude":{"type":"number","optional":true}},"optional":true},"languageCode":{"type":"string","optional":true},"locationBias":{"type":"object","members":{"rectangle":{"type":"object","members":{"low":{"type":"object","members":{"longitude":{"type":"number","optional":true},"latitude":{"type":"number","optional":true}},"optional":true},"high":{"type":"object","members":{"longitude":{"type":"number","optional":true},"latitude":{"type":"number","optional":true}},"optional":true}},"optional":true},"circle":{"type":"object","members":{"center":{"type":"object","members":{"longitude":{"type":"number","optional":true},"latitude":{"type":"number","optional":true}},"optional":true},"radius":{"type":"number","optional":true}},"optional":true}},"optional":true},"input":{"type":"string"},"inputOffset":{"type":"number","optional":true},"includedRegionCodes":{"type":"array","items":{"type":"string"},"optional":true},"includePureServiceAreaBusinesses":{"type":"boolean","optional":true},"regionCode":{"type":"string","optional":true},"includedPrimaryTypes":{"type":"array","items":{"type":"string"},"optional":true}},"requiredParams":["input"],"read":"anonymous","anonymous":["read"],"enforcedBy":{"read":"the provider at places.googleapis.com, under the app's configured credentials"},"fields":{"suggestions":{"type":"array","items":{"type":"object","members":{"placePrediction":{"type":"object","members":{"place":{"type":"string","optional":true},"structuredFormat":{"type":"object","members":{"mainText":{"type":"object","members":{"text":{"type":"string","optional":true},"matches":{"type":"array","items":{"type":"object","members":{"startOffset":{"type":"number","optional":true},"endOffset":{"type":"number","optional":true}}},"optional":true}},"optional":true},"secondaryText":{"type":"object","members":{"text":{"type":"string","optional":true},"matches":{"type":"array","items":{"type":"object","members":{"startOffset":{"type":"number","optional":true},"endOffset":{"type":"number","optional":true}}},"optional":true}},"optional":true}},"optional":true},"types":{"type":"array","items":{"type":"string"},"optional":true},"text":{"type":"object","members":{"text":{"type":"string","optional":true},"matches":{"type":"array","items":{"type":"object","members":{"startOffset":{"type":"number","optional":true},"endOffset":{"type":"number","optional":true}}},"optional":true}},"optional":true},"distanceMeters":{"type":"number","optional":true},"placeId":{"type":"string","optional":true}},"optional":true},"queryPrediction":{"type":"object","members":{"structuredFormat":{"type":"object","members":{"mainText":{"type":"object","members":{"text":{"type":"string","optional":true},"matches":{"type":"array","items":{"type":"object","members":{"startOffset":{"type":"number","optional":true},"endOffset":{"type":"number","optional":true}}},"optional":true}},"optional":true},"secondaryText":{"type":"object","members":{"text":{"type":"string","optional":true},"matches":{"type":"array","items":{"type":"object","members":{"startOffset":{"type":"number","optional":true},"endOffset":{"type":"number","optional":true}}},"optional":true}},"optional":true}},"optional":true},"text":{"type":"object","members":{"text":{"type":"string","optional":true},"matches":{"type":"array","items":{"type":"object","members":{"startOffset":{"type":"number","optional":true},"endOffset":{"type":"number","optional":true}}},"optional":true}},"optional":true}},"optional":true}}},"optional":true}}},"placeDetails":{"desc":"A selected place with address, location, contact, opening-hours and attribution fields from a fixed mask.","ops":["query"],"queryFields":[],"params":["placeId","languageCode","regionCode","sessionToken"],"parameterFields":{"placeId":{"type":"string","minLength":1,"maxLength":1024},"languageCode":{"type":"string","optional":true},"regionCode":{"type":"string","optional":true},"sessionToken":{"type":"string","optional":true}},"requiredParams":["placeId"],"read":"anonymous","anonymous":["read"],"enforcedBy":{"read":"the provider at places.googleapis.com, under the app's configured credentials"},"fields":{"currentSecondaryOpeningHours":{"type":"array","items":{"type":"object","members":{"nextCloseTime":{"type":"string","optional":true},"weekdayDescriptions":{"type":"array","items":{"type":"string"},"optional":true},"openNow":{"type":"boolean","optional":true},"nextOpenTime":{"type":"string","optional":true},"secondaryHoursType":{"type":"string","enum":["SECONDARY_HOURS_TYPE_UNSPECIFIED","DRIVE_THROUGH","HAPPY_HOUR","DELIVERY","TAKEOUT","KITCHEN","BREAKFAST","LUNCH","DINNER","BRUNCH","PICKUP","ACCESS","SENIOR_HOURS","ONLINE_SERVICE_HOURS"],"optional":true},"specialDays":{"type":"array","items":{"type":"object","members":{"date":{"type":"object","members":{"month":{"type":"number","optional":true},"year":{"type":"number","optional":true},"day":{"type":"number","optional":true}},"optional":true}}},"optional":true},"periods":{"type":"array","items":{"type":"object","members":{"close":{"type":"object","members":{"hour":{"type":"number","optional":true},"day":{"type":"number","optional":true},"minute":{"type":"number","optional":true},"date":{"type":"object","members":{"month":{"type":"number","optional":true},"year":{"type":"number","optional":true},"day":{"type":"number","optional":true}},"optional":true},"truncated":{"type":"boolean","optional":true}},"optional":true},"open":{"type":"object","members":{"hour":{"type":"number","optional":true},"day":{"type":"number","optional":true},"minute":{"type":"number","optional":true},"date":{"type":"object","members":{"month":{"type":"number","optional":true},"year":{"type":"number","optional":true},"day":{"type":"number","optional":true}},"optional":true},"truncated":{"type":"boolean","optional":true}},"optional":true}}},"optional":true}}},"optional":true},"addressDescriptor":{"type":"object","members":{"landmarks":{"type":"array","items":{"type":"object","members":{"spatialRelationship":{"type":"string","enum":["NEAR","WITHIN","BESIDE","ACROSS_THE_ROAD","DOWN_THE_ROAD","AROUND_THE_CORNER","BEHIND"],"optional":true},"placeId":{"type":"string","optional":true},"displayName":{"type":"object","members":{"languageCode":{"type":"string","optional":true},"text":{"type":"string","optional":true}},"optional":true},"straightLineDistanceMeters":{"type":"number","optional":true},"name":{"type":"string","optional":true},"travelDistanceMeters":{"type":"number","optional":true},"types":{"type":"array","items":{"type":"string"},"optional":true}}},"optional":true},"areas":{"type":"array","items":{"type":"object","members":{"placeId":{"type":"string","optional":true},"containment":{"type":"string","enum":["CONTAINMENT_UNSPECIFIED","WITHIN","OUTSKIRTS","NEAR"],"optional":true},"displayName":{"type":"object","members":{"languageCode":{"type":"string","optional":true},"text":{"type":"string","optional":true}},"optional":true},"name":{"type":"string","optional":true}}},"optional":true}},"optional":true},"primaryType":{"type":"string","optional":true},"servesBrunch":{"type":"boolean","optional":true},"openingDate":{"type":"object","members":{"month":{"type":"number","optional":true},"year":{"type":"number","optional":true},"day":{"type":"number","optional":true}},"optional":true},"neighborhoodSummary":{"type":"object","members":{"overview":{"type":"object","members":{"referencedPlaces":{"type":"array","items":{"type":"string"},"optional":true},"content":{"type":"object","members":{"languageCode":{"type":"string","optional":true},"text":{"type":"string","optional":true}},"optional":true}},"optional":true},"flagContentUri":{"type":"string","optional":true},"disclosureText":{"type":"object","members":{"languageCode":{"type":"string","optional":true},"text":{"type":"string","optional":true}},"optional":true},"description":{"type":"object","members":{"referencedPlaces":{"type":"array","items":{"type":"string"},"optional":true},"content":{"type":"object","members":{"languageCode":{"type":"string","optional":true},"text":{"type":"string","optional":true}},"optional":true}},"optional":true}},"optional":true},"servesBeer":{"type":"boolean","optional":true},"primaryTypeDisplayName":{"type":"object","members":{"languageCode":{"type":"string","optional":true},"text":{"type":"string","optional":true}},"optional":true},"location":{"type":"object","members":{"longitude":{"type":"number","optional":true},"latitude":{"type":"number","optional":true}},"optional":true},"googleMapsTypeLabel":{"type":"object","members":{"languageCode":{"type":"string","optional":true},"text":{"type":"string","optional":true}},"optional":true},"takeout":{"type":"boolean","optional":true},"iconBackgroundColor":{"type":"string","optional":true},"containingPlaces":{"type":"array","items":{"type":"object","members":{"name":{"type":"string","optional":true},"id":{"type":"string","optional":true}}},"optional":true},"viewport":{"type":"object","members":{"low":{"type":"object","members":{"longitude":{"type":"number","optional":true},"latitude":{"type":"number","optional":true}},"optional":true},"high":{"type":"object","members":{"longitude":{"type":"number","optional":true},"latitude":{"type":"number","optional":true}},"optional":true}},"optional":true},"timeZone":{"type":"object","members":{"version":{"type":"string","optional":true},"id":{"type":"string","optional":true}},"optional":true},"dineIn":{"type":"boolean","optional":true},"servesCocktails":{"type":"boolean","optional":true},"shortFormattedAddress":{"type":"string","optional":true},"reviewSummary":{"type":"object","members":{"text":{"type":"object","members":{"languageCode":{"type":"string","optional":true},"text":{"type":"string","optional":true}},"optional":true},"flagContentUri":{"type":"string","optional":true},"disclosureText":{"type":"object","members":{"languageCode":{"type":"string","optional":true},"text":{"type":"string","optional":true}},"optional":true},"reviewsUri":{"type":"string","optional":true}},"optional":true},"photos":{"type":"array","items":{"type":"object","members":{"googleMapsUri":{"type":"string","optional":true},"name":{"type":"string","optional":true},"flagContentUri":{"type":"string","optional":true},"heightPx":{"type":"number","optional":true},"authorAttributions":{"type":"array","items":{"type":"object","members":{"photoUri":{"type":"string","optional":true},"uri":{"type":"string","optional":true},"displayName":{"type":"string","optional":true}}},"optional":true},"widthPx":{"type":"number","optional":true}}},"optional":true},"generativeSummary":{"type":"object","members":{"disclosureText":{"type":"object","members":{"languageCode":{"type":"string","optional":true},"text":{"type":"string","optional":true}},"optional":true},"overview":{"type":"object","members":{"languageCode":{"type":"string","optional":true},"text":{"type":"string","optional":true}},"optional":true},"overviewFlagContentUri":{"type":"string","optional":true}},"optional":true},"movedPlaceId":{"type":"string","optional":true},"userRatingCount":{"type":"number","optional":true},"servesBreakfast":{"type":"boolean","optional":true},"regularOpeningHours":{"type":"object","members":{"nextCloseTime":{"type":"string","optional":true},"weekdayDescriptions":{"type":"array","items":{"type":"string"},"optional":true},"openNow":{"type":"boolean","optional":true},"nextOpenTime":{"type":"string","optional":true},"secondaryHoursType":{"type":"string","enum":["SECONDARY_HOURS_TYPE_UNSPECIFIED","DRIVE_THROUGH","HAPPY_HOUR","DELIVERY","TAKEOUT","KITCHEN","BREAKFAST","LUNCH","DINNER","BRUNCH","PICKUP","ACCESS","SENIOR_HOURS","ONLINE_SERVICE_HOURS"],"optional":true},"specialDays":{"type":"array","items":{"type":"object","members":{"date":{"type":"object","members":{"month":{"type":"number","optional":true},"year":{"type":"number","optional":true},"day":{"type":"number","optional":true}},"optional":true}}},"optional":true},"periods":{"type":"array","items":{"type":"object","members":{"close":{"type":"object","members":{"hour":{"type":"number","optional":true},"day":{"type":"number","optional":true},"minute":{"type":"number","optional":true},"date":{"type":"object","members":{"month":{"type":"number","optional":true},"year":{"type":"number","optional":true},"day":{"type":"number","optional":true}},"optional":true},"truncated":{"type":"boolean","optional":true}},"optional":true},"open":{"type":"object","members":{"hour":{"type":"number","optional":true},"day":{"type":"number","optional":true},"minute":{"type":"number","optional":true},"date":{"type":"object","members":{"month":{"type":"number","optional":true},"year":{"type":"number","optional":true},"day":{"type":"number","optional":true}},"optional":true},"truncated":{"type":"boolean","optional":true}},"optional":true}}},"optional":true}},"optional":true},"servesWine":{"type":"boolean","optional":true},"postalAddress":{"type":"object","members":{"regionCode":{"type":"string","optional":true},"sublocality":{"type":"string","optional":true},"postalCode":{"type":"string","optional":true},"revision":{"type":"number","optional":true},"locality":{"type":"string","optional":true},"recipients":{"type":"array","items":{"type":"string"},"optional":true},"addressLines":{"type":"array","items":{"type":"string"},"optional":true},"organization":{"type":"string","optional":true},"languageCode":{"type":"string","optional":true},"administrativeArea":{"type":"string","optional":true},"sortingCode":{"type":"string","optional":true}},"optional":true},"types":{"type":"array","items":{"type":"string"},"optional":true},"restroom":{"type":"boolean","optional":true},"websiteUri":{"type":"string","optional":true},"plusCode":{"type":"object","members":{"globalCode":{"type":"string","optional":true},"compoundCode":{"type":"string","optional":true}},"optional":true},"servesLunch":{"type":"boolean","optional":true},"regularSecondaryOpeningHours":{"type":"array","items":{"type":"object","members":{"nextCloseTime":{"type":"string","optional":true},"weekdayDescriptions":{"type":"array","items":{"type":"string"},"optional":true},"openNow":{"type":"boolean","optional":true},"nextOpenTime":{"type":"string","optional":true},"secondaryHoursType":{"type":"string","enum":["SECONDARY_HOURS_TYPE_UNSPECIFIED","DRIVE_THROUGH","HAPPY_HOUR","DELIVERY","TAKEOUT","KITCHEN","BREAKFAST","LUNCH","DINNER","BRUNCH","PICKUP","ACCESS","SENIOR_HOURS","ONLINE_SERVICE_HOURS"],"optional":true},"specialDays":{"type":"array","items":{"type":"object","members":{"date":{"type":"object","members":{"month":{"type":"number","optional":true},"year":{"type":"number","optional":true},"day":{"type":"number","optional":true}},"optional":true}}},"optional":true},"periods":{"type":"array","items":{"type":"object","members":{"close":{"type":"object","members":{"hour":{"type":"number","optional":true},"day":{"type":"number","optional":true},"minute":{"type":"number","optional":true},"date":{"type":"object","members":{"month":{"type":"number","optional":true},"year":{"type":"number","optional":true},"day":{"type":"number","optional":true}},"optional":true},"truncated":{"type":"boolean","optional":true}},"optional":true},"open":{"type":"object","members":{"hour":{"type":"number","optional":true},"day":{"type":"number","optional":true},"minute":{"type":"number","optional":true},"date":{"type":"object","members":{"month":{"type":"number","optional":true},"year":{"type":"number","optional":true},"day":{"type":"number","optional":true}},"optional":true},"truncated":{"type":"boolean","optional":true}},"optional":true}}},"optional":true}}},"optional":true},"reservable":{"type":"boolean","optional":true},"navigationPoints":{"type":"array","items":{"type":"object","members":{"displayName":{"type":"object","members":{"languageCode":{"type":"string","optional":true},"text":{"type":"string","optional":true}},"optional":true},"travelModes":{"type":"array","items":{"type":"string","enum":["TRAVEL_MODE_UNSPECIFIED","DRIVE","WALK"]},"optional":true},"location":{"type":"object","members":{"longitude":{"type":"number","optional":true},"latitude":{"type":"number","optional":true}},"optional":true},"usages":{"type":"array","items":{"type":"string","enum":["USAGE_UNSPECIFIED","DROPOFF","PICKUP","PARKING"]},"optional":true},"navigationPointToken":{"type":"string","optional":true}}},"optional":true},"delivery":{"type":"boolean","optional":true},"servesCoffee":{"type":"boolean","optional":true},"currentOpeningHours":{"type":"object","members":{"nextCloseTime":{"type":"string","optional":true},"weekdayDescriptions":{"type":"array","items":{"type":"string"},"optional":true},"openNow":{"type":"boolean","optional":true},"nextOpenTime":{"type":"string","optional":true},"secondaryHoursType":{"type":"string","enum":["SECONDARY_HOURS_TYPE_UNSPECIFIED","DRIVE_THROUGH","HAPPY_HOUR","DELIVERY","TAKEOUT","KITCHEN","BREAKFAST","LUNCH","DINNER","BRUNCH","PICKUP","ACCESS","SENIOR_HOURS","ONLINE_SERVICE_HOURS"],"optional":true},"specialDays":{"type":"array","items":{"type":"object","members":{"date":{"type":"object","members":{"month":{"type":"number","optional":true},"year":{"type":"number","optional":true},"day":{"type":"number","optional":true}},"optional":true}}},"optional":true},"periods":{"type":"array","items":{"type":"object","members":{"close":{"type":"object","members":{"hour":{"type":"number","optional":true},"day":{"type":"number","optional":true},"minute":{"type":"number","optional":true},"date":{"type":"object","members":{"month":{"type":"number","optional":true},"year":{"type":"number","optional":true},"day":{"type":"number","optional":true}},"optional":true},"truncated":{"type":"boolean","optional":true}},"optional":true},"open":{"type":"object","members":{"hour":{"type":"number","optional":true},"day":{"type":"number","optional":true},"minute":{"type":"number","optional":true},"date":{"type":"object","members":{"month":{"type":"number","optional":true},"year":{"type":"number","optional":true},"day":{"type":"number","optional":true}},"optional":true},"truncated":{"type":"boolean","optional":true}},"optional":true}}},"optional":true}},"optional":true},"name":{"type":"string","optional":true},"goodForWatchingSports":{"type":"boolean","optional":true},"iconMaskBaseUri":{"type":"string","optional":true},"internationalPhoneNumber":{"type":"string","optional":true},"subDestinations":{"type":"array","items":{"type":"object","members":{"name":{"type":"string","optional":true},"id":{"type":"string","optional":true}}},"optional":true},"parkingOptions":{"type":"object","members":{"paidGarageParking":{"type":"boolean","optional":true},"paidParkingLot":{"type":"boolean","optional":true},"freeGarageParking":{"type":"boolean","optional":true},"valetParking":{"type":"boolean","optional":true},"freeParkingLot":{"type":"boolean","optional":true},"freeStreetParking":{"type":"boolean","optional":true},"paidStreetParking":{"type":"boolean","optional":true}},"optional":true},"paymentOptions":{"type":"object","members":{"acceptsDebitCards":{"type":"boolean","optional":true},"acceptsCashOnly":{"type":"boolean","optional":true},"acceptsCreditCards":{"type":"boolean","optional":true},"acceptsNfc":{"type":"boolean","optional":true}},"optional":true},"evChargeAmenitySummary":{"type":"object","members":{"disclosureText":{"type":"object","members":{"languageCode":{"type":"string","optional":true},"text":{"type":"string","optional":true}},"optional":true},"restaurant":{"type":"object","members":{"referencedPlaces":{"type":"array","items":{"type":"string"},"optional":true},"content":{"type":"object","members":{"languageCode":{"type":"string","optional":true},"text":{"type":"string","optional":true}},"optional":true}},"optional":true},"store":{"type":"object","members":{"referencedPlaces":{"type":"array","items":{"type":"string"},"optional":true},"content":{"type":"object","members":{"languageCode":{"type":"string","optional":true},"text":{"type":"string","optional":true}},"optional":true}},"optional":true},"coffee":{"type":"object","members":{"referencedPlaces":{"type":"array","items":{"type":"string"},"optional":true},"content":{"type":"object","members":{"languageCode":{"type":"string","optional":true},"text":{"type":"string","optional":true}},"optional":true}},"optional":true},"overview":{"type":"object","members":{"referencedPlaces":{"type":"array","items":{"type":"string"},"optional":true},"content":{"type":"object","members":{"languageCode":{"type":"string","optional":true},"text":{"type":"string","optional":true}},"optional":true}},"optional":true},"flagContentUri":{"type":"string","optional":true}},"optional":true},"formattedAddress":{"type":"string","optional":true},"googleMapsLinks":{"type":"object","members":{"placeUri":{"type":"string","optional":true},"writeAReviewUri":{"type":"string","optional":true},"photosUri":{"type":"string","optional":true},"reviewsUri":{"type":"string","optional":true},"directionsUri":{"type":"string","optional":true}},"optional":true},"evChargeOptions":{"type":"object","members":{"connectorCount":{"type":"number","optional":true},"connectorAggregation":{"type":"array","items":{"type":"object","members":{"outOfServiceCount":{"type":"number","optional":true},"maxChargeRateKw":{"type":"number","optional":true},"availabilityLastUpdateTime":{"type":"string","optional":true},"type":{"type":"string","enum":["EV_CONNECTOR_TYPE_UNSPECIFIED","EV_CONNECTOR_TYPE_OTHER","EV_CONNECTOR_TYPE_J1772","EV_CONNECTOR_TYPE_TYPE_2","EV_CONNECTOR_TYPE_CHADEMO","EV_CONNECTOR_TYPE_CCS_COMBO_1","EV_CONNECTOR_TYPE_CCS_COMBO_2","EV_CONNECTOR_TYPE_TESLA","EV_CONNECTOR_TYPE_UNSPECIFIED_GB_T","EV_CONNECTOR_TYPE_UNSPECIFIED_WALL_OUTLET","EV_CONNECTOR_TYPE_NACS"],"optional":true},"count":{"type":"number","optional":true},"availableCount":{"type":"number","optional":true}}},"optional":true}},"optional":true},"nationalPhoneNumber":{"type":"string","optional":true},"goodForGroups":{"type":"boolean","optional":true},"entrances":{"type":"array","items":{"type":"object","members":{"tags":{"type":"array","items":{"type":"string","enum":["TAG_UNSPECIFIED","PREFERRED"]},"optional":true},"location":{"type":"object","members":{"longitude":{"type":"number","optional":true},"latitude":{"type":"number","optional":true}},"optional":true}}},"optional":true},"outdoorSeating":{"type":"boolean","optional":true},"servesDinner":{"type":"boolean","optional":true},"attributions":{"type":"array","items":{"type":"object","members":{"provider":{"type":"string","optional":true},"providerUri":{"type":"string","optional":true}}},"optional":true},"servesVegetarianFood":{"type":"boolean","optional":true},"displayName":{"type":"object","members":{"languageCode":{"type":"string","optional":true},"text":{"type":"string","optional":true}},"optional":true},"googleMapsUri":{"type":"string","optional":true},"curbsidePickup":{"type":"boolean","optional":true},"utcOffsetMinutes":{"type":"number","optional":true},"transitStation":{"type":"object","members":{"agencies":{"type":"array","items":{"type":"object","members":{"lines":{"type":"array","items":{"type":"object","members":{"textColor":{"type":"string","optional":true},"vehicleIcon":{"type":"object","members":{"nameIncluded":{"type":"boolean","optional":true},"url":{"type":"string","optional":true}},"optional":true},"url":{"type":"string","optional":true},"id":{"type":"string","optional":true},"icon":{"type":"object","members":{"nameIncluded":{"type":"boolean","optional":true},"url":{"type":"string","optional":true}},"optional":true},"backgroundColor":{"type":"string","optional":true},"vehicleType":{"type":"string","enum":["VEHICLE_TYPE_UNSPECIFIED","RAIL","METRO_RAIL","SUBWAY","TRAM","MONORAIL","HEAVY_RAIL","COMMUTER_TRAIN","HIGH_SPEED_TRAIN","LONG_DISTANCE_TRAIN","BUS","INTERCITY_BUS","TROLLEYBUS","SHARE_TAXI","COACH","FERRY","CABLE_CAR","GONDOLA_LIFT","FUNICULAR","SPECIAL","HORSE_CARRIAGE","AIRPLANE"],"optional":true},"displayName":{"type":"object","members":{"languageCode":{"type":"string","optional":true},"text":{"type":"string","optional":true}},"optional":true},"shortDisplayName":{"type":"object","members":{"languageCode":{"type":"string","optional":true},"text":{"type":"string","optional":true}},"optional":true}}},"optional":true},"fareUrl":{"type":"string","optional":true},"displayName":{"type":"object","members":{"languageCode":{"type":"string","optional":true},"text":{"type":"string","optional":true}},"optional":true},"url":{"type":"string","optional":true},"icon":{"type":"object","members":{"nameIncluded":{"type":"boolean","optional":true},"url":{"type":"string","optional":true}},"optional":true}}},"optional":true},"stops":{"type":"array","items":{"type":"object","members":{"displayName":{"type":"object","members":{"languageCode":{"type":"string","optional":true},"text":{"type":"string","optional":true}},"optional":true},"stopCode":{"type":"object","members":{"languageCode":{"type":"string","optional":true},"text":{"type":"string","optional":true}},"optional":true},"id":{"type":"string","optional":true},"platformCode":{"type":"object","members":{"languageCode":{"type":"string","optional":true},"text":{"type":"string","optional":true}},"optional":true},"wheelchairAccessibleEntrance":{"type":"boolean","optional":true},"signageText":{"type":"object","members":{"languageCode":{"type":"string","optional":true},"text":{"type":"string","optional":true}},"optional":true},"location":{"type":"object","members":{"longitude":{"type":"number","optional":true},"latitude":{"type":"number","optional":true}},"optional":true}}},"optional":true},"displayName":{"type":"object","members":{"languageCode":{"type":"string","optional":true},"text":{"type":"string","optional":true}},"optional":true}},"optional":true},"priceRange":{"type":"object","members":{"startPrice":{"type":"object","members":{"currencyCode":{"type":"string","optional":true},"units":{"type":"string","optional":true},"nanos":{"type":"number","optional":true}},"optional":true},"endPrice":{"type":"object","members":{"currencyCode":{"type":"string","optional":true},"units":{"type":"string","optional":true},"nanos":{"type":"number","optional":true}},"optional":true}},"optional":true},"businessStatus":{"type":"string","enum":["BUSINESS_STATUS_UNSPECIFIED","OPERATIONAL","CLOSED_TEMPORARILY","CLOSED_PERMANENTLY","FUTURE_OPENING"],"optional":true},"addressComponents":{"type":"array","items":{"type":"object","members":{"languageCode":{"type":"string","optional":true},"types":{"type":"array","items":{"type":"string"},"optional":true},"shortText":{"type":"string","optional":true},"longText":{"type":"string","optional":true}}},"optional":true},"allowsDogs":{"type":"boolean","optional":true},"servesDessert":{"type":"boolean","optional":true},"movedPlace":{"type":"string","optional":true},"id":{"type":"string","optional":true},"consumerAlert":{"type":"object","members":{"details":{"type":"object","members":{"title":{"type":"string","optional":true},"aboutLink":{"type":"object","members":{"title":{"type":"string","optional":true},"uri":{"type":"string","optional":true}},"optional":true},"description":{"type":"string","optional":true}},"optional":true},"languageCode":{"type":"string","optional":true},"overview":{"type":"string","optional":true}},"optional":true},"accessibilityOptions":{"type":"object","members":{"wheelchairAccessibleParking":{"type":"boolean","optional":true},"wheelchairAccessibleSeating":{"type":"boolean","optional":true},"wheelchairAccessibleEntrance":{"type":"boolean","optional":true},"wheelchairAccessibleRestroom":{"type":"boolean","optional":true}},"optional":true},"fuelOptions":{"type":"object","members":{"fuelPrices":{"type":"array","items":{"type":"object","members":{"updateTime":{"type":"string","optional":true},"price":{"type":"object","members":{"currencyCode":{"type":"string","optional":true},"units":{"type":"string","optional":true},"nanos":{"type":"number","optional":true}},"optional":true},"type":{"type":"string","enum":["FUEL_TYPE_UNSPECIFIED","DIESEL","DIESEL_PLUS","REGULAR_UNLEADED","MIDGRADE","PREMIUM","SP91","SP91_E10","SP92","SP95","SP95_E10","SP98","SP99","SP100","LPG","E80","E85","E100","METHANE","BIO_DIESEL","TRUCK_DIESEL"],"optional":true}}},"optional":true}},"optional":true},"goodForChildren":{"type":"boolean","optional":true},"liveMusic":{"type":"boolean","optional":true},"menuForChildren":{"type":"boolean","optional":true},"adrFormatAddress":{"type":"string","optional":true},"rating":{"type":"number","optional":true},"priceLevel":{"type":"string","enum":["PRICE_LEVEL_UNSPECIFIED","PRICE_LEVEL_FREE","PRICE_LEVEL_INEXPENSIVE","PRICE_LEVEL_MODERATE","PRICE_LEVEL_EXPENSIVE","PRICE_LEVEL_VERY_EXPENSIVE"],"optional":true},"pureServiceAreaBusiness":{"type":"boolean","optional":true},"editorialSummary":{"type":"object","members":{"languageCode":{"type":"string","optional":true},"text":{"type":"string","optional":true}},"optional":true},"reviews":{"type":"array","items":{"type":"object","members":{"originalText":{"type":"object","members":{"languageCode":{"type":"string","optional":true},"text":{"type":"string","optional":true}},"optional":true},"googleMapsUri":{"type":"string","optional":true},"visitDate":{"type":"object","members":{"month":{"type":"number","optional":true},"year":{"type":"number","optional":true},"day":{"type":"number","optional":true}},"optional":true},"rating":{"type":"number","optional":true},"relativePublishTimeDescription":{"type":"string","optional":true},"text":{"type":"object","members":{"languageCode":{"type":"string","optional":true},"text":{"type":"string","optional":true}},"optional":true},"authorAttribution":{"type":"object","members":{"photoUri":{"type":"string","optional":true},"uri":{"type":"string","optional":true},"displayName":{"type":"string","optional":true}},"optional":true},"name":{"type":"string","optional":true},"publishTime":{"type":"string","optional":true},"flagContentUri":{"type":"string","optional":true}}},"optional":true}}},"searchText":{"desc":"Places API (New) text search including pagination and regional/location filters.","ops":["query"],"queryFields":[],"params":["routingParameters","priceLevels","locationRestriction","pageToken","minRating","searchAlongRouteParameters","maxResultCount","includeFutureOpeningBusinesses","includePureServiceAreaBusinesses","evOptions","includedType","openNow","regionCode","rankPreference","strictTypeFiltering","locationBias","pageSize","languageCode","textQuery"],"parameterFields":{"routingParameters":{"type":"object","members":{"routeModifiers":{"type":"object","members":{"avoidIndoor":{"type":"boolean","optional":true},"avoidFerries":{"type":"boolean","optional":true},"avoidHighways":{"type":"boolean","optional":true},"avoidTolls":{"type":"boolean","optional":true}},"optional":true},"origin":{"type":"object","members":{"longitude":{"type":"number","optional":true},"latitude":{"type":"number","optional":true}},"optional":true},"routingPreference":{"type":"string","enum":["ROUTING_PREFERENCE_UNSPECIFIED","TRAFFIC_UNAWARE","TRAFFIC_AWARE","TRAFFIC_AWARE_OPTIMAL"],"optional":true},"travelMode":{"type":"string","enum":["TRAVEL_MODE_UNSPECIFIED","DRIVE","BICYCLE","WALK","TWO_WHEELER"],"optional":true}},"optional":true},"priceLevels":{"type":"array","items":{"type":"string","enum":["PRICE_LEVEL_UNSPECIFIED","PRICE_LEVEL_FREE","PRICE_LEVEL_INEXPENSIVE","PRICE_LEVEL_MODERATE","PRICE_LEVEL_EXPENSIVE","PRICE_LEVEL_VERY_EXPENSIVE"]},"optional":true},"locationRestriction":{"type":"object","members":{"rectangle":{"type":"object","members":{"low":{"type":"object","members":{"longitude":{"type":"number","optional":true},"latitude":{"type":"number","optional":true}},"optional":true},"high":{"type":"object","members":{"longitude":{"type":"number","optional":true},"latitude":{"type":"number","optional":true}},"optional":true}},"optional":true}},"optional":true},"pageToken":{"type":"string","optional":true},"minRating":{"type":"number","optional":true},"searchAlongRouteParameters":{"type":"object","members":{"polyline":{"type":"object","members":{"encodedPolyline":{"type":"string","optional":true}},"optional":true}},"optional":true},"maxResultCount":{"type":"number","optional":true},"includeFutureOpeningBusinesses":{"type":"boolean","optional":true},"includePureServiceAreaBusinesses":{"type":"boolean","optional":true},"evOptions":{"type":"object","members":{"connectorTypes":{"type":"array","items":{"type":"string","enum":["EV_CONNECTOR_TYPE_UNSPECIFIED","EV_CONNECTOR_TYPE_OTHER","EV_CONNECTOR_TYPE_J1772","EV_CONNECTOR_TYPE_TYPE_2","EV_CONNECTOR_TYPE_CHADEMO","EV_CONNECTOR_TYPE_CCS_COMBO_1","EV_CONNECTOR_TYPE_CCS_COMBO_2","EV_CONNECTOR_TYPE_TESLA","EV_CONNECTOR_TYPE_UNSPECIFIED_GB_T","EV_CONNECTOR_TYPE_UNSPECIFIED_WALL_OUTLET","EV_CONNECTOR_TYPE_NACS"]},"optional":true},"minimumChargingRateKw":{"type":"number","optional":true}},"optional":true},"includedType":{"type":"string","optional":true},"openNow":{"type":"boolean","optional":true},"regionCode":{"type":"string","optional":true},"rankPreference":{"type":"string","enum":["RANK_PREFERENCE_UNSPECIFIED","DISTANCE","RELEVANCE"],"optional":true},"strictTypeFiltering":{"type":"boolean","optional":true},"locationBias":{"type":"object","members":{"rectangle":{"type":"object","members":{"low":{"type":"object","members":{"longitude":{"type":"number","optional":true},"latitude":{"type":"number","optional":true}},"optional":true},"high":{"type":"object","members":{"longitude":{"type":"number","optional":true},"latitude":{"type":"number","optional":true}},"optional":true}},"optional":true},"circle":{"type":"object","members":{"center":{"type":"object","members":{"longitude":{"type":"number","optional":true},"latitude":{"type":"number","optional":true}},"optional":true},"radius":{"type":"number","optional":true}},"optional":true}},"optional":true},"pageSize":{"type":"number","optional":true},"languageCode":{"type":"string","optional":true},"textQuery":{"type":"string"}},"requiredParams":["textQuery"],"read":"anonymous","anonymous":["read"],"enforcedBy":{"read":"the provider at places.googleapis.com, under the app's configured credentials"},"fields":{"nextPageToken":{"type":"string","optional":true},"routingSummaries":{"type":"array","items":{"type":"object","members":{"legs":{"type":"array","items":{"type":"object","members":{"duration":{"type":"string","optional":true},"distanceMeters":{"type":"number","optional":true}}},"optional":true},"directionsUri":{"type":"string","optional":true}}},"optional":true},"contextualContents":{"type":"array","items":{"type":"object","members":{"reviews":{"type":"array","items":{"type":"object","members":{"originalText":{"type":"object","members":{"languageCode":{"type":"string","optional":true},"text":{"type":"string","optional":true}},"optional":true},"googleMapsUri":{"type":"string","optional":true},"visitDate":{"type":"object","members":{"month":{"type":"number","optional":true},"year":{"type":"number","optional":true},"day":{"type":"number","optional":true}},"optional":true},"rating":{"type":"number","optional":true},"relativePublishTimeDescription":{"type":"string","optional":true},"text":{"type":"object","members":{"languageCode":{"type":"string","optional":true},"text":{"type":"string","optional":true}},"optional":true},"authorAttribution":{"type":"object","members":{"photoUri":{"type":"string","optional":true},"uri":{"type":"string","optional":true},"displayName":{"type":"string","optional":true}},"optional":true},"name":{"type":"string","optional":true},"publishTime":{"type":"string","optional":true},"flagContentUri":{"type":"string","optional":true}}},"optional":true},"justifications":{"type":"array","items":{"type":"object","members":{"businessAvailabilityAttributesJustification":{"type":"object","members":{"takeout":{"type":"boolean","optional":true},"delivery":{"type":"boolean","optional":true},"dineIn":{"type":"boolean","optional":true}},"optional":true},"reviewJustification":{"type":"object","members":{"highlightedText":{"type":"object","members":{"text":{"type":"string","optional":true},"highlightedTextRanges":{"type":"array","items":{"type":"object","members":{"startIndex":{"type":"number","optional":true},"endIndex":{"type":"number","optional":true}}},"optional":true}},"optional":true},"review":{"type":"object","members":{"originalText":{"type":"object","members":{"languageCode":{"type":"string","optional":true},"text":{"type":"string","optional":true}},"optional":true},"googleMapsUri":{"type":"string","optional":true},"visitDate":{"type":"object","members":{"month":{"type":"number","optional":true},"year":{"type":"number","optional":true},"day":{"type":"number","optional":true}},"optional":true},"rating":{"type":"number","optional":true},"relativePublishTimeDescription":{"type":"string","optional":true},"text":{"type":"object","members":{"languageCode":{"type":"string","optional":true},"text":{"type":"string","optional":true}},"optional":true},"authorAttribution":{"type":"object","members":{"photoUri":{"type":"string","optional":true},"uri":{"type":"string","optional":true},"displayName":{"type":"string","optional":true}},"optional":true},"name":{"type":"string","optional":true},"publishTime":{"type":"string","optional":true},"flagContentUri":{"type":"string","optional":true}},"optional":true}},"optional":true}}},"optional":true},"photos":{"type":"array","items":{"type":"object","members":{"googleMapsUri":{"type":"string","optional":true},"name":{"type":"string","optional":true},"flagContentUri":{"type":"string","optional":true},"heightPx":{"type":"number","optional":true},"authorAttributions":{"type":"array","items":{"type":"object","members":{"photoUri":{"type":"string","optional":true},"uri":{"type":"string","optional":true},"displayName":{"type":"string","optional":true}}},"optional":true},"widthPx":{"type":"number","optional":true}}},"optional":true}}},"optional":true},"searchUri":{"type":"string","optional":true},"places":{"type":"array","items":{"type":"object","members":{"currentSecondaryOpeningHours":{"type":"array","items":{"type":"object","members":{"nextCloseTime":{"type":"string","optional":true},"weekdayDescriptions":{"type":"array","items":{"type":"string"},"optional":true},"openNow":{"type":"boolean","optional":true},"nextOpenTime":{"type":"string","optional":true},"secondaryHoursType":{"type":"string","enum":["SECONDARY_HOURS_TYPE_UNSPECIFIED","DRIVE_THROUGH","HAPPY_HOUR","DELIVERY","TAKEOUT","KITCHEN","BREAKFAST","LUNCH","DINNER","BRUNCH","PICKUP","ACCESS","SENIOR_HOURS","ONLINE_SERVICE_HOURS"],"optional":true},"specialDays":{"type":"array","items":{"type":"object","members":{"date":{"type":"object","members":{"month":{"type":"number","optional":true},"year":{"type":"number","optional":true},"day":{"type":"number","optional":true}},"optional":true}}},"optional":true},"periods":{"type":"array","items":{"type":"object","members":{"close":{"type":"object","members":{"hour":{"type":"number","optional":true},"day":{"type":"number","optional":true},"minute":{"type":"number","optional":true},"date":{"type":"object","members":{"month":{"type":"number","optional":true},"year":{"type":"number","optional":true},"day":{"type":"number","optional":true}},"optional":true},"truncated":{"type":"boolean","optional":true}},"optional":true},"open":{"type":"object","members":{"hour":{"type":"number","optional":true},"day":{"type":"number","optional":true},"minute":{"type":"number","optional":true},"date":{"type":"object","members":{"month":{"type":"number","optional":true},"year":{"type":"number","optional":true},"day":{"type":"number","optional":true}},"optional":true},"truncated":{"type":"boolean","optional":true}},"optional":true}}},"optional":true}}},"optional":true},"addressDescriptor":{"type":"object","members":{"landmarks":{"type":"array","items":{"type":"object","members":{"spatialRelationship":{"type":"string","enum":["NEAR","WITHIN","BESIDE","ACROSS_THE_ROAD","DOWN_THE_ROAD","AROUND_THE_CORNER","BEHIND"],"optional":true},"placeId":{"type":"string","optional":true},"displayName":{"type":"object","members":{"languageCode":{"type":"string","optional":true},"text":{"type":"string","optional":true}},"optional":true},"straightLineDistanceMeters":{"type":"number","optional":true},"name":{"type":"string","optional":true},"travelDistanceMeters":{"type":"number","optional":true},"types":{"type":"array","items":{"type":"string"},"optional":true}}},"optional":true},"areas":{"type":"array","items":{"type":"object","members":{"placeId":{"type":"string","optional":true},"containment":{"type":"string","enum":["CONTAINMENT_UNSPECIFIED","WITHIN","OUTSKIRTS","NEAR"],"optional":true},"displayName":{"type":"object","members":{"languageCode":{"type":"string","optional":true},"text":{"type":"string","optional":true}},"optional":true},"name":{"type":"string","optional":true}}},"optional":true}},"optional":true},"primaryType":{"type":"string","optional":true},"servesBrunch":{"type":"boolean","optional":true},"openingDate":{"type":"object","members":{"month":{"type":"number","optional":true},"year":{"type":"number","optional":true},"day":{"type":"number","optional":true}},"optional":true},"neighborhoodSummary":{"type":"object","members":{"overview":{"type":"object","members":{"referencedPlaces":{"type":"array","items":{"type":"string"},"optional":true},"content":{"type":"object","members":{"languageCode":{"type":"string","optional":true},"text":{"type":"string","optional":true}},"optional":true}},"optional":true},"flagContentUri":{"type":"string","optional":true},"disclosureText":{"type":"object","members":{"languageCode":{"type":"string","optional":true},"text":{"type":"string","optional":true}},"optional":true},"description":{"type":"object","members":{"referencedPlaces":{"type":"array","items":{"type":"string"},"optional":true},"content":{"type":"object","members":{"languageCode":{"type":"string","optional":true},"text":{"type":"string","optional":true}},"optional":true}},"optional":true}},"optional":true},"servesBeer":{"type":"boolean","optional":true},"primaryTypeDisplayName":{"type":"object","members":{"languageCode":{"type":"string","optional":true},"text":{"type":"string","optional":true}},"optional":true},"location":{"type":"object","members":{"longitude":{"type":"number","optional":true},"latitude":{"type":"number","optional":true}},"optional":true},"googleMapsTypeLabel":{"type":"object","members":{"languageCode":{"type":"string","optional":true},"text":{"type":"string","optional":true}},"optional":true},"takeout":{"type":"boolean","optional":true},"iconBackgroundColor":{"type":"string","optional":true},"containingPlaces":{"type":"array","items":{"type":"object","members":{"name":{"type":"string","optional":true},"id":{"type":"string","optional":true}}},"optional":true},"viewport":{"type":"object","members":{"low":{"type":"object","members":{"longitude":{"type":"number","optional":true},"latitude":{"type":"number","optional":true}},"optional":true},"high":{"type":"object","members":{"longitude":{"type":"number","optional":true},"latitude":{"type":"number","optional":true}},"optional":true}},"optional":true},"timeZone":{"type":"object","members":{"version":{"type":"string","optional":true},"id":{"type":"string","optional":true}},"optional":true},"dineIn":{"type":"boolean","optional":true},"servesCocktails":{"type":"boolean","optional":true},"shortFormattedAddress":{"type":"string","optional":true},"reviewSummary":{"type":"object","members":{"text":{"type":"object","members":{"languageCode":{"type":"string","optional":true},"text":{"type":"string","optional":true}},"optional":true},"flagContentUri":{"type":"string","optional":true},"disclosureText":{"type":"object","members":{"languageCode":{"type":"string","optional":true},"text":{"type":"string","optional":true}},"optional":true},"reviewsUri":{"type":"string","optional":true}},"optional":true},"photos":{"type":"array","items":{"type":"object","members":{"googleMapsUri":{"type":"string","optional":true},"name":{"type":"string","optional":true},"flagContentUri":{"type":"string","optional":true},"heightPx":{"type":"number","optional":true},"authorAttributions":{"type":"array","items":{"type":"object","members":{"photoUri":{"type":"string","optional":true},"uri":{"type":"string","optional":true},"displayName":{"type":"string","optional":true}}},"optional":true},"widthPx":{"type":"number","optional":true}}},"optional":true},"generativeSummary":{"type":"object","members":{"disclosureText":{"type":"object","members":{"languageCode":{"type":"string","optional":true},"text":{"type":"string","optional":true}},"optional":true},"overview":{"type":"object","members":{"languageCode":{"type":"string","optional":true},"text":{"type":"string","optional":true}},"optional":true},"overviewFlagContentUri":{"type":"string","optional":true}},"optional":true},"movedPlaceId":{"type":"string","optional":true},"userRatingCount":{"type":"number","optional":true},"servesBreakfast":{"type":"boolean","optional":true},"regularOpeningHours":{"type":"object","members":{"nextCloseTime":{"type":"string","optional":true},"weekdayDescriptions":{"type":"array","items":{"type":"string"},"optional":true},"openNow":{"type":"boolean","optional":true},"nextOpenTime":{"type":"string","optional":true},"secondaryHoursType":{"type":"string","enum":["SECONDARY_HOURS_TYPE_UNSPECIFIED","DRIVE_THROUGH","HAPPY_HOUR","DELIVERY","TAKEOUT","KITCHEN","BREAKFAST","LUNCH","DINNER","BRUNCH","PICKUP","ACCESS","SENIOR_HOURS","ONLINE_SERVICE_HOURS"],"optional":true},"specialDays":{"type":"array","items":{"type":"object","members":{"date":{"type":"object","members":{"month":{"type":"number","optional":true},"year":{"type":"number","optional":true},"day":{"type":"number","optional":true}},"optional":true}}},"optional":true},"periods":{"type":"array","items":{"type":"object","members":{"close":{"type":"object","members":{"hour":{"type":"number","optional":true},"day":{"type":"number","optional":true},"minute":{"type":"number","optional":true},"date":{"type":"object","members":{"month":{"type":"number","optional":true},"year":{"type":"number","optional":true},"day":{"type":"number","optional":true}},"optional":true},"truncated":{"type":"boolean","optional":true}},"optional":true},"open":{"type":"object","members":{"hour":{"type":"number","optional":true},"day":{"type":"number","optional":true},"minute":{"type":"number","optional":true},"date":{"type":"object","members":{"month":{"type":"number","optional":true},"year":{"type":"number","optional":true},"day":{"type":"number","optional":true}},"optional":true},"truncated":{"type":"boolean","optional":true}},"optional":true}}},"optional":true}},"optional":true},"servesWine":{"type":"boolean","optional":true},"postalAddress":{"type":"object","members":{"regionCode":{"type":"string","optional":true},"sublocality":{"type":"string","optional":true},"postalCode":{"type":"string","optional":true},"revision":{"type":"number","optional":true},"locality":{"type":"string","optional":true},"recipients":{"type":"array","items":{"type":"string"},"optional":true},"addressLines":{"type":"array","items":{"type":"string"},"optional":true},"organization":{"type":"string","optional":true},"languageCode":{"type":"string","optional":true},"administrativeArea":{"type":"string","optional":true},"sortingCode":{"type":"string","optional":true}},"optional":true},"types":{"type":"array","items":{"type":"string"},"optional":true},"restroom":{"type":"boolean","optional":true},"websiteUri":{"type":"string","optional":true},"plusCode":{"type":"object","members":{"globalCode":{"type":"string","optional":true},"compoundCode":{"type":"string","optional":true}},"optional":true},"servesLunch":{"type":"boolean","optional":true},"regularSecondaryOpeningHours":{"type":"array","items":{"type":"object","members":{"nextCloseTime":{"type":"string","optional":true},"weekdayDescriptions":{"type":"array","items":{"type":"string"},"optional":true},"openNow":{"type":"boolean","optional":true},"nextOpenTime":{"type":"string","optional":true},"secondaryHoursType":{"type":"string","enum":["SECONDARY_HOURS_TYPE_UNSPECIFIED","DRIVE_THROUGH","HAPPY_HOUR","DELIVERY","TAKEOUT","KITCHEN","BREAKFAST","LUNCH","DINNER","BRUNCH","PICKUP","ACCESS","SENIOR_HOURS","ONLINE_SERVICE_HOURS"],"optional":true},"specialDays":{"type":"array","items":{"type":"object","members":{"date":{"type":"object","members":{"month":{"type":"number","optional":true},"year":{"type":"number","optional":true},"day":{"type":"number","optional":true}},"optional":true}}},"optional":true},"periods":{"type":"array","items":{"type":"object","members":{"close":{"type":"object","members":{"hour":{"type":"number","optional":true},"day":{"type":"number","optional":true},"minute":{"type":"number","optional":true},"date":{"type":"object","members":{"month":{"type":"number","optional":true},"year":{"type":"number","optional":true},"day":{"type":"number","optional":true}},"optional":true},"truncated":{"type":"boolean","optional":true}},"optional":true},"open":{"type":"object","members":{"hour":{"type":"number","optional":true},"day":{"type":"number","optional":true},"minute":{"type":"number","optional":true},"date":{"type":"object","members":{"month":{"type":"number","optional":true},"year":{"type":"number","optional":true},"day":{"type":"number","optional":true}},"optional":true},"truncated":{"type":"boolean","optional":true}},"optional":true}}},"optional":true}}},"optional":true},"reservable":{"type":"boolean","optional":true},"navigationPoints":{"type":"array","items":{"type":"object","members":{"displayName":{"type":"object","members":{"languageCode":{"type":"string","optional":true},"text":{"type":"string","optional":true}},"optional":true},"travelModes":{"type":"array","items":{"type":"string","enum":["TRAVEL_MODE_UNSPECIFIED","DRIVE","WALK"]},"optional":true},"location":{"type":"object","members":{"longitude":{"type":"number","optional":true},"latitude":{"type":"number","optional":true}},"optional":true},"usages":{"type":"array","items":{"type":"string","enum":["USAGE_UNSPECIFIED","DROPOFF","PICKUP","PARKING"]},"optional":true},"navigationPointToken":{"type":"string","optional":true}}},"optional":true},"delivery":{"type":"boolean","optional":true},"servesCoffee":{"type":"boolean","optional":true},"currentOpeningHours":{"type":"object","members":{"nextCloseTime":{"type":"string","optional":true},"weekdayDescriptions":{"type":"array","items":{"type":"string"},"optional":true},"openNow":{"type":"boolean","optional":true},"nextOpenTime":{"type":"string","optional":true},"secondaryHoursType":{"type":"string","enum":["SECONDARY_HOURS_TYPE_UNSPECIFIED","DRIVE_THROUGH","HAPPY_HOUR","DELIVERY","TAKEOUT","KITCHEN","BREAKFAST","LUNCH","DINNER","BRUNCH","PICKUP","ACCESS","SENIOR_HOURS","ONLINE_SERVICE_HOURS"],"optional":true},"specialDays":{"type":"array","items":{"type":"object","members":{"date":{"type":"object","members":{"month":{"type":"number","optional":true},"year":{"type":"number","optional":true},"day":{"type":"number","optional":true}},"optional":true}}},"optional":true},"periods":{"type":"array","items":{"type":"object","members":{"close":{"type":"object","members":{"hour":{"type":"number","optional":true},"day":{"type":"number","optional":true},"minute":{"type":"number","optional":true},"date":{"type":"object","members":{"month":{"type":"number","optional":true},"year":{"type":"number","optional":true},"day":{"type":"number","optional":true}},"optional":true},"truncated":{"type":"boolean","optional":true}},"optional":true},"open":{"type":"object","members":{"hour":{"type":"number","optional":true},"day":{"type":"number","optional":true},"minute":{"type":"number","optional":true},"date":{"type":"object","members":{"month":{"type":"number","optional":true},"year":{"type":"number","optional":true},"day":{"type":"number","optional":true}},"optional":true},"truncated":{"type":"boolean","optional":true}},"optional":true}}},"optional":true}},"optional":true},"name":{"type":"string","optional":true},"goodForWatchingSports":{"type":"boolean","optional":true},"iconMaskBaseUri":{"type":"string","optional":true},"internationalPhoneNumber":{"type":"string","optional":true},"subDestinations":{"type":"array","items":{"type":"object","members":{"name":{"type":"string","optional":true},"id":{"type":"string","optional":true}}},"optional":true},"parkingOptions":{"type":"object","members":{"paidGarageParking":{"type":"boolean","optional":true},"paidParkingLot":{"type":"boolean","optional":true},"freeGarageParking":{"type":"boolean","optional":true},"valetParking":{"type":"boolean","optional":true},"freeParkingLot":{"type":"boolean","optional":true},"freeStreetParking":{"type":"boolean","optional":true},"paidStreetParking":{"type":"boolean","optional":true}},"optional":true},"paymentOptions":{"type":"object","members":{"acceptsDebitCards":{"type":"boolean","optional":true},"acceptsCashOnly":{"type":"boolean","optional":true},"acceptsCreditCards":{"type":"boolean","optional":true},"acceptsNfc":{"type":"boolean","optional":true}},"optional":true},"evChargeAmenitySummary":{"type":"object","members":{"disclosureText":{"type":"object","members":{"languageCode":{"type":"string","optional":true},"text":{"type":"string","optional":true}},"optional":true},"restaurant":{"type":"object","members":{"referencedPlaces":{"type":"array","items":{"type":"string"},"optional":true},"content":{"type":"object","members":{"languageCode":{"type":"string","optional":true},"text":{"type":"string","optional":true}},"optional":true}},"optional":true},"store":{"type":"object","members":{"referencedPlaces":{"type":"array","items":{"type":"string"},"optional":true},"content":{"type":"object","members":{"languageCode":{"type":"string","optional":true},"text":{"type":"string","optional":true}},"optional":true}},"optional":true},"coffee":{"type":"object","members":{"referencedPlaces":{"type":"array","items":{"type":"string"},"optional":true},"content":{"type":"object","members":{"languageCode":{"type":"string","optional":true},"text":{"type":"string","optional":true}},"optional":true}},"optional":true},"overview":{"type":"object","members":{"referencedPlaces":{"type":"array","items":{"type":"string"},"optional":true},"content":{"type":"object","members":{"languageCode":{"type":"string","optional":true},"text":{"type":"string","optional":true}},"optional":true}},"optional":true},"flagContentUri":{"type":"string","optional":true}},"optional":true},"formattedAddress":{"type":"string","optional":true},"googleMapsLinks":{"type":"object","members":{"placeUri":{"type":"string","optional":true},"writeAReviewUri":{"type":"string","optional":true},"photosUri":{"type":"string","optional":true},"reviewsUri":{"type":"string","optional":true},"directionsUri":{"type":"string","optional":true}},"optional":true},"evChargeOptions":{"type":"object","members":{"connectorCount":{"type":"number","optional":true},"connectorAggregation":{"type":"array","items":{"type":"object","members":{"outOfServiceCount":{"type":"number","optional":true},"maxChargeRateKw":{"type":"number","optional":true},"availabilityLastUpdateTime":{"type":"string","optional":true},"type":{"type":"string","enum":["EV_CONNECTOR_TYPE_UNSPECIFIED","EV_CONNECTOR_TYPE_OTHER","EV_CONNECTOR_TYPE_J1772","EV_CONNECTOR_TYPE_TYPE_2","EV_CONNECTOR_TYPE_CHADEMO","EV_CONNECTOR_TYPE_CCS_COMBO_1","EV_CONNECTOR_TYPE_CCS_COMBO_2","EV_CONNECTOR_TYPE_TESLA","EV_CONNECTOR_TYPE_UNSPECIFIED_GB_T","EV_CONNECTOR_TYPE_UNSPECIFIED_WALL_OUTLET","EV_CONNECTOR_TYPE_NACS"],"optional":true},"count":{"type":"number","optional":true},"availableCount":{"type":"number","optional":true}}},"optional":true}},"optional":true},"nationalPhoneNumber":{"type":"string","optional":true},"goodForGroups":{"type":"boolean","optional":true},"entrances":{"type":"array","items":{"type":"object","members":{"tags":{"type":"array","items":{"type":"string","enum":["TAG_UNSPECIFIED","PREFERRED"]},"optional":true},"location":{"type":"object","members":{"longitude":{"type":"number","optional":true},"latitude":{"type":"number","optional":true}},"optional":true}}},"optional":true},"outdoorSeating":{"type":"boolean","optional":true},"servesDinner":{"type":"boolean","optional":true},"attributions":{"type":"array","items":{"type":"object","members":{"provider":{"type":"string","optional":true},"providerUri":{"type":"string","optional":true}}},"optional":true},"servesVegetarianFood":{"type":"boolean","optional":true},"displayName":{"type":"object","members":{"languageCode":{"type":"string","optional":true},"text":{"type":"string","optional":true}},"optional":true},"googleMapsUri":{"type":"string","optional":true},"curbsidePickup":{"type":"boolean","optional":true},"utcOffsetMinutes":{"type":"number","optional":true},"transitStation":{"type":"object","members":{"agencies":{"type":"array","items":{"type":"object","members":{"lines":{"type":"array","items":{"type":"object","members":{"textColor":{"type":"string","optional":true},"vehicleIcon":{"type":"object","members":{"nameIncluded":{"type":"boolean","optional":true},"url":{"type":"string","optional":true}},"optional":true},"url":{"type":"string","optional":true},"id":{"type":"string","optional":true},"icon":{"type":"object","members":{"nameIncluded":{"type":"boolean","optional":true},"url":{"type":"string","optional":true}},"optional":true},"backgroundColor":{"type":"string","optional":true},"vehicleType":{"type":"string","enum":["VEHICLE_TYPE_UNSPECIFIED","RAIL","METRO_RAIL","SUBWAY","TRAM","MONORAIL","HEAVY_RAIL","COMMUTER_TRAIN","HIGH_SPEED_TRAIN","LONG_DISTANCE_TRAIN","BUS","INTERCITY_BUS","TROLLEYBUS","SHARE_TAXI","COACH","FERRY","CABLE_CAR","GONDOLA_LIFT","FUNICULAR","SPECIAL","HORSE_CARRIAGE","AIRPLANE"],"optional":true},"displayName":{"type":"object","members":{"languageCode":{"type":"string","optional":true},"text":{"type":"string","optional":true}},"optional":true},"shortDisplayName":{"type":"object","members":{"languageCode":{"type":"string","optional":true},"text":{"type":"string","optional":true}},"optional":true}}},"optional":true},"fareUrl":{"type":"string","optional":true},"displayName":{"type":"object","members":{"languageCode":{"type":"string","optional":true},"text":{"type":"string","optional":true}},"optional":true},"url":{"type":"string","optional":true},"icon":{"type":"object","members":{"nameIncluded":{"type":"boolean","optional":true},"url":{"type":"string","optional":true}},"optional":true}}},"optional":true},"stops":{"type":"array","items":{"type":"object","members":{"displayName":{"type":"object","members":{"languageCode":{"type":"string","optional":true},"text":{"type":"string","optional":true}},"optional":true},"stopCode":{"type":"object","members":{"languageCode":{"type":"string","optional":true},"text":{"type":"string","optional":true}},"optional":true},"id":{"type":"string","optional":true},"platformCode":{"type":"object","members":{"languageCode":{"type":"string","optional":true},"text":{"type":"string","optional":true}},"optional":true},"wheelchairAccessibleEntrance":{"type":"boolean","optional":true},"signageText":{"type":"object","members":{"languageCode":{"type":"string","optional":true},"text":{"type":"string","optional":true}},"optional":true},"location":{"type":"object","members":{"longitude":{"type":"number","optional":true},"latitude":{"type":"number","optional":true}},"optional":true}}},"optional":true},"displayName":{"type":"object","members":{"languageCode":{"type":"string","optional":true},"text":{"type":"string","optional":true}},"optional":true}},"optional":true},"priceRange":{"type":"object","members":{"startPrice":{"type":"object","members":{"currencyCode":{"type":"string","optional":true},"units":{"type":"string","optional":true},"nanos":{"type":"number","optional":true}},"optional":true},"endPrice":{"type":"object","members":{"currencyCode":{"type":"string","optional":true},"units":{"type":"string","optional":true},"nanos":{"type":"number","optional":true}},"optional":true}},"optional":true},"businessStatus":{"type":"string","enum":["BUSINESS_STATUS_UNSPECIFIED","OPERATIONAL","CLOSED_TEMPORARILY","CLOSED_PERMANENTLY","FUTURE_OPENING"],"optional":true},"addressComponents":{"type":"array","items":{"type":"object","members":{"languageCode":{"type":"string","optional":true},"types":{"type":"array","items":{"type":"string"},"optional":true},"shortText":{"type":"string","optional":true},"longText":{"type":"string","optional":true}}},"optional":true},"allowsDogs":{"type":"boolean","optional":true},"servesDessert":{"type":"boolean","optional":true},"movedPlace":{"type":"string","optional":true},"id":{"type":"string","optional":true},"consumerAlert":{"type":"object","members":{"details":{"type":"object","members":{"title":{"type":"string","optional":true},"aboutLink":{"type":"object","members":{"title":{"type":"string","optional":true},"uri":{"type":"string","optional":true}},"optional":true},"description":{"type":"string","optional":true}},"optional":true},"languageCode":{"type":"string","optional":true},"overview":{"type":"string","optional":true}},"optional":true},"accessibilityOptions":{"type":"object","members":{"wheelchairAccessibleParking":{"type":"boolean","optional":true},"wheelchairAccessibleSeating":{"type":"boolean","optional":true},"wheelchairAccessibleEntrance":{"type":"boolean","optional":true},"wheelchairAccessibleRestroom":{"type":"boolean","optional":true}},"optional":true},"fuelOptions":{"type":"object","members":{"fuelPrices":{"type":"array","items":{"type":"object","members":{"updateTime":{"type":"string","optional":true},"price":{"type":"object","members":{"currencyCode":{"type":"string","optional":true},"units":{"type":"string","optional":true},"nanos":{"type":"number","optional":true}},"optional":true},"type":{"type":"string","enum":["FUEL_TYPE_UNSPECIFIED","DIESEL","DIESEL_PLUS","REGULAR_UNLEADED","MIDGRADE","PREMIUM","SP91","SP91_E10","SP92","SP95","SP95_E10","SP98","SP99","SP100","LPG","E80","E85","E100","METHANE","BIO_DIESEL","TRUCK_DIESEL"],"optional":true}}},"optional":true}},"optional":true},"goodForChildren":{"type":"boolean","optional":true},"liveMusic":{"type":"boolean","optional":true},"menuForChildren":{"type":"boolean","optional":true},"adrFormatAddress":{"type":"string","optional":true},"rating":{"type":"number","optional":true},"priceLevel":{"type":"string","enum":["PRICE_LEVEL_UNSPECIFIED","PRICE_LEVEL_FREE","PRICE_LEVEL_INEXPENSIVE","PRICE_LEVEL_MODERATE","PRICE_LEVEL_EXPENSIVE","PRICE_LEVEL_VERY_EXPENSIVE"],"optional":true},"pureServiceAreaBusiness":{"type":"boolean","optional":true},"editorialSummary":{"type":"object","members":{"languageCode":{"type":"string","optional":true},"text":{"type":"string","optional":true}},"optional":true},"reviews":{"type":"array","items":{"type":"object","members":{"originalText":{"type":"object","members":{"languageCode":{"type":"string","optional":true},"text":{"type":"string","optional":true}},"optional":true},"googleMapsUri":{"type":"string","optional":true},"visitDate":{"type":"object","members":{"month":{"type":"number","optional":true},"year":{"type":"number","optional":true},"day":{"type":"number","optional":true}},"optional":true},"rating":{"type":"number","optional":true},"relativePublishTimeDescription":{"type":"string","optional":true},"text":{"type":"object","members":{"languageCode":{"type":"string","optional":true},"text":{"type":"string","optional":true}},"optional":true},"authorAttribution":{"type":"object","members":{"photoUri":{"type":"string","optional":true},"uri":{"type":"string","optional":true},"displayName":{"type":"string","optional":true}},"optional":true},"name":{"type":"string","optional":true},"publishTime":{"type":"string","optional":true},"flagContentUri":{"type":"string","optional":true}}},"optional":true}}},"optional":true}}},"searchNearby":{"desc":"Places API (New) nearby search within a circle, with included/excluded place types.","ops":["query"],"queryFields":[],"params":["includedTypes","excludedPrimaryTypes","rankPreference","regionCode","locationRestriction","includedPrimaryTypes","routingParameters","languageCode","maxResultCount","includeFutureOpeningBusinesses","excludedTypes"],"parameterFields":{"includedTypes":{"type":"array","items":{"type":"string"},"optional":true},"excludedPrimaryTypes":{"type":"array","items":{"type":"string"},"optional":true},"rankPreference":{"type":"string","enum":["RANK_PREFERENCE_UNSPECIFIED","DISTANCE","POPULARITY"],"optional":true},"regionCode":{"type":"string","optional":true},"locationRestriction":{"type":"object","members":{"circle":{"type":"object","members":{"center":{"type":"object","members":{"longitude":{"type":"number","optional":true},"latitude":{"type":"number","optional":true}},"optional":true},"radius":{"type":"number","optional":true}},"optional":true}}},"includedPrimaryTypes":{"type":"array","items":{"type":"string"},"optional":true},"routingParameters":{"type":"object","members":{"routeModifiers":{"type":"object","members":{"avoidIndoor":{"type":"boolean","optional":true},"avoidFerries":{"type":"boolean","optional":true},"avoidHighways":{"type":"boolean","optional":true},"avoidTolls":{"type":"boolean","optional":true}},"optional":true},"origin":{"type":"object","members":{"longitude":{"type":"number","optional":true},"latitude":{"type":"number","optional":true}},"optional":true},"routingPreference":{"type":"string","enum":["ROUTING_PREFERENCE_UNSPECIFIED","TRAFFIC_UNAWARE","TRAFFIC_AWARE","TRAFFIC_AWARE_OPTIMAL"],"optional":true},"travelMode":{"type":"string","enum":["TRAVEL_MODE_UNSPECIFIED","DRIVE","BICYCLE","WALK","TWO_WHEELER"],"optional":true}},"optional":true},"languageCode":{"type":"string","optional":true},"maxResultCount":{"type":"number","optional":true},"includeFutureOpeningBusinesses":{"type":"boolean","optional":true},"excludedTypes":{"type":"array","items":{"type":"string"},"optional":true}},"requiredParams":["locationRestriction"],"read":"anonymous","anonymous":["read"],"enforcedBy":{"read":"the provider at places.googleapis.com, under the app's configured credentials"},"fields":{"routingSummaries":{"type":"array","items":{"type":"object","members":{"legs":{"type":"array","items":{"type":"object","members":{"duration":{"type":"string","optional":true},"distanceMeters":{"type":"number","optional":true}}},"optional":true},"directionsUri":{"type":"string","optional":true}}},"optional":true},"places":{"type":"array","items":{"type":"object","members":{"currentSecondaryOpeningHours":{"type":"array","items":{"type":"object","members":{"nextCloseTime":{"type":"string","optional":true},"weekdayDescriptions":{"type":"array","items":{"type":"string"},"optional":true},"openNow":{"type":"boolean","optional":true},"nextOpenTime":{"type":"string","optional":true},"secondaryHoursType":{"type":"string","enum":["SECONDARY_HOURS_TYPE_UNSPECIFIED","DRIVE_THROUGH","HAPPY_HOUR","DELIVERY","TAKEOUT","KITCHEN","BREAKFAST","LUNCH","DINNER","BRUNCH","PICKUP","ACCESS","SENIOR_HOURS","ONLINE_SERVICE_HOURS"],"optional":true},"specialDays":{"type":"array","items":{"type":"object","members":{"date":{"type":"object","members":{"month":{"type":"number","optional":true},"year":{"type":"number","optional":true},"day":{"type":"number","optional":true}},"optional":true}}},"optional":true},"periods":{"type":"array","items":{"type":"object","members":{"close":{"type":"object","members":{"hour":{"type":"number","optional":true},"day":{"type":"number","optional":true},"minute":{"type":"number","optional":true},"date":{"type":"object","members":{"month":{"type":"number","optional":true},"year":{"type":"number","optional":true},"day":{"type":"number","optional":true}},"optional":true},"truncated":{"type":"boolean","optional":true}},"optional":true},"open":{"type":"object","members":{"hour":{"type":"number","optional":true},"day":{"type":"number","optional":true},"minute":{"type":"number","optional":true},"date":{"type":"object","members":{"month":{"type":"number","optional":true},"year":{"type":"number","optional":true},"day":{"type":"number","optional":true}},"optional":true},"truncated":{"type":"boolean","optional":true}},"optional":true}}},"optional":true}}},"optional":true},"addressDescriptor":{"type":"object","members":{"landmarks":{"type":"array","items":{"type":"object","members":{"spatialRelationship":{"type":"string","enum":["NEAR","WITHIN","BESIDE","ACROSS_THE_ROAD","DOWN_THE_ROAD","AROUND_THE_CORNER","BEHIND"],"optional":true},"placeId":{"type":"string","optional":true},"displayName":{"type":"object","members":{"languageCode":{"type":"string","optional":true},"text":{"type":"string","optional":true}},"optional":true},"straightLineDistanceMeters":{"type":"number","optional":true},"name":{"type":"string","optional":true},"travelDistanceMeters":{"type":"number","optional":true},"types":{"type":"array","items":{"type":"string"},"optional":true}}},"optional":true},"areas":{"type":"array","items":{"type":"object","members":{"placeId":{"type":"string","optional":true},"containment":{"type":"string","enum":["CONTAINMENT_UNSPECIFIED","WITHIN","OUTSKIRTS","NEAR"],"optional":true},"displayName":{"type":"object","members":{"languageCode":{"type":"string","optional":true},"text":{"type":"string","optional":true}},"optional":true},"name":{"type":"string","optional":true}}},"optional":true}},"optional":true},"primaryType":{"type":"string","optional":true},"servesBrunch":{"type":"boolean","optional":true},"openingDate":{"type":"object","members":{"month":{"type":"number","optional":true},"year":{"type":"number","optional":true},"day":{"type":"number","optional":true}},"optional":true},"neighborhoodSummary":{"type":"object","members":{"overview":{"type":"object","members":{"referencedPlaces":{"type":"array","items":{"type":"string"},"optional":true},"content":{"type":"object","members":{"languageCode":{"type":"string","optional":true},"text":{"type":"string","optional":true}},"optional":true}},"optional":true},"flagContentUri":{"type":"string","optional":true},"disclosureText":{"type":"object","members":{"languageCode":{"type":"string","optional":true},"text":{"type":"string","optional":true}},"optional":true},"description":{"type":"object","members":{"referencedPlaces":{"type":"array","items":{"type":"string"},"optional":true},"content":{"type":"object","members":{"languageCode":{"type":"string","optional":true},"text":{"type":"string","optional":true}},"optional":true}},"optional":true}},"optional":true},"servesBeer":{"type":"boolean","optional":true},"primaryTypeDisplayName":{"type":"object","members":{"languageCode":{"type":"string","optional":true},"text":{"type":"string","optional":true}},"optional":true},"location":{"type":"object","members":{"longitude":{"type":"number","optional":true},"latitude":{"type":"number","optional":true}},"optional":true},"googleMapsTypeLabel":{"type":"object","members":{"languageCode":{"type":"string","optional":true},"text":{"type":"string","optional":true}},"optional":true},"takeout":{"type":"boolean","optional":true},"iconBackgroundColor":{"type":"string","optional":true},"containingPlaces":{"type":"array","items":{"type":"object","members":{"name":{"type":"string","optional":true},"id":{"type":"string","optional":true}}},"optional":true},"viewport":{"type":"object","members":{"low":{"type":"object","members":{"longitude":{"type":"number","optional":true},"latitude":{"type":"number","optional":true}},"optional":true},"high":{"type":"object","members":{"longitude":{"type":"number","optional":true},"latitude":{"type":"number","optional":true}},"optional":true}},"optional":true},"timeZone":{"type":"object","members":{"version":{"type":"string","optional":true},"id":{"type":"string","optional":true}},"optional":true},"dineIn":{"type":"boolean","optional":true},"servesCocktails":{"type":"boolean","optional":true},"shortFormattedAddress":{"type":"string","optional":true},"reviewSummary":{"type":"object","members":{"text":{"type":"object","members":{"languageCode":{"type":"string","optional":true},"text":{"type":"string","optional":true}},"optional":true},"flagContentUri":{"type":"string","optional":true},"disclosureText":{"type":"object","members":{"languageCode":{"type":"string","optional":true},"text":{"type":"string","optional":true}},"optional":true},"reviewsUri":{"type":"string","optional":true}},"optional":true},"photos":{"type":"array","items":{"type":"object","members":{"googleMapsUri":{"type":"string","optional":true},"name":{"type":"string","optional":true},"flagContentUri":{"type":"string","optional":true},"heightPx":{"type":"number","optional":true},"authorAttributions":{"type":"array","items":{"type":"object","members":{"photoUri":{"type":"string","optional":true},"uri":{"type":"string","optional":true},"displayName":{"type":"string","optional":true}}},"optional":true},"widthPx":{"type":"number","optional":true}}},"optional":true},"generativeSummary":{"type":"object","members":{"disclosureText":{"type":"object","members":{"languageCode":{"type":"string","optional":true},"text":{"type":"string","optional":true}},"optional":true},"overview":{"type":"object","members":{"languageCode":{"type":"string","optional":true},"text":{"type":"string","optional":true}},"optional":true},"overviewFlagContentUri":{"type":"string","optional":true}},"optional":true},"movedPlaceId":{"type":"string","optional":true},"userRatingCount":{"type":"number","optional":true},"servesBreakfast":{"type":"boolean","optional":true},"regularOpeningHours":{"type":"object","members":{"nextCloseTime":{"type":"string","optional":true},"weekdayDescriptions":{"type":"array","items":{"type":"string"},"optional":true},"openNow":{"type":"boolean","optional":true},"nextOpenTime":{"type":"string","optional":true},"secondaryHoursType":{"type":"string","enum":["SECONDARY_HOURS_TYPE_UNSPECIFIED","DRIVE_THROUGH","HAPPY_HOUR","DELIVERY","TAKEOUT","KITCHEN","BREAKFAST","LUNCH","DINNER","BRUNCH","PICKUP","ACCESS","SENIOR_HOURS","ONLINE_SERVICE_HOURS"],"optional":true},"specialDays":{"type":"array","items":{"type":"object","members":{"date":{"type":"object","members":{"month":{"type":"number","optional":true},"year":{"type":"number","optional":true},"day":{"type":"number","optional":true}},"optional":true}}},"optional":true},"periods":{"type":"array","items":{"type":"object","members":{"close":{"type":"object","members":{"hour":{"type":"number","optional":true},"day":{"type":"number","optional":true},"minute":{"type":"number","optional":true},"date":{"type":"object","members":{"month":{"type":"number","optional":true},"year":{"type":"number","optional":true},"day":{"type":"number","optional":true}},"optional":true},"truncated":{"type":"boolean","optional":true}},"optional":true},"open":{"type":"object","members":{"hour":{"type":"number","optional":true},"day":{"type":"number","optional":true},"minute":{"type":"number","optional":true},"date":{"type":"object","members":{"month":{"type":"number","optional":true},"year":{"type":"number","optional":true},"day":{"type":"number","optional":true}},"optional":true},"truncated":{"type":"boolean","optional":true}},"optional":true}}},"optional":true}},"optional":true},"servesWine":{"type":"boolean","optional":true},"postalAddress":{"type":"object","members":{"regionCode":{"type":"string","optional":true},"sublocality":{"type":"string","optional":true},"postalCode":{"type":"string","optional":true},"revision":{"type":"number","optional":true},"locality":{"type":"string","optional":true},"recipients":{"type":"array","items":{"type":"string"},"optional":true},"addressLines":{"type":"array","items":{"type":"string"},"optional":true},"organization":{"type":"string","optional":true},"languageCode":{"type":"string","optional":true},"administrativeArea":{"type":"string","optional":true},"sortingCode":{"type":"string","optional":true}},"optional":true},"types":{"type":"array","items":{"type":"string"},"optional":true},"restroom":{"type":"boolean","optional":true},"websiteUri":{"type":"string","optional":true},"plusCode":{"type":"object","members":{"globalCode":{"type":"string","optional":true},"compoundCode":{"type":"string","optional":true}},"optional":true},"servesLunch":{"type":"boolean","optional":true},"regularSecondaryOpeningHours":{"type":"array","items":{"type":"object","members":{"nextCloseTime":{"type":"string","optional":true},"weekdayDescriptions":{"type":"array","items":{"type":"string"},"optional":true},"openNow":{"type":"boolean","optional":true},"nextOpenTime":{"type":"string","optional":true},"secondaryHoursType":{"type":"string","enum":["SECONDARY_HOURS_TYPE_UNSPECIFIED","DRIVE_THROUGH","HAPPY_HOUR","DELIVERY","TAKEOUT","KITCHEN","BREAKFAST","LUNCH","DINNER","BRUNCH","PICKUP","ACCESS","SENIOR_HOURS","ONLINE_SERVICE_HOURS"],"optional":true},"specialDays":{"type":"array","items":{"type":"object","members":{"date":{"type":"object","members":{"month":{"type":"number","optional":true},"year":{"type":"number","optional":true},"day":{"type":"number","optional":true}},"optional":true}}},"optional":true},"periods":{"type":"array","items":{"type":"object","members":{"close":{"type":"object","members":{"hour":{"type":"number","optional":true},"day":{"type":"number","optional":true},"minute":{"type":"number","optional":true},"date":{"type":"object","members":{"month":{"type":"number","optional":true},"year":{"type":"number","optional":true},"day":{"type":"number","optional":true}},"optional":true},"truncated":{"type":"boolean","optional":true}},"optional":true},"open":{"type":"object","members":{"hour":{"type":"number","optional":true},"day":{"type":"number","optional":true},"minute":{"type":"number","optional":true},"date":{"type":"object","members":{"month":{"type":"number","optional":true},"year":{"type":"number","optional":true},"day":{"type":"number","optional":true}},"optional":true},"truncated":{"type":"boolean","optional":true}},"optional":true}}},"optional":true}}},"optional":true},"reservable":{"type":"boolean","optional":true},"navigationPoints":{"type":"array","items":{"type":"object","members":{"displayName":{"type":"object","members":{"languageCode":{"type":"string","optional":true},"text":{"type":"string","optional":true}},"optional":true},"travelModes":{"type":"array","items":{"type":"string","enum":["TRAVEL_MODE_UNSPECIFIED","DRIVE","WALK"]},"optional":true},"location":{"type":"object","members":{"longitude":{"type":"number","optional":true},"latitude":{"type":"number","optional":true}},"optional":true},"usages":{"type":"array","items":{"type":"string","enum":["USAGE_UNSPECIFIED","DROPOFF","PICKUP","PARKING"]},"optional":true},"navigationPointToken":{"type":"string","optional":true}}},"optional":true},"delivery":{"type":"boolean","optional":true},"servesCoffee":{"type":"boolean","optional":true},"currentOpeningHours":{"type":"object","members":{"nextCloseTime":{"type":"string","optional":true},"weekdayDescriptions":{"type":"array","items":{"type":"string"},"optional":true},"openNow":{"type":"boolean","optional":true},"nextOpenTime":{"type":"string","optional":true},"secondaryHoursType":{"type":"string","enum":["SECONDARY_HOURS_TYPE_UNSPECIFIED","DRIVE_THROUGH","HAPPY_HOUR","DELIVERY","TAKEOUT","KITCHEN","BREAKFAST","LUNCH","DINNER","BRUNCH","PICKUP","ACCESS","SENIOR_HOURS","ONLINE_SERVICE_HOURS"],"optional":true},"specialDays":{"type":"array","items":{"type":"object","members":{"date":{"type":"object","members":{"month":{"type":"number","optional":true},"year":{"type":"number","optional":true},"day":{"type":"number","optional":true}},"optional":true}}},"optional":true},"periods":{"type":"array","items":{"type":"object","members":{"close":{"type":"object","members":{"hour":{"type":"number","optional":true},"day":{"type":"number","optional":true},"minute":{"type":"number","optional":true},"date":{"type":"object","members":{"month":{"type":"number","optional":true},"year":{"type":"number","optional":true},"day":{"type":"number","optional":true}},"optional":true},"truncated":{"type":"boolean","optional":true}},"optional":true},"open":{"type":"object","members":{"hour":{"type":"number","optional":true},"day":{"type":"number","optional":true},"minute":{"type":"number","optional":true},"date":{"type":"object","members":{"month":{"type":"number","optional":true},"year":{"type":"number","optional":true},"day":{"type":"number","optional":true}},"optional":true},"truncated":{"type":"boolean","optional":true}},"optional":true}}},"optional":true}},"optional":true},"name":{"type":"string","optional":true},"goodForWatchingSports":{"type":"boolean","optional":true},"iconMaskBaseUri":{"type":"string","optional":true},"internationalPhoneNumber":{"type":"string","optional":true},"subDestinations":{"type":"array","items":{"type":"object","members":{"name":{"type":"string","optional":true},"id":{"type":"string","optional":true}}},"optional":true},"parkingOptions":{"type":"object","members":{"paidGarageParking":{"type":"boolean","optional":true},"paidParkingLot":{"type":"boolean","optional":true},"freeGarageParking":{"type":"boolean","optional":true},"valetParking":{"type":"boolean","optional":true},"freeParkingLot":{"type":"boolean","optional":true},"freeStreetParking":{"type":"boolean","optional":true},"paidStreetParking":{"type":"boolean","optional":true}},"optional":true},"paymentOptions":{"type":"object","members":{"acceptsDebitCards":{"type":"boolean","optional":true},"acceptsCashOnly":{"type":"boolean","optional":true},"acceptsCreditCards":{"type":"boolean","optional":true},"acceptsNfc":{"type":"boolean","optional":true}},"optional":true},"evChargeAmenitySummary":{"type":"object","members":{"disclosureText":{"type":"object","members":{"languageCode":{"type":"string","optional":true},"text":{"type":"string","optional":true}},"optional":true},"restaurant":{"type":"object","members":{"referencedPlaces":{"type":"array","items":{"type":"string"},"optional":true},"content":{"type":"object","members":{"languageCode":{"type":"string","optional":true},"text":{"type":"string","optional":true}},"optional":true}},"optional":true},"store":{"type":"object","members":{"referencedPlaces":{"type":"array","items":{"type":"string"},"optional":true},"content":{"type":"object","members":{"languageCode":{"type":"string","optional":true},"text":{"type":"string","optional":true}},"optional":true}},"optional":true},"coffee":{"type":"object","members":{"referencedPlaces":{"type":"array","items":{"type":"string"},"optional":true},"content":{"type":"object","members":{"languageCode":{"type":"string","optional":true},"text":{"type":"string","optional":true}},"optional":true}},"optional":true},"overview":{"type":"object","members":{"referencedPlaces":{"type":"array","items":{"type":"string"},"optional":true},"content":{"type":"object","members":{"languageCode":{"type":"string","optional":true},"text":{"type":"string","optional":true}},"optional":true}},"optional":true},"flagContentUri":{"type":"string","optional":true}},"optional":true},"formattedAddress":{"type":"string","optional":true},"googleMapsLinks":{"type":"object","members":{"placeUri":{"type":"string","optional":true},"writeAReviewUri":{"type":"string","optional":true},"photosUri":{"type":"string","optional":true},"reviewsUri":{"type":"string","optional":true},"directionsUri":{"type":"string","optional":true}},"optional":true},"evChargeOptions":{"type":"object","members":{"connectorCount":{"type":"number","optional":true},"connectorAggregation":{"type":"array","items":{"type":"object","members":{"outOfServiceCount":{"type":"number","optional":true},"maxChargeRateKw":{"type":"number","optional":true},"availabilityLastUpdateTime":{"type":"string","optional":true},"type":{"type":"string","enum":["EV_CONNECTOR_TYPE_UNSPECIFIED","EV_CONNECTOR_TYPE_OTHER","EV_CONNECTOR_TYPE_J1772","EV_CONNECTOR_TYPE_TYPE_2","EV_CONNECTOR_TYPE_CHADEMO","EV_CONNECTOR_TYPE_CCS_COMBO_1","EV_CONNECTOR_TYPE_CCS_COMBO_2","EV_CONNECTOR_TYPE_TESLA","EV_CONNECTOR_TYPE_UNSPECIFIED_GB_T","EV_CONNECTOR_TYPE_UNSPECIFIED_WALL_OUTLET","EV_CONNECTOR_TYPE_NACS"],"optional":true},"count":{"type":"number","optional":true},"availableCount":{"type":"number","optional":true}}},"optional":true}},"optional":true},"nationalPhoneNumber":{"type":"string","optional":true},"goodForGroups":{"type":"boolean","optional":true},"entrances":{"type":"array","items":{"type":"object","members":{"tags":{"type":"array","items":{"type":"string","enum":["TAG_UNSPECIFIED","PREFERRED"]},"optional":true},"location":{"type":"object","members":{"longitude":{"type":"number","optional":true},"latitude":{"type":"number","optional":true}},"optional":true}}},"optional":true},"outdoorSeating":{"type":"boolean","optional":true},"servesDinner":{"type":"boolean","optional":true},"attributions":{"type":"array","items":{"type":"object","members":{"provider":{"type":"string","optional":true},"providerUri":{"type":"string","optional":true}}},"optional":true},"servesVegetarianFood":{"type":"boolean","optional":true},"displayName":{"type":"object","members":{"languageCode":{"type":"string","optional":true},"text":{"type":"string","optional":true}},"optional":true},"googleMapsUri":{"type":"string","optional":true},"curbsidePickup":{"type":"boolean","optional":true},"utcOffsetMinutes":{"type":"number","optional":true},"transitStation":{"type":"object","members":{"agencies":{"type":"array","items":{"type":"object","members":{"lines":{"type":"array","items":{"type":"object","members":{"textColor":{"type":"string","optional":true},"vehicleIcon":{"type":"object","members":{"nameIncluded":{"type":"boolean","optional":true},"url":{"type":"string","optional":true}},"optional":true},"url":{"type":"string","optional":true},"id":{"type":"string","optional":true},"icon":{"type":"object","members":{"nameIncluded":{"type":"boolean","optional":true},"url":{"type":"string","optional":true}},"optional":true},"backgroundColor":{"type":"string","optional":true},"vehicleType":{"type":"string","enum":["VEHICLE_TYPE_UNSPECIFIED","RAIL","METRO_RAIL","SUBWAY","TRAM","MONORAIL","HEAVY_RAIL","COMMUTER_TRAIN","HIGH_SPEED_TRAIN","LONG_DISTANCE_TRAIN","BUS","INTERCITY_BUS","TROLLEYBUS","SHARE_TAXI","COACH","FERRY","CABLE_CAR","GONDOLA_LIFT","FUNICULAR","SPECIAL","HORSE_CARRIAGE","AIRPLANE"],"optional":true},"displayName":{"type":"object","members":{"languageCode":{"type":"string","optional":true},"text":{"type":"string","optional":true}},"optional":true},"shortDisplayName":{"type":"object","members":{"languageCode":{"type":"string","optional":true},"text":{"type":"string","optional":true}},"optional":true}}},"optional":true},"fareUrl":{"type":"string","optional":true},"displayName":{"type":"object","members":{"languageCode":{"type":"string","optional":true},"text":{"type":"string","optional":true}},"optional":true},"url":{"type":"string","optional":true},"icon":{"type":"object","members":{"nameIncluded":{"type":"boolean","optional":true},"url":{"type":"string","optional":true}},"optional":true}}},"optional":true},"stops":{"type":"array","items":{"type":"object","members":{"displayName":{"type":"object","members":{"languageCode":{"type":"string","optional":true},"text":{"type":"string","optional":true}},"optional":true},"stopCode":{"type":"object","members":{"languageCode":{"type":"string","optional":true},"text":{"type":"string","optional":true}},"optional":true},"id":{"type":"string","optional":true},"platformCode":{"type":"object","members":{"languageCode":{"type":"string","optional":true},"text":{"type":"string","optional":true}},"optional":true},"wheelchairAccessibleEntrance":{"type":"boolean","optional":true},"signageText":{"type":"object","members":{"languageCode":{"type":"string","optional":true},"text":{"type":"string","optional":true}},"optional":true},"location":{"type":"object","members":{"longitude":{"type":"number","optional":true},"latitude":{"type":"number","optional":true}},"optional":true}}},"optional":true},"displayName":{"type":"object","members":{"languageCode":{"type":"string","optional":true},"text":{"type":"string","optional":true}},"optional":true}},"optional":true},"priceRange":{"type":"object","members":{"startPrice":{"type":"object","members":{"currencyCode":{"type":"string","optional":true},"units":{"type":"string","optional":true},"nanos":{"type":"number","optional":true}},"optional":true},"endPrice":{"type":"object","members":{"currencyCode":{"type":"string","optional":true},"units":{"type":"string","optional":true},"nanos":{"type":"number","optional":true}},"optional":true}},"optional":true},"businessStatus":{"type":"string","enum":["BUSINESS_STATUS_UNSPECIFIED","OPERATIONAL","CLOSED_TEMPORARILY","CLOSED_PERMANENTLY","FUTURE_OPENING"],"optional":true},"addressComponents":{"type":"array","items":{"type":"object","members":{"languageCode":{"type":"string","optional":true},"types":{"type":"array","items":{"type":"string"},"optional":true},"shortText":{"type":"string","optional":true},"longText":{"type":"string","optional":true}}},"optional":true},"allowsDogs":{"type":"boolean","optional":true},"servesDessert":{"type":"boolean","optional":true},"movedPlace":{"type":"string","optional":true},"id":{"type":"string","optional":true},"consumerAlert":{"type":"object","members":{"details":{"type":"object","members":{"title":{"type":"string","optional":true},"aboutLink":{"type":"object","members":{"title":{"type":"string","optional":true},"uri":{"type":"string","optional":true}},"optional":true},"description":{"type":"string","optional":true}},"optional":true},"languageCode":{"type":"string","optional":true},"overview":{"type":"string","optional":true}},"optional":true},"accessibilityOptions":{"type":"object","members":{"wheelchairAccessibleParking":{"type":"boolean","optional":true},"wheelchairAccessibleSeating":{"type":"boolean","optional":true},"wheelchairAccessibleEntrance":{"type":"boolean","optional":true},"wheelchairAccessibleRestroom":{"type":"boolean","optional":true}},"optional":true},"fuelOptions":{"type":"object","members":{"fuelPrices":{"type":"array","items":{"type":"object","members":{"updateTime":{"type":"string","optional":true},"price":{"type":"object","members":{"currencyCode":{"type":"string","optional":true},"units":{"type":"string","optional":true},"nanos":{"type":"number","optional":true}},"optional":true},"type":{"type":"string","enum":["FUEL_TYPE_UNSPECIFIED","DIESEL","DIESEL_PLUS","REGULAR_UNLEADED","MIDGRADE","PREMIUM","SP91","SP91_E10","SP92","SP95","SP95_E10","SP98","SP99","SP100","LPG","E80","E85","E100","METHANE","BIO_DIESEL","TRUCK_DIESEL"],"optional":true}}},"optional":true}},"optional":true},"goodForChildren":{"type":"boolean","optional":true},"liveMusic":{"type":"boolean","optional":true},"menuForChildren":{"type":"boolean","optional":true},"adrFormatAddress":{"type":"string","optional":true},"rating":{"type":"number","optional":true},"priceLevel":{"type":"string","enum":["PRICE_LEVEL_UNSPECIFIED","PRICE_LEVEL_FREE","PRICE_LEVEL_INEXPENSIVE","PRICE_LEVEL_MODERATE","PRICE_LEVEL_EXPENSIVE","PRICE_LEVEL_VERY_EXPENSIVE"],"optional":true},"pureServiceAreaBusiness":{"type":"boolean","optional":true},"editorialSummary":{"type":"object","members":{"languageCode":{"type":"string","optional":true},"text":{"type":"string","optional":true}},"optional":true},"reviews":{"type":"array","items":{"type":"object","members":{"originalText":{"type":"object","members":{"languageCode":{"type":"string","optional":true},"text":{"type":"string","optional":true}},"optional":true},"googleMapsUri":{"type":"string","optional":true},"visitDate":{"type":"object","members":{"month":{"type":"number","optional":true},"year":{"type":"number","optional":true},"day":{"type":"number","optional":true}},"optional":true},"rating":{"type":"number","optional":true},"relativePublishTimeDescription":{"type":"string","optional":true},"text":{"type":"object","members":{"languageCode":{"type":"string","optional":true},"text":{"type":"string","optional":true}},"optional":true},"authorAttribution":{"type":"object","members":{"photoUri":{"type":"string","optional":true},"uri":{"type":"string","optional":true},"displayName":{"type":"string","optional":true}},"optional":true},"name":{"type":"string","optional":true},"publishTime":{"type":"string","optional":true},"flagContentUri":{"type":"string","optional":true}}},"optional":true}}},"optional":true}}},"photoMedia":{"desc":"Resolve temporary Places photo media URI; preserve author attribution from the Place photo metadata.","ops":["query"],"queryFields":[],"params":["placeId","photoId","maxHeightPx","maxWidthPx"],"parameterFields":{"placeId":{"type":"string","minLength":1},"photoId":{"type":"string","minLength":1},"maxHeightPx":{"type":"number","optional":true},"maxWidthPx":{"type":"number","optional":true}},"requiredParams":["placeId","photoId"],"read":"anonymous","anonymous":["read"],"enforcedBy":{"read":"the provider at places.googleapis.com, under the app's configured credentials"},"fields":{"photoUri":{"type":"string","optional":true},"name":{"type":"string","optional":true}}},"geocode":{"desc":"Geocoding API v4: convert a free-form address into coordinates and structured address results.","ops":["query"],"queryFields":[],"params":["addressQuery","languageCode","regionCode"],"parameterFields":{"addressQuery":{"type":"string","minLength":1,"maxLength":2048},"languageCode":{"type":"string","optional":true},"regionCode":{"type":"string","optional":true}},"requiredParams":["addressQuery"],"read":"anonymous","anonymous":["read"],"enforcedBy":{"read":"the provider at places.googleapis.com, under the app's configured credentials"},"fields":{"place":{"type":"string","optional":true},"placeId":{"type":"string","optional":true},"location":{"type":"object","members":{"latitude":{"type":"number","optional":true},"longitude":{"type":"number","optional":true}},"optional":true},"granularity":{"type":"string","optional":true},"viewport":{"type":"object","members":{"low":{"type":"object","members":{"latitude":{"type":"number","optional":true},"longitude":{"type":"number","optional":true}}},"high":{"type":"object","members":{"latitude":{"type":"number","optional":true},"longitude":{"type":"number","optional":true}}}},"optional":true},"formattedAddress":{"type":"string","optional":true},"postalAddress":{"type":"object","members":{"locality":{"type":"string","optional":true},"sublocality":{"type":"string","optional":true},"addressLines":{"type":"array","items":{"type":"string"},"optional":true},"organization":{"type":"string","optional":true},"sortingCode":{"type":"string","optional":true},"postalCode":{"type":"string","optional":true},"revision":{"type":"number","optional":true},"recipients":{"type":"array","items":{"type":"string"},"optional":true},"languageCode":{"type":"string","optional":true},"administrativeArea":{"type":"string","optional":true},"regionCode":{"type":"string","optional":true}},"optional":true},"addressComponents":{"type":"array","items":{"type":"object","members":{"longText":{"type":"string","optional":true},"shortText":{"type":"string","optional":true},"types":{"type":"array","items":{"type":"string"},"optional":true},"languageCode":{"type":"string","optional":true}}},"optional":true},"types":{"type":"array","items":{"type":"string"},"optional":true},"plusCode":{"type":"object","members":{"globalCode":{"type":"string","optional":true},"compoundCode":{"type":"string","optional":true}},"optional":true},"bounds":{"type":"object","members":{"low":{"type":"object","members":{"latitude":{"type":"number","optional":true},"longitude":{"type":"number","optional":true}},"optional":true},"high":{"type":"object","members":{"latitude":{"type":"number","optional":true},"longitude":{"type":"number","optional":true}},"optional":true}},"optional":true},"postalCodeLocalities":{"type":"array","items":{"type":"object","members":{"text":{"type":"string","optional":true},"languageCode":{"type":"string","optional":true}}},"optional":true}}},"reverseGeocode":{"desc":"Geocoding API v4: find addresses for a latitude,longitude coordinate pair.","ops":["query"],"queryFields":[],"params":["locationQuery","languageCode","regionCode","types","granularity"],"parameterFields":{"locationQuery":{"type":"string","pattern":"^-?[0-9]+(?:\\.[0-9]+)?,-?[0-9]+(?:\\.[0-9]+)?$"},"languageCode":{"type":"string","optional":true},"regionCode":{"type":"string","optional":true},"types":{"type":"array","items":{"type":"string"},"optional":true},"granularity":{"type":"array","items":{"type":"string"},"optional":true}},"requiredParams":["locationQuery"],"read":"anonymous","anonymous":["read"],"enforcedBy":{"read":"the provider at places.googleapis.com, under the app's configured credentials"},"fields":{"place":{"type":"string","optional":true},"placeId":{"type":"string","optional":true},"location":{"type":"object","members":{"latitude":{"type":"number","optional":true},"longitude":{"type":"number","optional":true}},"optional":true},"granularity":{"type":"string","optional":true},"viewport":{"type":"object","members":{"low":{"type":"object","members":{"latitude":{"type":"number","optional":true},"longitude":{"type":"number","optional":true}}},"high":{"type":"object","members":{"latitude":{"type":"number","optional":true},"longitude":{"type":"number","optional":true}}}},"optional":true},"formattedAddress":{"type":"string","optional":true},"postalAddress":{"type":"object","members":{"locality":{"type":"string","optional":true},"sublocality":{"type":"string","optional":true},"addressLines":{"type":"array","items":{"type":"string"},"optional":true},"organization":{"type":"string","optional":true},"sortingCode":{"type":"string","optional":true},"postalCode":{"type":"string","optional":true},"revision":{"type":"number","optional":true},"recipients":{"type":"array","items":{"type":"string"},"optional":true},"languageCode":{"type":"string","optional":true},"administrativeArea":{"type":"string","optional":true},"regionCode":{"type":"string","optional":true}},"optional":true},"addressComponents":{"type":"array","items":{"type":"object","members":{"longText":{"type":"string","optional":true},"shortText":{"type":"string","optional":true},"types":{"type":"array","items":{"type":"string"},"optional":true},"languageCode":{"type":"string","optional":true}}},"optional":true},"types":{"type":"array","items":{"type":"string"},"optional":true},"plusCode":{"type":"object","members":{"globalCode":{"type":"string","optional":true},"compoundCode":{"type":"string","optional":true}},"optional":true},"bounds":{"type":"object","members":{"low":{"type":"object","members":{"latitude":{"type":"number","optional":true},"longitude":{"type":"number","optional":true}},"optional":true},"high":{"type":"object","members":{"latitude":{"type":"number","optional":true},"longitude":{"type":"number","optional":true}},"optional":true}},"optional":true},"postalCodeLocalities":{"type":"array","items":{"type":"object","members":{"text":{"type":"string","optional":true},"languageCode":{"type":"string","optional":true}}},"optional":true}}},"placeGeocode":{"desc":"Geocoding API v4: retrieve the address and coordinates for a known Place ID.","ops":["query"],"queryFields":[],"params":["placeId","languageCode","regionCode"],"parameterFields":{"placeId":{"type":"string","minLength":1},"languageCode":{"type":"string","optional":true},"regionCode":{"type":"string","optional":true}},"requiredParams":["placeId"],"read":"anonymous","anonymous":["read"],"enforcedBy":{"read":"the provider at places.googleapis.com, under the app's configured credentials"},"fields":{"place":{"type":"string","optional":true},"placeId":{"type":"string","optional":true},"location":{"type":"object","members":{"latitude":{"type":"number","optional":true},"longitude":{"type":"number","optional":true}},"optional":true},"granularity":{"type":"string","optional":true},"viewport":{"type":"object","members":{"low":{"type":"object","members":{"latitude":{"type":"number","optional":true},"longitude":{"type":"number","optional":true}}},"high":{"type":"object","members":{"latitude":{"type":"number","optional":true},"longitude":{"type":"number","optional":true}}}},"optional":true},"formattedAddress":{"type":"string","optional":true},"postalAddress":{"type":"object","members":{"locality":{"type":"string","optional":true},"sublocality":{"type":"string","optional":true},"addressLines":{"type":"array","items":{"type":"string"},"optional":true},"organization":{"type":"string","optional":true},"sortingCode":{"type":"string","optional":true},"postalCode":{"type":"string","optional":true},"revision":{"type":"number","optional":true},"recipients":{"type":"array","items":{"type":"string"},"optional":true},"languageCode":{"type":"string","optional":true},"administrativeArea":{"type":"string","optional":true},"regionCode":{"type":"string","optional":true}},"optional":true},"addressComponents":{"type":"array","items":{"type":"object","members":{"longText":{"type":"string","optional":true},"shortText":{"type":"string","optional":true},"types":{"type":"array","items":{"type":"string"},"optional":true},"languageCode":{"type":"string","optional":true}}},"optional":true},"types":{"type":"array","items":{"type":"string"},"optional":true},"plusCode":{"type":"object","members":{"globalCode":{"type":"string","optional":true},"compoundCode":{"type":"string","optional":true}},"optional":true},"bounds":{"type":"object","members":{"low":{"type":"object","members":{"latitude":{"type":"number","optional":true},"longitude":{"type":"number","optional":true}},"optional":true},"high":{"type":"object","members":{"latitude":{"type":"number","optional":true},"longitude":{"type":"number","optional":true}},"optional":true}},"optional":true},"postalCodeLocalities":{"type":"array","items":{"type":"object","members":{"text":{"type":"string","optional":true},"languageCode":{"type":"string","optional":true}}},"optional":true}}},"validateAddress":{"desc":"Validate, standardize and enrich a postal address; expose verdict and component corrections for explicit user review.","ops":["query"],"queryFields":[],"params":["languageOptions","previousResponseId","sessionToken","enableUspsCass","address"],"parameterFields":{"languageOptions":{"type":"object","members":{"returnEnglishLatinAddress":{"type":"boolean","optional":true}},"optional":true},"previousResponseId":{"type":"string","optional":true},"sessionToken":{"type":"string","optional":true},"enableUspsCass":{"type":"boolean","optional":true},"address":{"type":"object","members":{"locality":{"type":"string","optional":true},"sublocality":{"type":"string","optional":true},"addressLines":{"type":"array","items":{"type":"string"},"optional":true},"organization":{"type":"string","optional":true},"sortingCode":{"type":"string","optional":true},"postalCode":{"type":"string","optional":true},"revision":{"type":"number","optional":true},"recipients":{"type":"array","items":{"type":"string"},"optional":true},"languageCode":{"type":"string","optional":true},"administrativeArea":{"type":"string","optional":true},"regionCode":{"type":"string","optional":true}}}},"requiredParams":["address"],"read":"anonymous","anonymous":["read"],"enforcedBy":{"read":"the provider at places.googleapis.com, under the app's configured credentials"},"fields":{"responseId":{"type":"string","optional":true},"result":{"type":"object","members":{"geocode":{"type":"object","members":{"featureSizeMeters":{"type":"number","optional":true},"bounds":{"type":"object","members":{"low":{"type":"object","members":{"longitude":{"type":"number","optional":true},"latitude":{"type":"number","optional":true}},"optional":true},"high":{"type":"object","members":{"longitude":{"type":"number","optional":true},"latitude":{"type":"number","optional":true}},"optional":true}},"optional":true},"placeTypes":{"type":"array","items":{"type":"string"},"optional":true},"plusCode":{"type":"object","members":{"globalCode":{"type":"string","optional":true},"compoundCode":{"type":"string","optional":true}},"optional":true},"placeId":{"type":"string","optional":true},"location":{"type":"object","members":{"longitude":{"type":"number","optional":true},"latitude":{"type":"number","optional":true}},"optional":true}},"optional":true},"verdict":{"type":"object","members":{"validationGranularity":{"type":"string","enum":["GRANULARITY_UNSPECIFIED","SUB_PREMISE","PREMISE","PREMISE_PROXIMITY","BLOCK","ROUTE","OTHER"],"optional":true},"geocodeGranularity":{"type":"string","enum":["GRANULARITY_UNSPECIFIED","SUB_PREMISE","PREMISE","PREMISE_PROXIMITY","BLOCK","ROUTE","OTHER"],"optional":true},"inputGranularity":{"type":"string","enum":["GRANULARITY_UNSPECIFIED","SUB_PREMISE","PREMISE","PREMISE_PROXIMITY","BLOCK","ROUTE","OTHER"],"optional":true},"hasSpellCorrectedComponents":{"type":"boolean","optional":true},"hasReplacedComponents":{"type":"boolean","optional":true},"hasUnconfirmedComponents":{"type":"boolean","optional":true},"hasInferredComponents":{"type":"boolean","optional":true},"addressComplete":{"type":"boolean","optional":true},"possibleNextAction":{"type":"string","enum":["POSSIBLE_NEXT_ACTION_UNSPECIFIED","FIX","CONFIRM_ADD_SUBPREMISES","CONFIRM","ACCEPT"],"optional":true}},"optional":true},"uspsData":{"type":"object","members":{"abbreviatedCity":{"type":"string","optional":true},"errorMessage":{"type":"string","optional":true},"dpvNonDeliveryDays":{"type":"string","optional":true},"fipsCountyCode":{"type":"string","optional":true},"ewsNoMatch":{"type":"boolean","optional":true},"dpvNonDeliveryDaysValues":{"type":"number","optional":true},"county":{"type":"string","optional":true},"dpvCmra":{"type":"string","optional":true},"elotFlag":{"type":"string","optional":true},"pmbNumber":{"type":"string","optional":true},"dpvNoSecureLocation":{"type":"string","optional":true},"dpvEnhancedDeliveryCode":{"type":"string","optional":true},"dpvVacant":{"type":"string","optional":true},"suitelinkFootnote":{"type":"string","optional":true},"deliveryPointCheckDigit":{"type":"string","optional":true},"carrierRoute":{"type":"string","optional":true},"dpvNoStat":{"type":"string","optional":true},"dpvDoorNotAccessible":{"type":"string","optional":true},"addressRecordType":{"type":"string","optional":true},"pmbDesignator":{"type":"string","optional":true},"carrierRouteIndicator":{"type":"string","optional":true},"standardizedAddress":{"type":"object","members":{"firm":{"type":"string","optional":true},"city":{"type":"string","optional":true},"cityStateZipAddressLine":{"type":"string","optional":true},"zipCode":{"type":"string","optional":true},"firstAddressLine":{"type":"string","optional":true},"zipCodeExtension":{"type":"string","optional":true},"state":{"type":"string","optional":true},"urbanization":{"type":"string","optional":true},"secondAddressLine":{"type":"string","optional":true}},"optional":true},"postOfficeState":{"type":"string","optional":true},"dpvDrop":{"type":"string","optional":true},"dpvThrowback":{"type":"string","optional":true},"cassProcessed":{"type":"boolean","optional":true},"dpvPbsa":{"type":"string","optional":true},"poBoxOnlyPostalCode":{"type":"boolean","optional":true},"dpvConfirmation":{"type":"string","optional":true},"deliveryPointCode":{"type":"string","optional":true},"dpvFootnote":{"type":"string","optional":true},"defaultAddress":{"type":"boolean","optional":true},"lacsLinkReturnCode":{"type":"string","optional":true},"dpvNoStatReasonCode":{"type":"number","optional":true},"lacsLinkIndicator":{"type":"string","optional":true},"elotNumber":{"type":"string","optional":true},"postOfficeCity":{"type":"string","optional":true}},"optional":true},"metadata":{"type":"object","members":{"residential":{"type":"boolean","optional":true},"poBox":{"type":"boolean","optional":true},"business":{"type":"boolean","optional":true}},"optional":true},"englishLatinAddress":{"type":"object","members":{"postalAddress":{"type":"object","members":{"locality":{"type":"string","optional":true},"sublocality":{"type":"string","optional":true},"addressLines":{"type":"array","items":{"type":"string"},"optional":true},"organization":{"type":"string","optional":true},"sortingCode":{"type":"string","optional":true},"postalCode":{"type":"string","optional":true},"revision":{"type":"number","optional":true},"recipients":{"type":"array","items":{"type":"string"},"optional":true},"languageCode":{"type":"string","optional":true},"administrativeArea":{"type":"string","optional":true},"regionCode":{"type":"string","optional":true}},"optional":true},"missingComponentTypes":{"type":"array","items":{"type":"string"},"optional":true},"formattedAddress":{"type":"string","optional":true},"addressComponents":{"type":"array","items":{"type":"object","members":{"spellCorrected":{"type":"boolean","optional":true},"componentName":{"type":"object","members":{"languageCode":{"type":"string","optional":true},"text":{"type":"string","optional":true}},"optional":true},"componentType":{"type":"string","optional":true},"unexpected":{"type":"boolean","optional":true},"replaced":{"type":"boolean","optional":true},"confirmationLevel":{"type":"string","enum":["CONFIRMATION_LEVEL_UNSPECIFIED","CONFIRMED","UNCONFIRMED_BUT_PLAUSIBLE","UNCONFIRMED_AND_SUSPICIOUS"],"optional":true},"inferred":{"type":"boolean","optional":true}}},"optional":true},"unresolvedTokens":{"type":"array","items":{"type":"string"},"optional":true},"unconfirmedComponentTypes":{"type":"array","items":{"type":"string"},"optional":true}},"optional":true},"address":{"type":"object","members":{"postalAddress":{"type":"object","members":{"locality":{"type":"string","optional":true},"sublocality":{"type":"string","optional":true},"addressLines":{"type":"array","items":{"type":"string"},"optional":true},"organization":{"type":"string","optional":true},"sortingCode":{"type":"string","optional":true},"postalCode":{"type":"string","optional":true},"revision":{"type":"number","optional":true},"recipients":{"type":"array","items":{"type":"string"},"optional":true},"languageCode":{"type":"string","optional":true},"administrativeArea":{"type":"string","optional":true},"regionCode":{"type":"string","optional":true}},"optional":true},"missingComponentTypes":{"type":"array","items":{"type":"string"},"optional":true},"formattedAddress":{"type":"string","optional":true},"addressComponents":{"type":"array","items":{"type":"object","members":{"spellCorrected":{"type":"boolean","optional":true},"componentName":{"type":"object","members":{"languageCode":{"type":"string","optional":true},"text":{"type":"string","optional":true}},"optional":true},"componentType":{"type":"string","optional":true},"unexpected":{"type":"boolean","optional":true},"replaced":{"type":"boolean","optional":true},"confirmationLevel":{"type":"string","enum":["CONFIRMATION_LEVEL_UNSPECIFIED","CONFIRMED","UNCONFIRMED_BUT_PLAUSIBLE","UNCONFIRMED_AND_SUSPICIOUS"],"optional":true},"inferred":{"type":"boolean","optional":true}}},"optional":true},"unresolvedTokens":{"type":"array","items":{"type":"string"},"optional":true},"unconfirmedComponentTypes":{"type":"array","items":{"type":"string"},"optional":true}},"optional":true}},"optional":true}}},"computeRoutes":{"desc":"Directions with traffic, alternatives, waypoint ordering, transit, tolls and route overlays. optimizeWaypointOrder returns optimizedIntermediateWaypointIndex.","ops":["query"],"queryFields":[],"params":["fieldMask","origin","destination","intermediates","travelMode","routingPreference","polylineQuality","polylineEncoding","departureTime","arrivalTime","computeAlternativeRoutes","routeModifiers","languageCode","regionCode","units","optimizeWaypointOrder","requestedReferenceRoutes","extraComputations","trafficModel","transitPreferences"],"parameterFields":{"fieldMask":{"type":"string","optional":true,"minLength":1,"maxLength":4096,"desc":"Optional response field mask. The default includes route geometry and turn instructions without repeated leg/step geometry. Request additional reviewed response fields explicitly when needed."},"origin":{"type":"object","members":{"location":{"type":"object","members":{"latLng":{"type":"object","members":{"latitude":{"type":"number","optional":true},"longitude":{"type":"number","optional":true}},"optional":true},"heading":{"type":"object","members":{"value":{"type":"number","optional":true}},"optional":true}},"optional":true},"placeId":{"type":"string","optional":true},"address":{"type":"string","optional":true},"navigationPointToken":{"type":"string","optional":true},"via":{"type":"boolean","optional":true},"vehicleStopover":{"type":"boolean","optional":true},"sideOfRoad":{"type":"boolean","optional":true}}},"destination":{"type":"object","members":{"location":{"type":"object","members":{"latLng":{"type":"object","members":{"latitude":{"type":"number","optional":true},"longitude":{"type":"number","optional":true}},"optional":true},"heading":{"type":"object","members":{"value":{"type":"number","optional":true}},"optional":true}},"optional":true},"placeId":{"type":"string","optional":true},"address":{"type":"string","optional":true},"navigationPointToken":{"type":"string","optional":true},"via":{"type":"boolean","optional":true},"vehicleStopover":{"type":"boolean","optional":true},"sideOfRoad":{"type":"boolean","optional":true}}},"intermediates":{"type":"array","items":{"type":"object","members":{"location":{"type":"object","members":{"latLng":{"type":"object","members":{"latitude":{"type":"number","optional":true},"longitude":{"type":"number","optional":true}},"optional":true},"heading":{"type":"object","members":{"value":{"type":"number","optional":true}},"optional":true}},"optional":true},"placeId":{"type":"string","optional":true},"address":{"type":"string","optional":true},"navigationPointToken":{"type":"string","optional":true},"via":{"type":"boolean","optional":true},"vehicleStopover":{"type":"boolean","optional":true},"sideOfRoad":{"type":"boolean","optional":true}}},"optional":true},"travelMode":{"type":"string","enum":["TRAVEL_MODE_UNSPECIFIED","DRIVE","BICYCLE","WALK","TWO_WHEELER","TRANSIT"],"optional":true},"routingPreference":{"type":"string","enum":["ROUTING_PREFERENCE_UNSPECIFIED","TRAFFIC_UNAWARE","TRAFFIC_AWARE","TRAFFIC_AWARE_OPTIMAL"],"optional":true},"polylineQuality":{"type":"string","enum":["POLYLINE_QUALITY_UNSPECIFIED","HIGH_QUALITY","OVERVIEW"],"optional":true},"polylineEncoding":{"type":"string","enum":["POLYLINE_ENCODING_UNSPECIFIED","ENCODED_POLYLINE","GEO_JSON_LINESTRING"],"optional":true},"departureTime":{"type":"string","optional":true},"arrivalTime":{"type":"string","optional":true},"computeAlternativeRoutes":{"type":"boolean","optional":true},"routeModifiers":{"type":"object","members":{"avoidTolls":{"type":"boolean","optional":true},"avoidHighways":{"type":"boolean","optional":true},"avoidFerries":{"type":"boolean","optional":true},"avoidIndoor":{"type":"boolean","optional":true},"vehicleInfo":{"type":"object","members":{"emissionType":{"type":"string","enum":["VEHICLE_EMISSION_TYPE_UNSPECIFIED","GASOLINE","ELECTRIC","HYBRID","DIESEL"],"optional":true}},"optional":true},"tollPasses":{"type":"array","items":{"type":"string","enum":["TOLL_PASS_UNSPECIFIED","AU_ETOLL_TAG","AU_EWAY_TAG","AU_LINKT","AR_TELEPASE","BR_AUTO_EXPRESO","BR_CONECTCAR","BR_MOVE_MAIS","BR_PASSA_RAPIDO","BR_SEM_PARAR","BR_TAGGY","BR_VELOE","CA_US_AKWASASNE_SEAWAY_CORPORATE_CARD","CA_US_AKWASASNE_SEAWAY_TRANSIT_CARD","CA_US_BLUE_WATER_EDGE_PASS","CA_US_CONNEXION","CA_US_NEXUS_CARD","ID_E_TOLL","IN_FASTAG","IN_LOCAL_HP_PLATE_EXEMPT","JP_ETC","JP_ETC2","MX_IAVE","MX_PASE","MX_QUICKPASS","MX_SISTEMA_TELEPEAJE_CHIHUAHUA","MX_TAG_IAVE","MX_TAG_TELEVIA","MX_TELEVIA","MX_VIAPASS","US_AL_FREEDOM_PASS","US_AK_ANTON_ANDERSON_TUNNEL_BOOK_OF_10_TICKETS","US_CA_FASTRAK","US_CA_FASTRAK_CAV_STICKER","US_CO_EXPRESSTOLL","US_CO_GO_PASS","US_DE_EZPASSDE","US_FL_BOB_SIKES_TOLL_BRIDGE_PASS","US_FL_DUNES_COMMUNITY_DEVELOPMENT_DISTRICT_EXPRESSCARD","US_FL_EPASS","US_FL_GIBA_TOLL_PASS","US_FL_LEEWAY","US_FL_SUNPASS","US_FL_SUNPASS_PRO","US_IL_EZPASSIL","US_IL_IPASS","US_IN_EZPASSIN","US_KS_BESTPASS_HORIZON","US_KS_KTAG","US_KS_NATIONALPASS","US_KS_PREPASS_ELITEPASS","US_KY_RIVERLINK","US_LA_GEAUXPASS","US_LA_TOLL_TAG","US_MA_EZPASSMA","US_MD_EZPASSMD","US_ME_EZPASSME","US_MI_AMBASSADOR_BRIDGE_PREMIER_COMMUTER_CARD","US_MI_BCPASS","US_MI_BREAKAWAY","US_MI_GROSSE_ILE_TOLL_BRIDGE_PASS_TAG","US_MI_IQ_PROX_CARD","US_MI_IQ_TAG","US_MI_MACKINAC_BRIDGE_MAC_PASS","US_MI_NEXPRESS_TOLL","US_MN_EZPASSMN","US_NC_EZPASSNC","US_NC_PEACH_PASS","US_NC_QUICK_PASS","US_NH_EZPASSNH","US_NJ_DOWNBEACH_EXPRESS_PASS","US_NJ_EZPASSNJ","US_NY_EXPRESSPASS","US_NY_EZPASSNY","US_OH_EZPASSOH","US_PA_EZPASSPA","US_RI_EZPASSRI","US_SC_PALPASS","US_TX_AVI_TAG","US_TX_BANCPASS","US_TX_DEL_RIO_PASS","US_TX_EFAST_PASS","US_TX_EAGLE_PASS_EXPRESS_CARD","US_TX_EPTOLL","US_TX_EZ_CROSS","US_TX_EZTAG","US_TX_FUEGO_TAG","US_TX_LAREDO_TRADE_TAG","US_TX_PLUSPASS","US_TX_TOLLTAG","US_TX_TXTAG","US_TX_XPRESS_CARD","US_UT_ADAMS_AVE_PARKWAY_EXPRESSCARD","US_VA_EZPASSVA","US_WA_BREEZEBY","US_WA_GOOD_TO_GO","US_WV_EZPASSWV","US_WV_MEMORIAL_BRIDGE_TICKETS","US_WV_MOV_PASS","US_WV_NEWELL_TOLL_BRIDGE_TICKET"]},"optional":true},"avoidTunnels":{"type":"boolean","optional":true}},"optional":true},"languageCode":{"type":"string","optional":true},"regionCode":{"type":"string","optional":true},"units":{"type":"string","enum":["UNITS_UNSPECIFIED","METRIC","IMPERIAL"],"optional":true},"optimizeWaypointOrder":{"type":"boolean","optional":true},"requestedReferenceRoutes":{"type":"array","items":{"type":"string","enum":["REFERENCE_ROUTE_UNSPECIFIED","FUEL_EFFICIENT","SHORTER_DISTANCE"]},"optional":true},"extraComputations":{"type":"array","items":{"type":"string","enum":["EXTRA_COMPUTATION_UNSPECIFIED","TOLLS","FUEL_CONSUMPTION","TRAFFIC_ON_POLYLINE","HTML_FORMATTED_NAVIGATION_INSTRUCTIONS","FLYOVER_INFO_ON_POLYLINE","NARROW_ROAD_INFO_ON_POLYLINE","TUNNEL_INFO_ON_POLYLINE","BRIDGE_INFO_ON_POLYLINE","SKYWAY_INFO_ON_POLYLINE"]},"optional":true},"trafficModel":{"type":"string","enum":["TRAFFIC_MODEL_UNSPECIFIED","BEST_GUESS","PESSIMISTIC","OPTIMISTIC"],"optional":true},"transitPreferences":{"type":"object","members":{"allowedTravelModes":{"type":"array","items":{"type":"string","enum":["TRANSIT_TRAVEL_MODE_UNSPECIFIED","BUS","SUBWAY","TRAIN","LIGHT_RAIL","RAIL"]},"optional":true},"routingPreference":{"type":"string","enum":["TRANSIT_ROUTING_PREFERENCE_UNSPECIFIED","LESS_WALKING","FEWER_TRANSFERS"],"optional":true}},"optional":true}},"requiredParams":["origin","destination"],"read":"anonymous","anonymous":["read"],"enforcedBy":{"read":"the provider at places.googleapis.com, under the app's configured credentials"},"fields":{"routes":{"type":"array","items":{"type":"object","members":{"routeLabels":{"type":"array","items":{"type":"string","enum":["ROUTE_LABEL_UNSPECIFIED","DEFAULT_ROUTE","DEFAULT_ROUTE_ALTERNATE","FUEL_EFFICIENT","SHORTER_DISTANCE"]},"optional":true},"legs":{"type":"array","items":{"type":"object","members":{"distanceMeters":{"type":"number","optional":true},"duration":{"type":"string","optional":true},"staticDuration":{"type":"string","optional":true},"polyline":{"type":"object","members":{"encodedPolyline":{"type":"string","optional":true},"geoJsonLinestring":{"type":"object","members":{"type":{"type":"string"},"coordinates":{"type":"array","items":{"type":"array","items":{"type":"number"}}}},"optional":true}},"optional":true},"startLocation":{"type":"object","members":{"latLng":{"type":"object","members":{"latitude":{"type":"number","optional":true},"longitude":{"type":"number","optional":true}},"optional":true},"heading":{"type":"object","members":{"value":{"type":"number","optional":true}},"optional":true}},"optional":true},"endLocation":{"type":"object","members":{"latLng":{"type":"object","members":{"latitude":{"type":"number","optional":true},"longitude":{"type":"number","optional":true}},"optional":true},"heading":{"type":"object","members":{"value":{"type":"number","optional":true}},"optional":true}},"optional":true},"steps":{"type":"array","items":{"type":"object","members":{"distanceMeters":{"type":"number","optional":true},"staticDuration":{"type":"string","optional":true},"polyline":{"type":"object","members":{"encodedPolyline":{"type":"string","optional":true},"geoJsonLinestring":{"type":"object","members":{"type":{"type":"string"},"coordinates":{"type":"array","items":{"type":"array","items":{"type":"number"}}}},"optional":true}},"optional":true},"startLocation":{"type":"object","members":{"latLng":{"type":"object","members":{"latitude":{"type":"number","optional":true},"longitude":{"type":"number","optional":true}},"optional":true},"heading":{"type":"object","members":{"value":{"type":"number","optional":true}},"optional":true}},"optional":true},"endLocation":{"type":"object","members":{"latLng":{"type":"object","members":{"latitude":{"type":"number","optional":true},"longitude":{"type":"number","optional":true}},"optional":true},"heading":{"type":"object","members":{"value":{"type":"number","optional":true}},"optional":true}},"optional":true},"navigationInstruction":{"type":"object","members":{"maneuver":{"type":"string","enum":["MANEUVER_UNSPECIFIED","TURN_SLIGHT_LEFT","TURN_SHARP_LEFT","UTURN_LEFT","TURN_LEFT","TURN_SLIGHT_RIGHT","TURN_SHARP_RIGHT","UTURN_RIGHT","TURN_RIGHT","STRAIGHT","RAMP_LEFT","RAMP_RIGHT","MERGE","FORK_LEFT","FORK_RIGHT","FERRY","FERRY_TRAIN","ROUNDABOUT_LEFT","ROUNDABOUT_RIGHT","DEPART","NAME_CHANGE"],"optional":true},"instructions":{"type":"string","optional":true}},"optional":true},"travelAdvisory":{"type":"object","members":{"speedReadingIntervals":{"type":"array","items":{"type":"object","members":{"startPolylinePointIndex":{"type":"number","optional":true},"endPolylinePointIndex":{"type":"number","optional":true},"speed":{"type":"string","enum":["SPEED_UNSPECIFIED","NORMAL","SLOW","TRAFFIC_JAM"],"optional":true}}},"optional":true}},"optional":true},"localizedValues":{"type":"object","members":{"distance":{"type":"object","members":{"text":{"type":"string","optional":true},"languageCode":{"type":"string","optional":true}},"optional":true},"staticDuration":{"type":"object","members":{"text":{"type":"string","optional":true},"languageCode":{"type":"string","optional":true}},"optional":true}},"optional":true},"transitDetails":{"type":"object","members":{"stopDetails":{"type":"object","members":{"arrivalStop":{"type":"object","members":{"name":{"type":"string","optional":true},"location":{"type":"object","members":{"latLng":{"type":"object","members":{"latitude":{"type":"number","optional":true},"longitude":{"type":"number","optional":true}},"optional":true},"heading":{"type":"object","members":{"value":{"type":"number","optional":true}},"optional":true}},"optional":true}},"optional":true},"arrivalTime":{"type":"string","optional":true},"departureStop":{"type":"object","members":{"name":{"type":"string","optional":true},"location":{"type":"object","members":{"latLng":{"type":"object","members":{"latitude":{"type":"number","optional":true},"longitude":{"type":"number","optional":true}},"optional":true},"heading":{"type":"object","members":{"value":{"type":"number","optional":true}},"optional":true}},"optional":true}},"optional":true},"departureTime":{"type":"string","optional":true}},"optional":true},"localizedValues":{"type":"object","members":{"arrivalTime":{"type":"object","members":{"time":{"type":"object","members":{"text":{"type":"string","optional":true},"languageCode":{"type":"string","optional":true}},"optional":true},"timeZone":{"type":"string","optional":true}},"optional":true},"departureTime":{"type":"object","members":{"time":{"type":"object","members":{"text":{"type":"string","optional":true},"languageCode":{"type":"string","optional":true}},"optional":true},"timeZone":{"type":"string","optional":true}},"optional":true}},"optional":true},"headsign":{"type":"string","optional":true},"headway":{"type":"string","optional":true},"transitLine":{"type":"object","members":{"agencies":{"type":"array","items":{"type":"object","members":{"name":{"type":"string","optional":true},"phoneNumber":{"type":"string","optional":true},"uri":{"type":"string","optional":true}}},"optional":true},"name":{"type":"string","optional":true},"uri":{"type":"string","optional":true},"color":{"type":"string","optional":true},"iconUri":{"type":"string","optional":true},"nameShort":{"type":"string","optional":true},"textColor":{"type":"string","optional":true},"vehicle":{"type":"object","members":{"name":{"type":"object","members":{"text":{"type":"string","optional":true},"languageCode":{"type":"string","optional":true}},"optional":true},"type":{"type":"string","enum":["TRANSIT_VEHICLE_TYPE_UNSPECIFIED","BUS","CABLE_CAR","COMMUTER_TRAIN","FERRY","FUNICULAR","GONDOLA_LIFT","HEAVY_RAIL","HIGH_SPEED_TRAIN","INTERCITY_BUS","LONG_DISTANCE_TRAIN","METRO_RAIL","MONORAIL","OTHER","RAIL","SHARE_TAXI","SUBWAY","TRAM","TROLLEYBUS"],"optional":true},"iconUri":{"type":"string","optional":true},"localIconUri":{"type":"string","optional":true}},"optional":true}},"optional":true},"stopCount":{"type":"number","optional":true},"tripShortText":{"type":"string","optional":true}},"optional":true},"travelMode":{"type":"string","enum":["TRAVEL_MODE_UNSPECIFIED","DRIVE","BICYCLE","WALK","TWO_WHEELER","TRANSIT"],"optional":true}}},"optional":true},"travelAdvisory":{"type":"object","members":{"tollInfo":{"type":"object","members":{"estimatedPrice":{"type":"array","items":{"type":"object","members":{"currencyCode":{"type":"string","optional":true},"units":{"type":"string","pattern":"^-?[0-9]+$","optional":true},"nanos":{"type":"number","optional":true}}},"optional":true}},"optional":true},"speedReadingIntervals":{"type":"array","items":{"type":"object","members":{"startPolylinePointIndex":{"type":"number","optional":true},"endPolylinePointIndex":{"type":"number","optional":true},"speed":{"type":"string","enum":["SPEED_UNSPECIFIED","NORMAL","SLOW","TRAFFIC_JAM"],"optional":true}}},"optional":true}},"optional":true},"localizedValues":{"type":"object","members":{"distance":{"type":"object","members":{"text":{"type":"string","optional":true},"languageCode":{"type":"string","optional":true}},"optional":true},"duration":{"type":"object","members":{"text":{"type":"string","optional":true},"languageCode":{"type":"string","optional":true}},"optional":true},"staticDuration":{"type":"object","members":{"text":{"type":"string","optional":true},"languageCode":{"type":"string","optional":true}},"optional":true}},"optional":true},"stepsOverview":{"type":"object","members":{"multiModalSegments":{"type":"array","items":{"type":"object","members":{"stepStartIndex":{"type":"number","optional":true},"stepEndIndex":{"type":"number","optional":true},"navigationInstruction":{"type":"object","members":{"maneuver":{"type":"string","enum":["MANEUVER_UNSPECIFIED","TURN_SLIGHT_LEFT","TURN_SHARP_LEFT","UTURN_LEFT","TURN_LEFT","TURN_SLIGHT_RIGHT","TURN_SHARP_RIGHT","UTURN_RIGHT","TURN_RIGHT","STRAIGHT","RAMP_LEFT","RAMP_RIGHT","MERGE","FORK_LEFT","FORK_RIGHT","FERRY","FERRY_TRAIN","ROUNDABOUT_LEFT","ROUNDABOUT_RIGHT","DEPART","NAME_CHANGE"],"optional":true},"instructions":{"type":"string","optional":true}},"optional":true},"travelMode":{"type":"string","enum":["TRAVEL_MODE_UNSPECIFIED","DRIVE","BICYCLE","WALK","TWO_WHEELER","TRANSIT"],"optional":true}}},"optional":true}},"optional":true}}},"optional":true},"distanceMeters":{"type":"number","optional":true},"duration":{"type":"string","optional":true},"staticDuration":{"type":"string","optional":true},"polyline":{"type":"object","members":{"encodedPolyline":{"type":"string","optional":true},"geoJsonLinestring":{"type":"object","members":{"type":{"type":"string"},"coordinates":{"type":"array","items":{"type":"array","items":{"type":"number"}}}},"optional":true}},"optional":true},"description":{"type":"string","optional":true},"warnings":{"type":"array","items":{"type":"string"},"optional":true},"viewport":{"type":"object","members":{"low":{"type":"object","members":{"latitude":{"type":"number","optional":true},"longitude":{"type":"number","optional":true}},"optional":true},"high":{"type":"object","members":{"latitude":{"type":"number","optional":true},"longitude":{"type":"number","optional":true}},"optional":true}},"optional":true},"travelAdvisory":{"type":"object","members":{"tollInfo":{"type":"object","members":{"estimatedPrice":{"type":"array","items":{"type":"object","members":{"currencyCode":{"type":"string","optional":true},"units":{"type":"string","pattern":"^-?[0-9]+$","optional":true},"nanos":{"type":"number","optional":true}}},"optional":true}},"optional":true},"speedReadingIntervals":{"type":"array","items":{"type":"object","members":{"startPolylinePointIndex":{"type":"number","optional":true},"endPolylinePointIndex":{"type":"number","optional":true},"speed":{"type":"string","enum":["SPEED_UNSPECIFIED","NORMAL","SLOW","TRAFFIC_JAM"],"optional":true}}},"optional":true},"fuelConsumptionMicroliters":{"type":"string","pattern":"^-?[0-9]+$","optional":true},"routeRestrictionsPartiallyIgnored":{"type":"boolean","optional":true},"transitFare":{"type":"object","members":{"currencyCode":{"type":"string","optional":true},"units":{"type":"string","pattern":"^-?[0-9]+$","optional":true},"nanos":{"type":"number","optional":true}},"optional":true}},"optional":true},"optimizedIntermediateWaypointIndex":{"type":"array","items":{"type":"number"},"optional":true},"localizedValues":{"type":"object","members":{"distance":{"type":"object","members":{"text":{"type":"string","optional":true},"languageCode":{"type":"string","optional":true}},"optional":true},"duration":{"type":"object","members":{"text":{"type":"string","optional":true},"languageCode":{"type":"string","optional":true}},"optional":true},"staticDuration":{"type":"object","members":{"text":{"type":"string","optional":true},"languageCode":{"type":"string","optional":true}},"optional":true},"transitFare":{"type":"object","members":{"text":{"type":"string","optional":true},"languageCode":{"type":"string","optional":true}},"optional":true}},"optional":true},"routeToken":{"type":"string","optional":true},"polylineDetails":{"type":"object","members":{"tunnelInfo":{"type":"array","items":{"type":"object","members":{"tunnelPresence":{"type":"string","enum":["ROAD_FEATURE_STATE_UNSPECIFIED","EXISTS","DOES_NOT_EXIST"],"optional":true},"polylinePointIndex":{"type":"object","members":{"startIndex":{"type":"number","optional":true},"endIndex":{"type":"number","optional":true}},"optional":true}}},"optional":true},"flyoverInfo":{"type":"array","items":{"type":"object","members":{"flyoverPresence":{"type":"string","enum":["ROAD_FEATURE_STATE_UNSPECIFIED","EXISTS","DOES_NOT_EXIST"],"optional":true},"polylinePointIndex":{"type":"object","members":{"startIndex":{"type":"number","optional":true},"endIndex":{"type":"number","optional":true}},"optional":true}}},"optional":true},"narrowRoadInfo":{"type":"array","items":{"type":"object","members":{"narrowRoadPresence":{"type":"string","enum":["ROAD_FEATURE_STATE_UNSPECIFIED","EXISTS","DOES_NOT_EXIST"],"optional":true},"polylinePointIndex":{"type":"object","members":{"startIndex":{"type":"number","optional":true},"endIndex":{"type":"number","optional":true}},"optional":true}}},"optional":true},"bridgeInfo":{"type":"array","items":{"type":"object","members":{"bridgePresence":{"type":"string","enum":["ROAD_FEATURE_STATE_UNSPECIFIED","EXISTS","DOES_NOT_EXIST"],"optional":true},"polylinePointIndex":{"type":"object","members":{"startIndex":{"type":"number","optional":true},"endIndex":{"type":"number","optional":true}},"optional":true}}},"optional":true},"skywayInfo":{"type":"array","items":{"type":"object","members":{"skywayPresence":{"type":"string","enum":["ROAD_FEATURE_STATE_UNSPECIFIED","EXISTS","DOES_NOT_EXIST"],"optional":true},"polylinePointIndex":{"type":"object","members":{"startIndex":{"type":"number","optional":true},"endIndex":{"type":"number","optional":true}},"optional":true}}},"optional":true}},"optional":true}}},"optional":true},"fallbackInfo":{"type":"object","members":{"routingMode":{"type":"string","enum":["FALLBACK_ROUTING_MODE_UNSPECIFIED","FALLBACK_TRAFFIC_UNAWARE","FALLBACK_TRAFFIC_AWARE"],"optional":true},"reason":{"type":"string","enum":["FALLBACK_REASON_UNSPECIFIED","SERVER_ERROR","LATENCY_EXCEEDED"],"optional":true}},"optional":true},"geocodingResults":{"type":"object","members":{"origin":{"type":"object","members":{"geocoderStatus":{"type":"object","members":{"code":{"type":"number","optional":true},"message":{"type":"string","optional":true}},"optional":true},"intermediateWaypointRequestIndex":{"type":"number","optional":true},"type":{"type":"array","items":{"type":"string"},"optional":true},"partialMatch":{"type":"boolean","optional":true},"placeId":{"type":"string","optional":true}},"optional":true},"destination":{"type":"object","members":{"geocoderStatus":{"type":"object","members":{"code":{"type":"number","optional":true},"message":{"type":"string","optional":true}},"optional":true},"intermediateWaypointRequestIndex":{"type":"number","optional":true},"type":{"type":"array","items":{"type":"string"},"optional":true},"partialMatch":{"type":"boolean","optional":true},"placeId":{"type":"string","optional":true}},"optional":true},"intermediates":{"type":"array","items":{"type":"object","members":{"geocoderStatus":{"type":"object","members":{"code":{"type":"number","optional":true},"message":{"type":"string","optional":true}},"optional":true},"intermediateWaypointRequestIndex":{"type":"number","optional":true},"type":{"type":"array","items":{"type":"string"},"optional":true},"partialMatch":{"type":"boolean","optional":true},"placeId":{"type":"string","optional":true}}},"optional":true}},"optional":true}}},"computeRouteMatrix":{"desc":"Travel times and distances between origins and destinations. Each result identifies originIndex, destinationIndex and status.","ops":["query"],"queryFields":[],"params":["origins","destinations","travelMode","routingPreference","departureTime","arrivalTime","languageCode","regionCode","units","extraComputations","trafficModel","transitPreferences"],"parameterFields":{"origins":{"type":"array","items":{"type":"object","members":{"waypoint":{"type":"object","members":{"location":{"type":"object","members":{"latLng":{"type":"object","members":{"latitude":{"type":"number","optional":true},"longitude":{"type":"number","optional":true}},"optional":true},"heading":{"type":"object","members":{"value":{"type":"number","optional":true}},"optional":true}},"optional":true},"placeId":{"type":"string","optional":true},"address":{"type":"string","optional":true},"navigationPointToken":{"type":"string","optional":true},"via":{"type":"boolean","optional":true},"vehicleStopover":{"type":"boolean","optional":true},"sideOfRoad":{"type":"boolean","optional":true}}},"routeModifiers":{"type":"object","members":{"avoidTolls":{"type":"boolean","optional":true},"avoidHighways":{"type":"boolean","optional":true},"avoidFerries":{"type":"boolean","optional":true},"avoidIndoor":{"type":"boolean","optional":true},"vehicleInfo":{"type":"object","members":{"emissionType":{"type":"string","enum":["VEHICLE_EMISSION_TYPE_UNSPECIFIED","GASOLINE","ELECTRIC","HYBRID","DIESEL"],"optional":true}},"optional":true},"tollPasses":{"type":"array","items":{"type":"string","enum":["TOLL_PASS_UNSPECIFIED","AU_ETOLL_TAG","AU_EWAY_TAG","AU_LINKT","AR_TELEPASE","BR_AUTO_EXPRESO","BR_CONECTCAR","BR_MOVE_MAIS","BR_PASSA_RAPIDO","BR_SEM_PARAR","BR_TAGGY","BR_VELOE","CA_US_AKWASASNE_SEAWAY_CORPORATE_CARD","CA_US_AKWASASNE_SEAWAY_TRANSIT_CARD","CA_US_BLUE_WATER_EDGE_PASS","CA_US_CONNEXION","CA_US_NEXUS_CARD","ID_E_TOLL","IN_FASTAG","IN_LOCAL_HP_PLATE_EXEMPT","JP_ETC","JP_ETC2","MX_IAVE","MX_PASE","MX_QUICKPASS","MX_SISTEMA_TELEPEAJE_CHIHUAHUA","MX_TAG_IAVE","MX_TAG_TELEVIA","MX_TELEVIA","MX_VIAPASS","US_AL_FREEDOM_PASS","US_AK_ANTON_ANDERSON_TUNNEL_BOOK_OF_10_TICKETS","US_CA_FASTRAK","US_CA_FASTRAK_CAV_STICKER","US_CO_EXPRESSTOLL","US_CO_GO_PASS","US_DE_EZPASSDE","US_FL_BOB_SIKES_TOLL_BRIDGE_PASS","US_FL_DUNES_COMMUNITY_DEVELOPMENT_DISTRICT_EXPRESSCARD","US_FL_EPASS","US_FL_GIBA_TOLL_PASS","US_FL_LEEWAY","US_FL_SUNPASS","US_FL_SUNPASS_PRO","US_IL_EZPASSIL","US_IL_IPASS","US_IN_EZPASSIN","US_KS_BESTPASS_HORIZON","US_KS_KTAG","US_KS_NATIONALPASS","US_KS_PREPASS_ELITEPASS","US_KY_RIVERLINK","US_LA_GEAUXPASS","US_LA_TOLL_TAG","US_MA_EZPASSMA","US_MD_EZPASSMD","US_ME_EZPASSME","US_MI_AMBASSADOR_BRIDGE_PREMIER_COMMUTER_CARD","US_MI_BCPASS","US_MI_BREAKAWAY","US_MI_GROSSE_ILE_TOLL_BRIDGE_PASS_TAG","US_MI_IQ_PROX_CARD","US_MI_IQ_TAG","US_MI_MACKINAC_BRIDGE_MAC_PASS","US_MI_NEXPRESS_TOLL","US_MN_EZPASSMN","US_NC_EZPASSNC","US_NC_PEACH_PASS","US_NC_QUICK_PASS","US_NH_EZPASSNH","US_NJ_DOWNBEACH_EXPRESS_PASS","US_NJ_EZPASSNJ","US_NY_EXPRESSPASS","US_NY_EZPASSNY","US_OH_EZPASSOH","US_PA_EZPASSPA","US_RI_EZPASSRI","US_SC_PALPASS","US_TX_AVI_TAG","US_TX_BANCPASS","US_TX_DEL_RIO_PASS","US_TX_EFAST_PASS","US_TX_EAGLE_PASS_EXPRESS_CARD","US_TX_EPTOLL","US_TX_EZ_CROSS","US_TX_EZTAG","US_TX_FUEGO_TAG","US_TX_LAREDO_TRADE_TAG","US_TX_PLUSPASS","US_TX_TOLLTAG","US_TX_TXTAG","US_TX_XPRESS_CARD","US_UT_ADAMS_AVE_PARKWAY_EXPRESSCARD","US_VA_EZPASSVA","US_WA_BREEZEBY","US_WA_GOOD_TO_GO","US_WV_EZPASSWV","US_WV_MEMORIAL_BRIDGE_TICKETS","US_WV_MOV_PASS","US_WV_NEWELL_TOLL_BRIDGE_TICKET"]},"optional":true},"avoidTunnels":{"type":"boolean","optional":true}},"optional":true}}}},"destinations":{"type":"array","items":{"type":"object","members":{"waypoint":{"type":"object","members":{"location":{"type":"object","members":{"latLng":{"type":"object","members":{"latitude":{"type":"number","optional":true},"longitude":{"type":"number","optional":true}},"optional":true},"heading":{"type":"object","members":{"value":{"type":"number","optional":true}},"optional":true}},"optional":true},"placeId":{"type":"string","optional":true},"address":{"type":"string","optional":true},"navigationPointToken":{"type":"string","optional":true},"via":{"type":"boolean","optional":true},"vehicleStopover":{"type":"boolean","optional":true},"sideOfRoad":{"type":"boolean","optional":true}}}}}},"travelMode":{"type":"string","enum":["TRAVEL_MODE_UNSPECIFIED","DRIVE","BICYCLE","WALK","TWO_WHEELER","TRANSIT"],"optional":true},"routingPreference":{"type":"string","enum":["ROUTING_PREFERENCE_UNSPECIFIED","TRAFFIC_UNAWARE","TRAFFIC_AWARE","TRAFFIC_AWARE_OPTIMAL"],"optional":true},"departureTime":{"type":"string","optional":true},"arrivalTime":{"type":"string","optional":true},"languageCode":{"type":"string","optional":true},"regionCode":{"type":"string","optional":true},"units":{"type":"string","enum":["UNITS_UNSPECIFIED","METRIC","IMPERIAL"],"optional":true},"extraComputations":{"type":"array","items":{"type":"string","enum":["EXTRA_COMPUTATION_UNSPECIFIED","TOLLS"]},"optional":true},"trafficModel":{"type":"string","enum":["TRAFFIC_MODEL_UNSPECIFIED","BEST_GUESS","PESSIMISTIC","OPTIMISTIC"],"optional":true},"transitPreferences":{"type":"object","members":{"allowedTravelModes":{"type":"array","items":{"type":"string","enum":["TRANSIT_TRAVEL_MODE_UNSPECIFIED","BUS","SUBWAY","TRAIN","LIGHT_RAIL","RAIL"]},"optional":true},"routingPreference":{"type":"string","enum":["TRANSIT_ROUTING_PREFERENCE_UNSPECIFIED","LESS_WALKING","FEWER_TRANSFERS"],"optional":true}},"optional":true}},"requiredParams":["origins","destinations"],"read":"anonymous","anonymous":["read"],"enforcedBy":{"read":"the provider at places.googleapis.com, under the app's configured credentials"},"fields":{"originIndex":{"type":"number","optional":true},"destinationIndex":{"type":"number","optional":true},"status":{"type":"object","members":{"code":{"type":"number","optional":true},"message":{"type":"string","optional":true}},"optional":true},"condition":{"type":"string","enum":["ROUTE_MATRIX_ELEMENT_CONDITION_UNSPECIFIED","ROUTE_EXISTS","ROUTE_NOT_FOUND"],"optional":true},"distanceMeters":{"type":"number","optional":true},"duration":{"type":"string","optional":true},"staticDuration":{"type":"string","optional":true},"travelAdvisory":{"type":"object","members":{"tollInfo":{"type":"object","members":{"estimatedPrice":{"type":"array","items":{"type":"object","members":{"currencyCode":{"type":"string","optional":true},"units":{"type":"string","pattern":"^-?[0-9]+$","optional":true},"nanos":{"type":"number","optional":true}}},"optional":true}},"optional":true},"speedReadingIntervals":{"type":"array","items":{"type":"object","members":{"startPolylinePointIndex":{"type":"number","optional":true},"endPolylinePointIndex":{"type":"number","optional":true},"speed":{"type":"string","enum":["SPEED_UNSPECIFIED","NORMAL","SLOW","TRAFFIC_JAM"],"optional":true}}},"optional":true},"fuelConsumptionMicroliters":{"type":"string","pattern":"^-?[0-9]+$","optional":true},"routeRestrictionsPartiallyIgnored":{"type":"boolean","optional":true},"transitFare":{"type":"object","members":{"currencyCode":{"type":"string","optional":true},"units":{"type":"string","pattern":"^-?[0-9]+$","optional":true},"nanos":{"type":"number","optional":true}},"optional":true}},"optional":true},"fallbackInfo":{"type":"object","members":{"routingMode":{"type":"string","enum":["FALLBACK_ROUTING_MODE_UNSPECIFIED","FALLBACK_TRAFFIC_UNAWARE","FALLBACK_TRAFFIC_AWARE"],"optional":true},"reason":{"type":"string","enum":["FALLBACK_REASON_UNSPECIFIED","SERVER_ERROR","LATENCY_EXCEEDED"],"optional":true}},"optional":true},"localizedValues":{"type":"object","members":{"distance":{"type":"object","members":{"text":{"type":"string","optional":true},"languageCode":{"type":"string","optional":true}},"optional":true},"duration":{"type":"object","members":{"text":{"type":"string","optional":true},"languageCode":{"type":"string","optional":true}},"optional":true},"staticDuration":{"type":"object","members":{"text":{"type":"string","optional":true},"languageCode":{"type":"string","optional":true}},"optional":true},"transitFare":{"type":"object","members":{"text":{"type":"string","optional":true},"languageCode":{"type":"string","optional":true}},"optional":true}},"optional":true}}}}},"result":{"kind":"rows","maxRows":10000,"maxBytes":4194304,"classification":"public"},"stream":{"semantics":"none","recovery":"none"},"authority":{"mode":"public"},"id":"source:142cf20c8fb9e0fa"},"contract":{"desc":"Google address, place and routing calculations under the app owner’s server key. Input values belong in query descriptor parameters. Persist accounts and routes in the app’s own durable source.","maxRows":10000,"collections":{"autocomplete":{"desc":"Places API (New) address and business predictions. Reuse sessionToken through the chosen placeDetails call.","ops":["query"],"queryFields":[],"params":["includeFutureOpeningBusinesses","includeQueryPredictions","locationRestriction","sessionToken","origin","languageCode","locationBias","input","inputOffset","includedRegionCodes","includePureServiceAreaBusinesses","regionCode","includedPrimaryTypes"],"parameterFields":{"includeFutureOpeningBusinesses":{"type":"boolean","optional":true},"includeQueryPredictions":{"type":"boolean","optional":true},"locationRestriction":{"type":"object","members":{"rectangle":{"type":"object","members":{"low":{"type":"object","members":{"longitude":{"type":"number","optional":true},"latitude":{"type":"number","optional":true}},"optional":true},"high":{"type":"object","members":{"longitude":{"type":"number","optional":true},"latitude":{"type":"number","optional":true}},"optional":true}},"optional":true},"circle":{"type":"object","members":{"center":{"type":"object","members":{"longitude":{"type":"number","optional":true},"latitude":{"type":"number","optional":true}},"optional":true},"radius":{"type":"number","optional":true}},"optional":true}},"optional":true},"sessionToken":{"type":"string","optional":true},"origin":{"type":"object","members":{"longitude":{"type":"number","optional":true},"latitude":{"type":"number","optional":true}},"optional":true},"languageCode":{"type":"string","optional":true},"locationBias":{"type":"object","members":{"rectangle":{"type":"object","members":{"low":{"type":"object","members":{"longitude":{"type":"number","optional":true},"latitude":{"type":"number","optional":true}},"optional":true},"high":{"type":"object","members":{"longitude":{"type":"number","optional":true},"latitude":{"type":"number","optional":true}},"optional":true}},"optional":true},"circle":{"type":"object","members":{"center":{"type":"object","members":{"longitude":{"type":"number","optional":true},"latitude":{"type":"number","optional":true}},"optional":true},"radius":{"type":"number","optional":true}},"optional":true}},"optional":true},"input":{"type":"string"},"inputOffset":{"type":"number","optional":true},"includedRegionCodes":{"type":"array","items":{"type":"string"},"optional":true},"includePureServiceAreaBusinesses":{"type":"boolean","optional":true},"regionCode":{"type":"string","optional":true},"includedPrimaryTypes":{"type":"array","items":{"type":"string"},"optional":true}},"requiredParams":["input"],"read":"anonymous","anonymous":["read"],"enforcedBy":{"read":"the provider at places.googleapis.com, under the app's configured credentials"},"fields":{"suggestions":{"type":"array","items":{"type":"object","members":{"placePrediction":{"type":"object","members":{"place":{"type":"string","optional":true},"structuredFormat":{"type":"object","members":{"mainText":{"type":"object","members":{"text":{"type":"string","optional":true},"matches":{"type":"array","items":{"type":"object","members":{"startOffset":{"type":"number","optional":true},"endOffset":{"type":"number","optional":true}}},"optional":true}},"optional":true},"secondaryText":{"type":"object","members":{"text":{"type":"string","optional":true},"matches":{"type":"array","items":{"type":"object","members":{"startOffset":{"type":"number","optional":true},"endOffset":{"type":"number","optional":true}}},"optional":true}},"optional":true}},"optional":true},"types":{"type":"array","items":{"type":"string"},"optional":true},"text":{"type":"object","members":{"text":{"type":"string","optional":true},"matches":{"type":"array","items":{"type":"object","members":{"startOffset":{"type":"number","optional":true},"endOffset":{"type":"number","optional":true}}},"optional":true}},"optional":true},"distanceMeters":{"type":"number","optional":true},"placeId":{"type":"string","optional":true}},"optional":true},"queryPrediction":{"type":"object","members":{"structuredFormat":{"type":"object","members":{"mainText":{"type":"object","members":{"text":{"type":"string","optional":true},"matches":{"type":"array","items":{"type":"object","members":{"startOffset":{"type":"number","optional":true},"endOffset":{"type":"number","optional":true}}},"optional":true}},"optional":true},"secondaryText":{"type":"object","members":{"text":{"type":"string","optional":true},"matches":{"type":"array","items":{"type":"object","members":{"startOffset":{"type":"number","optional":true},"endOffset":{"type":"number","optional":true}}},"optional":true}},"optional":true}},"optional":true},"text":{"type":"object","members":{"text":{"type":"string","optional":true},"matches":{"type":"array","items":{"type":"object","members":{"startOffset":{"type":"number","optional":true},"endOffset":{"type":"number","optional":true}}},"optional":true}},"optional":true}},"optional":true}}},"optional":true}}},"placeDetails":{"desc":"A selected place with address, location, contact, opening-hours and attribution fields from a fixed mask.","ops":["query"],"queryFields":[],"params":["placeId","languageCode","regionCode","sessionToken"],"parameterFields":{"placeId":{"type":"string","minLength":1,"maxLength":1024},"languageCode":{"type":"string","optional":true},"regionCode":{"type":"string","optional":true},"sessionToken":{"type":"string","optional":true}},"requiredParams":["placeId"],"read":"anonymous","anonymous":["read"],"enforcedBy":{"read":"the provider at places.googleapis.com, under the app's configured credentials"},"fields":{"currentSecondaryOpeningHours":{"type":"array","items":{"type":"object","members":{"nextCloseTime":{"type":"string","optional":true},"weekdayDescriptions":{"type":"array","items":{"type":"string"},"optional":true},"openNow":{"type":"boolean","optional":true},"nextOpenTime":{"type":"string","optional":true},"secondaryHoursType":{"type":"string","enum":["SECONDARY_HOURS_TYPE_UNSPECIFIED","DRIVE_THROUGH","HAPPY_HOUR","DELIVERY","TAKEOUT","KITCHEN","BREAKFAST","LUNCH","DINNER","BRUNCH","PICKUP","ACCESS","SENIOR_HOURS","ONLINE_SERVICE_HOURS"],"optional":true},"specialDays":{"type":"array","items":{"type":"object","members":{"date":{"type":"object","members":{"month":{"type":"number","optional":true},"year":{"type":"number","optional":true},"day":{"type":"number","optional":true}},"optional":true}}},"optional":true},"periods":{"type":"array","items":{"type":"object","members":{"close":{"type":"object","members":{"hour":{"type":"number","optional":true},"day":{"type":"number","optional":true},"minute":{"type":"number","optional":true},"date":{"type":"object","members":{"month":{"type":"number","optional":true},"year":{"type":"number","optional":true},"day":{"type":"number","optional":true}},"optional":true},"truncated":{"type":"boolean","optional":true}},"optional":true},"open":{"type":"object","members":{"hour":{"type":"number","optional":true},"day":{"type":"number","optional":true},"minute":{"type":"number","optional":true},"date":{"type":"object","members":{"month":{"type":"number","optional":true},"year":{"type":"number","optional":true},"day":{"type":"number","optional":true}},"optional":true},"truncated":{"type":"boolean","optional":true}},"optional":true}}},"optional":true}}},"optional":true},"addressDescriptor":{"type":"object","members":{"landmarks":{"type":"array","items":{"type":"object","members":{"spatialRelationship":{"type":"string","enum":["NEAR","WITHIN","BESIDE","ACROSS_THE_ROAD","DOWN_THE_ROAD","AROUND_THE_CORNER","BEHIND"],"optional":true},"placeId":{"type":"string","optional":true},"displayName":{"type":"object","members":{"languageCode":{"type":"string","optional":true},"text":{"type":"string","optional":true}},"optional":true},"straightLineDistanceMeters":{"type":"number","optional":true},"name":{"type":"string","optional":true},"travelDistanceMeters":{"type":"number","optional":true},"types":{"type":"array","items":{"type":"string"},"optional":true}}},"optional":true},"areas":{"type":"array","items":{"type":"object","members":{"placeId":{"type":"string","optional":true},"containment":{"type":"string","enum":["CONTAINMENT_UNSPECIFIED","WITHIN","OUTSKIRTS","NEAR"],"optional":true},"displayName":{"type":"object","members":{"languageCode":{"type":"string","optional":true},"text":{"type":"string","optional":true}},"optional":true},"name":{"type":"string","optional":true}}},"optional":true}},"optional":true},"primaryType":{"type":"string","optional":true},"servesBrunch":{"type":"boolean","optional":true},"openingDate":{"type":"object","members":{"month":{"type":"number","optional":true},"year":{"type":"number","optional":true},"day":{"type":"number","optional":true}},"optional":true},"neighborhoodSummary":{"type":"object","members":{"overview":{"type":"object","members":{"referencedPlaces":{"type":"array","items":{"type":"string"},"optional":true},"content":{"type":"object","members":{"languageCode":{"type":"string","optional":true},"text":{"type":"string","optional":true}},"optional":true}},"optional":true},"flagContentUri":{"type":"string","optional":true},"disclosureText":{"type":"object","members":{"languageCode":{"type":"string","optional":true},"text":{"type":"string","optional":true}},"optional":true},"description":{"type":"object","members":{"referencedPlaces":{"type":"array","items":{"type":"string"},"optional":true},"content":{"type":"object","members":{"languageCode":{"type":"string","optional":true},"text":{"type":"string","optional":true}},"optional":true}},"optional":true}},"optional":true},"servesBeer":{"type":"boolean","optional":true},"primaryTypeDisplayName":{"type":"object","members":{"languageCode":{"type":"string","optional":true},"text":{"type":"string","optional":true}},"optional":true},"location":{"type":"object","members":{"longitude":{"type":"number","optional":true},"latitude":{"type":"number","optional":true}},"optional":true},"googleMapsTypeLabel":{"type":"object","members":{"languageCode":{"type":"string","optional":true},"text":{"type":"string","optional":true}},"optional":true},"takeout":{"type":"boolean","optional":true},"iconBackgroundColor":{"type":"string","optional":true},"containingPlaces":{"type":"array","items":{"type":"object","members":{"name":{"type":"string","optional":true},"id":{"type":"string","optional":true}}},"optional":true},"viewport":{"type":"object","members":{"low":{"type":"object","members":{"longitude":{"type":"number","optional":true},"latitude":{"type":"number","optional":true}},"optional":true},"high":{"type":"object","members":{"longitude":{"type":"number","optional":true},"latitude":{"type":"number","optional":true}},"optional":true}},"optional":true},"timeZone":{"type":"object","members":{"version":{"type":"string","optional":true},"id":{"type":"string","optional":true}},"optional":true},"dineIn":{"type":"boolean","optional":true},"servesCocktails":{"type":"boolean","optional":true},"shortFormattedAddress":{"type":"string","optional":true},"reviewSummary":{"type":"object","members":{"text":{"type":"object","members":{"languageCode":{"type":"string","optional":true},"text":{"type":"string","optional":true}},"optional":true},"flagContentUri":{"type":"string","optional":true},"disclosureText":{"type":"object","members":{"languageCode":{"type":"string","optional":true},"text":{"type":"string","optional":true}},"optional":true},"reviewsUri":{"type":"string","optional":true}},"optional":true},"photos":{"type":"array","items":{"type":"object","members":{"googleMapsUri":{"type":"string","optional":true},"name":{"type":"string","optional":true},"flagContentUri":{"type":"string","optional":true},"heightPx":{"type":"number","optional":true},"authorAttributions":{"type":"array","items":{"type":"object","members":{"photoUri":{"type":"string","optional":true},"uri":{"type":"string","optional":true},"displayName":{"type":"string","optional":true}}},"optional":true},"widthPx":{"type":"number","optional":true}}},"optional":true},"generativeSummary":{"type":"object","members":{"disclosureText":{"type":"object","members":{"languageCode":{"type":"string","optional":true},"text":{"type":"string","optional":true}},"optional":true},"overview":{"type":"object","members":{"languageCode":{"type":"string","optional":true},"text":{"type":"string","optional":true}},"optional":true},"overviewFlagContentUri":{"type":"string","optional":true}},"optional":true},"movedPlaceId":{"type":"string","optional":true},"userRatingCount":{"type":"number","optional":true},"servesBreakfast":{"type":"boolean","optional":true},"regularOpeningHours":{"type":"object","members":{"nextCloseTime":{"type":"string","optional":true},"weekdayDescriptions":{"type":"array","items":{"type":"string"},"optional":true},"openNow":{"type":"boolean","optional":true},"nextOpenTime":{"type":"string","optional":true},"secondaryHoursType":{"type":"string","enum":["SECONDARY_HOURS_TYPE_UNSPECIFIED","DRIVE_THROUGH","HAPPY_HOUR","DELIVERY","TAKEOUT","KITCHEN","BREAKFAST","LUNCH","DINNER","BRUNCH","PICKUP","ACCESS","SENIOR_HOURS","ONLINE_SERVICE_HOURS"],"optional":true},"specialDays":{"type":"array","items":{"type":"object","members":{"date":{"type":"object","members":{"month":{"type":"number","optional":true},"year":{"type":"number","optional":true},"day":{"type":"number","optional":true}},"optional":true}}},"optional":true},"periods":{"type":"array","items":{"type":"object","members":{"close":{"type":"object","members":{"hour":{"type":"number","optional":true},"day":{"type":"number","optional":true},"minute":{"type":"number","optional":true},"date":{"type":"object","members":{"month":{"type":"number","optional":true},"year":{"type":"number","optional":true},"day":{"type":"number","optional":true}},"optional":true},"truncated":{"type":"boolean","optional":true}},"optional":true},"open":{"type":"object","members":{"hour":{"type":"number","optional":true},"day":{"type":"number","optional":true},"minute":{"type":"number","optional":true},"date":{"type":"object","members":{"month":{"type":"number","optional":true},"year":{"type":"number","optional":true},"day":{"type":"number","optional":true}},"optional":true},"truncated":{"type":"boolean","optional":true}},"optional":true}}},"optional":true}},"optional":true},"servesWine":{"type":"boolean","optional":true},"postalAddress":{"type":"object","members":{"regionCode":{"type":"string","optional":true},"sublocality":{"type":"string","optional":true},"postalCode":{"type":"string","optional":true},"revision":{"type":"number","optional":true},"locality":{"type":"string","optional":true},"recipients":{"type":"array","items":{"type":"string"},"optional":true},"addressLines":{"type":"array","items":{"type":"string"},"optional":true},"organization":{"type":"string","optional":true},"languageCode":{"type":"string","optional":true},"administrativeArea":{"type":"string","optional":true},"sortingCode":{"type":"string","optional":true}},"optional":true},"types":{"type":"array","items":{"type":"string"},"optional":true},"restroom":{"type":"boolean","optional":true},"websiteUri":{"type":"string","optional":true},"plusCode":{"type":"object","members":{"globalCode":{"type":"string","optional":true},"compoundCode":{"type":"string","optional":true}},"optional":true},"servesLunch":{"type":"boolean","optional":true},"regularSecondaryOpeningHours":{"type":"array","items":{"type":"object","members":{"nextCloseTime":{"type":"string","optional":true},"weekdayDescriptions":{"type":"array","items":{"type":"string"},"optional":true},"openNow":{"type":"boolean","optional":true},"nextOpenTime":{"type":"string","optional":true},"secondaryHoursType":{"type":"string","enum":["SECONDARY_HOURS_TYPE_UNSPECIFIED","DRIVE_THROUGH","HAPPY_HOUR","DELIVERY","TAKEOUT","KITCHEN","BREAKFAST","LUNCH","DINNER","BRUNCH","PICKUP","ACCESS","SENIOR_HOURS","ONLINE_SERVICE_HOURS"],"optional":true},"specialDays":{"type":"array","items":{"type":"object","members":{"date":{"type":"object","members":{"month":{"type":"number","optional":true},"year":{"type":"number","optional":true},"day":{"type":"number","optional":true}},"optional":true}}},"optional":true},"periods":{"type":"array","items":{"type":"object","members":{"close":{"type":"object","members":{"hour":{"type":"number","optional":true},"day":{"type":"number","optional":true},"minute":{"type":"number","optional":true},"date":{"type":"object","members":{"month":{"type":"number","optional":true},"year":{"type":"number","optional":true},"day":{"type":"number","optional":true}},"optional":true},"truncated":{"type":"boolean","optional":true}},"optional":true},"open":{"type":"object","members":{"hour":{"type":"number","optional":true},"day":{"type":"number","optional":true},"minute":{"type":"number","optional":true},"date":{"type":"object","members":{"month":{"type":"number","optional":true},"year":{"type":"number","optional":true},"day":{"type":"number","optional":true}},"optional":true},"truncated":{"type":"boolean","optional":true}},"optional":true}}},"optional":true}}},"optional":true},"reservable":{"type":"boolean","optional":true},"navigationPoints":{"type":"array","items":{"type":"object","members":{"displayName":{"type":"object","members":{"languageCode":{"type":"string","optional":true},"text":{"type":"string","optional":true}},"optional":true},"travelModes":{"type":"array","items":{"type":"string","enum":["TRAVEL_MODE_UNSPECIFIED","DRIVE","WALK"]},"optional":true},"location":{"type":"object","members":{"longitude":{"type":"number","optional":true},"latitude":{"type":"number","optional":true}},"optional":true},"usages":{"type":"array","items":{"type":"string","enum":["USAGE_UNSPECIFIED","DROPOFF","PICKUP","PARKING"]},"optional":true},"navigationPointToken":{"type":"string","optional":true}}},"optional":true},"delivery":{"type":"boolean","optional":true},"servesCoffee":{"type":"boolean","optional":true},"currentOpeningHours":{"type":"object","members":{"nextCloseTime":{"type":"string","optional":true},"weekdayDescriptions":{"type":"array","items":{"type":"string"},"optional":true},"openNow":{"type":"boolean","optional":true},"nextOpenTime":{"type":"string","optional":true},"secondaryHoursType":{"type":"string","enum":["SECONDARY_HOURS_TYPE_UNSPECIFIED","DRIVE_THROUGH","HAPPY_HOUR","DELIVERY","TAKEOUT","KITCHEN","BREAKFAST","LUNCH","DINNER","BRUNCH","PICKUP","ACCESS","SENIOR_HOURS","ONLINE_SERVICE_HOURS"],"optional":true},"specialDays":{"type":"array","items":{"type":"object","members":{"date":{"type":"object","members":{"month":{"type":"number","optional":true},"year":{"type":"number","optional":true},"day":{"type":"number","optional":true}},"optional":true}}},"optional":true},"periods":{"type":"array","items":{"type":"object","members":{"close":{"type":"object","members":{"hour":{"type":"number","optional":true},"day":{"type":"number","optional":true},"minute":{"type":"number","optional":true},"date":{"type":"object","members":{"month":{"type":"number","optional":true},"year":{"type":"number","optional":true},"day":{"type":"number","optional":true}},"optional":true},"truncated":{"type":"boolean","optional":true}},"optional":true},"open":{"type":"object","members":{"hour":{"type":"number","optional":true},"day":{"type":"number","optional":true},"minute":{"type":"number","optional":true},"date":{"type":"object","members":{"month":{"type":"number","optional":true},"year":{"type":"number","optional":true},"day":{"type":"number","optional":true}},"optional":true},"truncated":{"type":"boolean","optional":true}},"optional":true}}},"optional":true}},"optional":true},"name":{"type":"string","optional":true},"goodForWatchingSports":{"type":"boolean","optional":true},"iconMaskBaseUri":{"type":"string","optional":true},"internationalPhoneNumber":{"type":"string","optional":true},"subDestinations":{"type":"array","items":{"type":"object","members":{"name":{"type":"string","optional":true},"id":{"type":"string","optional":true}}},"optional":true},"parkingOptions":{"type":"object","members":{"paidGarageParking":{"type":"boolean","optional":true},"paidParkingLot":{"type":"boolean","optional":true},"freeGarageParking":{"type":"boolean","optional":true},"valetParking":{"type":"boolean","optional":true},"freeParkingLot":{"type":"boolean","optional":true},"freeStreetParking":{"type":"boolean","optional":true},"paidStreetParking":{"type":"boolean","optional":true}},"optional":true},"paymentOptions":{"type":"object","members":{"acceptsDebitCards":{"type":"boolean","optional":true},"acceptsCashOnly":{"type":"boolean","optional":true},"acceptsCreditCards":{"type":"boolean","optional":true},"acceptsNfc":{"type":"boolean","optional":true}},"optional":true},"evChargeAmenitySummary":{"type":"object","members":{"disclosureText":{"type":"object","members":{"languageCode":{"type":"string","optional":true},"text":{"type":"string","optional":true}},"optional":true},"restaurant":{"type":"object","members":{"referencedPlaces":{"type":"array","items":{"type":"string"},"optional":true},"content":{"type":"object","members":{"languageCode":{"type":"string","optional":true},"text":{"type":"string","optional":true}},"optional":true}},"optional":true},"store":{"type":"object","members":{"referencedPlaces":{"type":"array","items":{"type":"string"},"optional":true},"content":{"type":"object","members":{"languageCode":{"type":"string","optional":true},"text":{"type":"string","optional":true}},"optional":true}},"optional":true},"coffee":{"type":"object","members":{"referencedPlaces":{"type":"array","items":{"type":"string"},"optional":true},"content":{"type":"object","members":{"languageCode":{"type":"string","optional":true},"text":{"type":"string","optional":true}},"optional":true}},"optional":true},"overview":{"type":"object","members":{"referencedPlaces":{"type":"array","items":{"type":"string"},"optional":true},"content":{"type":"object","members":{"languageCode":{"type":"string","optional":true},"text":{"type":"string","optional":true}},"optional":true}},"optional":true},"flagContentUri":{"type":"string","optional":true}},"optional":true},"formattedAddress":{"type":"string","optional":true},"googleMapsLinks":{"type":"object","members":{"placeUri":{"type":"string","optional":true},"writeAReviewUri":{"type":"string","optional":true},"photosUri":{"type":"string","optional":true},"reviewsUri":{"type":"string","optional":true},"directionsUri":{"type":"string","optional":true}},"optional":true},"evChargeOptions":{"type":"object","members":{"connectorCount":{"type":"number","optional":true},"connectorAggregation":{"type":"array","items":{"type":"object","members":{"outOfServiceCount":{"type":"number","optional":true},"maxChargeRateKw":{"type":"number","optional":true},"availabilityLastUpdateTime":{"type":"string","optional":true},"type":{"type":"string","enum":["EV_CONNECTOR_TYPE_UNSPECIFIED","EV_CONNECTOR_TYPE_OTHER","EV_CONNECTOR_TYPE_J1772","EV_CONNECTOR_TYPE_TYPE_2","EV_CONNECTOR_TYPE_CHADEMO","EV_CONNECTOR_TYPE_CCS_COMBO_1","EV_CONNECTOR_TYPE_CCS_COMBO_2","EV_CONNECTOR_TYPE_TESLA","EV_CONNECTOR_TYPE_UNSPECIFIED_GB_T","EV_CONNECTOR_TYPE_UNSPECIFIED_WALL_OUTLET","EV_CONNECTOR_TYPE_NACS"],"optional":true},"count":{"type":"number","optional":true},"availableCount":{"type":"number","optional":true}}},"optional":true}},"optional":true},"nationalPhoneNumber":{"type":"string","optional":true},"goodForGroups":{"type":"boolean","optional":true},"entrances":{"type":"array","items":{"type":"object","members":{"tags":{"type":"array","items":{"type":"string","enum":["TAG_UNSPECIFIED","PREFERRED"]},"optional":true},"location":{"type":"object","members":{"longitude":{"type":"number","optional":true},"latitude":{"type":"number","optional":true}},"optional":true}}},"optional":true},"outdoorSeating":{"type":"boolean","optional":true},"servesDinner":{"type":"boolean","optional":true},"attributions":{"type":"array","items":{"type":"object","members":{"provider":{"type":"string","optional":true},"providerUri":{"type":"string","optional":true}}},"optional":true},"servesVegetarianFood":{"type":"boolean","optional":true},"displayName":{"type":"object","members":{"languageCode":{"type":"string","optional":true},"text":{"type":"string","optional":true}},"optional":true},"googleMapsUri":{"type":"string","optional":true},"curbsidePickup":{"type":"boolean","optional":true},"utcOffsetMinutes":{"type":"number","optional":true},"transitStation":{"type":"object","members":{"agencies":{"type":"array","items":{"type":"object","members":{"lines":{"type":"array","items":{"type":"object","members":{"textColor":{"type":"string","optional":true},"vehicleIcon":{"type":"object","members":{"nameIncluded":{"type":"boolean","optional":true},"url":{"type":"string","optional":true}},"optional":true},"url":{"type":"string","optional":true},"id":{"type":"string","optional":true},"icon":{"type":"object","members":{"nameIncluded":{"type":"boolean","optional":true},"url":{"type":"string","optional":true}},"optional":true},"backgroundColor":{"type":"string","optional":true},"vehicleType":{"type":"string","enum":["VEHICLE_TYPE_UNSPECIFIED","RAIL","METRO_RAIL","SUBWAY","TRAM","MONORAIL","HEAVY_RAIL","COMMUTER_TRAIN","HIGH_SPEED_TRAIN","LONG_DISTANCE_TRAIN","BUS","INTERCITY_BUS","TROLLEYBUS","SHARE_TAXI","COACH","FERRY","CABLE_CAR","GONDOLA_LIFT","FUNICULAR","SPECIAL","HORSE_CARRIAGE","AIRPLANE"],"optional":true},"displayName":{"type":"object","members":{"languageCode":{"type":"string","optional":true},"text":{"type":"string","optional":true}},"optional":true},"shortDisplayName":{"type":"object","members":{"languageCode":{"type":"string","optional":true},"text":{"type":"string","optional":true}},"optional":true}}},"optional":true},"fareUrl":{"type":"string","optional":true},"displayName":{"type":"object","members":{"languageCode":{"type":"string","optional":true},"text":{"type":"string","optional":true}},"optional":true},"url":{"type":"string","optional":true},"icon":{"type":"object","members":{"nameIncluded":{"type":"boolean","optional":true},"url":{"type":"string","optional":true}},"optional":true}}},"optional":true},"stops":{"type":"array","items":{"type":"object","members":{"displayName":{"type":"object","members":{"languageCode":{"type":"string","optional":true},"text":{"type":"string","optional":true}},"optional":true},"stopCode":{"type":"object","members":{"languageCode":{"type":"string","optional":true},"text":{"type":"string","optional":true}},"optional":true},"id":{"type":"string","optional":true},"platformCode":{"type":"object","members":{"languageCode":{"type":"string","optional":true},"text":{"type":"string","optional":true}},"optional":true},"wheelchairAccessibleEntrance":{"type":"boolean","optional":true},"signageText":{"type":"object","members":{"languageCode":{"type":"string","optional":true},"text":{"type":"string","optional":true}},"optional":true},"location":{"type":"object","members":{"longitude":{"type":"number","optional":true},"latitude":{"type":"number","optional":true}},"optional":true}}},"optional":true},"displayName":{"type":"object","members":{"languageCode":{"type":"string","optional":true},"text":{"type":"string","optional":true}},"optional":true}},"optional":true},"priceRange":{"type":"object","members":{"startPrice":{"type":"object","members":{"currencyCode":{"type":"string","optional":true},"units":{"type":"string","optional":true},"nanos":{"type":"number","optional":true}},"optional":true},"endPrice":{"type":"object","members":{"currencyCode":{"type":"string","optional":true},"units":{"type":"string","optional":true},"nanos":{"type":"number","optional":true}},"optional":true}},"optional":true},"businessStatus":{"type":"string","enum":["BUSINESS_STATUS_UNSPECIFIED","OPERATIONAL","CLOSED_TEMPORARILY","CLOSED_PERMANENTLY","FUTURE_OPENING"],"optional":true},"addressComponents":{"type":"array","items":{"type":"object","members":{"languageCode":{"type":"string","optional":true},"types":{"type":"array","items":{"type":"string"},"optional":true},"shortText":{"type":"string","optional":true},"longText":{"type":"string","optional":true}}},"optional":true},"allowsDogs":{"type":"boolean","optional":true},"servesDessert":{"type":"boolean","optional":true},"movedPlace":{"type":"string","optional":true},"id":{"type":"string","optional":true},"consumerAlert":{"type":"object","members":{"details":{"type":"object","members":{"title":{"type":"string","optional":true},"aboutLink":{"type":"object","members":{"title":{"type":"string","optional":true},"uri":{"type":"string","optional":true}},"optional":true},"description":{"type":"string","optional":true}},"optional":true},"languageCode":{"type":"string","optional":true},"overview":{"type":"string","optional":true}},"optional":true},"accessibilityOptions":{"type":"object","members":{"wheelchairAccessibleParking":{"type":"boolean","optional":true},"wheelchairAccessibleSeating":{"type":"boolean","optional":true},"wheelchairAccessibleEntrance":{"type":"boolean","optional":true},"wheelchairAccessibleRestroom":{"type":"boolean","optional":true}},"optional":true},"fuelOptions":{"type":"object","members":{"fuelPrices":{"type":"array","items":{"type":"object","members":{"updateTime":{"type":"string","optional":true},"price":{"type":"object","members":{"currencyCode":{"type":"string","optional":true},"units":{"type":"string","optional":true},"nanos":{"type":"number","optional":true}},"optional":true},"type":{"type":"string","enum":["FUEL_TYPE_UNSPECIFIED","DIESEL","DIESEL_PLUS","REGULAR_UNLEADED","MIDGRADE","PREMIUM","SP91","SP91_E10","SP92","SP95","SP95_E10","SP98","SP99","SP100","LPG","E80","E85","E100","METHANE","BIO_DIESEL","TRUCK_DIESEL"],"optional":true}}},"optional":true}},"optional":true},"goodForChildren":{"type":"boolean","optional":true},"liveMusic":{"type":"boolean","optional":true},"menuForChildren":{"type":"boolean","optional":true},"adrFormatAddress":{"type":"string","optional":true},"rating":{"type":"number","optional":true},"priceLevel":{"type":"string","enum":["PRICE_LEVEL_UNSPECIFIED","PRICE_LEVEL_FREE","PRICE_LEVEL_INEXPENSIVE","PRICE_LEVEL_MODERATE","PRICE_LEVEL_EXPENSIVE","PRICE_LEVEL_VERY_EXPENSIVE"],"optional":true},"pureServiceAreaBusiness":{"type":"boolean","optional":true},"editorialSummary":{"type":"object","members":{"languageCode":{"type":"string","optional":true},"text":{"type":"string","optional":true}},"optional":true},"reviews":{"type":"array","items":{"type":"object","members":{"originalText":{"type":"object","members":{"languageCode":{"type":"string","optional":true},"text":{"type":"string","optional":true}},"optional":true},"googleMapsUri":{"type":"string","optional":true},"visitDate":{"type":"object","members":{"month":{"type":"number","optional":true},"year":{"type":"number","optional":true},"day":{"type":"number","optional":true}},"optional":true},"rating":{"type":"number","optional":true},"relativePublishTimeDescription":{"type":"string","optional":true},"text":{"type":"object","members":{"languageCode":{"type":"string","optional":true},"text":{"type":"string","optional":true}},"optional":true},"authorAttribution":{"type":"object","members":{"photoUri":{"type":"string","optional":true},"uri":{"type":"string","optional":true},"displayName":{"type":"string","optional":true}},"optional":true},"name":{"type":"string","optional":true},"publishTime":{"type":"string","optional":true},"flagContentUri":{"type":"string","optional":true}}},"optional":true}}},"searchText":{"desc":"Places API (New) text search including pagination and regional/location filters.","ops":["query"],"queryFields":[],"params":["routingParameters","priceLevels","locationRestriction","pageToken","minRating","searchAlongRouteParameters","maxResultCount","includeFutureOpeningBusinesses","includePureServiceAreaBusinesses","evOptions","includedType","openNow","regionCode","rankPreference","strictTypeFiltering","locationBias","pageSize","languageCode","textQuery"],"parameterFields":{"routingParameters":{"type":"object","members":{"routeModifiers":{"type":"object","members":{"avoidIndoor":{"type":"boolean","optional":true},"avoidFerries":{"type":"boolean","optional":true},"avoidHighways":{"type":"boolean","optional":true},"avoidTolls":{"type":"boolean","optional":true}},"optional":true},"origin":{"type":"object","members":{"longitude":{"type":"number","optional":true},"latitude":{"type":"number","optional":true}},"optional":true},"routingPreference":{"type":"string","enum":["ROUTING_PREFERENCE_UNSPECIFIED","TRAFFIC_UNAWARE","TRAFFIC_AWARE","TRAFFIC_AWARE_OPTIMAL"],"optional":true},"travelMode":{"type":"string","enum":["TRAVEL_MODE_UNSPECIFIED","DRIVE","BICYCLE","WALK","TWO_WHEELER"],"optional":true}},"optional":true},"priceLevels":{"type":"array","items":{"type":"string","enum":["PRICE_LEVEL_UNSPECIFIED","PRICE_LEVEL_FREE","PRICE_LEVEL_INEXPENSIVE","PRICE_LEVEL_MODERATE","PRICE_LEVEL_EXPENSIVE","PRICE_LEVEL_VERY_EXPENSIVE"]},"optional":true},"locationRestriction":{"type":"object","members":{"rectangle":{"type":"object","members":{"low":{"type":"object","members":{"longitude":{"type":"number","optional":true},"latitude":{"type":"number","optional":true}},"optional":true},"high":{"type":"object","members":{"longitude":{"type":"number","optional":true},"latitude":{"type":"number","optional":true}},"optional":true}},"optional":true}},"optional":true},"pageToken":{"type":"string","optional":true},"minRating":{"type":"number","optional":true},"searchAlongRouteParameters":{"type":"object","members":{"polyline":{"type":"object","members":{"encodedPolyline":{"type":"string","optional":true}},"optional":true}},"optional":true},"maxResultCount":{"type":"number","optional":true},"includeFutureOpeningBusinesses":{"type":"boolean","optional":true},"includePureServiceAreaBusinesses":{"type":"boolean","optional":true},"evOptions":{"type":"object","members":{"connectorTypes":{"type":"array","items":{"type":"string","enum":["EV_CONNECTOR_TYPE_UNSPECIFIED","EV_CONNECTOR_TYPE_OTHER","EV_CONNECTOR_TYPE_J1772","EV_CONNECTOR_TYPE_TYPE_2","EV_CONNECTOR_TYPE_CHADEMO","EV_CONNECTOR_TYPE_CCS_COMBO_1","EV_CONNECTOR_TYPE_CCS_COMBO_2","EV_CONNECTOR_TYPE_TESLA","EV_CONNECTOR_TYPE_UNSPECIFIED_GB_T","EV_CONNECTOR_TYPE_UNSPECIFIED_WALL_OUTLET","EV_CONNECTOR_TYPE_NACS"]},"optional":true},"minimumChargingRateKw":{"type":"number","optional":true}},"optional":true},"includedType":{"type":"string","optional":true},"openNow":{"type":"boolean","optional":true},"regionCode":{"type":"string","optional":true},"rankPreference":{"type":"string","enum":["RANK_PREFERENCE_UNSPECIFIED","DISTANCE","RELEVANCE"],"optional":true},"strictTypeFiltering":{"type":"boolean","optional":true},"locationBias":{"type":"object","members":{"rectangle":{"type":"object","members":{"low":{"type":"object","members":{"longitude":{"type":"number","optional":true},"latitude":{"type":"number","optional":true}},"optional":true},"high":{"type":"object","members":{"longitude":{"type":"number","optional":true},"latitude":{"type":"number","optional":true}},"optional":true}},"optional":true},"circle":{"type":"object","members":{"center":{"type":"object","members":{"longitude":{"type":"number","optional":true},"latitude":{"type":"number","optional":true}},"optional":true},"radius":{"type":"number","optional":true}},"optional":true}},"optional":true},"pageSize":{"type":"number","optional":true},"languageCode":{"type":"string","optional":true},"textQuery":{"type":"string"}},"requiredParams":["textQuery"],"read":"anonymous","anonymous":["read"],"enforcedBy":{"read":"the provider at places.googleapis.com, under the app's configured credentials"},"fields":{"nextPageToken":{"type":"string","optional":true},"routingSummaries":{"type":"array","items":{"type":"object","members":{"legs":{"type":"array","items":{"type":"object","members":{"duration":{"type":"string","optional":true},"distanceMeters":{"type":"number","optional":true}}},"optional":true},"directionsUri":{"type":"string","optional":true}}},"optional":true},"contextualContents":{"type":"array","items":{"type":"object","members":{"reviews":{"type":"array","items":{"type":"object","members":{"originalText":{"type":"object","members":{"languageCode":{"type":"string","optional":true},"text":{"type":"string","optional":true}},"optional":true},"googleMapsUri":{"type":"string","optional":true},"visitDate":{"type":"object","members":{"month":{"type":"number","optional":true},"year":{"type":"number","optional":true},"day":{"type":"number","optional":true}},"optional":true},"rating":{"type":"number","optional":true},"relativePublishTimeDescription":{"type":"string","optional":true},"text":{"type":"object","members":{"languageCode":{"type":"string","optional":true},"text":{"type":"string","optional":true}},"optional":true},"authorAttribution":{"type":"object","members":{"photoUri":{"type":"string","optional":true},"uri":{"type":"string","optional":true},"displayName":{"type":"string","optional":true}},"optional":true},"name":{"type":"string","optional":true},"publishTime":{"type":"string","optional":true},"flagContentUri":{"type":"string","optional":true}}},"optional":true},"justifications":{"type":"array","items":{"type":"object","members":{"businessAvailabilityAttributesJustification":{"type":"object","members":{"takeout":{"type":"boolean","optional":true},"delivery":{"type":"boolean","optional":true},"dineIn":{"type":"boolean","optional":true}},"optional":true},"reviewJustification":{"type":"object","members":{"highlightedText":{"type":"object","members":{"text":{"type":"string","optional":true},"highlightedTextRanges":{"type":"array","items":{"type":"object","members":{"startIndex":{"type":"number","optional":true},"endIndex":{"type":"number","optional":true}}},"optional":true}},"optional":true},"review":{"type":"object","members":{"originalText":{"type":"object","members":{"languageCode":{"type":"string","optional":true},"text":{"type":"string","optional":true}},"optional":true},"googleMapsUri":{"type":"string","optional":true},"visitDate":{"type":"object","members":{"month":{"type":"number","optional":true},"year":{"type":"number","optional":true},"day":{"type":"number","optional":true}},"optional":true},"rating":{"type":"number","optional":true},"relativePublishTimeDescription":{"type":"string","optional":true},"text":{"type":"object","members":{"languageCode":{"type":"string","optional":true},"text":{"type":"string","optional":true}},"optional":true},"authorAttribution":{"type":"object","members":{"photoUri":{"type":"string","optional":true},"uri":{"type":"string","optional":true},"displayName":{"type":"string","optional":true}},"optional":true},"name":{"type":"string","optional":true},"publishTime":{"type":"string","optional":true},"flagContentUri":{"type":"string","optional":true}},"optional":true}},"optional":true}}},"optional":true},"photos":{"type":"array","items":{"type":"object","members":{"googleMapsUri":{"type":"string","optional":true},"name":{"type":"string","optional":true},"flagContentUri":{"type":"string","optional":true},"heightPx":{"type":"number","optional":true},"authorAttributions":{"type":"array","items":{"type":"object","members":{"photoUri":{"type":"string","optional":true},"uri":{"type":"string","optional":true},"displayName":{"type":"string","optional":true}}},"optional":true},"widthPx":{"type":"number","optional":true}}},"optional":true}}},"optional":true},"searchUri":{"type":"string","optional":true},"places":{"type":"array","items":{"type":"object","members":{"currentSecondaryOpeningHours":{"type":"array","items":{"type":"object","members":{"nextCloseTime":{"type":"string","optional":true},"weekdayDescriptions":{"type":"array","items":{"type":"string"},"optional":true},"openNow":{"type":"boolean","optional":true},"nextOpenTime":{"type":"string","optional":true},"secondaryHoursType":{"type":"string","enum":["SECONDARY_HOURS_TYPE_UNSPECIFIED","DRIVE_THROUGH","HAPPY_HOUR","DELIVERY","TAKEOUT","KITCHEN","BREAKFAST","LUNCH","DINNER","BRUNCH","PICKUP","ACCESS","SENIOR_HOURS","ONLINE_SERVICE_HOURS"],"optional":true},"specialDays":{"type":"array","items":{"type":"object","members":{"date":{"type":"object","members":{"month":{"type":"number","optional":true},"year":{"type":"number","optional":true},"day":{"type":"number","optional":true}},"optional":true}}},"optional":true},"periods":{"type":"array","items":{"type":"object","members":{"close":{"type":"object","members":{"hour":{"type":"number","optional":true},"day":{"type":"number","optional":true},"minute":{"type":"number","optional":true},"date":{"type":"object","members":{"month":{"type":"number","optional":true},"year":{"type":"number","optional":true},"day":{"type":"number","optional":true}},"optional":true},"truncated":{"type":"boolean","optional":true}},"optional":true},"open":{"type":"object","members":{"hour":{"type":"number","optional":true},"day":{"type":"number","optional":true},"minute":{"type":"number","optional":true},"date":{"type":"object","members":{"month":{"type":"number","optional":true},"year":{"type":"number","optional":true},"day":{"type":"number","optional":true}},"optional":true},"truncated":{"type":"boolean","optional":true}},"optional":true}}},"optional":true}}},"optional":true},"addressDescriptor":{"type":"object","members":{"landmarks":{"type":"array","items":{"type":"object","members":{"spatialRelationship":{"type":"string","enum":["NEAR","WITHIN","BESIDE","ACROSS_THE_ROAD","DOWN_THE_ROAD","AROUND_THE_CORNER","BEHIND"],"optional":true},"placeId":{"type":"string","optional":true},"displayName":{"type":"object","members":{"languageCode":{"type":"string","optional":true},"text":{"type":"string","optional":true}},"optional":true},"straightLineDistanceMeters":{"type":"number","optional":true},"name":{"type":"string","optional":true},"travelDistanceMeters":{"type":"number","optional":true},"types":{"type":"array","items":{"type":"string"},"optional":true}}},"optional":true},"areas":{"type":"array","items":{"type":"object","members":{"placeId":{"type":"string","optional":true},"containment":{"type":"string","enum":["CONTAINMENT_UNSPECIFIED","WITHIN","OUTSKIRTS","NEAR"],"optional":true},"displayName":{"type":"object","members":{"languageCode":{"type":"string","optional":true},"text":{"type":"string","optional":true}},"optional":true},"name":{"type":"string","optional":true}}},"optional":true}},"optional":true},"primaryType":{"type":"string","optional":true},"servesBrunch":{"type":"boolean","optional":true},"openingDate":{"type":"object","members":{"month":{"type":"number","optional":true},"year":{"type":"number","optional":true},"day":{"type":"number","optional":true}},"optional":true},"neighborhoodSummary":{"type":"object","members":{"overview":{"type":"object","members":{"referencedPlaces":{"type":"array","items":{"type":"string"},"optional":true},"content":{"type":"object","members":{"languageCode":{"type":"string","optional":true},"text":{"type":"string","optional":true}},"optional":true}},"optional":true},"flagContentUri":{"type":"string","optional":true},"disclosureText":{"type":"object","members":{"languageCode":{"type":"string","optional":true},"text":{"type":"string","optional":true}},"optional":true},"description":{"type":"object","members":{"referencedPlaces":{"type":"array","items":{"type":"string"},"optional":true},"content":{"type":"object","members":{"languageCode":{"type":"string","optional":true},"text":{"type":"string","optional":true}},"optional":true}},"optional":true}},"optional":true},"servesBeer":{"type":"boolean","optional":true},"primaryTypeDisplayName":{"type":"object","members":{"languageCode":{"type":"string","optional":true},"text":{"type":"string","optional":true}},"optional":true},"location":{"type":"object","members":{"longitude":{"type":"number","optional":true},"latitude":{"type":"number","optional":true}},"optional":true},"googleMapsTypeLabel":{"type":"object","members":{"languageCode":{"type":"string","optional":true},"text":{"type":"string","optional":true}},"optional":true},"takeout":{"type":"boolean","optional":true},"iconBackgroundColor":{"type":"string","optional":true},"containingPlaces":{"type":"array","items":{"type":"object","members":{"name":{"type":"string","optional":true},"id":{"type":"string","optional":true}}},"optional":true},"viewport":{"type":"object","members":{"low":{"type":"object","members":{"longitude":{"type":"number","optional":true},"latitude":{"type":"number","optional":true}},"optional":true},"high":{"type":"object","members":{"longitude":{"type":"number","optional":true},"latitude":{"type":"number","optional":true}},"optional":true}},"optional":true},"timeZone":{"type":"object","members":{"version":{"type":"string","optional":true},"id":{"type":"string","optional":true}},"optional":true},"dineIn":{"type":"boolean","optional":true},"servesCocktails":{"type":"boolean","optional":true},"shortFormattedAddress":{"type":"string","optional":true},"reviewSummary":{"type":"object","members":{"text":{"type":"object","members":{"languageCode":{"type":"string","optional":true},"text":{"type":"string","optional":true}},"optional":true},"flagContentUri":{"type":"string","optional":true},"disclosureText":{"type":"object","members":{"languageCode":{"type":"string","optional":true},"text":{"type":"string","optional":true}},"optional":true},"reviewsUri":{"type":"string","optional":true}},"optional":true},"photos":{"type":"array","items":{"type":"object","members":{"googleMapsUri":{"type":"string","optional":true},"name":{"type":"string","optional":true},"flagContentUri":{"type":"string","optional":true},"heightPx":{"type":"number","optional":true},"authorAttributions":{"type":"array","items":{"type":"object","members":{"photoUri":{"type":"string","optional":true},"uri":{"type":"string","optional":true},"displayName":{"type":"string","optional":true}}},"optional":true},"widthPx":{"type":"number","optional":true}}},"optional":true},"generativeSummary":{"type":"object","members":{"disclosureText":{"type":"object","members":{"languageCode":{"type":"string","optional":true},"text":{"type":"string","optional":true}},"optional":true},"overview":{"type":"object","members":{"languageCode":{"type":"string","optional":true},"text":{"type":"string","optional":true}},"optional":true},"overviewFlagContentUri":{"type":"string","optional":true}},"optional":true},"movedPlaceId":{"type":"string","optional":true},"userRatingCount":{"type":"number","optional":true},"servesBreakfast":{"type":"boolean","optional":true},"regularOpeningHours":{"type":"object","members":{"nextCloseTime":{"type":"string","optional":true},"weekdayDescriptions":{"type":"array","items":{"type":"string"},"optional":true},"openNow":{"type":"boolean","optional":true},"nextOpenTime":{"type":"string","optional":true},"secondaryHoursType":{"type":"string","enum":["SECONDARY_HOURS_TYPE_UNSPECIFIED","DRIVE_THROUGH","HAPPY_HOUR","DELIVERY","TAKEOUT","KITCHEN","BREAKFAST","LUNCH","DINNER","BRUNCH","PICKUP","ACCESS","SENIOR_HOURS","ONLINE_SERVICE_HOURS"],"optional":true},"specialDays":{"type":"array","items":{"type":"object","members":{"date":{"type":"object","members":{"month":{"type":"number","optional":true},"year":{"type":"number","optional":true},"day":{"type":"number","optional":true}},"optional":true}}},"optional":true},"periods":{"type":"array","items":{"type":"object","members":{"close":{"type":"object","members":{"hour":{"type":"number","optional":true},"day":{"type":"number","optional":true},"minute":{"type":"number","optional":true},"date":{"type":"object","members":{"month":{"type":"number","optional":true},"year":{"type":"number","optional":true},"day":{"type":"number","optional":true}},"optional":true},"truncated":{"type":"boolean","optional":true}},"optional":true},"open":{"type":"object","members":{"hour":{"type":"number","optional":true},"day":{"type":"number","optional":true},"minute":{"type":"number","optional":true},"date":{"type":"object","members":{"month":{"type":"number","optional":true},"year":{"type":"number","optional":true},"day":{"type":"number","optional":true}},"optional":true},"truncated":{"type":"boolean","optional":true}},"optional":true}}},"optional":true}},"optional":true},"servesWine":{"type":"boolean","optional":true},"postalAddress":{"type":"object","members":{"regionCode":{"type":"string","optional":true},"sublocality":{"type":"string","optional":true},"postalCode":{"type":"string","optional":true},"revision":{"type":"number","optional":true},"locality":{"type":"string","optional":true},"recipients":{"type":"array","items":{"type":"string"},"optional":true},"addressLines":{"type":"array","items":{"type":"string"},"optional":true},"organization":{"type":"string","optional":true},"languageCode":{"type":"string","optional":true},"administrativeArea":{"type":"string","optional":true},"sortingCode":{"type":"string","optional":true}},"optional":true},"types":{"type":"array","items":{"type":"string"},"optional":true},"restroom":{"type":"boolean","optional":true},"websiteUri":{"type":"string","optional":true},"plusCode":{"type":"object","members":{"globalCode":{"type":"string","optional":true},"compoundCode":{"type":"string","optional":true}},"optional":true},"servesLunch":{"type":"boolean","optional":true},"regularSecondaryOpeningHours":{"type":"array","items":{"type":"object","members":{"nextCloseTime":{"type":"string","optional":true},"weekdayDescriptions":{"type":"array","items":{"type":"string"},"optional":true},"openNow":{"type":"boolean","optional":true},"nextOpenTime":{"type":"string","optional":true},"secondaryHoursType":{"type":"string","enum":["SECONDARY_HOURS_TYPE_UNSPECIFIED","DRIVE_THROUGH","HAPPY_HOUR","DELIVERY","TAKEOUT","KITCHEN","BREAKFAST","LUNCH","DINNER","BRUNCH","PICKUP","ACCESS","SENIOR_HOURS","ONLINE_SERVICE_HOURS"],"optional":true},"specialDays":{"type":"array","items":{"type":"object","members":{"date":{"type":"object","members":{"month":{"type":"number","optional":true},"year":{"type":"number","optional":true},"day":{"type":"number","optional":true}},"optional":true}}},"optional":true},"periods":{"type":"array","items":{"type":"object","members":{"close":{"type":"object","members":{"hour":{"type":"number","optional":true},"day":{"type":"number","optional":true},"minute":{"type":"number","optional":true},"date":{"type":"object","members":{"month":{"type":"number","optional":true},"year":{"type":"number","optional":true},"day":{"type":"number","optional":true}},"optional":true},"truncated":{"type":"boolean","optional":true}},"optional":true},"open":{"type":"object","members":{"hour":{"type":"number","optional":true},"day":{"type":"number","optional":true},"minute":{"type":"number","optional":true},"date":{"type":"object","members":{"month":{"type":"number","optional":true},"year":{"type":"number","optional":true},"day":{"type":"number","optional":true}},"optional":true},"truncated":{"type":"boolean","optional":true}},"optional":true}}},"optional":true}}},"optional":true},"reservable":{"type":"boolean","optional":true},"navigationPoints":{"type":"array","items":{"type":"object","members":{"displayName":{"type":"object","members":{"languageCode":{"type":"string","optional":true},"text":{"type":"string","optional":true}},"optional":true},"travelModes":{"type":"array","items":{"type":"string","enum":["TRAVEL_MODE_UNSPECIFIED","DRIVE","WALK"]},"optional":true},"location":{"type":"object","members":{"longitude":{"type":"number","optional":true},"latitude":{"type":"number","optional":true}},"optional":true},"usages":{"type":"array","items":{"type":"string","enum":["USAGE_UNSPECIFIED","DROPOFF","PICKUP","PARKING"]},"optional":true},"navigationPointToken":{"type":"string","optional":true}}},"optional":true},"delivery":{"type":"boolean","optional":true},"servesCoffee":{"type":"boolean","optional":true},"currentOpeningHours":{"type":"object","members":{"nextCloseTime":{"type":"string","optional":true},"weekdayDescriptions":{"type":"array","items":{"type":"string"},"optional":true},"openNow":{"type":"boolean","optional":true},"nextOpenTime":{"type":"string","optional":true},"secondaryHoursType":{"type":"string","enum":["SECONDARY_HOURS_TYPE_UNSPECIFIED","DRIVE_THROUGH","HAPPY_HOUR","DELIVERY","TAKEOUT","KITCHEN","BREAKFAST","LUNCH","DINNER","BRUNCH","PICKUP","ACCESS","SENIOR_HOURS","ONLINE_SERVICE_HOURS"],"optional":true},"specialDays":{"type":"array","items":{"type":"object","members":{"date":{"type":"object","members":{"month":{"type":"number","optional":true},"year":{"type":"number","optional":true},"day":{"type":"number","optional":true}},"optional":true}}},"optional":true},"periods":{"type":"array","items":{"type":"object","members":{"close":{"type":"object","members":{"hour":{"type":"number","optional":true},"day":{"type":"number","optional":true},"minute":{"type":"number","optional":true},"date":{"type":"object","members":{"month":{"type":"number","optional":true},"year":{"type":"number","optional":true},"day":{"type":"number","optional":true}},"optional":true},"truncated":{"type":"boolean","optional":true}},"optional":true},"open":{"type":"object","members":{"hour":{"type":"number","optional":true},"day":{"type":"number","optional":true},"minute":{"type":"number","optional":true},"date":{"type":"object","members":{"month":{"type":"number","optional":true},"year":{"type":"number","optional":true},"day":{"type":"number","optional":true}},"optional":true},"truncated":{"type":"boolean","optional":true}},"optional":true}}},"optional":true}},"optional":true},"name":{"type":"string","optional":true},"goodForWatchingSports":{"type":"boolean","optional":true},"iconMaskBaseUri":{"type":"string","optional":true},"internationalPhoneNumber":{"type":"string","optional":true},"subDestinations":{"type":"array","items":{"type":"object","members":{"name":{"type":"string","optional":true},"id":{"type":"string","optional":true}}},"optional":true},"parkingOptions":{"type":"object","members":{"paidGarageParking":{"type":"boolean","optional":true},"paidParkingLot":{"type":"boolean","optional":true},"freeGarageParking":{"type":"boolean","optional":true},"valetParking":{"type":"boolean","optional":true},"freeParkingLot":{"type":"boolean","optional":true},"freeStreetParking":{"type":"boolean","optional":true},"paidStreetParking":{"type":"boolean","optional":true}},"optional":true},"paymentOptions":{"type":"object","members":{"acceptsDebitCards":{"type":"boolean","optional":true},"acceptsCashOnly":{"type":"boolean","optional":true},"acceptsCreditCards":{"type":"boolean","optional":true},"acceptsNfc":{"type":"boolean","optional":true}},"optional":true},"evChargeAmenitySummary":{"type":"object","members":{"disclosureText":{"type":"object","members":{"languageCode":{"type":"string","optional":true},"text":{"type":"string","optional":true}},"optional":true},"restaurant":{"type":"object","members":{"referencedPlaces":{"type":"array","items":{"type":"string"},"optional":true},"content":{"type":"object","members":{"languageCode":{"type":"string","optional":true},"text":{"type":"string","optional":true}},"optional":true}},"optional":true},"store":{"type":"object","members":{"referencedPlaces":{"type":"array","items":{"type":"string"},"optional":true},"content":{"type":"object","members":{"languageCode":{"type":"string","optional":true},"text":{"type":"string","optional":true}},"optional":true}},"optional":true},"coffee":{"type":"object","members":{"referencedPlaces":{"type":"array","items":{"type":"string"},"optional":true},"content":{"type":"object","members":{"languageCode":{"type":"string","optional":true},"text":{"type":"string","optional":true}},"optional":true}},"optional":true},"overview":{"type":"object","members":{"referencedPlaces":{"type":"array","items":{"type":"string"},"optional":true},"content":{"type":"object","members":{"languageCode":{"type":"string","optional":true},"text":{"type":"string","optional":true}},"optional":true}},"optional":true},"flagContentUri":{"type":"string","optional":true}},"optional":true},"formattedAddress":{"type":"string","optional":true},"googleMapsLinks":{"type":"object","members":{"placeUri":{"type":"string","optional":true},"writeAReviewUri":{"type":"string","optional":true},"photosUri":{"type":"string","optional":true},"reviewsUri":{"type":"string","optional":true},"directionsUri":{"type":"string","optional":true}},"optional":true},"evChargeOptions":{"type":"object","members":{"connectorCount":{"type":"number","optional":true},"connectorAggregation":{"type":"array","items":{"type":"object","members":{"outOfServiceCount":{"type":"number","optional":true},"maxChargeRateKw":{"type":"number","optional":true},"availabilityLastUpdateTime":{"type":"string","optional":true},"type":{"type":"string","enum":["EV_CONNECTOR_TYPE_UNSPECIFIED","EV_CONNECTOR_TYPE_OTHER","EV_CONNECTOR_TYPE_J1772","EV_CONNECTOR_TYPE_TYPE_2","EV_CONNECTOR_TYPE_CHADEMO","EV_CONNECTOR_TYPE_CCS_COMBO_1","EV_CONNECTOR_TYPE_CCS_COMBO_2","EV_CONNECTOR_TYPE_TESLA","EV_CONNECTOR_TYPE_UNSPECIFIED_GB_T","EV_CONNECTOR_TYPE_UNSPECIFIED_WALL_OUTLET","EV_CONNECTOR_TYPE_NACS"],"optional":true},"count":{"type":"number","optional":true},"availableCount":{"type":"number","optional":true}}},"optional":true}},"optional":true},"nationalPhoneNumber":{"type":"string","optional":true},"goodForGroups":{"type":"boolean","optional":true},"entrances":{"type":"array","items":{"type":"object","members":{"tags":{"type":"array","items":{"type":"string","enum":["TAG_UNSPECIFIED","PREFERRED"]},"optional":true},"location":{"type":"object","members":{"longitude":{"type":"number","optional":true},"latitude":{"type":"number","optional":true}},"optional":true}}},"optional":true},"outdoorSeating":{"type":"boolean","optional":true},"servesDinner":{"type":"boolean","optional":true},"attributions":{"type":"array","items":{"type":"object","members":{"provider":{"type":"string","optional":true},"providerUri":{"type":"string","optional":true}}},"optional":true},"servesVegetarianFood":{"type":"boolean","optional":true},"displayName":{"type":"object","members":{"languageCode":{"type":"string","optional":true},"text":{"type":"string","optional":true}},"optional":true},"googleMapsUri":{"type":"string","optional":true},"curbsidePickup":{"type":"boolean","optional":true},"utcOffsetMinutes":{"type":"number","optional":true},"transitStation":{"type":"object","members":{"agencies":{"type":"array","items":{"type":"object","members":{"lines":{"type":"array","items":{"type":"object","members":{"textColor":{"type":"string","optional":true},"vehicleIcon":{"type":"object","members":{"nameIncluded":{"type":"boolean","optional":true},"url":{"type":"string","optional":true}},"optional":true},"url":{"type":"string","optional":true},"id":{"type":"string","optional":true},"icon":{"type":"object","members":{"nameIncluded":{"type":"boolean","optional":true},"url":{"type":"string","optional":true}},"optional":true},"backgroundColor":{"type":"string","optional":true},"vehicleType":{"type":"string","enum":["VEHICLE_TYPE_UNSPECIFIED","RAIL","METRO_RAIL","SUBWAY","TRAM","MONORAIL","HEAVY_RAIL","COMMUTER_TRAIN","HIGH_SPEED_TRAIN","LONG_DISTANCE_TRAIN","BUS","INTERCITY_BUS","TROLLEYBUS","SHARE_TAXI","COACH","FERRY","CABLE_CAR","GONDOLA_LIFT","FUNICULAR","SPECIAL","HORSE_CARRIAGE","AIRPLANE"],"optional":true},"displayName":{"type":"object","members":{"languageCode":{"type":"string","optional":true},"text":{"type":"string","optional":true}},"optional":true},"shortDisplayName":{"type":"object","members":{"languageCode":{"type":"string","optional":true},"text":{"type":"string","optional":true}},"optional":true}}},"optional":true},"fareUrl":{"type":"string","optional":true},"displayName":{"type":"object","members":{"languageCode":{"type":"string","optional":true},"text":{"type":"string","optional":true}},"optional":true},"url":{"type":"string","optional":true},"icon":{"type":"object","members":{"nameIncluded":{"type":"boolean","optional":true},"url":{"type":"string","optional":true}},"optional":true}}},"optional":true},"stops":{"type":"array","items":{"type":"object","members":{"displayName":{"type":"object","members":{"languageCode":{"type":"string","optional":true},"text":{"type":"string","optional":true}},"optional":true},"stopCode":{"type":"object","members":{"languageCode":{"type":"string","optional":true},"text":{"type":"string","optional":true}},"optional":true},"id":{"type":"string","optional":true},"platformCode":{"type":"object","members":{"languageCode":{"type":"string","optional":true},"text":{"type":"string","optional":true}},"optional":true},"wheelchairAccessibleEntrance":{"type":"boolean","optional":true},"signageText":{"type":"object","members":{"languageCode":{"type":"string","optional":true},"text":{"type":"string","optional":true}},"optional":true},"location":{"type":"object","members":{"longitude":{"type":"number","optional":true},"latitude":{"type":"number","optional":true}},"optional":true}}},"optional":true},"displayName":{"type":"object","members":{"languageCode":{"type":"string","optional":true},"text":{"type":"string","optional":true}},"optional":true}},"optional":true},"priceRange":{"type":"object","members":{"startPrice":{"type":"object","members":{"currencyCode":{"type":"string","optional":true},"units":{"type":"string","optional":true},"nanos":{"type":"number","optional":true}},"optional":true},"endPrice":{"type":"object","members":{"currencyCode":{"type":"string","optional":true},"units":{"type":"string","optional":true},"nanos":{"type":"number","optional":true}},"optional":true}},"optional":true},"businessStatus":{"type":"string","enum":["BUSINESS_STATUS_UNSPECIFIED","OPERATIONAL","CLOSED_TEMPORARILY","CLOSED_PERMANENTLY","FUTURE_OPENING"],"optional":true},"addressComponents":{"type":"array","items":{"type":"object","members":{"languageCode":{"type":"string","optional":true},"types":{"type":"array","items":{"type":"string"},"optional":true},"shortText":{"type":"string","optional":true},"longText":{"type":"string","optional":true}}},"optional":true},"allowsDogs":{"type":"boolean","optional":true},"servesDessert":{"type":"boolean","optional":true},"movedPlace":{"type":"string","optional":true},"id":{"type":"string","optional":true},"consumerAlert":{"type":"object","members":{"details":{"type":"object","members":{"title":{"type":"string","optional":true},"aboutLink":{"type":"object","members":{"title":{"type":"string","optional":true},"uri":{"type":"string","optional":true}},"optional":true},"description":{"type":"string","optional":true}},"optional":true},"languageCode":{"type":"string","optional":true},"overview":{"type":"string","optional":true}},"optional":true},"accessibilityOptions":{"type":"object","members":{"wheelchairAccessibleParking":{"type":"boolean","optional":true},"wheelchairAccessibleSeating":{"type":"boolean","optional":true},"wheelchairAccessibleEntrance":{"type":"boolean","optional":true},"wheelchairAccessibleRestroom":{"type":"boolean","optional":true}},"optional":true},"fuelOptions":{"type":"object","members":{"fuelPrices":{"type":"array","items":{"type":"object","members":{"updateTime":{"type":"string","optional":true},"price":{"type":"object","members":{"currencyCode":{"type":"string","optional":true},"units":{"type":"string","optional":true},"nanos":{"type":"number","optional":true}},"optional":true},"type":{"type":"string","enum":["FUEL_TYPE_UNSPECIFIED","DIESEL","DIESEL_PLUS","REGULAR_UNLEADED","MIDGRADE","PREMIUM","SP91","SP91_E10","SP92","SP95","SP95_E10","SP98","SP99","SP100","LPG","E80","E85","E100","METHANE","BIO_DIESEL","TRUCK_DIESEL"],"optional":true}}},"optional":true}},"optional":true},"goodForChildren":{"type":"boolean","optional":true},"liveMusic":{"type":"boolean","optional":true},"menuForChildren":{"type":"boolean","optional":true},"adrFormatAddress":{"type":"string","optional":true},"rating":{"type":"number","optional":true},"priceLevel":{"type":"string","enum":["PRICE_LEVEL_UNSPECIFIED","PRICE_LEVEL_FREE","PRICE_LEVEL_INEXPENSIVE","PRICE_LEVEL_MODERATE","PRICE_LEVEL_EXPENSIVE","PRICE_LEVEL_VERY_EXPENSIVE"],"optional":true},"pureServiceAreaBusiness":{"type":"boolean","optional":true},"editorialSummary":{"type":"object","members":{"languageCode":{"type":"string","optional":true},"text":{"type":"string","optional":true}},"optional":true},"reviews":{"type":"array","items":{"type":"object","members":{"originalText":{"type":"object","members":{"languageCode":{"type":"string","optional":true},"text":{"type":"string","optional":true}},"optional":true},"googleMapsUri":{"type":"string","optional":true},"visitDate":{"type":"object","members":{"month":{"type":"number","optional":true},"year":{"type":"number","optional":true},"day":{"type":"number","optional":true}},"optional":true},"rating":{"type":"number","optional":true},"relativePublishTimeDescription":{"type":"string","optional":true},"text":{"type":"object","members":{"languageCode":{"type":"string","optional":true},"text":{"type":"string","optional":true}},"optional":true},"authorAttribution":{"type":"object","members":{"photoUri":{"type":"string","optional":true},"uri":{"type":"string","optional":true},"displayName":{"type":"string","optional":true}},"optional":true},"name":{"type":"string","optional":true},"publishTime":{"type":"string","optional":true},"flagContentUri":{"type":"string","optional":true}}},"optional":true}}},"optional":true}}},"searchNearby":{"desc":"Places API (New) nearby search within a circle, with included/excluded place types.","ops":["query"],"queryFields":[],"params":["includedTypes","excludedPrimaryTypes","rankPreference","regionCode","locationRestriction","includedPrimaryTypes","routingParameters","languageCode","maxResultCount","includeFutureOpeningBusinesses","excludedTypes"],"parameterFields":{"includedTypes":{"type":"array","items":{"type":"string"},"optional":true},"excludedPrimaryTypes":{"type":"array","items":{"type":"string"},"optional":true},"rankPreference":{"type":"string","enum":["RANK_PREFERENCE_UNSPECIFIED","DISTANCE","POPULARITY"],"optional":true},"regionCode":{"type":"string","optional":true},"locationRestriction":{"type":"object","members":{"circle":{"type":"object","members":{"center":{"type":"object","members":{"longitude":{"type":"number","optional":true},"latitude":{"type":"number","optional":true}},"optional":true},"radius":{"type":"number","optional":true}},"optional":true}}},"includedPrimaryTypes":{"type":"array","items":{"type":"string"},"optional":true},"routingParameters":{"type":"object","members":{"routeModifiers":{"type":"object","members":{"avoidIndoor":{"type":"boolean","optional":true},"avoidFerries":{"type":"boolean","optional":true},"avoidHighways":{"type":"boolean","optional":true},"avoidTolls":{"type":"boolean","optional":true}},"optional":true},"origin":{"type":"object","members":{"longitude":{"type":"number","optional":true},"latitude":{"type":"number","optional":true}},"optional":true},"routingPreference":{"type":"string","enum":["ROUTING_PREFERENCE_UNSPECIFIED","TRAFFIC_UNAWARE","TRAFFIC_AWARE","TRAFFIC_AWARE_OPTIMAL"],"optional":true},"travelMode":{"type":"string","enum":["TRAVEL_MODE_UNSPECIFIED","DRIVE","BICYCLE","WALK","TWO_WHEELER"],"optional":true}},"optional":true},"languageCode":{"type":"string","optional":true},"maxResultCount":{"type":"number","optional":true},"includeFutureOpeningBusinesses":{"type":"boolean","optional":true},"excludedTypes":{"type":"array","items":{"type":"string"},"optional":true}},"requiredParams":["locationRestriction"],"read":"anonymous","anonymous":["read"],"enforcedBy":{"read":"the provider at places.googleapis.com, under the app's configured credentials"},"fields":{"routingSummaries":{"type":"array","items":{"type":"object","members":{"legs":{"type":"array","items":{"type":"object","members":{"duration":{"type":"string","optional":true},"distanceMeters":{"type":"number","optional":true}}},"optional":true},"directionsUri":{"type":"string","optional":true}}},"optional":true},"places":{"type":"array","items":{"type":"object","members":{"currentSecondaryOpeningHours":{"type":"array","items":{"type":"object","members":{"nextCloseTime":{"type":"string","optional":true},"weekdayDescriptions":{"type":"array","items":{"type":"string"},"optional":true},"openNow":{"type":"boolean","optional":true},"nextOpenTime":{"type":"string","optional":true},"secondaryHoursType":{"type":"string","enum":["SECONDARY_HOURS_TYPE_UNSPECIFIED","DRIVE_THROUGH","HAPPY_HOUR","DELIVERY","TAKEOUT","KITCHEN","BREAKFAST","LUNCH","DINNER","BRUNCH","PICKUP","ACCESS","SENIOR_HOURS","ONLINE_SERVICE_HOURS"],"optional":true},"specialDays":{"type":"array","items":{"type":"object","members":{"date":{"type":"object","members":{"month":{"type":"number","optional":true},"year":{"type":"number","optional":true},"day":{"type":"number","optional":true}},"optional":true}}},"optional":true},"periods":{"type":"array","items":{"type":"object","members":{"close":{"type":"object","members":{"hour":{"type":"number","optional":true},"day":{"type":"number","optional":true},"minute":{"type":"number","optional":true},"date":{"type":"object","members":{"month":{"type":"number","optional":true},"year":{"type":"number","optional":true},"day":{"type":"number","optional":true}},"optional":true},"truncated":{"type":"boolean","optional":true}},"optional":true},"open":{"type":"object","members":{"hour":{"type":"number","optional":true},"day":{"type":"number","optional":true},"minute":{"type":"number","optional":true},"date":{"type":"object","members":{"month":{"type":"number","optional":true},"year":{"type":"number","optional":true},"day":{"type":"number","optional":true}},"optional":true},"truncated":{"type":"boolean","optional":true}},"optional":true}}},"optional":true}}},"optional":true},"addressDescriptor":{"type":"object","members":{"landmarks":{"type":"array","items":{"type":"object","members":{"spatialRelationship":{"type":"string","enum":["NEAR","WITHIN","BESIDE","ACROSS_THE_ROAD","DOWN_THE_ROAD","AROUND_THE_CORNER","BEHIND"],"optional":true},"placeId":{"type":"string","optional":true},"displayName":{"type":"object","members":{"languageCode":{"type":"string","optional":true},"text":{"type":"string","optional":true}},"optional":true},"straightLineDistanceMeters":{"type":"number","optional":true},"name":{"type":"string","optional":true},"travelDistanceMeters":{"type":"number","optional":true},"types":{"type":"array","items":{"type":"string"},"optional":true}}},"optional":true},"areas":{"type":"array","items":{"type":"object","members":{"placeId":{"type":"string","optional":true},"containment":{"type":"string","enum":["CONTAINMENT_UNSPECIFIED","WITHIN","OUTSKIRTS","NEAR"],"optional":true},"displayName":{"type":"object","members":{"languageCode":{"type":"string","optional":true},"text":{"type":"string","optional":true}},"optional":true},"name":{"type":"string","optional":true}}},"optional":true}},"optional":true},"primaryType":{"type":"string","optional":true},"servesBrunch":{"type":"boolean","optional":true},"openingDate":{"type":"object","members":{"month":{"type":"number","optional":true},"year":{"type":"number","optional":true},"day":{"type":"number","optional":true}},"optional":true},"neighborhoodSummary":{"type":"object","members":{"overview":{"type":"object","members":{"referencedPlaces":{"type":"array","items":{"type":"string"},"optional":true},"content":{"type":"object","members":{"languageCode":{"type":"string","optional":true},"text":{"type":"string","optional":true}},"optional":true}},"optional":true},"flagContentUri":{"type":"string","optional":true},"disclosureText":{"type":"object","members":{"languageCode":{"type":"string","optional":true},"text":{"type":"string","optional":true}},"optional":true},"description":{"type":"object","members":{"referencedPlaces":{"type":"array","items":{"type":"string"},"optional":true},"content":{"type":"object","members":{"languageCode":{"type":"string","optional":true},"text":{"type":"string","optional":true}},"optional":true}},"optional":true}},"optional":true},"servesBeer":{"type":"boolean","optional":true},"primaryTypeDisplayName":{"type":"object","members":{"languageCode":{"type":"string","optional":true},"text":{"type":"string","optional":true}},"optional":true},"location":{"type":"object","members":{"longitude":{"type":"number","optional":true},"latitude":{"type":"number","optional":true}},"optional":true},"googleMapsTypeLabel":{"type":"object","members":{"languageCode":{"type":"string","optional":true},"text":{"type":"string","optional":true}},"optional":true},"takeout":{"type":"boolean","optional":true},"iconBackgroundColor":{"type":"string","optional":true},"containingPlaces":{"type":"array","items":{"type":"object","members":{"name":{"type":"string","optional":true},"id":{"type":"string","optional":true}}},"optional":true},"viewport":{"type":"object","members":{"low":{"type":"object","members":{"longitude":{"type":"number","optional":true},"latitude":{"type":"number","optional":true}},"optional":true},"high":{"type":"object","members":{"longitude":{"type":"number","optional":true},"latitude":{"type":"number","optional":true}},"optional":true}},"optional":true},"timeZone":{"type":"object","members":{"version":{"type":"string","optional":true},"id":{"type":"string","optional":true}},"optional":true},"dineIn":{"type":"boolean","optional":true},"servesCocktails":{"type":"boolean","optional":true},"shortFormattedAddress":{"type":"string","optional":true},"reviewSummary":{"type":"object","members":{"text":{"type":"object","members":{"languageCode":{"type":"string","optional":true},"text":{"type":"string","optional":true}},"optional":true},"flagContentUri":{"type":"string","optional":true},"disclosureText":{"type":"object","members":{"languageCode":{"type":"string","optional":true},"text":{"type":"string","optional":true}},"optional":true},"reviewsUri":{"type":"string","optional":true}},"optional":true},"photos":{"type":"array","items":{"type":"object","members":{"googleMapsUri":{"type":"string","optional":true},"name":{"type":"string","optional":true},"flagContentUri":{"type":"string","optional":true},"heightPx":{"type":"number","optional":true},"authorAttributions":{"type":"array","items":{"type":"object","members":{"photoUri":{"type":"string","optional":true},"uri":{"type":"string","optional":true},"displayName":{"type":"string","optional":true}}},"optional":true},"widthPx":{"type":"number","optional":true}}},"optional":true},"generativeSummary":{"type":"object","members":{"disclosureText":{"type":"object","members":{"languageCode":{"type":"string","optional":true},"text":{"type":"string","optional":true}},"optional":true},"overview":{"type":"object","members":{"languageCode":{"type":"string","optional":true},"text":{"type":"string","optional":true}},"optional":true},"overviewFlagContentUri":{"type":"string","optional":true}},"optional":true},"movedPlaceId":{"type":"string","optional":true},"userRatingCount":{"type":"number","optional":true},"servesBreakfast":{"type":"boolean","optional":true},"regularOpeningHours":{"type":"object","members":{"nextCloseTime":{"type":"string","optional":true},"weekdayDescriptions":{"type":"array","items":{"type":"string"},"optional":true},"openNow":{"type":"boolean","optional":true},"nextOpenTime":{"type":"string","optional":true},"secondaryHoursType":{"type":"string","enum":["SECONDARY_HOURS_TYPE_UNSPECIFIED","DRIVE_THROUGH","HAPPY_HOUR","DELIVERY","TAKEOUT","KITCHEN","BREAKFAST","LUNCH","DINNER","BRUNCH","PICKUP","ACCESS","SENIOR_HOURS","ONLINE_SERVICE_HOURS"],"optional":true},"specialDays":{"type":"array","items":{"type":"object","members":{"date":{"type":"object","members":{"month":{"type":"number","optional":true},"year":{"type":"number","optional":true},"day":{"type":"number","optional":true}},"optional":true}}},"optional":true},"periods":{"type":"array","items":{"type":"object","members":{"close":{"type":"object","members":{"hour":{"type":"number","optional":true},"day":{"type":"number","optional":true},"minute":{"type":"number","optional":true},"date":{"type":"object","members":{"month":{"type":"number","optional":true},"year":{"type":"number","optional":true},"day":{"type":"number","optional":true}},"optional":true},"truncated":{"type":"boolean","optional":true}},"optional":true},"open":{"type":"object","members":{"hour":{"type":"number","optional":true},"day":{"type":"number","optional":true},"minute":{"type":"number","optional":true},"date":{"type":"object","members":{"month":{"type":"number","optional":true},"year":{"type":"number","optional":true},"day":{"type":"number","optional":true}},"optional":true},"truncated":{"type":"boolean","optional":true}},"optional":true}}},"optional":true}},"optional":true},"servesWine":{"type":"boolean","optional":true},"postalAddress":{"type":"object","members":{"regionCode":{"type":"string","optional":true},"sublocality":{"type":"string","optional":true},"postalCode":{"type":"string","optional":true},"revision":{"type":"number","optional":true},"locality":{"type":"string","optional":true},"recipients":{"type":"array","items":{"type":"string"},"optional":true},"addressLines":{"type":"array","items":{"type":"string"},"optional":true},"organization":{"type":"string","optional":true},"languageCode":{"type":"string","optional":true},"administrativeArea":{"type":"string","optional":true},"sortingCode":{"type":"string","optional":true}},"optional":true},"types":{"type":"array","items":{"type":"string"},"optional":true},"restroom":{"type":"boolean","optional":true},"websiteUri":{"type":"string","optional":true},"plusCode":{"type":"object","members":{"globalCode":{"type":"string","optional":true},"compoundCode":{"type":"string","optional":true}},"optional":true},"servesLunch":{"type":"boolean","optional":true},"regularSecondaryOpeningHours":{"type":"array","items":{"type":"object","members":{"nextCloseTime":{"type":"string","optional":true},"weekdayDescriptions":{"type":"array","items":{"type":"string"},"optional":true},"openNow":{"type":"boolean","optional":true},"nextOpenTime":{"type":"string","optional":true},"secondaryHoursType":{"type":"string","enum":["SECONDARY_HOURS_TYPE_UNSPECIFIED","DRIVE_THROUGH","HAPPY_HOUR","DELIVERY","TAKEOUT","KITCHEN","BREAKFAST","LUNCH","DINNER","BRUNCH","PICKUP","ACCESS","SENIOR_HOURS","ONLINE_SERVICE_HOURS"],"optional":true},"specialDays":{"type":"array","items":{"type":"object","members":{"date":{"type":"object","members":{"month":{"type":"number","optional":true},"year":{"type":"number","optional":true},"day":{"type":"number","optional":true}},"optional":true}}},"optional":true},"periods":{"type":"array","items":{"type":"object","members":{"close":{"type":"object","members":{"hour":{"type":"number","optional":true},"day":{"type":"number","optional":true},"minute":{"type":"number","optional":true},"date":{"type":"object","members":{"month":{"type":"number","optional":true},"year":{"type":"number","optional":true},"day":{"type":"number","optional":true}},"optional":true},"truncated":{"type":"boolean","optional":true}},"optional":true},"open":{"type":"object","members":{"hour":{"type":"number","optional":true},"day":{"type":"number","optional":true},"minute":{"type":"number","optional":true},"date":{"type":"object","members":{"month":{"type":"number","optional":true},"year":{"type":"number","optional":true},"day":{"type":"number","optional":true}},"optional":true},"truncated":{"type":"boolean","optional":true}},"optional":true}}},"optional":true}}},"optional":true},"reservable":{"type":"boolean","optional":true},"navigationPoints":{"type":"array","items":{"type":"object","members":{"displayName":{"type":"object","members":{"languageCode":{"type":"string","optional":true},"text":{"type":"string","optional":true}},"optional":true},"travelModes":{"type":"array","items":{"type":"string","enum":["TRAVEL_MODE_UNSPECIFIED","DRIVE","WALK"]},"optional":true},"location":{"type":"object","members":{"longitude":{"type":"number","optional":true},"latitude":{"type":"number","optional":true}},"optional":true},"usages":{"type":"array","items":{"type":"string","enum":["USAGE_UNSPECIFIED","DROPOFF","PICKUP","PARKING"]},"optional":true},"navigationPointToken":{"type":"string","optional":true}}},"optional":true},"delivery":{"type":"boolean","optional":true},"servesCoffee":{"type":"boolean","optional":true},"currentOpeningHours":{"type":"object","members":{"nextCloseTime":{"type":"string","optional":true},"weekdayDescriptions":{"type":"array","items":{"type":"string"},"optional":true},"openNow":{"type":"boolean","optional":true},"nextOpenTime":{"type":"string","optional":true},"secondaryHoursType":{"type":"string","enum":["SECONDARY_HOURS_TYPE_UNSPECIFIED","DRIVE_THROUGH","HAPPY_HOUR","DELIVERY","TAKEOUT","KITCHEN","BREAKFAST","LUNCH","DINNER","BRUNCH","PICKUP","ACCESS","SENIOR_HOURS","ONLINE_SERVICE_HOURS"],"optional":true},"specialDays":{"type":"array","items":{"type":"object","members":{"date":{"type":"object","members":{"month":{"type":"number","optional":true},"year":{"type":"number","optional":true},"day":{"type":"number","optional":true}},"optional":true}}},"optional":true},"periods":{"type":"array","items":{"type":"object","members":{"close":{"type":"object","members":{"hour":{"type":"number","optional":true},"day":{"type":"number","optional":true},"minute":{"type":"number","optional":true},"date":{"type":"object","members":{"month":{"type":"number","optional":true},"year":{"type":"number","optional":true},"day":{"type":"number","optional":true}},"optional":true},"truncated":{"type":"boolean","optional":true}},"optional":true},"open":{"type":"object","members":{"hour":{"type":"number","optional":true},"day":{"type":"number","optional":true},"minute":{"type":"number","optional":true},"date":{"type":"object","members":{"month":{"type":"number","optional":true},"year":{"type":"number","optional":true},"day":{"type":"number","optional":true}},"optional":true},"truncated":{"type":"boolean","optional":true}},"optional":true}}},"optional":true}},"optional":true},"name":{"type":"string","optional":true},"goodForWatchingSports":{"type":"boolean","optional":true},"iconMaskBaseUri":{"type":"string","optional":true},"internationalPhoneNumber":{"type":"string","optional":true},"subDestinations":{"type":"array","items":{"type":"object","members":{"name":{"type":"string","optional":true},"id":{"type":"string","optional":true}}},"optional":true},"parkingOptions":{"type":"object","members":{"paidGarageParking":{"type":"boolean","optional":true},"paidParkingLot":{"type":"boolean","optional":true},"freeGarageParking":{"type":"boolean","optional":true},"valetParking":{"type":"boolean","optional":true},"freeParkingLot":{"type":"boolean","optional":true},"freeStreetParking":{"type":"boolean","optional":true},"paidStreetParking":{"type":"boolean","optional":true}},"optional":true},"paymentOptions":{"type":"object","members":{"acceptsDebitCards":{"type":"boolean","optional":true},"acceptsCashOnly":{"type":"boolean","optional":true},"acceptsCreditCards":{"type":"boolean","optional":true},"acceptsNfc":{"type":"boolean","optional":true}},"optional":true},"evChargeAmenitySummary":{"type":"object","members":{"disclosureText":{"type":"object","members":{"languageCode":{"type":"string","optional":true},"text":{"type":"string","optional":true}},"optional":true},"restaurant":{"type":"object","members":{"referencedPlaces":{"type":"array","items":{"type":"string"},"optional":true},"content":{"type":"object","members":{"languageCode":{"type":"string","optional":true},"text":{"type":"string","optional":true}},"optional":true}},"optional":true},"store":{"type":"object","members":{"referencedPlaces":{"type":"array","items":{"type":"string"},"optional":true},"content":{"type":"object","members":{"languageCode":{"type":"string","optional":true},"text":{"type":"string","optional":true}},"optional":true}},"optional":true},"coffee":{"type":"object","members":{"referencedPlaces":{"type":"array","items":{"type":"string"},"optional":true},"content":{"type":"object","members":{"languageCode":{"type":"string","optional":true},"text":{"type":"string","optional":true}},"optional":true}},"optional":true},"overview":{"type":"object","members":{"referencedPlaces":{"type":"array","items":{"type":"string"},"optional":true},"content":{"type":"object","members":{"languageCode":{"type":"string","optional":true},"text":{"type":"string","optional":true}},"optional":true}},"optional":true},"flagContentUri":{"type":"string","optional":true}},"optional":true},"formattedAddress":{"type":"string","optional":true},"googleMapsLinks":{"type":"object","members":{"placeUri":{"type":"string","optional":true},"writeAReviewUri":{"type":"string","optional":true},"photosUri":{"type":"string","optional":true},"reviewsUri":{"type":"string","optional":true},"directionsUri":{"type":"string","optional":true}},"optional":true},"evChargeOptions":{"type":"object","members":{"connectorCount":{"type":"number","optional":true},"connectorAggregation":{"type":"array","items":{"type":"object","members":{"outOfServiceCount":{"type":"number","optional":true},"maxChargeRateKw":{"type":"number","optional":true},"availabilityLastUpdateTime":{"type":"string","optional":true},"type":{"type":"string","enum":["EV_CONNECTOR_TYPE_UNSPECIFIED","EV_CONNECTOR_TYPE_OTHER","EV_CONNECTOR_TYPE_J1772","EV_CONNECTOR_TYPE_TYPE_2","EV_CONNECTOR_TYPE_CHADEMO","EV_CONNECTOR_TYPE_CCS_COMBO_1","EV_CONNECTOR_TYPE_CCS_COMBO_2","EV_CONNECTOR_TYPE_TESLA","EV_CONNECTOR_TYPE_UNSPECIFIED_GB_T","EV_CONNECTOR_TYPE_UNSPECIFIED_WALL_OUTLET","EV_CONNECTOR_TYPE_NACS"],"optional":true},"count":{"type":"number","optional":true},"availableCount":{"type":"number","optional":true}}},"optional":true}},"optional":true},"nationalPhoneNumber":{"type":"string","optional":true},"goodForGroups":{"type":"boolean","optional":true},"entrances":{"type":"array","items":{"type":"object","members":{"tags":{"type":"array","items":{"type":"string","enum":["TAG_UNSPECIFIED","PREFERRED"]},"optional":true},"location":{"type":"object","members":{"longitude":{"type":"number","optional":true},"latitude":{"type":"number","optional":true}},"optional":true}}},"optional":true},"outdoorSeating":{"type":"boolean","optional":true},"servesDinner":{"type":"boolean","optional":true},"attributions":{"type":"array","items":{"type":"object","members":{"provider":{"type":"string","optional":true},"providerUri":{"type":"string","optional":true}}},"optional":true},"servesVegetarianFood":{"type":"boolean","optional":true},"displayName":{"type":"object","members":{"languageCode":{"type":"string","optional":true},"text":{"type":"string","optional":true}},"optional":true},"googleMapsUri":{"type":"string","optional":true},"curbsidePickup":{"type":"boolean","optional":true},"utcOffsetMinutes":{"type":"number","optional":true},"transitStation":{"type":"object","members":{"agencies":{"type":"array","items":{"type":"object","members":{"lines":{"type":"array","items":{"type":"object","members":{"textColor":{"type":"string","optional":true},"vehicleIcon":{"type":"object","members":{"nameIncluded":{"type":"boolean","optional":true},"url":{"type":"string","optional":true}},"optional":true},"url":{"type":"string","optional":true},"id":{"type":"string","optional":true},"icon":{"type":"object","members":{"nameIncluded":{"type":"boolean","optional":true},"url":{"type":"string","optional":true}},"optional":true},"backgroundColor":{"type":"string","optional":true},"vehicleType":{"type":"string","enum":["VEHICLE_TYPE_UNSPECIFIED","RAIL","METRO_RAIL","SUBWAY","TRAM","MONORAIL","HEAVY_RAIL","COMMUTER_TRAIN","HIGH_SPEED_TRAIN","LONG_DISTANCE_TRAIN","BUS","INTERCITY_BUS","TROLLEYBUS","SHARE_TAXI","COACH","FERRY","CABLE_CAR","GONDOLA_LIFT","FUNICULAR","SPECIAL","HORSE_CARRIAGE","AIRPLANE"],"optional":true},"displayName":{"type":"object","members":{"languageCode":{"type":"string","optional":true},"text":{"type":"string","optional":true}},"optional":true},"shortDisplayName":{"type":"object","members":{"languageCode":{"type":"string","optional":true},"text":{"type":"string","optional":true}},"optional":true}}},"optional":true},"fareUrl":{"type":"string","optional":true},"displayName":{"type":"object","members":{"languageCode":{"type":"string","optional":true},"text":{"type":"string","optional":true}},"optional":true},"url":{"type":"string","optional":true},"icon":{"type":"object","members":{"nameIncluded":{"type":"boolean","optional":true},"url":{"type":"string","optional":true}},"optional":true}}},"optional":true},"stops":{"type":"array","items":{"type":"object","members":{"displayName":{"type":"object","members":{"languageCode":{"type":"string","optional":true},"text":{"type":"string","optional":true}},"optional":true},"stopCode":{"type":"object","members":{"languageCode":{"type":"string","optional":true},"text":{"type":"string","optional":true}},"optional":true},"id":{"type":"string","optional":true},"platformCode":{"type":"object","members":{"languageCode":{"type":"string","optional":true},"text":{"type":"string","optional":true}},"optional":true},"wheelchairAccessibleEntrance":{"type":"boolean","optional":true},"signageText":{"type":"object","members":{"languageCode":{"type":"string","optional":true},"text":{"type":"string","optional":true}},"optional":true},"location":{"type":"object","members":{"longitude":{"type":"number","optional":true},"latitude":{"type":"number","optional":true}},"optional":true}}},"optional":true},"displayName":{"type":"object","members":{"languageCode":{"type":"string","optional":true},"text":{"type":"string","optional":true}},"optional":true}},"optional":true},"priceRange":{"type":"object","members":{"startPrice":{"type":"object","members":{"currencyCode":{"type":"string","optional":true},"units":{"type":"string","optional":true},"nanos":{"type":"number","optional":true}},"optional":true},"endPrice":{"type":"object","members":{"currencyCode":{"type":"string","optional":true},"units":{"type":"string","optional":true},"nanos":{"type":"number","optional":true}},"optional":true}},"optional":true},"businessStatus":{"type":"string","enum":["BUSINESS_STATUS_UNSPECIFIED","OPERATIONAL","CLOSED_TEMPORARILY","CLOSED_PERMANENTLY","FUTURE_OPENING"],"optional":true},"addressComponents":{"type":"array","items":{"type":"object","members":{"languageCode":{"type":"string","optional":true},"types":{"type":"array","items":{"type":"string"},"optional":true},"shortText":{"type":"string","optional":true},"longText":{"type":"string","optional":true}}},"optional":true},"allowsDogs":{"type":"boolean","optional":true},"servesDessert":{"type":"boolean","optional":true},"movedPlace":{"type":"string","optional":true},"id":{"type":"string","optional":true},"consumerAlert":{"type":"object","members":{"details":{"type":"object","members":{"title":{"type":"string","optional":true},"aboutLink":{"type":"object","members":{"title":{"type":"string","optional":true},"uri":{"type":"string","optional":true}},"optional":true},"description":{"type":"string","optional":true}},"optional":true},"languageCode":{"type":"string","optional":true},"overview":{"type":"string","optional":true}},"optional":true},"accessibilityOptions":{"type":"object","members":{"wheelchairAccessibleParking":{"type":"boolean","optional":true},"wheelchairAccessibleSeating":{"type":"boolean","optional":true},"wheelchairAccessibleEntrance":{"type":"boolean","optional":true},"wheelchairAccessibleRestroom":{"type":"boolean","optional":true}},"optional":true},"fuelOptions":{"type":"object","members":{"fuelPrices":{"type":"array","items":{"type":"object","members":{"updateTime":{"type":"string","optional":true},"price":{"type":"object","members":{"currencyCode":{"type":"string","optional":true},"units":{"type":"string","optional":true},"nanos":{"type":"number","optional":true}},"optional":true},"type":{"type":"string","enum":["FUEL_TYPE_UNSPECIFIED","DIESEL","DIESEL_PLUS","REGULAR_UNLEADED","MIDGRADE","PREMIUM","SP91","SP91_E10","SP92","SP95","SP95_E10","SP98","SP99","SP100","LPG","E80","E85","E100","METHANE","BIO_DIESEL","TRUCK_DIESEL"],"optional":true}}},"optional":true}},"optional":true},"goodForChildren":{"type":"boolean","optional":true},"liveMusic":{"type":"boolean","optional":true},"menuForChildren":{"type":"boolean","optional":true},"adrFormatAddress":{"type":"string","optional":true},"rating":{"type":"number","optional":true},"priceLevel":{"type":"string","enum":["PRICE_LEVEL_UNSPECIFIED","PRICE_LEVEL_FREE","PRICE_LEVEL_INEXPENSIVE","PRICE_LEVEL_MODERATE","PRICE_LEVEL_EXPENSIVE","PRICE_LEVEL_VERY_EXPENSIVE"],"optional":true},"pureServiceAreaBusiness":{"type":"boolean","optional":true},"editorialSummary":{"type":"object","members":{"languageCode":{"type":"string","optional":true},"text":{"type":"string","optional":true}},"optional":true},"reviews":{"type":"array","items":{"type":"object","members":{"originalText":{"type":"object","members":{"languageCode":{"type":"string","optional":true},"text":{"type":"string","optional":true}},"optional":true},"googleMapsUri":{"type":"string","optional":true},"visitDate":{"type":"object","members":{"month":{"type":"number","optional":true},"year":{"type":"number","optional":true},"day":{"type":"number","optional":true}},"optional":true},"rating":{"type":"number","optional":true},"relativePublishTimeDescription":{"type":"string","optional":true},"text":{"type":"object","members":{"languageCode":{"type":"string","optional":true},"text":{"type":"string","optional":true}},"optional":true},"authorAttribution":{"type":"object","members":{"photoUri":{"type":"string","optional":true},"uri":{"type":"string","optional":true},"displayName":{"type":"string","optional":true}},"optional":true},"name":{"type":"string","optional":true},"publishTime":{"type":"string","optional":true},"flagContentUri":{"type":"string","optional":true}}},"optional":true}}},"optional":true}}},"photoMedia":{"desc":"Resolve temporary Places photo media URI; preserve author attribution from the Place photo metadata.","ops":["query"],"queryFields":[],"params":["placeId","photoId","maxHeightPx","maxWidthPx"],"parameterFields":{"placeId":{"type":"string","minLength":1},"photoId":{"type":"string","minLength":1},"maxHeightPx":{"type":"number","optional":true},"maxWidthPx":{"type":"number","optional":true}},"requiredParams":["placeId","photoId"],"read":"anonymous","anonymous":["read"],"enforcedBy":{"read":"the provider at places.googleapis.com, under the app's configured credentials"},"fields":{"photoUri":{"type":"string","optional":true},"name":{"type":"string","optional":true}}},"geocode":{"desc":"Geocoding API v4: convert a free-form address into coordinates and structured address results.","ops":["query"],"queryFields":[],"params":["addressQuery","languageCode","regionCode"],"parameterFields":{"addressQuery":{"type":"string","minLength":1,"maxLength":2048},"languageCode":{"type":"string","optional":true},"regionCode":{"type":"string","optional":true}},"requiredParams":["addressQuery"],"read":"anonymous","anonymous":["read"],"enforcedBy":{"read":"the provider at places.googleapis.com, under the app's configured credentials"},"fields":{"place":{"type":"string","optional":true},"placeId":{"type":"string","optional":true},"location":{"type":"object","members":{"latitude":{"type":"number","optional":true},"longitude":{"type":"number","optional":true}},"optional":true},"granularity":{"type":"string","optional":true},"viewport":{"type":"object","members":{"low":{"type":"object","members":{"latitude":{"type":"number","optional":true},"longitude":{"type":"number","optional":true}}},"high":{"type":"object","members":{"latitude":{"type":"number","optional":true},"longitude":{"type":"number","optional":true}}}},"optional":true},"formattedAddress":{"type":"string","optional":true},"postalAddress":{"type":"object","members":{"locality":{"type":"string","optional":true},"sublocality":{"type":"string","optional":true},"addressLines":{"type":"array","items":{"type":"string"},"optional":true},"organization":{"type":"string","optional":true},"sortingCode":{"type":"string","optional":true},"postalCode":{"type":"string","optional":true},"revision":{"type":"number","optional":true},"recipients":{"type":"array","items":{"type":"string"},"optional":true},"languageCode":{"type":"string","optional":true},"administrativeArea":{"type":"string","optional":true},"regionCode":{"type":"string","optional":true}},"optional":true},"addressComponents":{"type":"array","items":{"type":"object","members":{"longText":{"type":"string","optional":true},"shortText":{"type":"string","optional":true},"types":{"type":"array","items":{"type":"string"},"optional":true},"languageCode":{"type":"string","optional":true}}},"optional":true},"types":{"type":"array","items":{"type":"string"},"optional":true},"plusCode":{"type":"object","members":{"globalCode":{"type":"string","optional":true},"compoundCode":{"type":"string","optional":true}},"optional":true},"bounds":{"type":"object","members":{"low":{"type":"object","members":{"latitude":{"type":"number","optional":true},"longitude":{"type":"number","optional":true}},"optional":true},"high":{"type":"object","members":{"latitude":{"type":"number","optional":true},"longitude":{"type":"number","optional":true}},"optional":true}},"optional":true},"postalCodeLocalities":{"type":"array","items":{"type":"object","members":{"text":{"type":"string","optional":true},"languageCode":{"type":"string","optional":true}}},"optional":true}}},"reverseGeocode":{"desc":"Geocoding API v4: find addresses for a latitude,longitude coordinate pair.","ops":["query"],"queryFields":[],"params":["locationQuery","languageCode","regionCode","types","granularity"],"parameterFields":{"locationQuery":{"type":"string","pattern":"^-?[0-9]+(?:\\.[0-9]+)?,-?[0-9]+(?:\\.[0-9]+)?$"},"languageCode":{"type":"string","optional":true},"regionCode":{"type":"string","optional":true},"types":{"type":"array","items":{"type":"string"},"optional":true},"granularity":{"type":"array","items":{"type":"string"},"optional":true}},"requiredParams":["locationQuery"],"read":"anonymous","anonymous":["read"],"enforcedBy":{"read":"the provider at places.googleapis.com, under the app's configured credentials"},"fields":{"place":{"type":"string","optional":true},"placeId":{"type":"string","optional":true},"location":{"type":"object","members":{"latitude":{"type":"number","optional":true},"longitude":{"type":"number","optional":true}},"optional":true},"granularity":{"type":"string","optional":true},"viewport":{"type":"object","members":{"low":{"type":"object","members":{"latitude":{"type":"number","optional":true},"longitude":{"type":"number","optional":true}}},"high":{"type":"object","members":{"latitude":{"type":"number","optional":true},"longitude":{"type":"number","optional":true}}}},"optional":true},"formattedAddress":{"type":"string","optional":true},"postalAddress":{"type":"object","members":{"locality":{"type":"string","optional":true},"sublocality":{"type":"string","optional":true},"addressLines":{"type":"array","items":{"type":"string"},"optional":true},"organization":{"type":"string","optional":true},"sortingCode":{"type":"string","optional":true},"postalCode":{"type":"string","optional":true},"revision":{"type":"number","optional":true},"recipients":{"type":"array","items":{"type":"string"},"optional":true},"languageCode":{"type":"string","optional":true},"administrativeArea":{"type":"string","optional":true},"regionCode":{"type":"string","optional":true}},"optional":true},"addressComponents":{"type":"array","items":{"type":"object","members":{"longText":{"type":"string","optional":true},"shortText":{"type":"string","optional":true},"types":{"type":"array","items":{"type":"string"},"optional":true},"languageCode":{"type":"string","optional":true}}},"optional":true},"types":{"type":"array","items":{"type":"string"},"optional":true},"plusCode":{"type":"object","members":{"globalCode":{"type":"string","optional":true},"compoundCode":{"type":"string","optional":true}},"optional":true},"bounds":{"type":"object","members":{"low":{"type":"object","members":{"latitude":{"type":"number","optional":true},"longitude":{"type":"number","optional":true}},"optional":true},"high":{"type":"object","members":{"latitude":{"type":"number","optional":true},"longitude":{"type":"number","optional":true}},"optional":true}},"optional":true},"postalCodeLocalities":{"type":"array","items":{"type":"object","members":{"text":{"type":"string","optional":true},"languageCode":{"type":"string","optional":true}}},"optional":true}}},"placeGeocode":{"desc":"Geocoding API v4: retrieve the address and coordinates for a known Place ID.","ops":["query"],"queryFields":[],"params":["placeId","languageCode","regionCode"],"parameterFields":{"placeId":{"type":"string","minLength":1},"languageCode":{"type":"string","optional":true},"regionCode":{"type":"string","optional":true}},"requiredParams":["placeId"],"read":"anonymous","anonymous":["read"],"enforcedBy":{"read":"the provider at places.googleapis.com, under the app's configured credentials"},"fields":{"place":{"type":"string","optional":true},"placeId":{"type":"string","optional":true},"location":{"type":"object","members":{"latitude":{"type":"number","optional":true},"longitude":{"type":"number","optional":true}},"optional":true},"granularity":{"type":"string","optional":true},"viewport":{"type":"object","members":{"low":{"type":"object","members":{"latitude":{"type":"number","optional":true},"longitude":{"type":"number","optional":true}}},"high":{"type":"object","members":{"latitude":{"type":"number","optional":true},"longitude":{"type":"number","optional":true}}}},"optional":true},"formattedAddress":{"type":"string","optional":true},"postalAddress":{"type":"object","members":{"locality":{"type":"string","optional":true},"sublocality":{"type":"string","optional":true},"addressLines":{"type":"array","items":{"type":"string"},"optional":true},"organization":{"type":"string","optional":true},"sortingCode":{"type":"string","optional":true},"postalCode":{"type":"string","optional":true},"revision":{"type":"number","optional":true},"recipients":{"type":"array","items":{"type":"string"},"optional":true},"languageCode":{"type":"string","optional":true},"administrativeArea":{"type":"string","optional":true},"regionCode":{"type":"string","optional":true}},"optional":true},"addressComponents":{"type":"array","items":{"type":"object","members":{"longText":{"type":"string","optional":true},"shortText":{"type":"string","optional":true},"types":{"type":"array","items":{"type":"string"},"optional":true},"languageCode":{"type":"string","optional":true}}},"optional":true},"types":{"type":"array","items":{"type":"string"},"optional":true},"plusCode":{"type":"object","members":{"globalCode":{"type":"string","optional":true},"compoundCode":{"type":"string","optional":true}},"optional":true},"bounds":{"type":"object","members":{"low":{"type":"object","members":{"latitude":{"type":"number","optional":true},"longitude":{"type":"number","optional":true}},"optional":true},"high":{"type":"object","members":{"latitude":{"type":"number","optional":true},"longitude":{"type":"number","optional":true}},"optional":true}},"optional":true},"postalCodeLocalities":{"type":"array","items":{"type":"object","members":{"text":{"type":"string","optional":true},"languageCode":{"type":"string","optional":true}}},"optional":true}}},"validateAddress":{"desc":"Validate, standardize and enrich a postal address; expose verdict and component corrections for explicit user review.","ops":["query"],"queryFields":[],"params":["languageOptions","previousResponseId","sessionToken","enableUspsCass","address"],"parameterFields":{"languageOptions":{"type":"object","members":{"returnEnglishLatinAddress":{"type":"boolean","optional":true}},"optional":true},"previousResponseId":{"type":"string","optional":true},"sessionToken":{"type":"string","optional":true},"enableUspsCass":{"type":"boolean","optional":true},"address":{"type":"object","members":{"locality":{"type":"string","optional":true},"sublocality":{"type":"string","optional":true},"addressLines":{"type":"array","items":{"type":"string"},"optional":true},"organization":{"type":"string","optional":true},"sortingCode":{"type":"string","optional":true},"postalCode":{"type":"string","optional":true},"revision":{"type":"number","optional":true},"recipients":{"type":"array","items":{"type":"string"},"optional":true},"languageCode":{"type":"string","optional":true},"administrativeArea":{"type":"string","optional":true},"regionCode":{"type":"string","optional":true}}}},"requiredParams":["address"],"read":"anonymous","anonymous":["read"],"enforcedBy":{"read":"the provider at places.googleapis.com, under the app's configured credentials"},"fields":{"responseId":{"type":"string","optional":true},"result":{"type":"object","members":{"geocode":{"type":"object","members":{"featureSizeMeters":{"type":"number","optional":true},"bounds":{"type":"object","members":{"low":{"type":"object","members":{"longitude":{"type":"number","optional":true},"latitude":{"type":"number","optional":true}},"optional":true},"high":{"type":"object","members":{"longitude":{"type":"number","optional":true},"latitude":{"type":"number","optional":true}},"optional":true}},"optional":true},"placeTypes":{"type":"array","items":{"type":"string"},"optional":true},"plusCode":{"type":"object","members":{"globalCode":{"type":"string","optional":true},"compoundCode":{"type":"string","optional":true}},"optional":true},"placeId":{"type":"string","optional":true},"location":{"type":"object","members":{"longitude":{"type":"number","optional":true},"latitude":{"type":"number","optional":true}},"optional":true}},"optional":true},"verdict":{"type":"object","members":{"validationGranularity":{"type":"string","enum":["GRANULARITY_UNSPECIFIED","SUB_PREMISE","PREMISE","PREMISE_PROXIMITY","BLOCK","ROUTE","OTHER"],"optional":true},"geocodeGranularity":{"type":"string","enum":["GRANULARITY_UNSPECIFIED","SUB_PREMISE","PREMISE","PREMISE_PROXIMITY","BLOCK","ROUTE","OTHER"],"optional":true},"inputGranularity":{"type":"string","enum":["GRANULARITY_UNSPECIFIED","SUB_PREMISE","PREMISE","PREMISE_PROXIMITY","BLOCK","ROUTE","OTHER"],"optional":true},"hasSpellCorrectedComponents":{"type":"boolean","optional":true},"hasReplacedComponents":{"type":"boolean","optional":true},"hasUnconfirmedComponents":{"type":"boolean","optional":true},"hasInferredComponents":{"type":"boolean","optional":true},"addressComplete":{"type":"boolean","optional":true},"possibleNextAction":{"type":"string","enum":["POSSIBLE_NEXT_ACTION_UNSPECIFIED","FIX","CONFIRM_ADD_SUBPREMISES","CONFIRM","ACCEPT"],"optional":true}},"optional":true},"uspsData":{"type":"object","members":{"abbreviatedCity":{"type":"string","optional":true},"errorMessage":{"type":"string","optional":true},"dpvNonDeliveryDays":{"type":"string","optional":true},"fipsCountyCode":{"type":"string","optional":true},"ewsNoMatch":{"type":"boolean","optional":true},"dpvNonDeliveryDaysValues":{"type":"number","optional":true},"county":{"type":"string","optional":true},"dpvCmra":{"type":"string","optional":true},"elotFlag":{"type":"string","optional":true},"pmbNumber":{"type":"string","optional":true},"dpvNoSecureLocation":{"type":"string","optional":true},"dpvEnhancedDeliveryCode":{"type":"string","optional":true},"dpvVacant":{"type":"string","optional":true},"suitelinkFootnote":{"type":"string","optional":true},"deliveryPointCheckDigit":{"type":"string","optional":true},"carrierRoute":{"type":"string","optional":true},"dpvNoStat":{"type":"string","optional":true},"dpvDoorNotAccessible":{"type":"string","optional":true},"addressRecordType":{"type":"string","optional":true},"pmbDesignator":{"type":"string","optional":true},"carrierRouteIndicator":{"type":"string","optional":true},"standardizedAddress":{"type":"object","members":{"firm":{"type":"string","optional":true},"city":{"type":"string","optional":true},"cityStateZipAddressLine":{"type":"string","optional":true},"zipCode":{"type":"string","optional":true},"firstAddressLine":{"type":"string","optional":true},"zipCodeExtension":{"type":"string","optional":true},"state":{"type":"string","optional":true},"urbanization":{"type":"string","optional":true},"secondAddressLine":{"type":"string","optional":true}},"optional":true},"postOfficeState":{"type":"string","optional":true},"dpvDrop":{"type":"string","optional":true},"dpvThrowback":{"type":"string","optional":true},"cassProcessed":{"type":"boolean","optional":true},"dpvPbsa":{"type":"string","optional":true},"poBoxOnlyPostalCode":{"type":"boolean","optional":true},"dpvConfirmation":{"type":"string","optional":true},"deliveryPointCode":{"type":"string","optional":true},"dpvFootnote":{"type":"string","optional":true},"defaultAddress":{"type":"boolean","optional":true},"lacsLinkReturnCode":{"type":"string","optional":true},"dpvNoStatReasonCode":{"type":"number","optional":true},"lacsLinkIndicator":{"type":"string","optional":true},"elotNumber":{"type":"string","optional":true},"postOfficeCity":{"type":"string","optional":true}},"optional":true},"metadata":{"type":"object","members":{"residential":{"type":"boolean","optional":true},"poBox":{"type":"boolean","optional":true},"business":{"type":"boolean","optional":true}},"optional":true},"englishLatinAddress":{"type":"object","members":{"postalAddress":{"type":"object","members":{"locality":{"type":"string","optional":true},"sublocality":{"type":"string","optional":true},"addressLines":{"type":"array","items":{"type":"string"},"optional":true},"organization":{"type":"string","optional":true},"sortingCode":{"type":"string","optional":true},"postalCode":{"type":"string","optional":true},"revision":{"type":"number","optional":true},"recipients":{"type":"array","items":{"type":"string"},"optional":true},"languageCode":{"type":"string","optional":true},"administrativeArea":{"type":"string","optional":true},"regionCode":{"type":"string","optional":true}},"optional":true},"missingComponentTypes":{"type":"array","items":{"type":"string"},"optional":true},"formattedAddress":{"type":"string","optional":true},"addressComponents":{"type":"array","items":{"type":"object","members":{"spellCorrected":{"type":"boolean","optional":true},"componentName":{"type":"object","members":{"languageCode":{"type":"string","optional":true},"text":{"type":"string","optional":true}},"optional":true},"componentType":{"type":"string","optional":true},"unexpected":{"type":"boolean","optional":true},"replaced":{"type":"boolean","optional":true},"confirmationLevel":{"type":"string","enum":["CONFIRMATION_LEVEL_UNSPECIFIED","CONFIRMED","UNCONFIRMED_BUT_PLAUSIBLE","UNCONFIRMED_AND_SUSPICIOUS"],"optional":true},"inferred":{"type":"boolean","optional":true}}},"optional":true},"unresolvedTokens":{"type":"array","items":{"type":"string"},"optional":true},"unconfirmedComponentTypes":{"type":"array","items":{"type":"string"},"optional":true}},"optional":true},"address":{"type":"object","members":{"postalAddress":{"type":"object","members":{"locality":{"type":"string","optional":true},"sublocality":{"type":"string","optional":true},"addressLines":{"type":"array","items":{"type":"string"},"optional":true},"organization":{"type":"string","optional":true},"sortingCode":{"type":"string","optional":true},"postalCode":{"type":"string","optional":true},"revision":{"type":"number","optional":true},"recipients":{"type":"array","items":{"type":"string"},"optional":true},"languageCode":{"type":"string","optional":true},"administrativeArea":{"type":"string","optional":true},"regionCode":{"type":"string","optional":true}},"optional":true},"missingComponentTypes":{"type":"array","items":{"type":"string"},"optional":true},"formattedAddress":{"type":"string","optional":true},"addressComponents":{"type":"array","items":{"type":"object","members":{"spellCorrected":{"type":"boolean","optional":true},"componentName":{"type":"object","members":{"languageCode":{"type":"string","optional":true},"text":{"type":"string","optional":true}},"optional":true},"componentType":{"type":"string","optional":true},"unexpected":{"type":"boolean","optional":true},"replaced":{"type":"boolean","optional":true},"confirmationLevel":{"type":"string","enum":["CONFIRMATION_LEVEL_UNSPECIFIED","CONFIRMED","UNCONFIRMED_BUT_PLAUSIBLE","UNCONFIRMED_AND_SUSPICIOUS"],"optional":true},"inferred":{"type":"boolean","optional":true}}},"optional":true},"unresolvedTokens":{"type":"array","items":{"type":"string"},"optional":true},"unconfirmedComponentTypes":{"type":"array","items":{"type":"string"},"optional":true}},"optional":true}},"optional":true}}},"computeRoutes":{"desc":"Directions with traffic, alternatives, waypoint ordering, transit, tolls and route overlays. optimizeWaypointOrder returns optimizedIntermediateWaypointIndex.","ops":["query"],"queryFields":[],"params":["fieldMask","origin","destination","intermediates","travelMode","routingPreference","polylineQuality","polylineEncoding","departureTime","arrivalTime","computeAlternativeRoutes","routeModifiers","languageCode","regionCode","units","optimizeWaypointOrder","requestedReferenceRoutes","extraComputations","trafficModel","transitPreferences"],"parameterFields":{"fieldMask":{"type":"string","optional":true,"minLength":1,"maxLength":4096,"desc":"Optional response field mask. The default includes route geometry and turn instructions without repeated leg/step geometry. Request additional reviewed response fields explicitly when needed."},"origin":{"type":"object","members":{"location":{"type":"object","members":{"latLng":{"type":"object","members":{"latitude":{"type":"number","optional":true},"longitude":{"type":"number","optional":true}},"optional":true},"heading":{"type":"object","members":{"value":{"type":"number","optional":true}},"optional":true}},"optional":true},"placeId":{"type":"string","optional":true},"address":{"type":"string","optional":true},"navigationPointToken":{"type":"string","optional":true},"via":{"type":"boolean","optional":true},"vehicleStopover":{"type":"boolean","optional":true},"sideOfRoad":{"type":"boolean","optional":true}}},"destination":{"type":"object","members":{"location":{"type":"object","members":{"latLng":{"type":"object","members":{"latitude":{"type":"number","optional":true},"longitude":{"type":"number","optional":true}},"optional":true},"heading":{"type":"object","members":{"value":{"type":"number","optional":true}},"optional":true}},"optional":true},"placeId":{"type":"string","optional":true},"address":{"type":"string","optional":true},"navigationPointToken":{"type":"string","optional":true},"via":{"type":"boolean","optional":true},"vehicleStopover":{"type":"boolean","optional":true},"sideOfRoad":{"type":"boolean","optional":true}}},"intermediates":{"type":"array","items":{"type":"object","members":{"location":{"type":"object","members":{"latLng":{"type":"object","members":{"latitude":{"type":"number","optional":true},"longitude":{"type":"number","optional":true}},"optional":true},"heading":{"type":"object","members":{"value":{"type":"number","optional":true}},"optional":true}},"optional":true},"placeId":{"type":"string","optional":true},"address":{"type":"string","optional":true},"navigationPointToken":{"type":"string","optional":true},"via":{"type":"boolean","optional":true},"vehicleStopover":{"type":"boolean","optional":true},"sideOfRoad":{"type":"boolean","optional":true}}},"optional":true},"travelMode":{"type":"string","enum":["TRAVEL_MODE_UNSPECIFIED","DRIVE","BICYCLE","WALK","TWO_WHEELER","TRANSIT"],"optional":true},"routingPreference":{"type":"string","enum":["ROUTING_PREFERENCE_UNSPECIFIED","TRAFFIC_UNAWARE","TRAFFIC_AWARE","TRAFFIC_AWARE_OPTIMAL"],"optional":true},"polylineQuality":{"type":"string","enum":["POLYLINE_QUALITY_UNSPECIFIED","HIGH_QUALITY","OVERVIEW"],"optional":true},"polylineEncoding":{"type":"string","enum":["POLYLINE_ENCODING_UNSPECIFIED","ENCODED_POLYLINE","GEO_JSON_LINESTRING"],"optional":true},"departureTime":{"type":"string","optional":true},"arrivalTime":{"type":"string","optional":true},"computeAlternativeRoutes":{"type":"boolean","optional":true},"routeModifiers":{"type":"object","members":{"avoidTolls":{"type":"boolean","optional":true},"avoidHighways":{"type":"boolean","optional":true},"avoidFerries":{"type":"boolean","optional":true},"avoidIndoor":{"type":"boolean","optional":true},"vehicleInfo":{"type":"object","members":{"emissionType":{"type":"string","enum":["VEHICLE_EMISSION_TYPE_UNSPECIFIED","GASOLINE","ELECTRIC","HYBRID","DIESEL"],"optional":true}},"optional":true},"tollPasses":{"type":"array","items":{"type":"string","enum":["TOLL_PASS_UNSPECIFIED","AU_ETOLL_TAG","AU_EWAY_TAG","AU_LINKT","AR_TELEPASE","BR_AUTO_EXPRESO","BR_CONECTCAR","BR_MOVE_MAIS","BR_PASSA_RAPIDO","BR_SEM_PARAR","BR_TAGGY","BR_VELOE","CA_US_AKWASASNE_SEAWAY_CORPORATE_CARD","CA_US_AKWASASNE_SEAWAY_TRANSIT_CARD","CA_US_BLUE_WATER_EDGE_PASS","CA_US_CONNEXION","CA_US_NEXUS_CARD","ID_E_TOLL","IN_FASTAG","IN_LOCAL_HP_PLATE_EXEMPT","JP_ETC","JP_ETC2","MX_IAVE","MX_PASE","MX_QUICKPASS","MX_SISTEMA_TELEPEAJE_CHIHUAHUA","MX_TAG_IAVE","MX_TAG_TELEVIA","MX_TELEVIA","MX_VIAPASS","US_AL_FREEDOM_PASS","US_AK_ANTON_ANDERSON_TUNNEL_BOOK_OF_10_TICKETS","US_CA_FASTRAK","US_CA_FASTRAK_CAV_STICKER","US_CO_EXPRESSTOLL","US_CO_GO_PASS","US_DE_EZPASSDE","US_FL_BOB_SIKES_TOLL_BRIDGE_PASS","US_FL_DUNES_COMMUNITY_DEVELOPMENT_DISTRICT_EXPRESSCARD","US_FL_EPASS","US_FL_GIBA_TOLL_PASS","US_FL_LEEWAY","US_FL_SUNPASS","US_FL_SUNPASS_PRO","US_IL_EZPASSIL","US_IL_IPASS","US_IN_EZPASSIN","US_KS_BESTPASS_HORIZON","US_KS_KTAG","US_KS_NATIONALPASS","US_KS_PREPASS_ELITEPASS","US_KY_RIVERLINK","US_LA_GEAUXPASS","US_LA_TOLL_TAG","US_MA_EZPASSMA","US_MD_EZPASSMD","US_ME_EZPASSME","US_MI_AMBASSADOR_BRIDGE_PREMIER_COMMUTER_CARD","US_MI_BCPASS","US_MI_BREAKAWAY","US_MI_GROSSE_ILE_TOLL_BRIDGE_PASS_TAG","US_MI_IQ_PROX_CARD","US_MI_IQ_TAG","US_MI_MACKINAC_BRIDGE_MAC_PASS","US_MI_NEXPRESS_TOLL","US_MN_EZPASSMN","US_NC_EZPASSNC","US_NC_PEACH_PASS","US_NC_QUICK_PASS","US_NH_EZPASSNH","US_NJ_DOWNBEACH_EXPRESS_PASS","US_NJ_EZPASSNJ","US_NY_EXPRESSPASS","US_NY_EZPASSNY","US_OH_EZPASSOH","US_PA_EZPASSPA","US_RI_EZPASSRI","US_SC_PALPASS","US_TX_AVI_TAG","US_TX_BANCPASS","US_TX_DEL_RIO_PASS","US_TX_EFAST_PASS","US_TX_EAGLE_PASS_EXPRESS_CARD","US_TX_EPTOLL","US_TX_EZ_CROSS","US_TX_EZTAG","US_TX_FUEGO_TAG","US_TX_LAREDO_TRADE_TAG","US_TX_PLUSPASS","US_TX_TOLLTAG","US_TX_TXTAG","US_TX_XPRESS_CARD","US_UT_ADAMS_AVE_PARKWAY_EXPRESSCARD","US_VA_EZPASSVA","US_WA_BREEZEBY","US_WA_GOOD_TO_GO","US_WV_EZPASSWV","US_WV_MEMORIAL_BRIDGE_TICKETS","US_WV_MOV_PASS","US_WV_NEWELL_TOLL_BRIDGE_TICKET"]},"optional":true},"avoidTunnels":{"type":"boolean","optional":true}},"optional":true},"languageCode":{"type":"string","optional":true},"regionCode":{"type":"string","optional":true},"units":{"type":"string","enum":["UNITS_UNSPECIFIED","METRIC","IMPERIAL"],"optional":true},"optimizeWaypointOrder":{"type":"boolean","optional":true},"requestedReferenceRoutes":{"type":"array","items":{"type":"string","enum":["REFERENCE_ROUTE_UNSPECIFIED","FUEL_EFFICIENT","SHORTER_DISTANCE"]},"optional":true},"extraComputations":{"type":"array","items":{"type":"string","enum":["EXTRA_COMPUTATION_UNSPECIFIED","TOLLS","FUEL_CONSUMPTION","TRAFFIC_ON_POLYLINE","HTML_FORMATTED_NAVIGATION_INSTRUCTIONS","FLYOVER_INFO_ON_POLYLINE","NARROW_ROAD_INFO_ON_POLYLINE","TUNNEL_INFO_ON_POLYLINE","BRIDGE_INFO_ON_POLYLINE","SKYWAY_INFO_ON_POLYLINE"]},"optional":true},"trafficModel":{"type":"string","enum":["TRAFFIC_MODEL_UNSPECIFIED","BEST_GUESS","PESSIMISTIC","OPTIMISTIC"],"optional":true},"transitPreferences":{"type":"object","members":{"allowedTravelModes":{"type":"array","items":{"type":"string","enum":["TRANSIT_TRAVEL_MODE_UNSPECIFIED","BUS","SUBWAY","TRAIN","LIGHT_RAIL","RAIL"]},"optional":true},"routingPreference":{"type":"string","enum":["TRANSIT_ROUTING_PREFERENCE_UNSPECIFIED","LESS_WALKING","FEWER_TRANSFERS"],"optional":true}},"optional":true}},"requiredParams":["origin","destination"],"read":"anonymous","anonymous":["read"],"enforcedBy":{"read":"the provider at places.googleapis.com, under the app's configured credentials"},"fields":{"routes":{"type":"array","items":{"type":"object","members":{"routeLabels":{"type":"array","items":{"type":"string","enum":["ROUTE_LABEL_UNSPECIFIED","DEFAULT_ROUTE","DEFAULT_ROUTE_ALTERNATE","FUEL_EFFICIENT","SHORTER_DISTANCE"]},"optional":true},"legs":{"type":"array","items":{"type":"object","members":{"distanceMeters":{"type":"number","optional":true},"duration":{"type":"string","optional":true},"staticDuration":{"type":"string","optional":true},"polyline":{"type":"object","members":{"encodedPolyline":{"type":"string","optional":true},"geoJsonLinestring":{"type":"object","members":{"type":{"type":"string"},"coordinates":{"type":"array","items":{"type":"array","items":{"type":"number"}}}},"optional":true}},"optional":true},"startLocation":{"type":"object","members":{"latLng":{"type":"object","members":{"latitude":{"type":"number","optional":true},"longitude":{"type":"number","optional":true}},"optional":true},"heading":{"type":"object","members":{"value":{"type":"number","optional":true}},"optional":true}},"optional":true},"endLocation":{"type":"object","members":{"latLng":{"type":"object","members":{"latitude":{"type":"number","optional":true},"longitude":{"type":"number","optional":true}},"optional":true},"heading":{"type":"object","members":{"value":{"type":"number","optional":true}},"optional":true}},"optional":true},"steps":{"type":"array","items":{"type":"object","members":{"distanceMeters":{"type":"number","optional":true},"staticDuration":{"type":"string","optional":true},"polyline":{"type":"object","members":{"encodedPolyline":{"type":"string","optional":true},"geoJsonLinestring":{"type":"object","members":{"type":{"type":"string"},"coordinates":{"type":"array","items":{"type":"array","items":{"type":"number"}}}},"optional":true}},"optional":true},"startLocation":{"type":"object","members":{"latLng":{"type":"object","members":{"latitude":{"type":"number","optional":true},"longitude":{"type":"number","optional":true}},"optional":true},"heading":{"type":"object","members":{"value":{"type":"number","optional":true}},"optional":true}},"optional":true},"endLocation":{"type":"object","members":{"latLng":{"type":"object","members":{"latitude":{"type":"number","optional":true},"longitude":{"type":"number","optional":true}},"optional":true},"heading":{"type":"object","members":{"value":{"type":"number","optional":true}},"optional":true}},"optional":true},"navigationInstruction":{"type":"object","members":{"maneuver":{"type":"string","enum":["MANEUVER_UNSPECIFIED","TURN_SLIGHT_LEFT","TURN_SHARP_LEFT","UTURN_LEFT","TURN_LEFT","TURN_SLIGHT_RIGHT","TURN_SHARP_RIGHT","UTURN_RIGHT","TURN_RIGHT","STRAIGHT","RAMP_LEFT","RAMP_RIGHT","MERGE","FORK_LEFT","FORK_RIGHT","FERRY","FERRY_TRAIN","ROUNDABOUT_LEFT","ROUNDABOUT_RIGHT","DEPART","NAME_CHANGE"],"optional":true},"instructions":{"type":"string","optional":true}},"optional":true},"travelAdvisory":{"type":"object","members":{"speedReadingIntervals":{"type":"array","items":{"type":"object","members":{"startPolylinePointIndex":{"type":"number","optional":true},"endPolylinePointIndex":{"type":"number","optional":true},"speed":{"type":"string","enum":["SPEED_UNSPECIFIED","NORMAL","SLOW","TRAFFIC_JAM"],"optional":true}}},"optional":true}},"optional":true},"localizedValues":{"type":"object","members":{"distance":{"type":"object","members":{"text":{"type":"string","optional":true},"languageCode":{"type":"string","optional":true}},"optional":true},"staticDuration":{"type":"object","members":{"text":{"type":"string","optional":true},"languageCode":{"type":"string","optional":true}},"optional":true}},"optional":true},"transitDetails":{"type":"object","members":{"stopDetails":{"type":"object","members":{"arrivalStop":{"type":"object","members":{"name":{"type":"string","optional":true},"location":{"type":"object","members":{"latLng":{"type":"object","members":{"latitude":{"type":"number","optional":true},"longitude":{"type":"number","optional":true}},"optional":true},"heading":{"type":"object","members":{"value":{"type":"number","optional":true}},"optional":true}},"optional":true}},"optional":true},"arrivalTime":{"type":"string","optional":true},"departureStop":{"type":"object","members":{"name":{"type":"string","optional":true},"location":{"type":"object","members":{"latLng":{"type":"object","members":{"latitude":{"type":"number","optional":true},"longitude":{"type":"number","optional":true}},"optional":true},"heading":{"type":"object","members":{"value":{"type":"number","optional":true}},"optional":true}},"optional":true}},"optional":true},"departureTime":{"type":"string","optional":true}},"optional":true},"localizedValues":{"type":"object","members":{"arrivalTime":{"type":"object","members":{"time":{"type":"object","members":{"text":{"type":"string","optional":true},"languageCode":{"type":"string","optional":true}},"optional":true},"timeZone":{"type":"string","optional":true}},"optional":true},"departureTime":{"type":"object","members":{"time":{"type":"object","members":{"text":{"type":"string","optional":true},"languageCode":{"type":"string","optional":true}},"optional":true},"timeZone":{"type":"string","optional":true}},"optional":true}},"optional":true},"headsign":{"type":"string","optional":true},"headway":{"type":"string","optional":true},"transitLine":{"type":"object","members":{"agencies":{"type":"array","items":{"type":"object","members":{"name":{"type":"string","optional":true},"phoneNumber":{"type":"string","optional":true},"uri":{"type":"string","optional":true}}},"optional":true},"name":{"type":"string","optional":true},"uri":{"type":"string","optional":true},"color":{"type":"string","optional":true},"iconUri":{"type":"string","optional":true},"nameShort":{"type":"string","optional":true},"textColor":{"type":"string","optional":true},"vehicle":{"type":"object","members":{"name":{"type":"object","members":{"text":{"type":"string","optional":true},"languageCode":{"type":"string","optional":true}},"optional":true},"type":{"type":"string","enum":["TRANSIT_VEHICLE_TYPE_UNSPECIFIED","BUS","CABLE_CAR","COMMUTER_TRAIN","FERRY","FUNICULAR","GONDOLA_LIFT","HEAVY_RAIL","HIGH_SPEED_TRAIN","INTERCITY_BUS","LONG_DISTANCE_TRAIN","METRO_RAIL","MONORAIL","OTHER","RAIL","SHARE_TAXI","SUBWAY","TRAM","TROLLEYBUS"],"optional":true},"iconUri":{"type":"string","optional":true},"localIconUri":{"type":"string","optional":true}},"optional":true}},"optional":true},"stopCount":{"type":"number","optional":true},"tripShortText":{"type":"string","optional":true}},"optional":true},"travelMode":{"type":"string","enum":["TRAVEL_MODE_UNSPECIFIED","DRIVE","BICYCLE","WALK","TWO_WHEELER","TRANSIT"],"optional":true}}},"optional":true},"travelAdvisory":{"type":"object","members":{"tollInfo":{"type":"object","members":{"estimatedPrice":{"type":"array","items":{"type":"object","members":{"currencyCode":{"type":"string","optional":true},"units":{"type":"string","pattern":"^-?[0-9]+$","optional":true},"nanos":{"type":"number","optional":true}}},"optional":true}},"optional":true},"speedReadingIntervals":{"type":"array","items":{"type":"object","members":{"startPolylinePointIndex":{"type":"number","optional":true},"endPolylinePointIndex":{"type":"number","optional":true},"speed":{"type":"string","enum":["SPEED_UNSPECIFIED","NORMAL","SLOW","TRAFFIC_JAM"],"optional":true}}},"optional":true}},"optional":true},"localizedValues":{"type":"object","members":{"distance":{"type":"object","members":{"text":{"type":"string","optional":true},"languageCode":{"type":"string","optional":true}},"optional":true},"duration":{"type":"object","members":{"text":{"type":"string","optional":true},"languageCode":{"type":"string","optional":true}},"optional":true},"staticDuration":{"type":"object","members":{"text":{"type":"string","optional":true},"languageCode":{"type":"string","optional":true}},"optional":true}},"optional":true},"stepsOverview":{"type":"object","members":{"multiModalSegments":{"type":"array","items":{"type":"object","members":{"stepStartIndex":{"type":"number","optional":true},"stepEndIndex":{"type":"number","optional":true},"navigationInstruction":{"type":"object","members":{"maneuver":{"type":"string","enum":["MANEUVER_UNSPECIFIED","TURN_SLIGHT_LEFT","TURN_SHARP_LEFT","UTURN_LEFT","TURN_LEFT","TURN_SLIGHT_RIGHT","TURN_SHARP_RIGHT","UTURN_RIGHT","TURN_RIGHT","STRAIGHT","RAMP_LEFT","RAMP_RIGHT","MERGE","FORK_LEFT","FORK_RIGHT","FERRY","FERRY_TRAIN","ROUNDABOUT_LEFT","ROUNDABOUT_RIGHT","DEPART","NAME_CHANGE"],"optional":true},"instructions":{"type":"string","optional":true}},"optional":true},"travelMode":{"type":"string","enum":["TRAVEL_MODE_UNSPECIFIED","DRIVE","BICYCLE","WALK","TWO_WHEELER","TRANSIT"],"optional":true}}},"optional":true}},"optional":true}}},"optional":true},"distanceMeters":{"type":"number","optional":true},"duration":{"type":"string","optional":true},"staticDuration":{"type":"string","optional":true},"polyline":{"type":"object","members":{"encodedPolyline":{"type":"string","optional":true},"geoJsonLinestring":{"type":"object","members":{"type":{"type":"string"},"coordinates":{"type":"array","items":{"type":"array","items":{"type":"number"}}}},"optional":true}},"optional":true},"description":{"type":"string","optional":true},"warnings":{"type":"array","items":{"type":"string"},"optional":true},"viewport":{"type":"object","members":{"low":{"type":"object","members":{"latitude":{"type":"number","optional":true},"longitude":{"type":"number","optional":true}},"optional":true},"high":{"type":"object","members":{"latitude":{"type":"number","optional":true},"longitude":{"type":"number","optional":true}},"optional":true}},"optional":true},"travelAdvisory":{"type":"object","members":{"tollInfo":{"type":"object","members":{"estimatedPrice":{"type":"array","items":{"type":"object","members":{"currencyCode":{"type":"string","optional":true},"units":{"type":"string","pattern":"^-?[0-9]+$","optional":true},"nanos":{"type":"number","optional":true}}},"optional":true}},"optional":true},"speedReadingIntervals":{"type":"array","items":{"type":"object","members":{"startPolylinePointIndex":{"type":"number","optional":true},"endPolylinePointIndex":{"type":"number","optional":true},"speed":{"type":"string","enum":["SPEED_UNSPECIFIED","NORMAL","SLOW","TRAFFIC_JAM"],"optional":true}}},"optional":true},"fuelConsumptionMicroliters":{"type":"string","pattern":"^-?[0-9]+$","optional":true},"routeRestrictionsPartiallyIgnored":{"type":"boolean","optional":true},"transitFare":{"type":"object","members":{"currencyCode":{"type":"string","optional":true},"units":{"type":"string","pattern":"^-?[0-9]+$","optional":true},"nanos":{"type":"number","optional":true}},"optional":true}},"optional":true},"optimizedIntermediateWaypointIndex":{"type":"array","items":{"type":"number"},"optional":true},"localizedValues":{"type":"object","members":{"distance":{"type":"object","members":{"text":{"type":"string","optional":true},"languageCode":{"type":"string","optional":true}},"optional":true},"duration":{"type":"object","members":{"text":{"type":"string","optional":true},"languageCode":{"type":"string","optional":true}},"optional":true},"staticDuration":{"type":"object","members":{"text":{"type":"string","optional":true},"languageCode":{"type":"string","optional":true}},"optional":true},"transitFare":{"type":"object","members":{"text":{"type":"string","optional":true},"languageCode":{"type":"string","optional":true}},"optional":true}},"optional":true},"routeToken":{"type":"string","optional":true},"polylineDetails":{"type":"object","members":{"tunnelInfo":{"type":"array","items":{"type":"object","members":{"tunnelPresence":{"type":"string","enum":["ROAD_FEATURE_STATE_UNSPECIFIED","EXISTS","DOES_NOT_EXIST"],"optional":true},"polylinePointIndex":{"type":"object","members":{"startIndex":{"type":"number","optional":true},"endIndex":{"type":"number","optional":true}},"optional":true}}},"optional":true},"flyoverInfo":{"type":"array","items":{"type":"object","members":{"flyoverPresence":{"type":"string","enum":["ROAD_FEATURE_STATE_UNSPECIFIED","EXISTS","DOES_NOT_EXIST"],"optional":true},"polylinePointIndex":{"type":"object","members":{"startIndex":{"type":"number","optional":true},"endIndex":{"type":"number","optional":true}},"optional":true}}},"optional":true},"narrowRoadInfo":{"type":"array","items":{"type":"object","members":{"narrowRoadPresence":{"type":"string","enum":["ROAD_FEATURE_STATE_UNSPECIFIED","EXISTS","DOES_NOT_EXIST"],"optional":true},"polylinePointIndex":{"type":"object","members":{"startIndex":{"type":"number","optional":true},"endIndex":{"type":"number","optional":true}},"optional":true}}},"optional":true},"bridgeInfo":{"type":"array","items":{"type":"object","members":{"bridgePresence":{"type":"string","enum":["ROAD_FEATURE_STATE_UNSPECIFIED","EXISTS","DOES_NOT_EXIST"],"optional":true},"polylinePointIndex":{"type":"object","members":{"startIndex":{"type":"number","optional":true},"endIndex":{"type":"number","optional":true}},"optional":true}}},"optional":true},"skywayInfo":{"type":"array","items":{"type":"object","members":{"skywayPresence":{"type":"string","enum":["ROAD_FEATURE_STATE_UNSPECIFIED","EXISTS","DOES_NOT_EXIST"],"optional":true},"polylinePointIndex":{"type":"object","members":{"startIndex":{"type":"number","optional":true},"endIndex":{"type":"number","optional":true}},"optional":true}}},"optional":true}},"optional":true}}},"optional":true},"fallbackInfo":{"type":"object","members":{"routingMode":{"type":"string","enum":["FALLBACK_ROUTING_MODE_UNSPECIFIED","FALLBACK_TRAFFIC_UNAWARE","FALLBACK_TRAFFIC_AWARE"],"optional":true},"reason":{"type":"string","enum":["FALLBACK_REASON_UNSPECIFIED","SERVER_ERROR","LATENCY_EXCEEDED"],"optional":true}},"optional":true},"geocodingResults":{"type":"object","members":{"origin":{"type":"object","members":{"geocoderStatus":{"type":"object","members":{"code":{"type":"number","optional":true},"message":{"type":"string","optional":true}},"optional":true},"intermediateWaypointRequestIndex":{"type":"number","optional":true},"type":{"type":"array","items":{"type":"string"},"optional":true},"partialMatch":{"type":"boolean","optional":true},"placeId":{"type":"string","optional":true}},"optional":true},"destination":{"type":"object","members":{"geocoderStatus":{"type":"object","members":{"code":{"type":"number","optional":true},"message":{"type":"string","optional":true}},"optional":true},"intermediateWaypointRequestIndex":{"type":"number","optional":true},"type":{"type":"array","items":{"type":"string"},"optional":true},"partialMatch":{"type":"boolean","optional":true},"placeId":{"type":"string","optional":true}},"optional":true},"intermediates":{"type":"array","items":{"type":"object","members":{"geocoderStatus":{"type":"object","members":{"code":{"type":"number","optional":true},"message":{"type":"string","optional":true}},"optional":true},"intermediateWaypointRequestIndex":{"type":"number","optional":true},"type":{"type":"array","items":{"type":"string"},"optional":true},"partialMatch":{"type":"boolean","optional":true},"placeId":{"type":"string","optional":true}}},"optional":true}},"optional":true}}},"computeRouteMatrix":{"desc":"Travel times and distances between origins and destinations. Each result identifies originIndex, destinationIndex and status.","ops":["query"],"queryFields":[],"params":["origins","destinations","travelMode","routingPreference","departureTime","arrivalTime","languageCode","regionCode","units","extraComputations","trafficModel","transitPreferences"],"parameterFields":{"origins":{"type":"array","items":{"type":"object","members":{"waypoint":{"type":"object","members":{"location":{"type":"object","members":{"latLng":{"type":"object","members":{"latitude":{"type":"number","optional":true},"longitude":{"type":"number","optional":true}},"optional":true},"heading":{"type":"object","members":{"value":{"type":"number","optional":true}},"optional":true}},"optional":true},"placeId":{"type":"string","optional":true},"address":{"type":"string","optional":true},"navigationPointToken":{"type":"string","optional":true},"via":{"type":"boolean","optional":true},"vehicleStopover":{"type":"boolean","optional":true},"sideOfRoad":{"type":"boolean","optional":true}}},"routeModifiers":{"type":"object","members":{"avoidTolls":{"type":"boolean","optional":true},"avoidHighways":{"type":"boolean","optional":true},"avoidFerries":{"type":"boolean","optional":true},"avoidIndoor":{"type":"boolean","optional":true},"vehicleInfo":{"type":"object","members":{"emissionType":{"type":"string","enum":["VEHICLE_EMISSION_TYPE_UNSPECIFIED","GASOLINE","ELECTRIC","HYBRID","DIESEL"],"optional":true}},"optional":true},"tollPasses":{"type":"array","items":{"type":"string","enum":["TOLL_PASS_UNSPECIFIED","AU_ETOLL_TAG","AU_EWAY_TAG","AU_LINKT","AR_TELEPASE","BR_AUTO_EXPRESO","BR_CONECTCAR","BR_MOVE_MAIS","BR_PASSA_RAPIDO","BR_SEM_PARAR","BR_TAGGY","BR_VELOE","CA_US_AKWASASNE_SEAWAY_CORPORATE_CARD","CA_US_AKWASASNE_SEAWAY_TRANSIT_CARD","CA_US_BLUE_WATER_EDGE_PASS","CA_US_CONNEXION","CA_US_NEXUS_CARD","ID_E_TOLL","IN_FASTAG","IN_LOCAL_HP_PLATE_EXEMPT","JP_ETC","JP_ETC2","MX_IAVE","MX_PASE","MX_QUICKPASS","MX_SISTEMA_TELEPEAJE_CHIHUAHUA","MX_TAG_IAVE","MX_TAG_TELEVIA","MX_TELEVIA","MX_VIAPASS","US_AL_FREEDOM_PASS","US_AK_ANTON_ANDERSON_TUNNEL_BOOK_OF_10_TICKETS","US_CA_FASTRAK","US_CA_FASTRAK_CAV_STICKER","US_CO_EXPRESSTOLL","US_CO_GO_PASS","US_DE_EZPASSDE","US_FL_BOB_SIKES_TOLL_BRIDGE_PASS","US_FL_DUNES_COMMUNITY_DEVELOPMENT_DISTRICT_EXPRESSCARD","US_FL_EPASS","US_FL_GIBA_TOLL_PASS","US_FL_LEEWAY","US_FL_SUNPASS","US_FL_SUNPASS_PRO","US_IL_EZPASSIL","US_IL_IPASS","US_IN_EZPASSIN","US_KS_BESTPASS_HORIZON","US_KS_KTAG","US_KS_NATIONALPASS","US_KS_PREPASS_ELITEPASS","US_KY_RIVERLINK","US_LA_GEAUXPASS","US_LA_TOLL_TAG","US_MA_EZPASSMA","US_MD_EZPASSMD","US_ME_EZPASSME","US_MI_AMBASSADOR_BRIDGE_PREMIER_COMMUTER_CARD","US_MI_BCPASS","US_MI_BREAKAWAY","US_MI_GROSSE_ILE_TOLL_BRIDGE_PASS_TAG","US_MI_IQ_PROX_CARD","US_MI_IQ_TAG","US_MI_MACKINAC_BRIDGE_MAC_PASS","US_MI_NEXPRESS_TOLL","US_MN_EZPASSMN","US_NC_EZPASSNC","US_NC_PEACH_PASS","US_NC_QUICK_PASS","US_NH_EZPASSNH","US_NJ_DOWNBEACH_EXPRESS_PASS","US_NJ_EZPASSNJ","US_NY_EXPRESSPASS","US_NY_EZPASSNY","US_OH_EZPASSOH","US_PA_EZPASSPA","US_RI_EZPASSRI","US_SC_PALPASS","US_TX_AVI_TAG","US_TX_BANCPASS","US_TX_DEL_RIO_PASS","US_TX_EFAST_PASS","US_TX_EAGLE_PASS_EXPRESS_CARD","US_TX_EPTOLL","US_TX_EZ_CROSS","US_TX_EZTAG","US_TX_FUEGO_TAG","US_TX_LAREDO_TRADE_TAG","US_TX_PLUSPASS","US_TX_TOLLTAG","US_TX_TXTAG","US_TX_XPRESS_CARD","US_UT_ADAMS_AVE_PARKWAY_EXPRESSCARD","US_VA_EZPASSVA","US_WA_BREEZEBY","US_WA_GOOD_TO_GO","US_WV_EZPASSWV","US_WV_MEMORIAL_BRIDGE_TICKETS","US_WV_MOV_PASS","US_WV_NEWELL_TOLL_BRIDGE_TICKET"]},"optional":true},"avoidTunnels":{"type":"boolean","optional":true}},"optional":true}}}},"destinations":{"type":"array","items":{"type":"object","members":{"waypoint":{"type":"object","members":{"location":{"type":"object","members":{"latLng":{"type":"object","members":{"latitude":{"type":"number","optional":true},"longitude":{"type":"number","optional":true}},"optional":true},"heading":{"type":"object","members":{"value":{"type":"number","optional":true}},"optional":true}},"optional":true},"placeId":{"type":"string","optional":true},"address":{"type":"string","optional":true},"navigationPointToken":{"type":"string","optional":true},"via":{"type":"boolean","optional":true},"vehicleStopover":{"type":"boolean","optional":true},"sideOfRoad":{"type":"boolean","optional":true}}}}}},"travelMode":{"type":"string","enum":["TRAVEL_MODE_UNSPECIFIED","DRIVE","BICYCLE","WALK","TWO_WHEELER","TRANSIT"],"optional":true},"routingPreference":{"type":"string","enum":["ROUTING_PREFERENCE_UNSPECIFIED","TRAFFIC_UNAWARE","TRAFFIC_AWARE","TRAFFIC_AWARE_OPTIMAL"],"optional":true},"departureTime":{"type":"string","optional":true},"arrivalTime":{"type":"string","optional":true},"languageCode":{"type":"string","optional":true},"regionCode":{"type":"string","optional":true},"units":{"type":"string","enum":["UNITS_UNSPECIFIED","METRIC","IMPERIAL"],"optional":true},"extraComputations":{"type":"array","items":{"type":"string","enum":["EXTRA_COMPUTATION_UNSPECIFIED","TOLLS"]},"optional":true},"trafficModel":{"type":"string","enum":["TRAFFIC_MODEL_UNSPECIFIED","BEST_GUESS","PESSIMISTIC","OPTIMISTIC"],"optional":true},"transitPreferences":{"type":"object","members":{"allowedTravelModes":{"type":"array","items":{"type":"string","enum":["TRANSIT_TRAVEL_MODE_UNSPECIFIED","BUS","SUBWAY","TRAIN","LIGHT_RAIL","RAIL"]},"optional":true},"routingPreference":{"type":"string","enum":["TRANSIT_ROUTING_PREFERENCE_UNSPECIFIED","LESS_WALKING","FEWER_TRANSFERS"],"optional":true}},"optional":true}},"requiredParams":["origins","destinations"],"read":"anonymous","anonymous":["read"],"enforcedBy":{"read":"the provider at places.googleapis.com, under the app's configured credentials"},"fields":{"originIndex":{"type":"number","optional":true},"destinationIndex":{"type":"number","optional":true},"status":{"type":"object","members":{"code":{"type":"number","optional":true},"message":{"type":"string","optional":true}},"optional":true},"condition":{"type":"string","enum":["ROUTE_MATRIX_ELEMENT_CONDITION_UNSPECIFIED","ROUTE_EXISTS","ROUTE_NOT_FOUND"],"optional":true},"distanceMeters":{"type":"number","optional":true},"duration":{"type":"string","optional":true},"staticDuration":{"type":"string","optional":true},"travelAdvisory":{"type":"object","members":{"tollInfo":{"type":"object","members":{"estimatedPrice":{"type":"array","items":{"type":"object","members":{"currencyCode":{"type":"string","optional":true},"units":{"type":"string","pattern":"^-?[0-9]+$","optional":true},"nanos":{"type":"number","optional":true}}},"optional":true}},"optional":true},"speedReadingIntervals":{"type":"array","items":{"type":"object","members":{"startPolylinePointIndex":{"type":"number","optional":true},"endPolylinePointIndex":{"type":"number","optional":true},"speed":{"type":"string","enum":["SPEED_UNSPECIFIED","NORMAL","SLOW","TRAFFIC_JAM"],"optional":true}}},"optional":true},"fuelConsumptionMicroliters":{"type":"string","pattern":"^-?[0-9]+$","optional":true},"routeRestrictionsPartiallyIgnored":{"type":"boolean","optional":true},"transitFare":{"type":"object","members":{"currencyCode":{"type":"string","optional":true},"units":{"type":"string","pattern":"^-?[0-9]+$","optional":true},"nanos":{"type":"number","optional":true}},"optional":true}},"optional":true},"fallbackInfo":{"type":"object","members":{"routingMode":{"type":"string","enum":["FALLBACK_ROUTING_MODE_UNSPECIFIED","FALLBACK_TRAFFIC_UNAWARE","FALLBACK_TRAFFIC_AWARE"],"optional":true},"reason":{"type":"string","enum":["FALLBACK_REASON_UNSPECIFIED","SERVER_ERROR","LATENCY_EXCEEDED"],"optional":true}},"optional":true},"localizedValues":{"type":"object","members":{"distance":{"type":"object","members":{"text":{"type":"string","optional":true},"languageCode":{"type":"string","optional":true}},"optional":true},"duration":{"type":"object","members":{"text":{"type":"string","optional":true},"languageCode":{"type":"string","optional":true}},"optional":true},"staticDuration":{"type":"object","members":{"text":{"type":"string","optional":true},"languageCode":{"type":"string","optional":true}},"optional":true},"transitFare":{"type":"object","members":{"text":{"type":"string","optional":true},"languageCode":{"type":"string","optional":true}},"optional":true}},"optional":true}}}}},"result":{"kind":"rows","maxRows":10000,"maxBytes":4194304,"classification":"public"},"stream":{"semantics":"none","recovery":"none"},"authority":{"mode":"public"}},"sharing":"shareable","requires":{"authority":false,"authorityIdentity":false,"resourceIdentity":true}}],"assetSources":{},"hostRequirements":{"server":{"appId":true,"mounts":[],"inputs":[]},"browser":{"appId":true,"mounts":[{"name":"capabilityData","desc":"the app host's capability-data door; the browser reads and writes through `<mount>/<appId>/<source>` and the host holds the credentials"}],"inputs":[]},"both":{"appId":true,"mounts":[],"inputs":[]}}},{"entry":{"capability":{"name":"media","kind":"cloudflare.r2.tenant-media.web"},"target":"browser","packContractAddress":"81178ad3dc0a6e79","outputNames":{"assets":["tenantMedia"]},"dependencies":[],"associatedAssets":[{"name":"media","bucket":"media","source":"tenantMedia","access":{"read":[{"actors":["visitor"]}],"upload":[{"actors":["administrator"]}],"remove":[{"actors":["administrator"]}],"uploadUrl":[{"actors":["administrator"]}]},"scopes":{},"accept":[],"maxBytes":null,"params":{"lane":"public"},"notify":{"ok":null,"problem":"auto"},"reconciles":null},{"name":"tradePhotos","bucket":"tradePhotos","source":"tenantMedia","access":{"read":[{"actors":["visitor"]}],"upload":[{"actors":["visitor"]}],"remove":[{"actors":["administrator"]}],"uploadUrl":[{"actors":["administrator"]}]},"scopes":{},"accept":["image/jpeg","image/png","image/webp","image/heic","image/heif"],"maxBytes":10485760,"params":{"lane":"public"},"notify":{"ok":null,"problem":"silent"},"reconciles":null}]},"declaration":{"name":"media","kind":"cloudflare.r2.tenant-media.web","target":null,"config":{},"secrets":{},"using":{},"as":{}},"contract":{"product":{"label":"Images and files","summary":"Upload pictures and files and use them anywhere on your site.","category":"content","useCases":[{"id":"add-media-experience","label":"Add images or file uploads"}]},"desc":"Cloudflare R2 tenant-media store reached through the app host. Content-addressed uploads, access enforcement, progress, and canonical URLs are provider-owned; field removal only detaches the reference.","target":"browser","host":{"appId":true,"mounts":{"media":{"desc":"the asset port's sign, blob and object addresses — every media URL this app renders is composed under it"}}},"config":{},"using":{"identity":{"required":false,"desc":"The app's auth capability. Required when a selected media binding carries a row-scoped grant (each subject reading and uploading only their own objects); optional otherwise."}},"outputs":{"assets":{"default":"tenantMedia","asset":{"desc":"Every asset:// reference requires an assets binding for its bucket and a registered source, including existing uploaded or generated images. A display helper does not supply that binding or grant access. Cloudflare R2 tenant media behind the app host. Uploads are content-addressed and report progress. `params.lane` addresses the physical object namespace and grants nothing; the binding's `access` actor grants decide who may read, upload, and remove.","maxBytes":26214400,"operations":["upload","uploadUrl","remove"],"params":{"lane":{"type":"string","desc":"Storage lane addressing this bucket's objects: `public` (edge-cacheable, immutable content address), `private` (never shared-cached), or `users` (each subject's own key prefix — required by, and only by, a grant clause naming a relation scope).","required":true,"enum":["public","private","users"]}},"identity":{"using":"identity"},"scope":{"principalField":"uid"}},"desc":"AssetPort consumed by manifest `assets` bindings whose source is tenantMedia."}}},"configFields":[],"publicConfigQuestions":[],"secretInputs":[],"sourceBindingPlan":[],"assetSources":{"tenantMedia":{"desc":"Every asset:// reference requires an assets binding for its bucket and a registered source, including existing uploaded or generated images. A display helper does not supply that binding or grant access. Cloudflare R2 tenant media behind the app host. Uploads are content-addressed and report progress. `params.lane` addresses the physical object namespace and grants nothing; the binding's `access` actor grants decide who may read, upload, and remove.","maxBytes":26214400,"operations":["upload","uploadUrl","remove"],"params":{"lane":{"type":"string","desc":"Storage lane addressing this bucket's objects: `public` (edge-cacheable, immutable content address), `private` (never shared-cached), or `users` (each subject's own key prefix — required by, and only by, a grant clause naming a relation scope).","required":true,"enum":["public","private","users"]}},"identity":{"using":"identity"},"scope":{"principalField":"uid"}}},"hostRequirements":{"server":{"appId":true,"mounts":[],"inputs":[]},"browser":{"appId":true,"mounts":[{"name":"media","desc":"the asset port's sign, blob and object addresses — every media URL this app renders is composed under it"}],"inputs":[]},"both":{"appId":true,"mounts":[],"inputs":[]}}},{"entry":{"capability":{"name":"opehub","kind":"opehub.rest"},"target":"both","packContractAddress":"64bd840734fb9e65","outputNames":{"data":["opehub"]},"dependencies":[],"associatedAssets":[]},"declaration":{"name":"opehub","kind":"opehub.rest","target":null,"config":{},"secrets":{},"using":{},"as":{}},"contract":{"desc":"Dealer data and website lead submission, over one dealer key. Use websiteContent for media sets with hero and feature artwork, one optional promotion and inventoryIds. Read inventory separately for listings, prices, financing and all applicable promotionIds; promotions includes offers without media sets. Dealer and catalogs provide identity and product detail. The opehubLeads source creates customer inquiries. The API key stays server-side.","product":{"category":"business","label":"OpeHub dealer data","summary":"Show current OpeHub website artwork, inventory and offers, with your dealer identity and product catalog, and send customer inquiries to your dealership.","useCases":[{"id":"show-opehub-wholegoods","label":"Show equipment, inventory, and promotions"},{"id":"show-opehub-dealer-profile","label":"Show your dealer profile"},{"id":"submit-opehub-inquiry","label":"Collect inventory inquiries"}]},"verification":{"scope":"dealer profile access","failureFields":["secret:apiKey"],"facts":{"profile":{"label":"Dealer profile","values":{"published":{"label":"Published","message":"OpeHub accepted this key and is publishing a dealer profile for it.","readiness":"ready"},"unpublished":{"label":"Not published yet","message":"OpeHub accepted this key, but is not publishing a dealer profile for it yet. Catalogs will still load; a profile section will render empty until OpeHub publishes one.","readiness":"attention"}}}}},"target":"both","host":{"appId":true,"mounts":{"capabilityData":{"desc":"the app host's capability-data door; the browser reads and writes through `<mount>/<appId>/<source>` and the host holds the credentials"}}},"secrets":{"apiKey":{"label":"OpeHub API key","desc":"An OpeHub API key scoped to one dealer. Dealer reads accept any valid key; website lead creates require a First Light managed read key or an admin key. The key stays encrypted on the app's server and never reaches a page.","required":true,"sources":["platform"],"defaultSource":"platform"}},"imageEgress":["https://res.cloudinary.com"],"outputs":{"data":{"many":true,"default":"opehub","sources":{"opehub":{"desc":"Dealer-scoped reads. Use websiteContent for media sets with artwork and their promotion; inventory for listings and financing; promotions for all listing offers; dealer for identity and locations; catalog collections for products. Dates are ISO-8601. Every image carries ready links in urls, sized for its use.","maximumFreshnessMs":60000,"maxRows":100000,"collections":{"brands":{"desc":"Brands referenced by the dealer's approved catalogs, in weight order.","ops":["query"],"queryFields":[],"read":"anonymous","anonymous":["read"],"enforcedBy":{"read":"the provider at opehub.web.app, under the app's configured credentials"},"fields":{"darkLogo":{"desc":"The logo drawn for dark backgrounds.","members":{"cloudinaryId":"string","format":"string","type":"string","urls":{"desc":"urls.small fits 240x80 for headers, cards and footers; urls.large fits 720x240 for a large placement.","members":{"large":"string","small":"string"},"optional":true,"type":"object"}},"type":"object","optional":true},"id":{"desc":"Stable brand id; catalogs reference it as brandId.","type":"string"},"logo":{"desc":"A logo, with ready links trimmed of empty margins so every logo shows whole at a comparable size.","members":{"cloudinaryId":"string","format":"string","type":"string","urls":{"desc":"urls.small fits 240x80 for headers, cards and footers; urls.large fits 720x240 for a large placement.","members":{"large":"string","small":"string"},"optional":true,"type":"object"}},"type":"object","optional":true},"name":{"desc":"Brand name, as OpeHub publishes it.","type":"string"},"weight":{"desc":"Display order within its parent, ascending. Always present — OpeHub defaults it to 0.","type":"number"}}},"catalogs":{"desc":"Catalogs this dealer holds an APPROVED catalogConfig for. Pending and denied configs are absent, so what a page renders is what the dealer is actually entitled to show.","ops":["query"],"queryFields":[],"read":"anonymous","anonymous":["read"],"enforcedBy":{"read":"the provider at opehub.web.app, under the app's configured credentials"},"fields":{"brandId":{"desc":"Brand id; joins brands.id.","type":"string"},"id":{"desc":"Stable catalog id. Categories reference it as catalogId.","type":"string"},"mediaFile":{"desc":"A product, catalog or listing photo (or video), with ready links that show it whole, never cropped or enlarged.","members":{"cloudinaryId":"string","description":"string?","format":"string","type":"string","urls":{"desc":"urls.card fits 640x480 for cards and lists; urls.page fits 1600x1200 for a product page or gallery.","members":{"card":"string","page":"string"},"optional":true,"type":"object"}},"type":"object","optional":true},"name":{"desc":"Catalog name, as OpeHub publishes it.","type":"string"},"weight":{"desc":"Display order within its parent, ascending. Always present — OpeHub defaults it to 0.","type":"number"}}},"categories":{"desc":"Categories in approved catalogs; catalogId joins catalogs.","ops":["query"],"queryFields":[],"read":"anonymous","anonymous":["read"],"enforcedBy":{"read":"the provider at opehub.web.app, under the app's configured credentials"},"fields":{"brandId":{"desc":"Brand id; joins brands.id.","type":"string"},"catalogId":{"desc":"The owning catalog's id.","type":"string"},"id":{"desc":"Stable category id. Sub-categories reference it as categoryId.","type":"string"},"mediaFile":{"desc":"A product, catalog or listing photo (or video), with ready links that show it whole, never cropped or enlarged.","members":{"cloudinaryId":"string","description":"string?","format":"string","type":"string","urls":{"desc":"urls.card fits 640x480 for cards and lists; urls.page fits 1600x1200 for a product page or gallery.","members":{"card":"string","page":"string"},"optional":true,"type":"object"}},"type":"object","optional":true},"name":{"desc":"Category name, as OpeHub publishes it.","type":"string"},"weight":{"desc":"Display order within its parent, ascending. Always present — OpeHub defaults it to 0.","type":"number"}}},"dealer":{"desc":"One profile row, or none if unpublished. The dealer has one name and logo; locations supply contact and availability facts.","ops":["query"],"queryFields":[],"read":"anonymous","anonymous":["read"],"enforcedBy":{"read":"the provider at opehub.web.app, under the app's configured credentials"},"fields":{"branding":{"desc":"Dealer branding: story, captioned photos, hex colors and named visual style. Each part may be absent.","members":{"aboutUs":"string?","colors":{"members":{"accent":"string?","background":"string?","main":"string?"},"optional":true,"type":"object"},"photos":{"items":{"desc":"A product, catalog or listing photo (or video), with ready links that show it whole, never cropped or enlarged.","members":{"cloudinaryId":"string","description":"string?","format":"string","type":"string","urls":{"desc":"urls.card fits 640x480 for cards and lists; urls.page fits 1600x1200 for a product page or gallery.","members":{"card":"string","page":"string"},"optional":true,"type":"object"}},"type":"object"},"optional":true,"type":"array"},"vibe":{"members":{"description":"string","id":"string","name":"string"},"optional":true,"type":"object"}},"optional":true,"type":"object"},"id":{"desc":"Stable dealer id — the `publicDealers` document id.","type":"string"},"locations":{"desc":"The dealer's physical locations, each with its own address and optional phone, email and map point.","items":{"members":{"address":"string","city":"string","country":"string","email":"string?","id":"string","latLng":{"members":{"lat":"number","lng":"number"},"optional":true,"type":"object"},"phone":"string?","state":"string","zip":"string"},"type":"object"},"type":"array"},"logo":{"desc":"A logo, with ready links trimmed of empty margins so every logo shows whole at a comparable size.","members":{"cloudinaryId":"string","format":"string","type":"string","urls":{"desc":"urls.small fits 240x80 for headers, cards and footers; urls.large fits 720x240 for a large placement.","members":{"large":"string","small":"string"},"optional":true,"type":"object"}},"type":"object","optional":true},"name":{"desc":"Dealer name, as OpeHub publishes it.","type":"string"},"website":{"desc":"The dealer's own website. Absent when they have not set one.","optional":true,"type":"string"}}},"inventory":{"desc":"Priced published available and sold listings, newest first. Unpriced or stale listings are omitted; promotion optionally selects listings carrying that offer.","ops":["query"],"queryFields":[],"params":["promotion"],"read":"anonymous","anonymous":["read"],"enforcedBy":{"read":"the provider at opehub.web.app, under the app's configured credentials"},"fields":{"addOns":{"desc":"Customer-selectable extras, separately priced and not included in the machine price. Show their payment estimates separately. Send chosen ids with their inventory id in a website lead’s addOnSelections.","items":{"members":{"adjustments":{"items":{"members":{"amount":"number","name":"string","promotionId":"string?"},"type":"object"},"type":"array"},"cashPrice":{"desc":"Lower cash price only when financing creates a cash saving; otherwise null.","optional":true,"type":"number"},"id":"string","mediaFile":{"desc":"A product, catalog or listing photo (or video), with ready links that show it whole, never cropped or enlarged.","members":{"cloudinaryId":"string","description":"string?","format":"string","type":"string","urls":{"desc":"urls.card fits 640x480 for cards and lists; urls.page fits 1600x1200 for a product page or gallery.","members":{"card":"string","page":"string"},"optional":true,"type":"object"}},"type":"object","optional":true},"name":"string","payment":{"desc":"Separate monthly estimate before sales tax, without an additional finance fee. The final quote reprices selected options.","optional":true,"type":"number"},"price":"number?","qty":"number","sku":"string"},"type":"object"},"type":"array"},"adjustments":{"desc":"Already included in machine prices: never add again. Negative amounts reduce price; promotionId joins a catalog offer when present.","items":{"members":{"amount":"number","name":"string","promotionId":"string?"},"type":"object"},"type":"array"},"cashPrice":{"desc":"Lower cash dollars before tax only when financing creates a cash saving; otherwise null. Show price alone when null.","optional":true,"type":"number"},"condition":{"desc":"The unit's sale condition.","enum":["new","used","demo","rental"],"type":"string"},"createdAt":{"desc":"ISO-8601 listing creation time.","type":"string"},"description":{"desc":"The dealer-authored listing description; empty when none was provided.","type":"string"},"finance":{"desc":"Machine-only monthly estimate before sales tax with one finance fee; its rate is the interest rate in percent. Put its disclosure link beside the amount.","members":{"applyUrl":"string?","apr":"number","disclosure":"string","name":"string","payment":"number","termMonths":"number"},"optional":true,"type":"object"},"hours":{"desc":"Meter reading, when tracked.","optional":true,"type":"number"},"id":{"desc":"Stable inventory listing id.","type":"string"},"locationId":{"desc":"The physical lot; stock is not implied at other dealer locations.","type":"string"},"media":{"desc":"Additional listing photos or videos, in the dealer's authored order.","items":{"members":{"description":"string?","mediaFile":{"desc":"A product, catalog or listing photo (or video), with ready links that show it whole, never cropped or enlarged.","members":{"cloudinaryId":"string","description":"string?","format":"string","type":"string","urls":{"desc":"urls.card fits 640x480 for cards and lists; urls.page fits 1600x1200 for a product page or gallery.","members":{"card":"string","page":"string"},"optional":true,"type":"object"}},"type":"object"},"name":"string?"},"type":"object"},"type":"array"},"mediaFile":{"desc":"The listing hero image: the unit's own photo when set, otherwise its configured catalog image.","members":{"cloudinaryId":"string","description":"string?","format":"string","type":"string","urls":{"desc":"urls.card fits 640x480 for cards and lists; urls.page fits 1600x1200 for a product page or gallery.","members":{"card":"string","page":"string"},"optional":true,"type":"object"}},"type":"object","optional":true},"name":{"desc":"The listing title.","type":"string"},"price":{"desc":"Required current machine dollars before tax, including its adjustments. Unpriced or stale listings are omitted.","type":"number"},"promotionIds":{"desc":"Current catalog offers carried by this listing; joins promotions.id.","items":"string","type":"array"},"status":{"desc":"The published listing state. Sold listings remain visible so a site can badge them.","enum":["available","sold"],"type":"string"},"stockNumber":{"desc":"The dealer's own stock tag, when set.","optional":true,"type":"string"},"updatedAt":{"desc":"ISO-8601 listing update time.","type":"string"},"wholegood":{"desc":"id joins wholegoods for current catalog specs, features and resources.","members":{"brandId":"string","catalogId":"string","categoryId":"string","id":"string","name":"string","sku":"string","subCategoryId":"string","subtitle":"string?"},"type":"object"}}},"promotions":{"desc":"Catalog promotions carried by published listings, descending weight.","ops":["query"],"queryFields":[],"read":"anonymous","anonymous":["read"],"enforcedBy":{"read":"the provider at opehub.web.app, under the app's configured credentials"},"fields":{"brandId":{"desc":"Brand id; joins brands.id.","type":"string"},"description":{"desc":"Customer-facing promotion description; empty when none was provided.","type":"string"},"discount":{"desc":"Dollars off per unit; 0 for textOnly.","type":"number"},"ends":{"desc":"ISO-8601 promotion end time.","type":"string"},"id":{"desc":"Stable catalog promotion id; joins inventory.promotionIds.","type":"string"},"inventoryCount":{"desc":"Published listings carrying this promotion. Always at least one.","type":"number"},"name":{"desc":"Promotion name, as OpeHub publishes it.","type":"string"},"starts":{"desc":"ISO-8601 promotion start time.","type":"string"},"type":{"desc":"Whether the promotion discounts each unit or exists purely as an offer message.","enum":["dollarsOff","textOnly"],"type":"string"},"weight":{"desc":"Offer display priority, highest first.","type":"number"}}},"subCategories":{"desc":"Sub-categories in approved catalogs; categoryId joins categories.","ops":["query"],"queryFields":[],"read":"anonymous","anonymous":["read"],"enforcedBy":{"read":"the provider at opehub.web.app, under the app's configured credentials"},"fields":{"brandId":{"desc":"Brand id; joins brands.id.","type":"string"},"catalogId":{"desc":"The owning catalog's id.","type":"string"},"categoryId":{"desc":"The owning category's id.","type":"string"},"id":{"desc":"Stable sub-category id.","type":"string"},"mediaFile":{"desc":"A product, catalog or listing photo (or video), with ready links that show it whole, never cropped or enlarged.","members":{"cloudinaryId":"string","description":"string?","format":"string","type":"string","urls":{"desc":"urls.card fits 640x480 for cards and lists; urls.page fits 1600x1200 for a product page or gallery.","members":{"card":"string","page":"string"},"optional":true,"type":"object"}},"type":"object","optional":true},"name":{"desc":"Sub-category name, as OpeHub publishes it.","type":"string"},"weight":{"desc":"Display order within its parent, ascending. Always present — OpeHub defaults it to 0.","type":"number"}}},"websiteContent":{"desc":"One snapshot of website media sets: hero images, supporting features, an optional promotion and eligible inventory ids. Read inventory separately for listing facts.","ops":["query"],"queryFields":[],"read":"anonymous","anonymous":["read"],"enforcedBy":{"read":"the provider at opehub.web.app, under the app's configured credentials"},"fields":{"builtAt":{"desc":"Snapshot time, ISO-8601.","type":"string"},"mediaSets":{"desc":"Website media sets with hero images, supporting features, an optional promotion and eligible listing ids. The builder owns layout.","items":{"members":{"features":{"desc":"Supporting website artwork in authored order.","items":{"members":{"alt":"string","description":"string?","file":{"desc":"Supporting artwork, usually near square, with ready links that show it whole.","members":{"cloudinaryId":"string","cloudinaryVersion":"number?","format":"string","height":"number?","type":"string","urls":{"desc":"urls.card fits 640x640; urls.page fits 1200x1200.","members":{"card":"string","page":"string"},"optional":true,"type":"object"},"width":"number?"},"type":"object"},"headline":"string?","id":"string","role":{"enum":["default","desktop","mobile"],"type":"string"}},"type":"object"},"type":"array"},"hero":{"desc":"Hero images in authored order; role identifies a desktop or mobile rendition when its delivered dimensions match.","items":{"members":{"alt":"string","description":"string?","file":{"desc":"Hero artwork, with ready links at three widths that keep its shape.","members":{"cloudinaryId":"string","cloudinaryVersion":"number?","format":"string","height":"number?","type":"string","urls":{"desc":"urls.phone is 640 wide, urls.tablet 1024, urls.desktop 1920 (never enlarged); give all three as an img srcset with 640w, 1024w and 1920w.","members":{"desktop":"string","phone":"string","tablet":"string"},"optional":true,"type":"object"},"width":"number?"},"type":"object"},"headline":"string?","id":"string","role":{"enum":["default","desktop","mobile"],"type":"string"}},"type":"object"},"type":"array"},"id":"string","inventoryIds":{"desc":"Current available, priced listings in this media set; joins inventory.id. Read inventory for prices, financing and all applicable promotionIds.","items":"string","type":"array"},"promotion":{"members":{"brandId":{"desc":"Brand id; joins brands.id.","type":"string"},"description":{"desc":"Customer-facing promotion description; empty when none was provided.","type":"string"},"discount":{"desc":"Dollars off per unit; 0 for textOnly.","type":"number"},"ends":{"desc":"ISO-8601 promotion end time.","type":"string"},"id":{"desc":"Stable catalog promotion id; joins inventory.promotionIds.","type":"string"},"inventoryCount":{"desc":"Published listings carrying this promotion. Always at least one.","type":"number"},"name":{"desc":"Promotion name, as OpeHub publishes it.","type":"string"},"starts":{"desc":"ISO-8601 promotion start time.","type":"string"},"type":{"desc":"Whether the promotion discounts each unit or exists purely as an offer message.","enum":["dollarsOff","textOnly"],"type":"string"},"weight":{"desc":"Offer display priority, highest first.","type":"number"}},"type":"object","desc":"The single promotion this set advertises, when it qualifies through a promotion.","optional":true}},"type":"object"},"type":"array"},"revision":{"desc":"Snapshot id.","type":"string"},"validUntil":{"desc":"Refetch deadline, ISO-8601.","type":"string"}}},"wholegoods":{"desc":"Active sellable products.","ops":["query"],"queryFields":[],"params":["catalog"],"read":"anonymous","anonymous":["read"],"enforcedBy":{"read":"the provider at opehub.web.app, under the app's configured credentials"},"fields":{"attachment":{"desc":"Whether this row is an attachment/accessory rather than a parent machine.","type":"boolean"},"brandId":{"desc":"Brand id; joins brands.id.","type":"string"},"catalogId":{"desc":"The owning catalog's id.","type":"string"},"categoryId":{"desc":"The owning category's id.","type":"string"},"emissionCode":{"desc":"Emissions-market code used by the dealer's catalog eligibility flags.","optional":true,"type":"string"},"features":{"desc":"Merchandising features, each with text and an optional Cloudinary asset.","items":{"members":{"description":"string","mediaFile":{"desc":"A product feature image, usually near square, with ready links that show it whole.","members":{"cloudinaryId":"string","format":"string","type":"string","urls":{"desc":"urls.card fits 640x640; urls.page fits 1200x1200.","members":{"card":"string","page":"string"},"optional":true,"type":"object"}},"type":"object","optional":true},"name":"string"},"type":"object"},"type":"array"},"fitsWholegoodIds":{"desc":"Parent wholegood ids this attachment fits; empty for a row with no declared parents.","items":"string","type":"array"},"id":{"desc":"Stable wholegood id.","type":"string"},"mediaFile":{"desc":"The product image.","members":{"cloudinaryId":"string","description":"string?","format":"string","type":"string","urls":{"desc":"urls.card fits 640x480 for cards and lists; urls.page fits 1600x1200 for a product page or gallery.","members":{"card":"string","page":"string"},"optional":true,"type":"object"}},"type":"object","optional":true},"name":{"desc":"Wholegood name, as OpeHub publishes it.","type":"string"},"pricing":{"desc":"Dollars at the assigned catalog price level. Missing means unavailable, not zero; dealer cost is never served.","members":{"price":"number?"},"type":"object"},"resources":{"desc":"Reviewed external collateral links: product pages, warranty statements and sell sheets.","items":{"members":{"type":{"enum":["product-page","warranty-statement","sell-sheet"],"type":"string"},"url":"string"},"type":"object"},"type":"array"},"sku":{"desc":"The manufacturer's model or stock-keeping identifier.","type":"string"},"specs":{"desc":"Resolved specifications in definition weight order. `value` is the comparable scalar; `display` carries ready-to-render imperial and metric strings.","items":{"members":{"display":{"members":{"imperial":"string","metric":"string"},"type":"object"},"group":"string","id":"string","kind":{"enum":["quantity","trait","text"],"type":"string"},"label":"string?","name":"string","unit":"string?","value":{"type":"union","variants":["number","boolean","string"]}},"type":"object"},"type":"array"},"subCategoryId":{"desc":"The owning sub-category's id.","type":"string"},"subtitle":{"desc":"The product subtitle.","optional":true,"type":"string"},"weight":{"desc":"Display order within its parent, ascending. Always present — OpeHub defaults it to 0.","type":"number"}}}}},"opehubLeads":{"desc":"Dealer-scoped website lead submission. Requires a First Light managed read key or an admin key. No reads are exposed.","maxRows":1,"collections":{"websiteLeads":{"desc":"Submit a customer inquiry for one or more inventory listings. The host keeps it and answers at once, then delivers it to OpeHub under one submission id, retrying for up to an hour until OpeHub takes it.","ops":["create"],"inputs":{"create":["addOnSelections","contact","customerName","inventoryIds"]},"create":["contact","customerName","inventoryIds"],"anonymous":["create"],"enforcedBy":{"create":"the host data proxy and the app's write rules, then the provider under the app's configured credentials"},"fields":{"id":{"type":"string","desc":"The local row id of this write; the provider never sees it."},"addOnSelections":{"desc":"Optional customer choices: each inventoryId must occur in inventoryIds once, with one to fifty distinct addOnIds from that listing. Omit when none are selected.","items":{"members":{"addOnIds":{"items":{"pattern":"^[A-Za-z0-9_-]{1,128}$","type":"string"},"maxItems":50,"minItems":1,"type":"array","unique":true},"inventoryId":{"pattern":"^[A-Za-z0-9_-]{1,128}$","type":"string"}},"type":"object"},"maxItems":20,"optional":true,"type":"array","unique":"inventoryId"},"contact":{"desc":"At least one of email or phone is required.","type":"union","variants":[{"members":{"email":{"maxLength":254,"pattern":"^[A-Za-z0-9_+\\-]+(?:\\.[A-Za-z0-9_+\\-]+)*@[A-Za-z0-9](?:[A-Za-z0-9-]*[A-Za-z0-9])?(?:\\.[A-Za-z0-9](?:[A-Za-z0-9-]*[A-Za-z0-9])?)+$","type":"string"},"phone":{"maxLength":32,"pattern":"^\\+?[ ().-]*(?:\\d[ ().-]*){7,}$","type":"string","optional":true}},"type":"object"},{"members":{"email":{"maxLength":254,"pattern":"^[A-Za-z0-9_+\\-]+(?:\\.[A-Za-z0-9_+\\-]+)*@[A-Za-z0-9](?:[A-Za-z0-9-]*[A-Za-z0-9])?(?:\\.[A-Za-z0-9](?:[A-Za-z0-9-]*[A-Za-z0-9])?)+$","type":"string","optional":true},"phone":{"maxLength":32,"pattern":"^\\+?[ ().-]*(?:\\d[ ().-]*){7,}$","type":"string"}},"type":"object"}]},"customerName":{"pattern":"^[^\\u0000-\\u001f\\u007f]*$","type":"string","desc":"Customer name, 1–120 characters.","maxLength":120,"minLength":1},"inventoryIds":{"desc":"One to twenty distinct inventory listing ids.","items":{"pattern":"^[A-Za-z0-9_-]{1,128}$","type":"string"},"maxItems":20,"minItems":1,"type":"array","unique":true}}}}}},"binding":{"sharing":"shareable"},"desc":"Data sources \"opehub\", \"opehubLeads\"; select several with as: { data: [\"opehub\", \"opehubLeads\"] }. The host holds the credentials."}}},"configFields":[],"publicConfigQuestions":[],"secretInputs":[{"input":"apiKey","contractRef":{"from":"platform","optional":false},"manifestRef":{"from":"platform","optional":false}}],"sourceBindingPlan":[{"logicalName":"opehub","providerName":"opehub","definition":{"schema":"singularity.source-definition.v1","id":"source:562a17210b9ea3a7","descriptor":{"schema":"singularity.source-definition.v1","namespace":"opehub.rest","version":"0.3.0","name":"opehub","contract":{"desc":"Dealer-scoped reads. Use websiteContent for media sets with artwork and their promotion; inventory for listings and financing; promotions for all listing offers; dealer for identity and locations; catalog collections for products. Dates are ISO-8601. Every image carries ready links in urls, sized for its use.","maximumFreshnessMs":60000,"maxRows":100000,"collections":{"brands":{"desc":"Brands referenced by the dealer's approved catalogs, in weight order.","ops":["query"],"queryFields":[],"read":"anonymous","anonymous":["read"],"enforcedBy":{"read":"the provider at opehub.web.app, under the app's configured credentials"},"fields":{"darkLogo":{"desc":"The logo drawn for dark backgrounds.","members":{"cloudinaryId":"string","format":"string","type":"string","urls":{"desc":"urls.small fits 240x80 for headers, cards and footers; urls.large fits 720x240 for a large placement.","members":{"large":"string","small":"string"},"optional":true,"type":"object"}},"type":"object","optional":true},"id":{"desc":"Stable brand id; catalogs reference it as brandId.","type":"string"},"logo":{"desc":"A logo, with ready links trimmed of empty margins so every logo shows whole at a comparable size.","members":{"cloudinaryId":"string","format":"string","type":"string","urls":{"desc":"urls.small fits 240x80 for headers, cards and footers; urls.large fits 720x240 for a large placement.","members":{"large":"string","small":"string"},"optional":true,"type":"object"}},"type":"object","optional":true},"name":{"desc":"Brand name, as OpeHub publishes it.","type":"string"},"weight":{"desc":"Display order within its parent, ascending. Always present — OpeHub defaults it to 0.","type":"number"}}},"catalogs":{"desc":"Catalogs this dealer holds an APPROVED catalogConfig for. Pending and denied configs are absent, so what a page renders is what the dealer is actually entitled to show.","ops":["query"],"queryFields":[],"read":"anonymous","anonymous":["read"],"enforcedBy":{"read":"the provider at opehub.web.app, under the app's configured credentials"},"fields":{"brandId":{"desc":"Brand id; joins brands.id.","type":"string"},"id":{"desc":"Stable catalog id. Categories reference it as catalogId.","type":"string"},"mediaFile":{"desc":"A product, catalog or listing photo (or video), with ready links that show it whole, never cropped or enlarged.","members":{"cloudinaryId":"string","description":"string?","format":"string","type":"string","urls":{"desc":"urls.card fits 640x480 for cards and lists; urls.page fits 1600x1200 for a product page or gallery.","members":{"card":"string","page":"string"},"optional":true,"type":"object"}},"type":"object","optional":true},"name":{"desc":"Catalog name, as OpeHub publishes it.","type":"string"},"weight":{"desc":"Display order within its parent, ascending. Always present — OpeHub defaults it to 0.","type":"number"}}},"categories":{"desc":"Categories in approved catalogs; catalogId joins catalogs.","ops":["query"],"queryFields":[],"read":"anonymous","anonymous":["read"],"enforcedBy":{"read":"the provider at opehub.web.app, under the app's configured credentials"},"fields":{"brandId":{"desc":"Brand id; joins brands.id.","type":"string"},"catalogId":{"desc":"The owning catalog's id.","type":"string"},"id":{"desc":"Stable category id. Sub-categories reference it as categoryId.","type":"string"},"mediaFile":{"desc":"A product, catalog or listing photo (or video), with ready links that show it whole, never cropped or enlarged.","members":{"cloudinaryId":"string","description":"string?","format":"string","type":"string","urls":{"desc":"urls.card fits 640x480 for cards and lists; urls.page fits 1600x1200 for a product page or gallery.","members":{"card":"string","page":"string"},"optional":true,"type":"object"}},"type":"object","optional":true},"name":{"desc":"Category name, as OpeHub publishes it.","type":"string"},"weight":{"desc":"Display order within its parent, ascending. Always present — OpeHub defaults it to 0.","type":"number"}}},"dealer":{"desc":"One profile row, or none if unpublished. The dealer has one name and logo; locations supply contact and availability facts.","ops":["query"],"queryFields":[],"read":"anonymous","anonymous":["read"],"enforcedBy":{"read":"the provider at opehub.web.app, under the app's configured credentials"},"fields":{"branding":{"desc":"Dealer branding: story, captioned photos, hex colors and named visual style. Each part may be absent.","members":{"aboutUs":"string?","colors":{"members":{"accent":"string?","background":"string?","main":"string?"},"optional":true,"type":"object"},"photos":{"items":{"desc":"A product, catalog or listing photo (or video), with ready links that show it whole, never cropped or enlarged.","members":{"cloudinaryId":"string","description":"string?","format":"string","type":"string","urls":{"desc":"urls.card fits 640x480 for cards and lists; urls.page fits 1600x1200 for a product page or gallery.","members":{"card":"string","page":"string"},"optional":true,"type":"object"}},"type":"object"},"optional":true,"type":"array"},"vibe":{"members":{"description":"string","id":"string","name":"string"},"optional":true,"type":"object"}},"optional":true,"type":"object"},"id":{"desc":"Stable dealer id — the `publicDealers` document id.","type":"string"},"locations":{"desc":"The dealer's physical locations, each with its own address and optional phone, email and map point.","items":{"members":{"address":"string","city":"string","country":"string","email":"string?","id":"string","latLng":{"members":{"lat":"number","lng":"number"},"optional":true,"type":"object"},"phone":"string?","state":"string","zip":"string"},"type":"object"},"type":"array"},"logo":{"desc":"A logo, with ready links trimmed of empty margins so every logo shows whole at a comparable size.","members":{"cloudinaryId":"string","format":"string","type":"string","urls":{"desc":"urls.small fits 240x80 for headers, cards and footers; urls.large fits 720x240 for a large placement.","members":{"large":"string","small":"string"},"optional":true,"type":"object"}},"type":"object","optional":true},"name":{"desc":"Dealer name, as OpeHub publishes it.","type":"string"},"website":{"desc":"The dealer's own website. Absent when they have not set one.","optional":true,"type":"string"}}},"inventory":{"desc":"Priced published available and sold listings, newest first. Unpriced or stale listings are omitted; promotion optionally selects listings carrying that offer.","ops":["query"],"queryFields":[],"params":["promotion"],"read":"anonymous","anonymous":["read"],"enforcedBy":{"read":"the provider at opehub.web.app, under the app's configured credentials"},"fields":{"addOns":{"desc":"Customer-selectable extras, separately priced and not included in the machine price. Show their payment estimates separately. Send chosen ids with their inventory id in a website lead’s addOnSelections.","items":{"members":{"adjustments":{"items":{"members":{"amount":"number","name":"string","promotionId":"string?"},"type":"object"},"type":"array"},"cashPrice":{"desc":"Lower cash price only when financing creates a cash saving; otherwise null.","optional":true,"type":"number"},"id":"string","mediaFile":{"desc":"A product, catalog or listing photo (or video), with ready links that show it whole, never cropped or enlarged.","members":{"cloudinaryId":"string","description":"string?","format":"string","type":"string","urls":{"desc":"urls.card fits 640x480 for cards and lists; urls.page fits 1600x1200 for a product page or gallery.","members":{"card":"string","page":"string"},"optional":true,"type":"object"}},"type":"object","optional":true},"name":"string","payment":{"desc":"Separate monthly estimate before sales tax, without an additional finance fee. The final quote reprices selected options.","optional":true,"type":"number"},"price":"number?","qty":"number","sku":"string"},"type":"object"},"type":"array"},"adjustments":{"desc":"Already included in machine prices: never add again. Negative amounts reduce price; promotionId joins a catalog offer when present.","items":{"members":{"amount":"number","name":"string","promotionId":"string?"},"type":"object"},"type":"array"},"cashPrice":{"desc":"Lower cash dollars before tax only when financing creates a cash saving; otherwise null. Show price alone when null.","optional":true,"type":"number"},"condition":{"desc":"The unit's sale condition.","enum":["new","used","demo","rental"],"type":"string"},"createdAt":{"desc":"ISO-8601 listing creation time.","type":"string"},"description":{"desc":"The dealer-authored listing description; empty when none was provided.","type":"string"},"finance":{"desc":"Machine-only monthly estimate before sales tax with one finance fee; its rate is the interest rate in percent. Put its disclosure link beside the amount.","members":{"applyUrl":"string?","apr":"number","disclosure":"string","name":"string","payment":"number","termMonths":"number"},"optional":true,"type":"object"},"hours":{"desc":"Meter reading, when tracked.","optional":true,"type":"number"},"id":{"desc":"Stable inventory listing id.","type":"string"},"locationId":{"desc":"The physical lot; stock is not implied at other dealer locations.","type":"string"},"media":{"desc":"Additional listing photos or videos, in the dealer's authored order.","items":{"members":{"description":"string?","mediaFile":{"desc":"A product, catalog or listing photo (or video), with ready links that show it whole, never cropped or enlarged.","members":{"cloudinaryId":"string","description":"string?","format":"string","type":"string","urls":{"desc":"urls.card fits 640x480 for cards and lists; urls.page fits 1600x1200 for a product page or gallery.","members":{"card":"string","page":"string"},"optional":true,"type":"object"}},"type":"object"},"name":"string?"},"type":"object"},"type":"array"},"mediaFile":{"desc":"The listing hero image: the unit's own photo when set, otherwise its configured catalog image.","members":{"cloudinaryId":"string","description":"string?","format":"string","type":"string","urls":{"desc":"urls.card fits 640x480 for cards and lists; urls.page fits 1600x1200 for a product page or gallery.","members":{"card":"string","page":"string"},"optional":true,"type":"object"}},"type":"object","optional":true},"name":{"desc":"The listing title.","type":"string"},"price":{"desc":"Required current machine dollars before tax, including its adjustments. Unpriced or stale listings are omitted.","type":"number"},"promotionIds":{"desc":"Current catalog offers carried by this listing; joins promotions.id.","items":"string","type":"array"},"status":{"desc":"The published listing state. Sold listings remain visible so a site can badge them.","enum":["available","sold"],"type":"string"},"stockNumber":{"desc":"The dealer's own stock tag, when set.","optional":true,"type":"string"},"updatedAt":{"desc":"ISO-8601 listing update time.","type":"string"},"wholegood":{"desc":"id joins wholegoods for current catalog specs, features and resources.","members":{"brandId":"string","catalogId":"string","categoryId":"string","id":"string","name":"string","sku":"string","subCategoryId":"string","subtitle":"string?"},"type":"object"}}},"promotions":{"desc":"Catalog promotions carried by published listings, descending weight.","ops":["query"],"queryFields":[],"read":"anonymous","anonymous":["read"],"enforcedBy":{"read":"the provider at opehub.web.app, under the app's configured credentials"},"fields":{"brandId":{"desc":"Brand id; joins brands.id.","type":"string"},"description":{"desc":"Customer-facing promotion description; empty when none was provided.","type":"string"},"discount":{"desc":"Dollars off per unit; 0 for textOnly.","type":"number"},"ends":{"desc":"ISO-8601 promotion end time.","type":"string"},"id":{"desc":"Stable catalog promotion id; joins inventory.promotionIds.","type":"string"},"inventoryCount":{"desc":"Published listings carrying this promotion. Always at least one.","type":"number"},"name":{"desc":"Promotion name, as OpeHub publishes it.","type":"string"},"starts":{"desc":"ISO-8601 promotion start time.","type":"string"},"type":{"desc":"Whether the promotion discounts each unit or exists purely as an offer message.","enum":["dollarsOff","textOnly"],"type":"string"},"weight":{"desc":"Offer display priority, highest first.","type":"number"}}},"subCategories":{"desc":"Sub-categories in approved catalogs; categoryId joins categories.","ops":["query"],"queryFields":[],"read":"anonymous","anonymous":["read"],"enforcedBy":{"read":"the provider at opehub.web.app, under the app's configured credentials"},"fields":{"brandId":{"desc":"Brand id; joins brands.id.","type":"string"},"catalogId":{"desc":"The owning catalog's id.","type":"string"},"categoryId":{"desc":"The owning category's id.","type":"string"},"id":{"desc":"Stable sub-category id.","type":"string"},"mediaFile":{"desc":"A product, catalog or listing photo (or video), with ready links that show it whole, never cropped or enlarged.","members":{"cloudinaryId":"string","description":"string?","format":"string","type":"string","urls":{"desc":"urls.card fits 640x480 for cards and lists; urls.page fits 1600x1200 for a product page or gallery.","members":{"card":"string","page":"string"},"optional":true,"type":"object"}},"type":"object","optional":true},"name":{"desc":"Sub-category name, as OpeHub publishes it.","type":"string"},"weight":{"desc":"Display order within its parent, ascending. Always present — OpeHub defaults it to 0.","type":"number"}}},"websiteContent":{"desc":"One snapshot of website media sets: hero images, supporting features, an optional promotion and eligible inventory ids. Read inventory separately for listing facts.","ops":["query"],"queryFields":[],"read":"anonymous","anonymous":["read"],"enforcedBy":{"read":"the provider at opehub.web.app, under the app's configured credentials"},"fields":{"builtAt":{"desc":"Snapshot time, ISO-8601.","type":"string"},"mediaSets":{"desc":"Website media sets with hero images, supporting features, an optional promotion and eligible listing ids. The builder owns layout.","items":{"members":{"features":{"desc":"Supporting website artwork in authored order.","items":{"members":{"alt":"string","description":"string?","file":{"desc":"Supporting artwork, usually near square, with ready links that show it whole.","members":{"cloudinaryId":"string","cloudinaryVersion":"number?","format":"string","height":"number?","type":"string","urls":{"desc":"urls.card fits 640x640; urls.page fits 1200x1200.","members":{"card":"string","page":"string"},"optional":true,"type":"object"},"width":"number?"},"type":"object"},"headline":"string?","id":"string","role":{"enum":["default","desktop","mobile"],"type":"string"}},"type":"object"},"type":"array"},"hero":{"desc":"Hero images in authored order; role identifies a desktop or mobile rendition when its delivered dimensions match.","items":{"members":{"alt":"string","description":"string?","file":{"desc":"Hero artwork, with ready links at three widths that keep its shape.","members":{"cloudinaryId":"string","cloudinaryVersion":"number?","format":"string","height":"number?","type":"string","urls":{"desc":"urls.phone is 640 wide, urls.tablet 1024, urls.desktop 1920 (never enlarged); give all three as an img srcset with 640w, 1024w and 1920w.","members":{"desktop":"string","phone":"string","tablet":"string"},"optional":true,"type":"object"},"width":"number?"},"type":"object"},"headline":"string?","id":"string","role":{"enum":["default","desktop","mobile"],"type":"string"}},"type":"object"},"type":"array"},"id":"string","inventoryIds":{"desc":"Current available, priced listings in this media set; joins inventory.id. Read inventory for prices, financing and all applicable promotionIds.","items":"string","type":"array"},"promotion":{"members":{"brandId":{"desc":"Brand id; joins brands.id.","type":"string"},"description":{"desc":"Customer-facing promotion description; empty when none was provided.","type":"string"},"discount":{"desc":"Dollars off per unit; 0 for textOnly.","type":"number"},"ends":{"desc":"ISO-8601 promotion end time.","type":"string"},"id":{"desc":"Stable catalog promotion id; joins inventory.promotionIds.","type":"string"},"inventoryCount":{"desc":"Published listings carrying this promotion. Always at least one.","type":"number"},"name":{"desc":"Promotion name, as OpeHub publishes it.","type":"string"},"starts":{"desc":"ISO-8601 promotion start time.","type":"string"},"type":{"desc":"Whether the promotion discounts each unit or exists purely as an offer message.","enum":["dollarsOff","textOnly"],"type":"string"},"weight":{"desc":"Offer display priority, highest first.","type":"number"}},"type":"object","desc":"The single promotion this set advertises, when it qualifies through a promotion.","optional":true}},"type":"object"},"type":"array"},"revision":{"desc":"Snapshot id.","type":"string"},"validUntil":{"desc":"Refetch deadline, ISO-8601.","type":"string"}}},"wholegoods":{"desc":"Active sellable products.","ops":["query"],"queryFields":[],"params":["catalog"],"read":"anonymous","anonymous":["read"],"enforcedBy":{"read":"the provider at opehub.web.app, under the app's configured credentials"},"fields":{"attachment":{"desc":"Whether this row is an attachment/accessory rather than a parent machine.","type":"boolean"},"brandId":{"desc":"Brand id; joins brands.id.","type":"string"},"catalogId":{"desc":"The owning catalog's id.","type":"string"},"categoryId":{"desc":"The owning category's id.","type":"string"},"emissionCode":{"desc":"Emissions-market code used by the dealer's catalog eligibility flags.","optional":true,"type":"string"},"features":{"desc":"Merchandising features, each with text and an optional Cloudinary asset.","items":{"members":{"description":"string","mediaFile":{"desc":"A product feature image, usually near square, with ready links that show it whole.","members":{"cloudinaryId":"string","format":"string","type":"string","urls":{"desc":"urls.card fits 640x640; urls.page fits 1200x1200.","members":{"card":"string","page":"string"},"optional":true,"type":"object"}},"type":"object","optional":true},"name":"string"},"type":"object"},"type":"array"},"fitsWholegoodIds":{"desc":"Parent wholegood ids this attachment fits; empty for a row with no declared parents.","items":"string","type":"array"},"id":{"desc":"Stable wholegood id.","type":"string"},"mediaFile":{"desc":"The product image.","members":{"cloudinaryId":"string","description":"string?","format":"string","type":"string","urls":{"desc":"urls.card fits 640x480 for cards and lists; urls.page fits 1600x1200 for a product page or gallery.","members":{"card":"string","page":"string"},"optional":true,"type":"object"}},"type":"object","optional":true},"name":{"desc":"Wholegood name, as OpeHub publishes it.","type":"string"},"pricing":{"desc":"Dollars at the assigned catalog price level. Missing means unavailable, not zero; dealer cost is never served.","members":{"price":"number?"},"type":"object"},"resources":{"desc":"Reviewed external collateral links: product pages, warranty statements and sell sheets.","items":{"members":{"type":{"enum":["product-page","warranty-statement","sell-sheet"],"type":"string"},"url":"string"},"type":"object"},"type":"array"},"sku":{"desc":"The manufacturer's model or stock-keeping identifier.","type":"string"},"specs":{"desc":"Resolved specifications in definition weight order. `value` is the comparable scalar; `display` carries ready-to-render imperial and metric strings.","items":{"members":{"display":{"members":{"imperial":"string","metric":"string"},"type":"object"},"group":"string","id":"string","kind":{"enum":["quantity","trait","text"],"type":"string"},"label":"string?","name":"string","unit":"string?","value":{"type":"union","variants":["number","boolean","string"]}},"type":"object"},"type":"array"},"subCategoryId":{"desc":"The owning sub-category's id.","type":"string"},"subtitle":{"desc":"The product subtitle.","optional":true,"type":"string"},"weight":{"desc":"Display order within its parent, ascending. Always present — OpeHub defaults it to 0.","type":"number"}}}}},"result":{"kind":"rows","maxRows":100000,"maxBytes":4194304,"classification":"public","maximumFreshnessMs":60000},"stream":{"semantics":"none","recovery":"none"},"authority":{"mode":"public"},"id":"source:562a17210b9ea3a7"},"contract":{"desc":"Dealer-scoped reads. Use websiteContent for media sets with artwork and their promotion; inventory for listings and financing; promotions for all listing offers; dealer for identity and locations; catalog collections for products. Dates are ISO-8601. Every image carries ready links in urls, sized for its use.","maximumFreshnessMs":60000,"maxRows":100000,"collections":{"brands":{"desc":"Brands referenced by the dealer's approved catalogs, in weight order.","ops":["query"],"queryFields":[],"read":"anonymous","anonymous":["read"],"enforcedBy":{"read":"the provider at opehub.web.app, under the app's configured credentials"},"fields":{"darkLogo":{"desc":"The logo drawn for dark backgrounds.","members":{"cloudinaryId":"string","format":"string","type":"string","urls":{"desc":"urls.small fits 240x80 for headers, cards and footers; urls.large fits 720x240 for a large placement.","members":{"large":"string","small":"string"},"optional":true,"type":"object"}},"type":"object","optional":true},"id":{"desc":"Stable brand id; catalogs reference it as brandId.","type":"string"},"logo":{"desc":"A logo, with ready links trimmed of empty margins so every logo shows whole at a comparable size.","members":{"cloudinaryId":"string","format":"string","type":"string","urls":{"desc":"urls.small fits 240x80 for headers, cards and footers; urls.large fits 720x240 for a large placement.","members":{"large":"string","small":"string"},"optional":true,"type":"object"}},"type":"object","optional":true},"name":{"desc":"Brand name, as OpeHub publishes it.","type":"string"},"weight":{"desc":"Display order within its parent, ascending. Always present — OpeHub defaults it to 0.","type":"number"}}},"catalogs":{"desc":"Catalogs this dealer holds an APPROVED catalogConfig for. Pending and denied configs are absent, so what a page renders is what the dealer is actually entitled to show.","ops":["query"],"queryFields":[],"read":"anonymous","anonymous":["read"],"enforcedBy":{"read":"the provider at opehub.web.app, under the app's configured credentials"},"fields":{"brandId":{"desc":"Brand id; joins brands.id.","type":"string"},"id":{"desc":"Stable catalog id. Categories reference it as catalogId.","type":"string"},"mediaFile":{"desc":"A product, catalog or listing photo (or video), with ready links that show it whole, never cropped or enlarged.","members":{"cloudinaryId":"string","description":"string?","format":"string","type":"string","urls":{"desc":"urls.card fits 640x480 for cards and lists; urls.page fits 1600x1200 for a product page or gallery.","members":{"card":"string","page":"string"},"optional":true,"type":"object"}},"type":"object","optional":true},"name":{"desc":"Catalog name, as OpeHub publishes it.","type":"string"},"weight":{"desc":"Display order within its parent, ascending. Always present — OpeHub defaults it to 0.","type":"number"}}},"categories":{"desc":"Categories in approved catalogs; catalogId joins catalogs.","ops":["query"],"queryFields":[],"read":"anonymous","anonymous":["read"],"enforcedBy":{"read":"the provider at opehub.web.app, under the app's configured credentials"},"fields":{"brandId":{"desc":"Brand id; joins brands.id.","type":"string"},"catalogId":{"desc":"The owning catalog's id.","type":"string"},"id":{"desc":"Stable category id. Sub-categories reference it as categoryId.","type":"string"},"mediaFile":{"desc":"A product, catalog or listing photo (or video), with ready links that show it whole, never cropped or enlarged.","members":{"cloudinaryId":"string","description":"string?","format":"string","type":"string","urls":{"desc":"urls.card fits 640x480 for cards and lists; urls.page fits 1600x1200 for a product page or gallery.","members":{"card":"string","page":"string"},"optional":true,"type":"object"}},"type":"object","optional":true},"name":{"desc":"Category name, as OpeHub publishes it.","type":"string"},"weight":{"desc":"Display order within its parent, ascending. Always present — OpeHub defaults it to 0.","type":"number"}}},"dealer":{"desc":"One profile row, or none if unpublished. The dealer has one name and logo; locations supply contact and availability facts.","ops":["query"],"queryFields":[],"read":"anonymous","anonymous":["read"],"enforcedBy":{"read":"the provider at opehub.web.app, under the app's configured credentials"},"fields":{"branding":{"desc":"Dealer branding: story, captioned photos, hex colors and named visual style. Each part may be absent.","members":{"aboutUs":"string?","colors":{"members":{"accent":"string?","background":"string?","main":"string?"},"optional":true,"type":"object"},"photos":{"items":{"desc":"A product, catalog or listing photo (or video), with ready links that show it whole, never cropped or enlarged.","members":{"cloudinaryId":"string","description":"string?","format":"string","type":"string","urls":{"desc":"urls.card fits 640x480 for cards and lists; urls.page fits 1600x1200 for a product page or gallery.","members":{"card":"string","page":"string"},"optional":true,"type":"object"}},"type":"object"},"optional":true,"type":"array"},"vibe":{"members":{"description":"string","id":"string","name":"string"},"optional":true,"type":"object"}},"optional":true,"type":"object"},"id":{"desc":"Stable dealer id — the `publicDealers` document id.","type":"string"},"locations":{"desc":"The dealer's physical locations, each with its own address and optional phone, email and map point.","items":{"members":{"address":"string","city":"string","country":"string","email":"string?","id":"string","latLng":{"members":{"lat":"number","lng":"number"},"optional":true,"type":"object"},"phone":"string?","state":"string","zip":"string"},"type":"object"},"type":"array"},"logo":{"desc":"A logo, with ready links trimmed of empty margins so every logo shows whole at a comparable size.","members":{"cloudinaryId":"string","format":"string","type":"string","urls":{"desc":"urls.small fits 240x80 for headers, cards and footers; urls.large fits 720x240 for a large placement.","members":{"large":"string","small":"string"},"optional":true,"type":"object"}},"type":"object","optional":true},"name":{"desc":"Dealer name, as OpeHub publishes it.","type":"string"},"website":{"desc":"The dealer's own website. Absent when they have not set one.","optional":true,"type":"string"}}},"inventory":{"desc":"Priced published available and sold listings, newest first. Unpriced or stale listings are omitted; promotion optionally selects listings carrying that offer.","ops":["query"],"queryFields":[],"params":["promotion"],"read":"anonymous","anonymous":["read"],"enforcedBy":{"read":"the provider at opehub.web.app, under the app's configured credentials"},"fields":{"addOns":{"desc":"Customer-selectable extras, separately priced and not included in the machine price. Show their payment estimates separately. Send chosen ids with their inventory id in a website lead’s addOnSelections.","items":{"members":{"adjustments":{"items":{"members":{"amount":"number","name":"string","promotionId":"string?"},"type":"object"},"type":"array"},"cashPrice":{"desc":"Lower cash price only when financing creates a cash saving; otherwise null.","optional":true,"type":"number"},"id":"string","mediaFile":{"desc":"A product, catalog or listing photo (or video), with ready links that show it whole, never cropped or enlarged.","members":{"cloudinaryId":"string","description":"string?","format":"string","type":"string","urls":{"desc":"urls.card fits 640x480 for cards and lists; urls.page fits 1600x1200 for a product page or gallery.","members":{"card":"string","page":"string"},"optional":true,"type":"object"}},"type":"object","optional":true},"name":"string","payment":{"desc":"Separate monthly estimate before sales tax, without an additional finance fee. The final quote reprices selected options.","optional":true,"type":"number"},"price":"number?","qty":"number","sku":"string"},"type":"object"},"type":"array"},"adjustments":{"desc":"Already included in machine prices: never add again. Negative amounts reduce price; promotionId joins a catalog offer when present.","items":{"members":{"amount":"number","name":"string","promotionId":"string?"},"type":"object"},"type":"array"},"cashPrice":{"desc":"Lower cash dollars before tax only when financing creates a cash saving; otherwise null. Show price alone when null.","optional":true,"type":"number"},"condition":{"desc":"The unit's sale condition.","enum":["new","used","demo","rental"],"type":"string"},"createdAt":{"desc":"ISO-8601 listing creation time.","type":"string"},"description":{"desc":"The dealer-authored listing description; empty when none was provided.","type":"string"},"finance":{"desc":"Machine-only monthly estimate before sales tax with one finance fee; its rate is the interest rate in percent. Put its disclosure link beside the amount.","members":{"applyUrl":"string?","apr":"number","disclosure":"string","name":"string","payment":"number","termMonths":"number"},"optional":true,"type":"object"},"hours":{"desc":"Meter reading, when tracked.","optional":true,"type":"number"},"id":{"desc":"Stable inventory listing id.","type":"string"},"locationId":{"desc":"The physical lot; stock is not implied at other dealer locations.","type":"string"},"media":{"desc":"Additional listing photos or videos, in the dealer's authored order.","items":{"members":{"description":"string?","mediaFile":{"desc":"A product, catalog or listing photo (or video), with ready links that show it whole, never cropped or enlarged.","members":{"cloudinaryId":"string","description":"string?","format":"string","type":"string","urls":{"desc":"urls.card fits 640x480 for cards and lists; urls.page fits 1600x1200 for a product page or gallery.","members":{"card":"string","page":"string"},"optional":true,"type":"object"}},"type":"object"},"name":"string?"},"type":"object"},"type":"array"},"mediaFile":{"desc":"The listing hero image: the unit's own photo when set, otherwise its configured catalog image.","members":{"cloudinaryId":"string","description":"string?","format":"string","type":"string","urls":{"desc":"urls.card fits 640x480 for cards and lists; urls.page fits 1600x1200 for a product page or gallery.","members":{"card":"string","page":"string"},"optional":true,"type":"object"}},"type":"object","optional":true},"name":{"desc":"The listing title.","type":"string"},"price":{"desc":"Required current machine dollars before tax, including its adjustments. Unpriced or stale listings are omitted.","type":"number"},"promotionIds":{"desc":"Current catalog offers carried by this listing; joins promotions.id.","items":"string","type":"array"},"status":{"desc":"The published listing state. Sold listings remain visible so a site can badge them.","enum":["available","sold"],"type":"string"},"stockNumber":{"desc":"The dealer's own stock tag, when set.","optional":true,"type":"string"},"updatedAt":{"desc":"ISO-8601 listing update time.","type":"string"},"wholegood":{"desc":"id joins wholegoods for current catalog specs, features and resources.","members":{"brandId":"string","catalogId":"string","categoryId":"string","id":"string","name":"string","sku":"string","subCategoryId":"string","subtitle":"string?"},"type":"object"}}},"promotions":{"desc":"Catalog promotions carried by published listings, descending weight.","ops":["query"],"queryFields":[],"read":"anonymous","anonymous":["read"],"enforcedBy":{"read":"the provider at opehub.web.app, under the app's configured credentials"},"fields":{"brandId":{"desc":"Brand id; joins brands.id.","type":"string"},"description":{"desc":"Customer-facing promotion description; empty when none was provided.","type":"string"},"discount":{"desc":"Dollars off per unit; 0 for textOnly.","type":"number"},"ends":{"desc":"ISO-8601 promotion end time.","type":"string"},"id":{"desc":"Stable catalog promotion id; joins inventory.promotionIds.","type":"string"},"inventoryCount":{"desc":"Published listings carrying this promotion. Always at least one.","type":"number"},"name":{"desc":"Promotion name, as OpeHub publishes it.","type":"string"},"starts":{"desc":"ISO-8601 promotion start time.","type":"string"},"type":{"desc":"Whether the promotion discounts each unit or exists purely as an offer message.","enum":["dollarsOff","textOnly"],"type":"string"},"weight":{"desc":"Offer display priority, highest first.","type":"number"}}},"subCategories":{"desc":"Sub-categories in approved catalogs; categoryId joins categories.","ops":["query"],"queryFields":[],"read":"anonymous","anonymous":["read"],"enforcedBy":{"read":"the provider at opehub.web.app, under the app's configured credentials"},"fields":{"brandId":{"desc":"Brand id; joins brands.id.","type":"string"},"catalogId":{"desc":"The owning catalog's id.","type":"string"},"categoryId":{"desc":"The owning category's id.","type":"string"},"id":{"desc":"Stable sub-category id.","type":"string"},"mediaFile":{"desc":"A product, catalog or listing photo (or video), with ready links that show it whole, never cropped or enlarged.","members":{"cloudinaryId":"string","description":"string?","format":"string","type":"string","urls":{"desc":"urls.card fits 640x480 for cards and lists; urls.page fits 1600x1200 for a product page or gallery.","members":{"card":"string","page":"string"},"optional":true,"type":"object"}},"type":"object","optional":true},"name":{"desc":"Sub-category name, as OpeHub publishes it.","type":"string"},"weight":{"desc":"Display order within its parent, ascending. Always present — OpeHub defaults it to 0.","type":"number"}}},"websiteContent":{"desc":"One snapshot of website media sets: hero images, supporting features, an optional promotion and eligible inventory ids. Read inventory separately for listing facts.","ops":["query"],"queryFields":[],"read":"anonymous","anonymous":["read"],"enforcedBy":{"read":"the provider at opehub.web.app, under the app's configured credentials"},"fields":{"builtAt":{"desc":"Snapshot time, ISO-8601.","type":"string"},"mediaSets":{"desc":"Website media sets with hero images, supporting features, an optional promotion and eligible listing ids. The builder owns layout.","items":{"members":{"features":{"desc":"Supporting website artwork in authored order.","items":{"members":{"alt":"string","description":"string?","file":{"desc":"Supporting artwork, usually near square, with ready links that show it whole.","members":{"cloudinaryId":"string","cloudinaryVersion":"number?","format":"string","height":"number?","type":"string","urls":{"desc":"urls.card fits 640x640; urls.page fits 1200x1200.","members":{"card":"string","page":"string"},"optional":true,"type":"object"},"width":"number?"},"type":"object"},"headline":"string?","id":"string","role":{"enum":["default","desktop","mobile"],"type":"string"}},"type":"object"},"type":"array"},"hero":{"desc":"Hero images in authored order; role identifies a desktop or mobile rendition when its delivered dimensions match.","items":{"members":{"alt":"string","description":"string?","file":{"desc":"Hero artwork, with ready links at three widths that keep its shape.","members":{"cloudinaryId":"string","cloudinaryVersion":"number?","format":"string","height":"number?","type":"string","urls":{"desc":"urls.phone is 640 wide, urls.tablet 1024, urls.desktop 1920 (never enlarged); give all three as an img srcset with 640w, 1024w and 1920w.","members":{"desktop":"string","phone":"string","tablet":"string"},"optional":true,"type":"object"},"width":"number?"},"type":"object"},"headline":"string?","id":"string","role":{"enum":["default","desktop","mobile"],"type":"string"}},"type":"object"},"type":"array"},"id":"string","inventoryIds":{"desc":"Current available, priced listings in this media set; joins inventory.id. Read inventory for prices, financing and all applicable promotionIds.","items":"string","type":"array"},"promotion":{"members":{"brandId":{"desc":"Brand id; joins brands.id.","type":"string"},"description":{"desc":"Customer-facing promotion description; empty when none was provided.","type":"string"},"discount":{"desc":"Dollars off per unit; 0 for textOnly.","type":"number"},"ends":{"desc":"ISO-8601 promotion end time.","type":"string"},"id":{"desc":"Stable catalog promotion id; joins inventory.promotionIds.","type":"string"},"inventoryCount":{"desc":"Published listings carrying this promotion. Always at least one.","type":"number"},"name":{"desc":"Promotion name, as OpeHub publishes it.","type":"string"},"starts":{"desc":"ISO-8601 promotion start time.","type":"string"},"type":{"desc":"Whether the promotion discounts each unit or exists purely as an offer message.","enum":["dollarsOff","textOnly"],"type":"string"},"weight":{"desc":"Offer display priority, highest first.","type":"number"}},"type":"object","desc":"The single promotion this set advertises, when it qualifies through a promotion.","optional":true}},"type":"object"},"type":"array"},"revision":{"desc":"Snapshot id.","type":"string"},"validUntil":{"desc":"Refetch deadline, ISO-8601.","type":"string"}}},"wholegoods":{"desc":"Active sellable products.","ops":["query"],"queryFields":[],"params":["catalog"],"read":"anonymous","anonymous":["read"],"enforcedBy":{"read":"the provider at opehub.web.app, under the app's configured credentials"},"fields":{"attachment":{"desc":"Whether this row is an attachment/accessory rather than a parent machine.","type":"boolean"},"brandId":{"desc":"Brand id; joins brands.id.","type":"string"},"catalogId":{"desc":"The owning catalog's id.","type":"string"},"categoryId":{"desc":"The owning category's id.","type":"string"},"emissionCode":{"desc":"Emissions-market code used by the dealer's catalog eligibility flags.","optional":true,"type":"string"},"features":{"desc":"Merchandising features, each with text and an optional Cloudinary asset.","items":{"members":{"description":"string","mediaFile":{"desc":"A product feature image, usually near square, with ready links that show it whole.","members":{"cloudinaryId":"string","format":"string","type":"string","urls":{"desc":"urls.card fits 640x640; urls.page fits 1200x1200.","members":{"card":"string","page":"string"},"optional":true,"type":"object"}},"type":"object","optional":true},"name":"string"},"type":"object"},"type":"array"},"fitsWholegoodIds":{"desc":"Parent wholegood ids this attachment fits; empty for a row with no declared parents.","items":"string","type":"array"},"id":{"desc":"Stable wholegood id.","type":"string"},"mediaFile":{"desc":"The product image.","members":{"cloudinaryId":"string","description":"string?","format":"string","type":"string","urls":{"desc":"urls.card fits 640x480 for cards and lists; urls.page fits 1600x1200 for a product page or gallery.","members":{"card":"string","page":"string"},"optional":true,"type":"object"}},"type":"object","optional":true},"name":{"desc":"Wholegood name, as OpeHub publishes it.","type":"string"},"pricing":{"desc":"Dollars at the assigned catalog price level. Missing means unavailable, not zero; dealer cost is never served.","members":{"price":"number?"},"type":"object"},"resources":{"desc":"Reviewed external collateral links: product pages, warranty statements and sell sheets.","items":{"members":{"type":{"enum":["product-page","warranty-statement","sell-sheet"],"type":"string"},"url":"string"},"type":"object"},"type":"array"},"sku":{"desc":"The manufacturer's model or stock-keeping identifier.","type":"string"},"specs":{"desc":"Resolved specifications in definition weight order. `value` is the comparable scalar; `display` carries ready-to-render imperial and metric strings.","items":{"members":{"display":{"members":{"imperial":"string","metric":"string"},"type":"object"},"group":"string","id":"string","kind":{"enum":["quantity","trait","text"],"type":"string"},"label":"string?","name":"string","unit":"string?","value":{"type":"union","variants":["number","boolean","string"]}},"type":"object"},"type":"array"},"subCategoryId":{"desc":"The owning sub-category's id.","type":"string"},"subtitle":{"desc":"The product subtitle.","optional":true,"type":"string"},"weight":{"desc":"Display order within its parent, ascending. Always present — OpeHub defaults it to 0.","type":"number"}}}}},"result":{"kind":"rows","maxRows":100000,"maxBytes":4194304,"classification":"public","maximumFreshnessMs":60000},"stream":{"semantics":"none","recovery":"none"},"authority":{"mode":"public"}},"sharing":"shareable","requires":{"authority":false,"authorityIdentity":false,"resourceIdentity":true}}],"assetSources":{},"hostRequirements":{"server":{"appId":true,"mounts":[],"inputs":[]},"browser":{"appId":true,"mounts":[{"name":"capabilityData","desc":"the app host's capability-data door; the browser reads and writes through `<mount>/<appId>/<source>` and the host holds the credentials"}],"inputs":[]},"both":{"appId":true,"mounts":[],"inputs":[]}}},{"entry":{"capability":{"name":"storeMap","kind":"google.maps-browser.web"},"target":"browser","packContractAddress":"5b35f1217b9a952f","outputNames":{"element":["google_maps"]},"dependencies":[],"associatedAssets":[]},"declaration":{"name":"storeMap","kind":"google.maps-browser.web","target":null,"config":{},"secrets":{},"using":{},"as":{}},"contract":{"product":{"label":"Maps on your pages","summary":"Show a map visitors can move around and zoom, and suggest addresses as they type.","category":"business","useCases":[{"id":"show-interactive-maps","label":"Show interactive maps"},{"id":"autocomplete-addresses","label":"Autocomplete addresses"}]},"desc":"Google Maps JavaScript and Places Autocomplete (New). Mount independent maps and address/place selectors. The host supplies a public API key restricted to the app's HTTP referrers; server credentials remain separate. Each widget requests a host mount admission before loading Google. Mount admissions do not count subsequent Google SDK calls. Google attribution must remain visible. Google content retention restrictions apply; Place IDs may be stored.","target":"browser","host":{"appId":true,"inputs":{"capabilityUsageBrowserAdmission":{"target":"browser","required":false,"desc":"Optional host-owned usage admission transport for isolated preview documents; absent uses the declared HTTP mount."}},"mounts":{"capabilityUsage":{"desc":"The host's app-scoped managed capability usage admission door."}}},"config":{"apiKey":{"label":"Browser API key","value":{"type":"string","desc":"Host-supplied public HTTP-referrer-restricted Google Maps JavaScript/Places API key. Visible to visitors. Never use the private server API key here."},"settable":true},"mapId":{"label":"Map ID","value":{"type":"string","optional":true,"desc":"Google Cloud map ID, required for Advanced Marker maps. Autocomplete works independently without it."},"settable":true},"language":{"label":"Language","value":{"type":"string","optional":true,"desc":"Optional Google Maps JavaScript language code, fixed for this page's SDK session."},"settable":true},"region":{"label":"Region","value":{"type":"string","optional":true,"desc":"Optional Google Maps JavaScript region code, fixed for this page's SDK session."},"settable":true}},"outputs":{"element":{"default":"google_maps","desc":"Mount on an empty container with explicit height. role=map (default) shows an interactive map; role=autocomplete shows Places Autocomplete (New). Browser key comes from host-managed settings. Maps and autocomplete work independently. Callbacks contain inert JSON, never Google SDK objects. SSR preserves authored fallback content until mounting. Keep Google attribution visible; retain Place IDs freely and follow Google policy for other content.","params":{"role":{"type":"string","required":false,"default":"map","desc":"map or autocomplete. Changing role replaces that widget; ordinary params update the running widget."},"center":{"type":"object","required":false,"desc":"Map center {lat,lng}. Coordinates are WGS84 decimal degrees."},"zoom":{"type":"number","required":false,"desc":"Map zoom. Default 2."},"bounds":{"type":"object","required":false,"desc":"Optional map fit bounds {south,west,north,east}. Takes precedence over center and zoom. Stable bounds do not reset user panning."},"padding":{"type":"number","required":false,"desc":"Fit-bounds pixel padding, default 24."},"options":{"type":"object","required":false,"desc":"Map options: mapTypeId, gestureHandling, disableDefaultUI, zoomControl, mapTypeControl, streetViewControl, fullscreenControl, rotateControl, scaleControl, clickableIcons, heading, tilt, minZoom, maxZoom, restriction, keyboardShortcuts, backgroundColor, colorScheme. Map ID comes from connection config."},"markers":{"type":"array","required":false,"desc":"Advanced markers [{id,position:{lat,lng},title?,label?,info?,draggable?,zIndex?}]. id is a unique stable app record/stop ID returned in marker events. label and info are plain text. Requires connection mapId."},"polylines":{"type":"array","required":false,"desc":"Route/path overlays [{id?,path:[{lat,lng}],encodedPolyline?,strokeColor?,strokeOpacity?,strokeWeight?,geodesic?,zIndex?}]. encodedPolyline accepts Google Routes/Optimization encoded paths and takes precedence over path."},"polygons":{"type":"array","required":false,"desc":"Polygons [{id?,paths:[[{lat,lng}]],strokeColor?,strokeOpacity?,strokeWeight?,fillColor?,fillOpacity?,editable?,draggable?,zIndex?}]. Multiple paths support holes."},"circles":{"type":"array","required":false,"desc":"Circles [{id?,center:{lat,lng},radius,strokeColor?,strokeOpacity?,strokeWeight?,fillColor?,fillOpacity?,editable?,draggable?,zIndex?}]. radius in meters."},"value":{"type":"string","required":false,"desc":"Optional autocomplete input text, e.g. a saved address when editing a record. Omit to let the widget keep the visitor's current text."},"disabled":{"type":"boolean","required":false,"desc":"Disable autocomplete input."},"readonly":{"type":"boolean","required":false,"desc":"Make autocomplete input read-only."},"name":{"type":"string","required":false,"desc":"Autocomplete native form field name."},"description":{"type":"string","required":false,"desc":"Autocomplete screen-reader description."},"maxlength":{"type":"number","required":false,"desc":"Maximum autocomplete input characters."},"noClearButton":{"type":"boolean","required":false,"desc":"Hide the autocomplete clear button."},"noInputIcon":{"type":"boolean","required":false,"desc":"Hide the autocomplete input icon."},"origin":{"type":"object","required":false,"desc":"Autocomplete distance origin {lat,lng}."},"futureOpeningBusinessesIncluded":{"type":"boolean","required":false,"desc":"Include businesses expected to open in future."},"pureServiceAreaBusinessesIncluded":{"type":"boolean","required":false,"desc":"Include businesses that visit customers and have no public physical location."},"placeholder":{"type":"string","required":false,"desc":"Autocomplete input placeholder."},"includedRegionCodes":{"type":"array","required":false,"desc":"Autocomplete country/region codes, e.g. ['us']. Google Places (New) limits apply."},"includedPrimaryTypes":{"type":"array","required":false,"desc":"Autocomplete Places (New) primary types, e.g. ['street_address']."},"locationBias":{"type":"object","required":false,"desc":"Autocomplete bias: {center:{lat,lng},radius} or bounds. Bias permits results outside this area."},"locationRestriction":{"type":"object","required":false,"desc":"Autocomplete restriction bounds {south,west,north,east}. Results must be inside this area."},"requestedLanguage":{"type":"string","required":false,"desc":"Autocomplete prediction language code."},"requestedRegion":{"type":"string","required":false,"desc":"Autocomplete prediction region code."},"unitSystem":{"type":"number","required":false,"desc":"Autocomplete Google UnitSystem enum value."},"onReady":{"type":"actions","required":false,"binds":["mapEvent"],"desc":"mapEvent={ready:true,role}."},"onError":{"type":"actions","required":false,"binds":["mapEvent"],"desc":"mapEvent.code identifies unconfigured key/map ID, SDK failure, invalid markers, or autocomplete failure. No credential or provider message is exposed."},"onSelect":{"type":"actions","required":false,"binds":["place"],"desc":"Autocomplete selection after details fetched: place={id,displayName,formattedAddress,location:{lat,lng}|null,addressComponents,viewport,types,googleMapsUrl,directionsUrl}. Selection completes the widget's billing session; older overlapping selections are ignored. googleMapsUrl opens the place and directionsUrl hands off navigation from current location without a key. Store place.id and user-entered account data; follow Google content retention policy."},"onClick":{"type":"actions","required":false,"binds":["mapEvent"],"desc":"Map click: mapEvent={position:{lat,lng},bounds,zoom}."},"onViewport":{"type":"actions","required":false,"binds":["mapEvent"],"desc":"Map idle after camera movement: mapEvent={position:{lat,lng},bounds,zoom}. Reuse bounds for autocomplete restrictions or nearby search."},"onMarkerClick":{"type":"actions","required":false,"binds":["mapEvent"],"desc":"mapEvent={id,position:{lat,lng}} with authored stable marker ID."},"onMarkerDrag":{"type":"actions","required":false,"binds":["mapEvent"],"desc":"After marker drag: mapEvent={id,position:{lat,lng}}. Save the position through ordinary app data actions if desired."},"onShapeClick":{"type":"actions","required":false,"binds":["mapEvent"],"desc":"Overlay click: mapEvent={id,position,bounds,zoom}."}}}}},"configFields":[{"name":"apiKey","label":"Browser API key","contract":{"type":"string","optional":false,"desc":"Host-supplied public HTTP-referrer-restricted Google Maps JavaScript/Places API key. Visible to visitors. Never use the private server API key here."},"required":true,"settable":true},{"name":"mapId","label":"Map ID","contract":{"type":"string","optional":true,"desc":"Google Cloud map ID, required for Advanced Marker maps. Autocomplete works independently without it."},"required":false,"settable":true},{"name":"language","label":"Language","contract":{"type":"string","optional":true,"desc":"Optional Google Maps JavaScript language code, fixed for this page's SDK session."},"required":false,"settable":true},{"name":"region","label":"Region","contract":{"type":"string","optional":true,"desc":"Optional Google Maps JavaScript region code, fixed for this page's SDK session."},"required":false,"settable":true}],"publicConfigQuestions":[{"capability":{"name":"storeMap","kind":"google.maps-browser.web"},"path":"config.apiKey","target":"browser","ref":{"$configRef":"platform","name":"apiKey","optional":true}},{"capability":{"name":"storeMap","kind":"google.maps-browser.web"},"path":"config.mapId","target":"browser","ref":{"$configRef":"platform","name":"mapId","optional":true}},{"capability":{"name":"storeMap","kind":"google.maps-browser.web"},"path":"config.language","target":"browser","ref":{"$configRef":"platform","name":"language","optional":true}},{"capability":{"name":"storeMap","kind":"google.maps-browser.web"},"path":"config.region","target":"browser","ref":{"$configRef":"platform","name":"region","optional":true}}],"secretInputs":[],"sourceBindingPlan":[],"assetSources":{},"hostRequirements":{"server":{"appId":true,"mounts":[],"inputs":[]},"browser":{"appId":true,"mounts":[{"name":"capabilityUsage","desc":"The host's app-scoped managed capability usage admission door."}],"inputs":[{"name":"capabilityUsageBrowserAdmission","required":false}]},"both":{"appId":true,"mounts":[],"inputs":[{"name":"capabilityUsageBrowserAdmission","required":false}]}}},{"entry":{"capability":{"name":"youtube","kind":"youtube.video.web"},"target":"browser","packContractAddress":"e4b9a58cd883e00a","outputNames":{"element":["youtube_video"]},"dependencies":[],"associatedAssets":[]},"declaration":{"name":"youtube","kind":"youtube.video.web","target":null,"config":{},"secrets":{},"using":{},"as":{}},"contract":{"product":{"label":"YouTube video","summary":"Show a YouTube video that plays right on the page, with no account or setup.","category":"content","useCases":[{"id":"show-youtube-video","label":"Show a YouTube video"}]},"desc":"Plays YouTube videos inside the app. The page shows the video's thumbnail with a play button and loads YouTube's privacy-enhanced player (youtube-nocookie.com) only when the visitor presses play, so a page with videos stays fast. No key or account is needed.","target":"browser","imageEgress":["https://i.ytimg.com"],"outputs":{"element":{"default":"youtube_video","desc":"Mount on an empty box. The player fills the box's width at 16:9; have the box wear a recipe setting `aspect-ratio: 16 / 9` (or a height) so the page holds the space before the player mounts. `video` takes the link exactly as YouTube shows it — a watch page, youtu.be share link, Short, live or embed link — or the 11-character video id, and may be bound to a record field. A link that names no YouTube video shows a short notice in the box instead of a player.","params":{"video":{"type":"string","required":true,"desc":"YouTube link or video id, e.g. https://youtu.be/dQw4w9WgXcQ?t=42. A time in the link (t=90, t=1m30s) is where it starts."},"title":{"type":"string","required":false,"desc":"What the video is, for screen readers and the play button, e.g. the video's title. Default 'YouTube video'."},"start":{"type":"number","required":false,"desc":"Whole seconds into the video to start at. Overrides a time in the link."}}}}},"configFields":[],"publicConfigQuestions":[],"secretInputs":[],"sourceBindingPlan":[],"assetSources":{},"hostRequirements":{"server":{"appId":false,"mounts":[],"inputs":[]},"browser":{"appId":false,"mounts":[],"inputs":[]},"both":{"appId":false,"mounts":[],"inputs":[]}}}],"assets":[{"name":"media","bucket":"media","source":"tenantMedia","access":{"read":[{"actors":["visitor"]}],"upload":[{"actors":["administrator"]}],"remove":[{"actors":["administrator"]}],"uploadUrl":[{"actors":["administrator"]}]},"scopes":{},"accept":[],"maxBytes":null,"params":{"lane":"public"},"notify":{"ok":null,"problem":"auto"},"reconciles":null},{"name":"tradePhotos","bucket":"tradePhotos","source":"tenantMedia","access":{"read":[{"actors":["visitor"]}],"upload":[{"actors":["visitor"]}],"remove":[{"actors":["administrator"]}],"uploadUrl":[{"actors":["administrator"]}]},"scopes":{},"accept":["image/jpeg","image/png","image/webp","image/heic","image/heif"],"maxBytes":10485760,"params":{"lane":"public"},"notify":{"ok":null,"problem":"silent"},"reconciles":null}],"order":{"server":["forms","maps","opehub"],"browser":["forms","maps","media","opehub","storeMap","youtube"],"both":["forms","maps","media","opehub","storeMap","youtube"]}},"auth":{"analysis":null,"actors":[{"name":"administrator","matcher":"first-light-actor.has","matcherId":"first-light-actor@1.0.0:has@c6067841bc80f0b3","config":{"actor":"first-light.app-administrator"}},{"name":"visitor","matcher":"first-light-actor.has","matcherId":"first-light-actor@1.0.0:has@c6067841bc80f0b3","config":{"actor":"first-light.app-visitor"}}]}},"visitor":{"initialState":{"financeDisclosureOpen":false,"heroPaused":false,"heroSlide":0,"inventoryCategory":"all","inventoryCondition":"all","inventorySearch":"","navOpen":false,"path":"/","hash":"","origin":"","renderedAt":null,"viewerUtcOffsetMinutes":null,"navigating":false,"catalogs":[],"categories":[],"inventory":[],"reviewSearch":[],"tuneupRequest":[],"wholegoods":[],"$default":{"homeOffer":{"email":"","equipment":"","name":"","notes":"","phone":"","sent":false,"tried":false},"homeSnowSale":{"email":"","equipment":"","name":"","notes":"","phone":"","sent":false,"tried":false},"contactMap":{"failed":false},"equipmentSnowSale":{"email":"","equipment":"","name":"","notes":"","phone":"","sent":false,"tried":false},"equipmentTradeIn":{"email":"","mower":"","name":"","notes":"","phone":"","photo":null,"sent":false,"tried":false},"FaqItem__u0":{"open":false},"FaqItem__u1":{"open":false},"FaqItem__u2":{"open":false},"commercialDemo":{"email":"","machine":"","name":"","notes":"","open":false,"phone":"","sent":false,"tried":false,"when":""},"serviceOffer":{"email":"","equipment":"","name":"","notes":"","phone":"","sent":false,"tried":false},"quickAnswers":{"active":"","open":false}}},"view":{"children":[{"tag":"style","children":["@keyframes mui-kf-fadeIn { 0% { opacity: 0 } 100% { opacity: 1 } }\n@keyframes mui-kf-progressFill { 0% { transform: scaleX(0) } 100% { transform: scaleX(1) } }\n@keyframes mui-kf-riseIn { 0% { opacity: 0; transform: translate3d(0, 1.25rem, 0) } 100% { opacity: 1; transform: translate3d(0, 0, 0) } }\n@keyframes mui-kf-slideInEnd { 0% { opacity: 0.9; transform: translate3d(1.5rem, 0, 0) } 100% { opacity: 1; transform: translate3d(0, 0, 0) } }\n.mui-m-bannerIn { animation-name: mui-kf-fadeIn; animation-duration: 500ms; animation-timing-function: ease-out; animation-delay: 0ms; animation-iteration-count: 1; animation-direction: normal; animation-fill-mode: both; }\n.mui-m-bannerProgress { animation-name: mui-kf-progressFill; animation-duration: 7000ms; animation-timing-function: linear; animation-delay: 0ms; animation-iteration-count: 1; animation-direction: normal; animation-fill-mode: both; }\n.mui-m-drawerIn { animation-name: mui-kf-slideInEnd; animation-duration: 240ms; animation-timing-function: cubic-bezier(0.22, 1, 0.36, 1); animation-delay: 0ms; animation-iteration-count: 1; animation-direction: normal; animation-fill-mode: both; }\n.mui-m-heroIn { animation-name: mui-kf-riseIn; animation-duration: 700ms; animation-timing-function: cubic-bezier(0.22, 1, 0.36, 1); animation-delay: 0ms; animation-iteration-count: 1; animation-direction: normal; animation-fill-mode: both; }\n.mui-m-scrimIn { animation-name: mui-kf-fadeIn; animation-duration: 180ms; animation-timing-function: ease-out; animation-delay: 0ms; animation-iteration-count: 1; animation-direction: normal; animation-fill-mode: both; }\n@media (prefers-reduced-motion: reduce) { .mui-m-bannerProgress { animation: none } .mui-m-drawerIn { animation-name: mui-kf-fadeIn; } .mui-m-heroIn { animation-name: mui-kf-fadeIn; } }"]},{"tag":"style","children":["@font-face { font-family: \"Barlow Condensed\"; src: url(\"/__fl/media/app-0888d07a8621b88608759b07bdfd1bf6/public/media/v2/public/imported/95338a2f23e3da758b162b8050c4fcfc91c924416a6ff6897eb46842788fe9c5\"); font-display: swap; font-weight: 600; font-style: normal; unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD; }\n@font-face { font-family: \"Barlow Condensed\"; src: url(\"/__fl/media/app-0888d07a8621b88608759b07bdfd1bf6/public/media/v2/public/imported/f1036ea5d0e96e3b1c7f8f0e0016a0f82668ebbdc1e06b579f08f0fe16ea03c3\"); font-display: swap; font-weight: 700; font-style: normal; unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD; }\n@font-face { font-family: \"Barlow Condensed\"; src: url(\"/__fl/media/app-0888d07a8621b88608759b07bdfd1bf6/public/media/v2/public/imported/3dfd2223fdad66a0573eac8f4eee9b2d2ce80189a3b4dbb711d83803fdba4285\"); font-display: swap; font-weight: 800; font-style: normal; unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD; }\n:root { --mui-t-brandRed: #c8102e; --mui-t-brandRedHover: #e01a3a; --mui-t-canvas: #f5f3ee; --mui-t-focus: #c8102e; --mui-t-fontBody: ui-sans-serif, system-ui, -apple-system, 'Segoe UI', Roboto, 'Helvetica Neue', Arial, sans-serif; --mui-t-fontDisplay: 'Barlow Condensed', 'Arial Narrow', 'Roboto Condensed', sans-serif; --mui-t-heroBg: #121212; --mui-t-heroInk: #f6f3ec; --mui-t-heroMuted: #d4cec3; --mui-t-highlight: #5aa832; --mui-t-ink: #151515; --mui-t-line: #d9d3c8; --mui-t-lineStrong: #8f887d; --mui-t-muted: #4d4a45; --mui-t-onBrandRed: #ffffff; --mui-t-onHighlight: #121212; --mui-t-onRed: #ffffff; --mui-t-red: #c8102e; --mui-t-redHover: #a00c24; --mui-t-redInk: #a50d26; --mui-t-scrim: rgba(10, 10, 10, 0.55); --mui-t-shadowOverlay: 0 24px 60px -20px rgba(10, 10, 10, 0.45); --mui-t-space2: 0.5rem; --mui-t-space3: 0.75rem; --mui-t-space4: 1rem; --mui-t-space5: 1.5rem; --mui-t-space6: 2rem; --mui-t-space7: 3rem; --mui-t-space8: 5rem; --mui-t-sunken: #ebe7df; --mui-t-surface: #ffffff; --mui-t-tap: 2.75rem; }\n@media (prefers-color-scheme: dark) { :root { --mui-t-canvas: #111111; --mui-t-focus: #ff8792; --mui-t-ink: #f2efe9; --mui-t-line: #34312d; --mui-t-lineStrong: #5c5750; --mui-t-muted: #b8b2a8; --mui-t-onRed: #1a0005; --mui-t-red: #ff5a69; --mui-t-redHover: #ff7d89; --mui-t-redInk: #ff8792; --mui-t-scrim: rgba(0, 0, 0, 0.75); --mui-t-shadowOverlay: 0 24px 60px -16px rgba(0, 0, 0, 0.9); --mui-t-sunken: #202020; --mui-t-surface: #1a1a1a; } }\n.mui-v-AccessibilityPage-body { color: var(--mui-t-muted); font-size: 1.0625rem; line-height: 1.7; margin: 0; max-width: 46rem; }\n.mui-v-AccessibilityPage-grid { display: grid; gap: var(--mui-t-space4); grid-template-columns: minmax(0, 1fr); list-style: none; margin: 0; padding: 0; }\n@media (min-width: 768px) { .mui-v-AccessibilityPage-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); } }\n@media (min-width: 1024px) { .mui-v-AccessibilityPage-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); } }\n.mui-v-AccessibilityPage-section { padding-bottom: var(--mui-t-space7); padding-top: var(--mui-t-space7); }\n@media (min-width: 768px) { .mui-v-AccessibilityPage-section { padding-bottom: var(--mui-t-space8); padding-top: var(--mui-t-space8); } }\n.mui-v-AccessibilityPage-sunken { background: var(--mui-t-sunken); border-bottom: 1px solid var(--mui-t-line); border-top: 1px solid var(--mui-t-line); }\n.mui-v-AnnouncementBand-band { background: var(--mui-t-highlight); color: var(--mui-t-onHighlight); }\n.mui-v-AnnouncementBand-body { color: var(--mui-t-onHighlight); font-size: 1.0625rem; font-weight: 600; line-height: 1.5; margin: var(--mui-t-space2) 0 0; max-width: 40rem; }\n.mui-v-AnnouncementBand-callBtn { background: var(--mui-t-onHighlight); border-color: var(--mui-t-onHighlight); color: var(--mui-t-heroInk); grid-column: 1 / -1; justify-self: start; }\n.mui-v-AnnouncementBand-callBtn:hover:where(:not(:disabled, [aria-disabled=\"true\"])) { background: var(--mui-t-brandRed); border-color: var(--mui-t-brandRed); color: var(--mui-t-onBrandRed); }\n.mui-v-AnnouncementBand-callBtn:focus-visible { outline: 3px solid var(--mui-t-onHighlight); outline-offset: 3px; }\n@media (min-width: 768px) { .mui-v-AnnouncementBand-callBtn { grid-column: auto; } }\n.mui-v-AnnouncementBand-edge { background-image: repeating-linear-gradient(-45deg, var(--mui-t-onHighlight) 0 10px, transparent 10px 20px); height: 8px; }\n.mui-v-AnnouncementBand-glyph { align-items: center; background: var(--mui-t-onHighlight); color: var(--mui-t-highlight); display: inline-flex; height: 3.5rem; justify-content: center; width: 3.5rem; }\n@media (min-width: 768px) { .mui-v-AnnouncementBand-glyph { height: 4.5rem; width: 4.5rem; } }\n.mui-v-AnnouncementBand-icon { flex-shrink: 0; height: 2rem; width: 2rem; }\n@media (min-width: 768px) { .mui-v-AnnouncementBand-icon { height: 2.5rem; width: 2.5rem; } }\n.mui-v-AnnouncementBand-inner { align-items: center; display: grid; gap: var(--mui-t-space4); grid-template-columns: auto minmax(0, 1fr); padding-bottom: var(--mui-t-space5); padding-top: var(--mui-t-space5); }\n@media (min-width: 768px) { .mui-v-AnnouncementBand-inner { gap: var(--mui-t-space5); grid-template-columns: auto minmax(0, 1fr) auto; } }\n.mui-v-AnnouncementBand-title { color: var(--mui-t-onHighlight); font-family: var(--mui-t-fontDisplay); font-size: clamp(1.75rem, 1.2rem + 2.2vw, 3rem); font-weight: 800; line-height: 0.95; margin: 0; text-transform: uppercase; text-wrap: balance; }\n.mui-v-CallBand-actions { display: flex; flex-wrap: wrap; gap: var(--mui-t-space3); }\n.mui-v-CallBand-band { background: var(--mui-t-brandRed); color: var(--mui-t-onBrandRed); }\n.mui-v-CallBand-body { color: var(--mui-t-onBrandRed); line-height: 1.6; margin: var(--mui-t-space3) 0 0; max-width: 40rem; }\n.mui-v-CallBand-callBtn { background: var(--mui-t-heroBg); border-color: var(--mui-t-heroBg); color: var(--mui-t-heroInk); }\n.mui-v-CallBand-callBtn:hover:where(:not(:disabled, [aria-disabled=\"true\"])) { background: var(--mui-t-heroInk); border-color: var(--mui-t-heroInk); color: var(--mui-t-heroBg); }\n.mui-v-CallBand-callBtn:focus-visible { outline: 3px solid var(--mui-t-heroInk); outline-offset: 3px; }\n.mui-v-CallBand-inner { display: grid; gap: var(--mui-t-space5); padding-bottom: var(--mui-t-space7); padding-top: var(--mui-t-space7); }\n@media (min-width: 1024px) { .mui-v-CallBand-inner { align-items: center; grid-template-columns: minmax(0, 1fr) auto; } }\n.mui-v-CallBand-title { font-family: var(--mui-t-fontDisplay); font-size: clamp(1.875rem, 1.3rem + 2vw, 2.75rem); font-weight: 800; line-height: 1; margin: 0; text-transform: uppercase; text-wrap: balance; }\n.mui-v-CertificationBand-actions { display: flex; flex-wrap: wrap; gap: var(--mui-t-space3); margin-top: var(--mui-t-space5); }\n.mui-v-CertificationBand-band { background: var(--mui-t-surface); border-bottom: 1px solid var(--mui-t-line); color: var(--mui-t-ink); }\n.mui-v-CertificationBand-body { color: var(--mui-t-muted); font-size: 1.0625rem; line-height: 1.65; margin: var(--mui-t-space4) 0 0; max-width: 40rem; }\n.mui-v-CertificationBand-copy { min-width: 0; }\n.mui-v-CertificationBand-inner { align-items: center; display: grid; gap: var(--mui-t-space5); padding-bottom: var(--mui-t-space7); padding-top: var(--mui-t-space7); }\n@media (min-width: 768px) { .mui-v-CertificationBand-inner { gap: var(--mui-t-space7); grid-template-columns: auto minmax(0, 1fr); } }\n.mui-v-CertificationBand-kicker { align-items: center; color: var(--mui-t-redInk); display: inline-flex; font-family: var(--mui-t-fontDisplay); font-size: 1rem; font-weight: 700; gap: var(--mui-t-space3); letter-spacing: 0.16em; margin: 0; text-transform: uppercase; }\n.mui-v-CertificationBand-rule { background: var(--mui-t-red); display: inline-block; height: 3px; width: 2rem; }\n.mui-v-CertificationBand-seal { align-items: center; background: var(--mui-t-brandRed); border-radius: 50%; box-shadow: inset 0 0 0 6px var(--mui-t-brandRed), inset 0 0 0 8px var(--mui-t-onBrandRed), 6px 6px 0 var(--mui-t-ink); color: var(--mui-t-onBrandRed); display: flex; flex-direction: column; font-family: var(--mui-t-fontDisplay); gap: 0.2rem; height: 9.5rem; justify-content: center; line-height: 1; text-align: center; text-transform: uppercase; width: 9.5rem; }\n@media (min-width: 768px) { .mui-v-CertificationBand-seal { height: 11.5rem; width: 11.5rem; } }\n.mui-v-CertificationBand-sealBottom { font-size: 0.75rem; font-weight: 700; letter-spacing: 0.1em; }\n@media (min-width: 768px) { .mui-v-CertificationBand-sealBottom { font-size: 0.875rem; } }\n.mui-v-CertificationBand-sealIcon { flex-shrink: 0; height: 2rem; margin-bottom: 0.25rem; width: 2rem; }\n.mui-v-CertificationBand-sealMain { font-size: 1.5rem; font-weight: 800; }\n@media (min-width: 768px) { .mui-v-CertificationBand-sealMain { font-size: 1.875rem; } }\n.mui-v-CertificationBand-sealTop { font-size: 0.875rem; font-weight: 700; letter-spacing: 0.18em; }\n.mui-v-CertificationBand-title { font-family: var(--mui-t-fontDisplay); font-size: clamp(2rem, 1.4rem + 2.4vw, 3.25rem); font-weight: 800; line-height: 0.98; margin: var(--mui-t-space3) 0 0; text-transform: uppercase; text-wrap: balance; }\n.mui-v-ContactPage-actions { display: flex; flex-wrap: wrap; gap: var(--mui-t-space3); margin-top: var(--mui-t-space5); }\n.mui-v-ContactPage-section { padding-bottom: var(--mui-t-space7); padding-top: var(--mui-t-space7); }\n@media (min-width: 768px) { .mui-v-ContactPage-section { padding-bottom: var(--mui-t-space8); padding-top: var(--mui-t-space8); } }\n.mui-v-DemoRequestStrip-alert { color: var(--mui-t-redInk); font-weight: 700; line-height: 1.5; margin: var(--mui-t-space3) 0 0; }\n.mui-v-DemoRequestStrip-close { align-items: center; background: transparent; border: 0; color: var(--mui-t-ink); cursor: pointer; display: inline-flex; height: var(--mui-t-tap); justify-content: center; position: absolute; right: 0.5rem; top: 0.5rem; width: var(--mui-t-tap); }\n.mui-v-DemoRequestStrip-close:hover:where(:not(:disabled, [aria-disabled=\"true\"])) { background: var(--mui-t-sunken); color: var(--mui-t-ink); }\n.mui-v-DemoRequestStrip-close:focus-visible { outline: 3px solid var(--mui-t-focus); outline-offset: 2px; }\n.mui-v-DemoRequestStrip-copy { min-width: 0; }\n.mui-v-DemoRequestStrip-dLead { color: var(--mui-t-muted); line-height: 1.55; margin: var(--mui-t-space2) 0 var(--mui-t-space4); }\n.mui-v-DemoRequestStrip-dTitle { font-family: var(--mui-t-fontDisplay); font-size: 2rem; font-weight: 800; line-height: 1; margin: 0; padding-right: 2.5rem; text-transform: uppercase; }\n.mui-v-DemoRequestStrip-field { align-content: end; display: grid; gap: 0.375rem; min-width: 0; }\n.mui-v-DemoRequestStrip-fields { display: grid; gap: var(--mui-t-space3); grid-template-columns: minmax(0, 1fr); }\n@media (min-width: 640px) { .mui-v-DemoRequestStrip-fields { grid-template-columns: repeat(2, minmax(0, 1fr)); } }\n.mui-v-DemoRequestStrip-input { background: var(--mui-t-canvas); border: 1px solid var(--mui-t-lineStrong); border-radius: 2px; color: var(--mui-t-ink); font: inherit; font-size: 1rem; min-height: var(--mui-v-DemoRequestStrip-input-min-h); padding: 0.625rem 0.75rem; resize: vertical; width: 100%; }\n.mui-v-DemoRequestStrip-input:focus-visible { border-color: var(--mui-t-ink); outline: 3px solid var(--mui-t-focus); outline-offset: 1px; }\n.mui-v-DemoRequestStrip-kicker { color: var(--mui-t-redInk); font-family: var(--mui-t-fontDisplay); font-size: 0.875rem; font-weight: 700; letter-spacing: 0.12em; margin: 0; text-transform: uppercase; }\n.mui-v-DemoRequestStrip-label { color: var(--mui-t-ink); font-size: 0.9375rem; font-weight: 700; margin: 0; }\n.mui-v-DemoRequestStrip-lead { color: var(--mui-t-muted); line-height: 1.5; margin: 0.375rem 0 0; }\n.mui-v-DemoRequestStrip-openBtn { white-space: nowrap; }\n.mui-v-DemoRequestStrip-opt { color: var(--mui-t-muted); font-weight: 400; }\n.mui-v-DemoRequestStrip-overlay { background: rgba(10, 10, 10, 0.65); display: grid; inset: 0; overflow-y: auto; padding: var(--mui-t-space3); place-items: center; position: fixed; z-index: 1000; }\n.mui-v-DemoRequestStrip-panel { background: var(--mui-t-surface); border-top: 6px solid var(--mui-t-red); color: var(--mui-t-ink); max-width: 38rem; padding: var(--mui-t-space5); position: relative; width: 100%; }\n.mui-v-DemoRequestStrip-panel:focus-visible { outline: none; }\n@media (min-width: 768px) { .mui-v-DemoRequestStrip-panel { padding: var(--mui-t-space6); } }\n.mui-v-DemoRequestStrip-strip { align-items: center; background: var(--mui-t-surface); border: 1px solid var(--mui-t-line); border-left: 6px solid var(--mui-t-red); display: grid; gap: var(--mui-t-space4); grid-template-columns: minmax(0, 1fr); margin-bottom: var(--mui-t-space5); padding: var(--mui-t-space4) var(--mui-t-space5); }\n@media (min-width: 768px) { .mui-v-DemoRequestStrip-strip { grid-template-columns: minmax(0, 1fr) auto; } }\n.mui-v-DemoRequestStrip-submit:is(:disabled, [aria-disabled=\"true\"]) { cursor: progress; opacity: 0.65; }\n.mui-v-DemoRequestStrip-submitRow { display: flex; flex-wrap: wrap; gap: var(--mui-t-space3); margin-top: var(--mui-t-space4); }\n.mui-v-DemoRequestStrip-title { color: var(--mui-t-ink); font-family: var(--mui-t-fontDisplay); font-size: 1.5rem; font-weight: 800; line-height: 1.05; margin: 0.25rem 0 0; text-transform: uppercase; text-wrap: balance; }\n@media (min-width: 640px) { .mui-v-DemoRequestStrip-wide { grid-column: 1 / -1; } }\n.mui-v-EquipmentPage-grid2 { display: grid; gap: var(--mui-t-space4); grid-template-columns: minmax(0, 1fr); }\n@media (min-width: 768px) { .mui-v-EquipmentPage-grid2 { gap: var(--mui-t-space5); grid-template-columns: repeat(2, minmax(0, 1fr)); } }\n.mui-v-EquipmentPage-grid3 { display: grid; gap: var(--mui-t-space4); grid-template-columns: minmax(0, 1fr); }\n@media (min-width: 768px) { .mui-v-EquipmentPage-grid3 { grid-template-columns: repeat(2, minmax(0, 1fr)); } }\n@media (min-width: 1024px) { .mui-v-EquipmentPage-grid3 { gap: var(--mui-t-space5); grid-template-columns: repeat(3, minmax(0, 1fr)); } }\n.mui-v-EquipmentPage-note { align-items: flex-start; background: var(--mui-t-surface); border-left: 4px solid var(--mui-t-red); color: var(--mui-t-ink); display: flex; gap: var(--mui-t-space3); line-height: 1.6; margin-top: var(--mui-t-space6); padding: var(--mui-t-space4) var(--mui-t-space5); }\n.mui-v-EquipmentPage-noteBody { flex: 1; min-width: 0; }\n.mui-v-EquipmentPage-noteIcon { color: var(--mui-t-redInk); margin-top: 0.125rem; }\n.mui-v-EquipmentPage-noteLead { color: var(--mui-t-ink); display: block; font-weight: 700; margin-bottom: 0.125rem; }\n.mui-v-EquipmentPage-noteList { display: grid; gap: var(--mui-t-space3); list-style: none; margin: var(--mui-t-space4) 0 0; padding: 0; }\n@media (min-width: 1024px) { .mui-v-EquipmentPage-noteList { gap: var(--mui-t-space5); grid-template-columns: repeat(3, minmax(0, 1fr)); } }\n.mui-v-EquipmentPage-notePoint { color: var(--mui-t-muted); line-height: 1.6; }\n.mui-v-EquipmentPage-noteTitle { color: var(--mui-t-ink); font-family: var(--mui-t-fontDisplay); font-size: clamp(1.5rem, 1.25rem + 1vw, 1.875rem); font-weight: 800; line-height: 1; margin: 0; text-transform: uppercase; text-wrap: balance; }\n.mui-v-EquipmentPage-section { padding-bottom: var(--mui-t-space7); padding-top: var(--mui-t-space7); }\n@media (min-width: 768px) { .mui-v-EquipmentPage-section { padding-bottom: var(--mui-t-space8); padding-top: var(--mui-t-space8); } }\n.mui-v-EquipmentPage-sunken { background: var(--mui-t-sunken); border-bottom: 1px solid var(--mui-t-line); border-top: 1px solid var(--mui-t-line); }\n.mui-v-FaqItem-a { color: var(--mui-t-muted); font-size: 1.0625rem; line-height: 1.7; margin: 0; max-width: 46rem; padding: 0 0 var(--mui-t-space5); }\n.mui-v-FaqItem-heading { margin: 0; }\n.mui-v-FaqItem-item { border-bottom: 1px solid var(--mui-t-line); }\n.mui-v-FaqItem-q { align-items: center; background: transparent; border: 0; color: var(--mui-t-ink); cursor: pointer; display: flex; font-family: var(--mui-t-fontBody); font-size: 1.125rem; font-weight: 700; gap: var(--mui-t-space4); justify-content: space-between; line-height: 1.35; min-height: var(--mui-t-tap); padding: var(--mui-t-space4) 0; text-align: left; width: 100%; }\n.mui-v-FaqItem-q:hover:where(:not(:disabled, [aria-disabled=\"true\"])) { background: transparent; color: var(--mui-t-redInk); }\n.mui-v-FaqItem-q:focus-visible { outline: 3px solid var(--mui-t-focus); outline-offset: 2px; }\n@media (min-width: 768px) { .mui-v-FaqItem-q { font-size: 1.1875rem; } }\n.mui-v-FaqItem-toggle { align-items: center; border: 1px solid var(--mui-t-lineStrong); border-radius: 2px; color: var(--mui-t-ink); display: inline-flex; flex-shrink: 0; height: 2.25rem; justify-content: center; transition: transform 200ms ease, background-color 160ms ease, color 160ms ease; width: 2.25rem; }\n@media (prefers-reduced-motion: reduce) { .mui-v-FaqItem-toggle { transition: none; } }\n.mui-v-FaqItem-toggle--open.mui-v-FaqItem-toggle--open.mui-v-FaqItem-toggle--open { background: var(--mui-t-brandRed); border-color: var(--mui-t-brandRed); color: var(--mui-t-onBrandRed); transform: rotate(180deg); }\n.mui-v-FaqPage-grid3 { display: grid; gap: var(--mui-t-space4); grid-template-columns: minmax(0, 1fr); list-style: none; margin: 0; padding: 0; }\n@media (min-width: 1024px) { .mui-v-FaqPage-grid3 { grid-template-columns: repeat(3, minmax(0, 1fr)); } }\n.mui-v-FaqPage-group { border-top: 2px solid var(--mui-t-ink); display: grid; gap: var(--mui-t-space4); padding-bottom: var(--mui-t-space6); padding-top: var(--mui-t-space5); }\n@media (min-width: 1024px) { .mui-v-FaqPage-group { gap: var(--mui-t-space7); grid-template-columns: minmax(0, 0.8fr) minmax(0, 2fr); } }\n.mui-v-FaqPage-groupNum { color: var(--mui-t-red); font-family: var(--mui-t-fontDisplay); font-size: 2.25rem; font-weight: 800; line-height: 1; margin: 0; }\n.mui-v-FaqPage-groupTitle { font-family: var(--mui-t-fontDisplay); font-size: clamp(1.625rem, 1.3rem + 1.2vw, 2.25rem); font-weight: 800; line-height: 1; margin: var(--mui-t-space2) 0 0; text-transform: uppercase; text-wrap: balance; }\n.mui-v-FaqPage-list { list-style: none; margin: 0; padding: 0; }\n.mui-v-FaqPage-section { padding-bottom: var(--mui-t-space7); padding-top: var(--mui-t-space7); }\n@media (min-width: 768px) { .mui-v-FaqPage-section { padding-bottom: var(--mui-t-space8); padding-top: var(--mui-t-space8); } }\n.mui-v-FaqPage-statement { border-left: 4px solid var(--mui-t-red); font-family: var(--mui-t-fontDisplay); font-size: clamp(1.5rem, 1.2rem + 1.2vw, 2.125rem); font-weight: 700; line-height: 1.1; margin: var(--mui-t-space6) 0 0; max-width: 46rem; padding-left: var(--mui-t-space5); text-transform: uppercase; text-wrap: balance; }\n.mui-v-FaqPage-sunken { background: var(--mui-t-sunken); border-bottom: 1px solid var(--mui-t-line); border-top: 1px solid var(--mui-t-line); }\n.mui-v-GoogleReviews-actions { display: flex; flex-wrap: wrap; gap: var(--mui-t-space3); margin-top: var(--mui-t-space6); }\n.mui-v-GoogleReviews-attr { color: var(--mui-t-muted); font-size: 0.8125rem; margin: var(--mui-t-space4) 0 0; }\n.mui-v-GoogleReviews-author { align-items: baseline; border-top: 1px solid var(--mui-t-line); display: flex; flex-wrap: wrap; gap: 0.25rem var(--mui-t-space3); margin: 0; padding-top: var(--mui-t-space3); }\n.mui-v-GoogleReviews-authorLink { color: var(--mui-t-ink); font-weight: 700; text-decoration: none; }\n.mui-v-GoogleReviews-authorLink:hover:where(:not(:disabled, [aria-disabled=\"true\"])) { color: var(--mui-t-redInk); text-decoration: underline; }\n.mui-v-GoogleReviews-authorLink:focus-visible { outline: 3px solid var(--mui-t-focus); outline-offset: 2px; }\n.mui-v-GoogleReviews-card { background: var(--mui-t-surface); border: 1px solid var(--mui-t-line); border-top: 4px solid var(--mui-t-ink); display: flex; flex-direction: column; gap: var(--mui-t-space3); padding: var(--mui-t-space5); }\n.mui-v-GoogleReviews-grid { display: grid; gap: var(--mui-t-space4); grid-template-columns: minmax(0, 1fr); list-style: none; margin: 0; padding: 0; }\n@media (min-width: 768px) { .mui-v-GoogleReviews-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); } }\n@media (min-width: 1024px) { .mui-v-GoogleReviews-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); } }\n.mui-v-GoogleReviews-head { align-items: end; display: grid; gap: var(--mui-t-space4); }\n@media (min-width: 1024px) { .mui-v-GoogleReviews-head { grid-template-columns: minmax(0, 1fr) auto; } }\n.mui-v-GoogleReviews-note { color: var(--mui-t-muted); font-size: 1.0625rem; line-height: 1.6; margin: 0; }\n.mui-v-GoogleReviews-quote { color: var(--mui-t-ink); flex: 1; font-size: 1.0625rem; line-height: 1.65; margin: 0; }\n.mui-v-GoogleReviews-score { align-items: center; border-left: 4px solid var(--mui-t-red); display: flex; gap: var(--mui-t-space4); margin-bottom: var(--mui-t-space6); padding-left: var(--mui-t-space4); }\n.mui-v-GoogleReviews-scoreNum { color: var(--mui-t-ink); font-family: var(--mui-t-fontDisplay); font-size: 3.5rem; font-weight: 800; line-height: 1; }\n.mui-v-GoogleReviews-scoreSub { color: var(--mui-t-muted); display: block; font-size: 0.9375rem; margin-top: 0.25rem; }\n.mui-v-GoogleReviews-section { padding-bottom: var(--mui-t-space7); padding-top: var(--mui-t-space7); }\n@media (min-width: 768px) { .mui-v-GoogleReviews-section { padding-bottom: var(--mui-t-space8); padding-top: var(--mui-t-space8); } }\n.mui-v-GoogleReviews-section--sunken.mui-v-GoogleReviews-section--sunken.mui-v-GoogleReviews-section--sunken { background: var(--mui-t-sunken); border-bottom: 1px solid var(--mui-t-line); border-top: 1px solid var(--mui-t-line); }\n.mui-v-GoogleReviews-stars { color: #e8a317; font-size: 1.25rem; letter-spacing: 0.1em; line-height: 1; }\n.mui-v-GoogleReviews-when { color: var(--mui-t-muted); font-size: 0.875rem; }\n.mui-v-Home-actions { display: flex; flex-wrap: wrap; gap: var(--mui-t-space3); margin-top: var(--mui-t-space6); }\n.mui-v-Home-badge { align-items: center; display: flex; gap: var(--mui-t-space3); margin-bottom: var(--mui-t-space5); width: fit-content; }\n.mui-v-Home-badgeText { border-left: 1px solid rgba(246, 243, 236, 0.35); color: var(--mui-t-heroInk); font-family: var(--mui-t-fontDisplay); font-size: 1.0625rem; font-weight: 700; letter-spacing: 0.12em; line-height: 1.1; padding-left: var(--mui-t-space3); text-transform: uppercase; }\n.mui-v-Home-bar { background: var(--mui-t-heroBg); border-top: 1px solid rgba(246, 243, 236, 0.18); color: var(--mui-t-heroInk); }\n.mui-v-Home-barInner { align-items: center; display: flex; gap: var(--mui-t-space4); padding-bottom: var(--mui-t-space3); padding-top: var(--mui-t-space3); }\n.mui-v-Home-body { color: var(--mui-t-muted); font-size: 1.0625rem; line-height: 1.7; margin: var(--mui-t-space4) 0 0; }\n.mui-v-Home-copy { min-width: 0; }\n.mui-v-Home-ctrl { align-items: center; background: transparent; border: 1px solid rgba(246, 243, 236, 0.35); border-radius: 2px; color: var(--mui-t-heroInk); cursor: pointer; display: inline-flex; height: var(--mui-t-tap); justify-content: center; padding: 0; width: var(--mui-t-tap); }\n.mui-v-Home-ctrl:hover:where(:not(:disabled, [aria-disabled=\"true\"])) { background: var(--mui-t-heroInk); border-color: var(--mui-t-heroInk); color: var(--mui-t-heroBg); }\n.mui-v-Home-ctrl:focus-visible { outline: 3px solid var(--mui-t-heroInk); outline-offset: 2px; }\n.mui-v-Home-ctrls { display: flex; flex-shrink: 0; gap: var(--mui-t-space2); }\n.mui-v-Home-eyebrow { align-items: center; color: var(--mui-t-heroInk); display: inline-flex; font-family: var(--mui-t-fontDisplay); font-size: 1rem; font-weight: 700; gap: var(--mui-t-space3); letter-spacing: 0.16em; margin: 0; text-transform: uppercase; }\n.mui-v-Home-fact { align-items: center; display: inline-flex; gap: var(--mui-t-space2); }\n.mui-v-Home-facts { border-top: 1px solid rgba(246, 243, 236, 0.25); color: var(--mui-t-heroMuted); display: flex; flex-wrap: wrap; font-size: 0.9375rem; gap: var(--mui-t-space3) var(--mui-t-space5); list-style: none; margin: var(--mui-t-space6) 0 0; padding: var(--mui-t-space4) 0 0; }\n.mui-v-Home-finePrint { color: var(--mui-t-muted); font-size: 0.8125rem; line-height: 1.5; margin: 0; }\n.mui-v-Home-grid2 { display: grid; gap: var(--mui-t-space4); grid-template-columns: minmax(0, 1fr); list-style: none; margin: 0; padding: 0; }\n@media (min-width: 768px) { .mui-v-Home-grid2 { grid-template-columns: repeat(2, minmax(0, 1fr)); } }\n.mui-v-Home-grid3 { display: grid; gap: var(--mui-t-space4); grid-template-columns: minmax(0, 1fr); }\n@media (min-width: 1024px) { .mui-v-Home-grid3 { grid-template-columns: repeat(3, minmax(0, 1fr)); } }\n.mui-v-Home-h2 { font-family: var(--mui-t-fontDisplay); font-size: clamp(2.25rem, 1.5rem + 3vw, 3.75rem); font-weight: 800; line-height: 0.95; margin: var(--mui-t-space3) 0 0; text-transform: uppercase; text-wrap: balance; }\n.mui-v-Home-hero { background: var(--mui-t-heroBg); color: var(--mui-t-heroInk); position: relative; }\n.mui-v-Home-heroImg { height: 100%; inset: 0; object-fit: cover; object-position: 72% center; position: absolute; width: 100%; }\n.mui-v-Home-inner { padding-bottom: var(--mui-t-space7); padding-top: var(--mui-t-space8); position: relative; }\n@media (min-width: 768px) { .mui-v-Home-inner { padding-bottom: var(--mui-t-space8); padding-top: var(--mui-t-space8); } }\n@media (min-width: 1024px) { .mui-v-Home-inner { align-items: center; column-gap: var(--mui-t-space7); display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 26rem); } }\n.mui-v-Home-introGrid { display: grid; gap: var(--mui-t-space5); }\n@media (min-width: 1024px) { .mui-v-Home-introGrid { gap: var(--mui-t-space8); grid-template-columns: minmax(0, 0.9fr) minmax(0, 1.1fr); } }\n.mui-v-Home-kRule { background: var(--mui-t-red); display: inline-block; height: 3px; width: 2rem; }\n.mui-v-Home-kicker { align-items: center; color: var(--mui-t-redInk); display: inline-flex; font-family: var(--mui-t-fontDisplay); font-size: 1rem; font-weight: 700; gap: var(--mui-t-space3); letter-spacing: 0.16em; margin: 0; text-transform: uppercase; }\n.mui-v-Home-lede { font-size: 1.1875rem; line-height: 1.65; margin: 0; }\n.mui-v-Home-logo { display: block; height: auto; width: 4.5rem; }\n@media (min-width: 768px) { .mui-v-Home-logo { width: 5.6875rem; } }\n.mui-v-Home-mowerFrame { background: #ffffff; box-shadow: 10px 10px 0 var(--mui-t-brandRed); margin: var(--mui-t-space6) 10px 10px 0; max-width: 22rem; padding: 6px; }\n@media (min-width: 1024px) { .mui-v-Home-mowerFrame { justify-self: end; margin: 0 10px 10px 0; max-width: none; width: 100%; } }\n.mui-v-Home-mowerImg { aspect-ratio: 1 / 1; display: block; height: auto; object-fit: cover; width: 100%; }\n.mui-v-Home-ownerCap { border-top: 4px solid var(--mui-t-brandRed); display: grid; gap: 0.25rem; padding: var(--mui-t-space3) var(--mui-t-space3) var(--mui-t-space2); }\n.mui-v-Home-ownerFig { background: #ffffff; box-shadow: 10px 10px 0 var(--mui-t-brandRed); margin: var(--mui-t-space6) 10px 10px 0; max-width: 20rem; padding: 6px; }\n@media (min-width: 1024px) { .mui-v-Home-ownerFig { max-width: 22rem; } }\n.mui-v-Home-ownerImg { aspect-ratio: 1 / 1; display: block; height: auto; object-fit: cover; object-position: 50% 20%; width: 100%; }\n.mui-v-Home-ownerName { color: #151515; font-family: var(--mui-t-fontDisplay); font-size: 1.625rem; font-weight: 800; line-height: 1; text-transform: uppercase; }\n.mui-v-Home-ownerRole { color: #4d4a45; font-family: var(--mui-t-fontDisplay); font-size: 0.9375rem; font-weight: 700; letter-spacing: 0.1em; text-transform: uppercase; }\n.mui-v-Home-promoCap { display: grid; gap: var(--mui-t-space2); }\n.mui-v-Home-promoCard { display: grid; gap: var(--mui-t-space4); margin: 0; min-width: 0; }\n.mui-v-Home-promoFrame { background: #ffffff; box-shadow: 10px 10px 0 var(--mui-t-brandRed); margin: 0 10px 10px 0; padding: 6px; }\n.mui-v-Home-promoGrid { display: grid; gap: var(--mui-t-space6); grid-template-columns: minmax(0, 1fr); margin-top: var(--mui-t-space2); }\n@media (min-width: 1024px) { .mui-v-Home-promoGrid { align-items: start; grid-template-columns: minmax(0, 1.9fr) minmax(0, 1fr); } }\n.mui-v-Home-promoImg { display: block; height: auto; width: 100%; }\n.mui-v-Home-promoTitle { font-family: var(--mui-t-fontDisplay); font-size: 1.375rem; font-weight: 800; line-height: 1.1; margin: 0; text-transform: uppercase; }\n.mui-v-Home-rule { background: var(--mui-t-brandRed); display: inline-block; height: 4px; width: 2.5rem; }\n.mui-v-Home-section { padding-bottom: var(--mui-t-space7); padding-top: var(--mui-t-space7); }\n@media (min-width: 768px) { .mui-v-Home-section { padding-bottom: var(--mui-t-space8); padding-top: var(--mui-t-space8); } }\n.mui-v-Home-shade { background: linear-gradient(180deg, rgba(14, 14, 14, 0.25) 0%, rgba(14, 14, 14, 0.6) 40%, rgba(14, 14, 14, 0.94) 100%); inset: 0; position: absolute; }\n@media (min-width: 768px) { .mui-v-Home-shade { background: linear-gradient(90deg, rgba(14, 14, 14, 0.94) 0%, rgba(14, 14, 14, 0.78) 42%, rgba(14, 14, 14, 0.15) 78%); } }\n.mui-v-Home-slide { align-items: end; display: grid; min-height: min(80dvh, 44rem); overflow: hidden; position: relative; }\n@media (min-width: 768px) { .mui-v-Home-slide { align-items: center; } }\n.mui-v-Home-slides { position: relative; }\n.mui-v-Home-sub { color: var(--mui-t-heroMuted); font-size: 1.0625rem; line-height: 1.6; margin: var(--mui-t-space5) 0 0; max-width: 36rem; }\n@media (min-width: 768px) { .mui-v-Home-sub { font-size: 1.1875rem; } }\n.mui-v-Home-sunken { background: var(--mui-t-sunken); border-bottom: 1px solid var(--mui-t-line); border-top: 1px solid var(--mui-t-line); }\n.mui-v-Home-tab { align-items: center; background: transparent; border: 0; border-top: 3px solid rgba(246, 243, 236, 0.22); color: var(--mui-t-heroMuted); cursor: pointer; display: flex; font-family: var(--mui-t-fontDisplay); font-size: 1rem; font-weight: 700; gap: var(--mui-t-space2); letter-spacing: 0.08em; min-height: var(--mui-t-tap); min-width: 0; padding: var(--mui-t-space2) 0 0; position: relative; text-align: left; text-transform: uppercase; transition: color 140ms ease, border-color 140ms ease; }\n.mui-v-Home-tab:hover:where(:not(:disabled, [aria-disabled=\"true\"])) { border-top-color: rgba(246, 243, 236, 0.55); color: var(--mui-t-heroInk); }\n.mui-v-Home-tab:focus-visible { outline: 3px solid var(--mui-t-heroInk); outline-offset: 3px; }\n@media (prefers-reduced-motion: reduce) { .mui-v-Home-tab { transition: none; } }\n.mui-v-Home-tab--active.mui-v-Home-tab--active.mui-v-Home-tab--active { border-top-color: var(--mui-t-heroInk); color: var(--mui-t-heroInk); }\n.mui-v-Home-tabFill { background: var(--mui-t-brandRed); height: 3px; left: 0; position: absolute; right: 0; top: -3px; transform-origin: left center; }\n.mui-v-Home-tabLabel { display: none; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }\n@media (min-width: 768px) { .mui-v-Home-tabLabel { display: inline; } }\n.mui-v-Home-tabNum { flex-shrink: 0; font-variant-numeric: tabular-nums; }\n.mui-v-Home-tabs { display: grid; flex: 1; gap: var(--mui-t-space3); grid-template-columns: repeat(3, minmax(0, 1fr)); min-width: 0; }\n.mui-v-Home-title { font-family: var(--mui-t-fontDisplay); font-size: clamp(2.75rem, 1.5rem + 4.4vw, 5rem); font-weight: 800; letter-spacing: -0.005em; line-height: 0.92; margin: var(--mui-t-space4) 0 0; max-width: 18ch; text-transform: uppercase; text-wrap: balance; }\n.mui-v-Home-video { aspect-ratio: 16 / 9; background: var(--mui-t-heroBg); display: block; width: 100%; }\n.mui-v-Home-videoFrame { background: #ffffff; box-shadow: 10px 10px 0 var(--mui-t-brandRed); margin: 0 10px 10px 0; max-width: 56rem; padding: 6px; }\n.mui-v-IconFeature-body { color: var(--mui-t-muted); line-height: 1.6; margin: var(--mui-t-space2) 0 0; }\n.mui-v-IconFeature-glyph { align-items: center; background: var(--mui-t-ink); color: var(--mui-t-canvas); display: inline-flex; height: 3rem; justify-content: center; width: 3rem; }\n.mui-v-IconFeature-item { align-items: start; background: var(--mui-t-surface); border: 1px solid var(--mui-t-line); display: grid; gap: var(--mui-t-space4); grid-template-columns: auto minmax(0, 1fr); padding: var(--mui-t-space5); }\n.mui-v-IconFeature-title { font-family: var(--mui-t-fontDisplay); font-size: 1.5rem; font-weight: 800; line-height: 1.05; margin: 0; text-transform: uppercase; }\n.mui-v-InventoryListingPage-actions { display: grid; gap: var(--mui-t-space2); grid-template-columns: minmax(0, 1fr); }\n@media (min-width: 640px) { .mui-v-InventoryListingPage-actions { grid-template-columns: repeat(2, minmax(0, 1fr)); } }\n.mui-v-InventoryListingPage-back { align-items: center; color: var(--mui-t-ink); display: inline-flex; font-weight: 700; gap: 0.375rem; margin-bottom: var(--mui-t-space3); min-height: var(--mui-t-tap); text-decoration: none; }\n.mui-v-InventoryListingPage-back:hover:where(:not(:disabled, [aria-disabled=\"true\"])) { color: var(--mui-t-redInk); text-decoration: underline; }\n.mui-v-InventoryListingPage-back:focus-visible { outline: 3px solid var(--mui-t-focus); outline-offset: 2px; }\n.mui-v-InventoryListingPage-backdrop { background: rgba(0, 0, 0, 0.65); display: grid; inset: 0; padding: var(--mui-t-space4); place-items: center; position: fixed; z-index: 200; }\n.mui-v-InventoryListingPage-badge { background: var(--mui-t-brandRed); color: var(--mui-t-onBrandRed); font-family: var(--mui-t-fontDisplay); font-size: 0.875rem; font-weight: 700; letter-spacing: 0.08em; padding: 0.25rem 0.5rem; text-transform: uppercase; }\n.mui-v-InventoryListingPage-block { margin-bottom: var(--mui-t-space7); }\n.mui-v-InventoryListingPage-desc { color: var(--mui-t-ink); font-size: 1.0625rem; line-height: 1.7; margin: 0; max-width: 46rem; white-space: pre-line; }\n.mui-v-InventoryListingPage-details { padding-bottom: var(--mui-t-space7); padding-top: var(--mui-t-space7); }\n@media (min-width: 768px) { .mui-v-InventoryListingPage-details { padding-bottom: var(--mui-t-space8); padding-top: var(--mui-t-space8); } }\n.mui-v-InventoryListingPage-dialog { background: var(--mui-t-surface); border-top: 8px solid var(--mui-t-highlight); color: var(--mui-t-ink); display: grid; gap: var(--mui-t-space3); justify-items: start; max-height: 85dvh; max-width: 34rem; overflow-y: auto; padding: var(--mui-t-space5); width: 100%; }\n.mui-v-InventoryListingPage-dialog:focus-visible { outline: 3px solid var(--mui-t-focus); outline-offset: 2px; }\n.mui-v-InventoryListingPage-dialogBody { color: var(--mui-t-muted); line-height: 1.6; margin: 0; white-space: pre-line; }\n.mui-v-InventoryListingPage-dialogLead { color: var(--mui-t-ink); font-weight: 700; margin: 0; }\n.mui-v-InventoryListingPage-dialogLink { color: var(--mui-t-ink); font-weight: 700; text-decoration: underline; text-underline-offset: 3px; }\n.mui-v-InventoryListingPage-dialogLink:hover:where(:not(:disabled, [aria-disabled=\"true\"])) { color: var(--mui-t-redInk); }\n.mui-v-InventoryListingPage-dialogLink:focus-visible { outline: 3px solid var(--mui-t-focus); outline-offset: 2px; }\n.mui-v-InventoryListingPage-dialogTitle { color: var(--mui-t-ink); font-family: var(--mui-t-fontDisplay); font-size: 1.75rem; font-weight: 800; line-height: 1.05; margin: 0; text-transform: uppercase; }\n.mui-v-InventoryListingPage-disclosureBtn { background: transparent; border: 0; color: #ffffff; cursor: pointer; font: inherit; font-size: 0.9375rem; font-weight: 700; justify-self: start; min-height: var(--mui-t-tap); padding: 0; text-align: left; text-decoration: underline; text-underline-offset: 3px; }\n.mui-v-InventoryListingPage-disclosureBtn:hover:where(:not(:disabled, [aria-disabled=\"true\"])) { background: transparent; color: var(--mui-t-highlight); }\n.mui-v-InventoryListingPage-disclosureBtn:focus-visible { outline: 3px solid var(--mui-t-highlight); outline-offset: 2px; }\n.mui-v-InventoryListingPage-feature { background: var(--mui-t-surface); border: 1px solid var(--mui-t-line); border-top: 4px solid var(--mui-t-ink); display: flex; flex-direction: column; gap: var(--mui-t-space2); padding: var(--mui-t-space5); }\n.mui-v-InventoryListingPage-featureBody { color: var(--mui-t-muted); line-height: 1.6; margin: 0; }\n.mui-v-InventoryListingPage-featureImg { display: block; height: 100%; object-fit: contain; width: 100%; }\n.mui-v-InventoryListingPage-featureMedia { aspect-ratio: 1 / 1; background: #ffffff; margin: calc(-1 * var(--mui-t-space5)) calc(-1 * var(--mui-t-space5)) var(--mui-t-space2); overflow: hidden; }\n.mui-v-InventoryListingPage-featureName { color: var(--mui-t-ink); font-family: var(--mui-t-fontDisplay); font-size: 1.375rem; font-weight: 800; line-height: 1.1; margin: 0; text-transform: uppercase; }\n.mui-v-InventoryListingPage-features { display: grid; gap: var(--mui-t-space4); grid-template-columns: minmax(0, 1fr); list-style: none; margin: 0; padding: 0; }\n@media (min-width: 768px) { .mui-v-InventoryListingPage-features { grid-template-columns: repeat(2, minmax(0, 1fr)); } }\n@media (min-width: 1024px) { .mui-v-InventoryListingPage-features { gap: var(--mui-t-space5); grid-template-columns: repeat(3, minmax(0, 1fr)); } }\n.mui-v-InventoryListingPage-finance { background: #141414; border-left: 8px solid var(--mui-t-highlight); color: #ffffff; display: grid; gap: var(--mui-t-space2); margin-top: var(--mui-t-space2); padding: var(--mui-t-space5); }\n.mui-v-InventoryListingPage-financeActions { display: flex; flex-wrap: wrap; gap: var(--mui-t-space2); margin-top: var(--mui-t-space2); }\n.mui-v-InventoryListingPage-financeAmount { color: #ffffff; font-family: var(--mui-t-fontDisplay); font-size: 3.25rem; font-variant-numeric: tabular-nums; font-weight: 800; line-height: 1; margin: var(--mui-t-space2) 0 0; }\n.mui-v-InventoryListingPage-financeFine { color: #bdbdbd; font-size: 0.875rem; line-height: 1.5; margin: 0; }\n.mui-v-InventoryListingPage-financeHeading { color: #ffffff; font-family: var(--mui-t-fontDisplay); font-size: 2rem; font-weight: 800; line-height: 1.05; margin: var(--mui-t-space2) 0 0; text-transform: uppercase; }\n.mui-v-InventoryListingPage-financeKicker { background: var(--mui-t-highlight); color: #111111; font-family: var(--mui-t-fontDisplay); font-size: 0.875rem; font-weight: 800; justify-self: start; letter-spacing: 0.08em; margin: 0; padding: 0.25rem 0.5rem; text-transform: uppercase; }\n.mui-v-InventoryListingPage-financeTerms { color: #f0f0f0; font-size: 1.0625rem; line-height: 1.5; margin: 0; }\n.mui-v-InventoryListingPage-financedPrice { color: var(--mui-t-muted); font-size: 1.0625rem; font-variant-numeric: tabular-nums; font-weight: 700; margin: 0.5rem 0 0; }\n.mui-v-InventoryListingPage-gallery { display: grid; gap: var(--mui-t-space3); }\n.mui-v-InventoryListingPage-h2 { border-bottom: 4px solid var(--mui-t-red); color: var(--mui-t-ink); display: inline-block; font-family: var(--mui-t-fontDisplay); font-size: 2rem; font-weight: 800; line-height: 1.05; margin: 0 0 var(--mui-t-space4); padding-bottom: var(--mui-t-space2); text-transform: uppercase; }\n.mui-v-InventoryListingPage-hero { background: var(--mui-t-sunken); padding-bottom: var(--mui-t-space7); padding-top: var(--mui-t-space5); }\n@media (min-width: 768px) { .mui-v-InventoryListingPage-hero { padding-bottom: var(--mui-t-space8); padding-top: var(--mui-t-space6); } }\n.mui-v-InventoryListingPage-info { display: flex; flex-direction: column; gap: var(--mui-t-space3); }\n.mui-v-InventoryListingPage-layout { display: grid; gap: var(--mui-t-space6); grid-template-columns: minmax(0, 1fr); }\n@media (min-width: 1024px) { .mui-v-InventoryListingPage-layout { align-items: start; gap: var(--mui-t-space7); grid-template-columns: minmax(0, 7fr) minmax(0, 5fr); } }\n.mui-v-InventoryListingPage-mainImg { display: block; height: 100%; object-fit: contain; width: 100%; }\n.mui-v-InventoryListingPage-mainMedia { aspect-ratio: 4 / 3; background: #ffffff; border: 1px solid var(--mui-t-line); box-shadow: 8px 8px 0 var(--mui-t-red); margin: 0; overflow: hidden; }\n.mui-v-InventoryListingPage-missing { display: grid; gap: var(--mui-t-space4); justify-items: start; max-width: 40rem; }\n.mui-v-InventoryListingPage-name { color: var(--mui-t-ink); font-family: var(--mui-t-fontDisplay); font-size: 2.25rem; font-weight: 800; line-height: 1; margin: 0; text-transform: uppercase; text-wrap: balance; }\n@media (min-width: 768px) { .mui-v-InventoryListingPage-name { font-size: 3rem; } }\n.mui-v-InventoryListingPage-note { color: var(--mui-t-muted); font-size: 1.0625rem; line-height: 1.6; margin: 0; }\n.mui-v-InventoryListingPage-perMonth { color: #d6d6d6; font-size: 1.5rem; margin-left: 0.125rem; }\n.mui-v-InventoryListingPage-price { color: var(--mui-t-ink); font-family: var(--mui-t-fontDisplay); font-size: 2.75rem; font-variant-numeric: tabular-nums; font-weight: 800; line-height: 1; margin: 0; }\n.mui-v-InventoryListingPage-priceBlock { border-top: 1px solid var(--mui-t-line); margin-top: var(--mui-t-space2); padding-top: var(--mui-t-space3); }\n.mui-v-InventoryListingPage-priceLabel { color: var(--mui-t-muted); font-size: 0.875rem; font-weight: 700; letter-spacing: 0.08em; margin: 0 0 0.25rem; text-transform: uppercase; }\n.mui-v-InventoryListingPage-resource { align-items: center; color: var(--mui-t-ink); display: inline-flex; font-weight: 700; gap: 0.375rem; min-height: var(--mui-t-tap); text-decoration: underline; text-underline-offset: 3px; }\n.mui-v-InventoryListingPage-resource:hover:where(:not(:disabled, [aria-disabled=\"true\"])) { color: var(--mui-t-redInk); }\n.mui-v-InventoryListingPage-resource:focus-visible { outline: 3px solid var(--mui-t-focus); outline-offset: 2px; }\n.mui-v-InventoryListingPage-resources { display: flex; flex-wrap: wrap; gap: var(--mui-t-space2) var(--mui-t-space4); }\n.mui-v-InventoryListingPage-soldBadge { background: var(--mui-t-ink); color: var(--mui-t-canvas); font-family: var(--mui-t-fontDisplay); font-size: 0.875rem; font-weight: 700; letter-spacing: 0.08em; padding: 0.25rem 0.5rem; text-transform: uppercase; }\n.mui-v-InventoryListingPage-soldNote { color: var(--mui-t-redInk); font-weight: 700; margin: 0; }\n.mui-v-InventoryListingPage-specGrid { display: grid; gap: var(--mui-t-space5); grid-template-columns: minmax(0, 1fr); }\n@media (min-width: 1024px) { .mui-v-InventoryListingPage-specGrid { grid-template-columns: repeat(2, minmax(0, 1fr)); } }\n.mui-v-InventoryListingPage-specGroup { background: var(--mui-t-surface); border: 1px solid var(--mui-t-line); padding: var(--mui-t-space4) var(--mui-t-space5); }\n.mui-v-InventoryListingPage-specGroupName { color: var(--mui-t-redInk); font-family: var(--mui-t-fontDisplay); font-size: 1.25rem; font-weight: 800; letter-spacing: 0.04em; margin: 0 0 var(--mui-t-space2); text-transform: uppercase; }\n.mui-v-InventoryListingPage-specList { margin: 0; }\n.mui-v-InventoryListingPage-specName { color: var(--mui-t-muted); font-size: 0.9375rem; margin: 0; }\n.mui-v-InventoryListingPage-specRow { border-top: 1px solid var(--mui-t-line); display: grid; gap: var(--mui-t-space3); grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); padding: 0.625rem 0; }\n.mui-v-InventoryListingPage-specValue { color: var(--mui-t-ink); font-size: 0.9375rem; font-variant-numeric: tabular-nums; font-weight: 700; margin: 0; }\n.mui-v-InventoryListingPage-stock { color: var(--mui-t-muted); font-size: 0.9375rem; font-variant-numeric: tabular-nums; }\n.mui-v-InventoryListingPage-sub { color: var(--mui-t-muted); font-size: 1rem; line-height: 1.5; margin: 0; }\n.mui-v-InventoryListingPage-tags { align-items: center; display: flex; flex-wrap: wrap; gap: var(--mui-t-space2) var(--mui-t-space3); }\n.mui-v-InventoryListingPage-thumb { aspect-ratio: 4 / 3; background: #ffffff; border: 1px solid var(--mui-t-line); overflow: hidden; }\n.mui-v-InventoryListingPage-thumbImg { display: block; height: 100%; object-fit: contain; width: 100%; }\n.mui-v-InventoryListingPage-thumbs { display: grid; gap: var(--mui-t-space2); grid-template-columns: repeat(3, minmax(0, 1fr)); list-style: none; margin: var(--mui-t-space2) 0 0; padding: 0; }\n@media (min-width: 768px) { .mui-v-InventoryListingPage-thumbs { grid-template-columns: repeat(4, minmax(0, 1fr)); } }\n.mui-v-InventoryPage-act { padding-inline: 0.75rem; }\n.mui-v-InventoryPage-actions { display: grid; gap: var(--mui-t-space2); grid-template-columns: repeat(2, minmax(0, 1fr)); margin-top: var(--mui-t-space3); position: relative; z-index: 2; }\n.mui-v-InventoryPage-badge { background: var(--mui-t-brandRed); color: var(--mui-t-onBrandRed); font-family: var(--mui-t-fontDisplay); font-size: 0.875rem; font-weight: 700; letter-spacing: 0.08em; padding: 0.25rem 0.5rem; text-transform: uppercase; }\n.mui-v-InventoryPage-card { background: var(--mui-t-surface); border: 1px solid var(--mui-t-line); border-top: 4px solid var(--mui-t-ink); cursor: pointer; display: flex; flex-direction: column; gap: var(--mui-t-space2); padding: var(--mui-t-space5); position: relative; }\n.mui-v-InventoryPage-card:hover:where(:not(:disabled, [aria-disabled=\"true\"])) { border-top-color: var(--mui-t-red); }\n.mui-v-InventoryPage-cardCover { display: block; inset: 0; position: absolute; z-index: 1; }\n.mui-v-InventoryPage-cat { align-items: stretch; background: var(--mui-t-surface); border: 2px solid var(--mui-t-line); border-left: 6px solid var(--mui-t-ink); border-radius: 2px; color: var(--mui-t-ink); cursor: pointer; display: flex; flex-direction: column; font: inherit; gap: 0.25rem; justify-content: center; min-height: 4.5rem; overflow: hidden; padding: var(--mui-t-space3) 0; text-align: left; transition: border-color 140ms ease, background-color 140ms ease; }\n.mui-v-InventoryPage-cat:hover:where(:not(:disabled, [aria-disabled=\"true\"])) { background: var(--mui-t-surface); border-color: var(--mui-t-ink); color: var(--mui-t-ink); }\n.mui-v-InventoryPage-cat:focus-visible { outline: 3px solid var(--mui-t-focus); outline-offset: 2px; }\n@media (prefers-reduced-motion: reduce) { .mui-v-InventoryPage-cat { transition: none; } }\n.mui-v-InventoryPage-cat--active.mui-v-InventoryPage-cat--active.mui-v-InventoryPage-cat--active { background: var(--mui-t-surface); border-color: var(--mui-t-red); box-shadow: inset 0 -4px 0 var(--mui-t-red); color: var(--mui-t-ink); }\n.mui-v-InventoryPage-catCount { color: var(--mui-t-muted); font-size: 0.875rem; padding: 0 var(--mui-t-space3); }\n.mui-v-InventoryPage-catName { font-family: var(--mui-t-fontDisplay); font-size: 1.0625rem; font-weight: 800; line-height: 1.1; padding: 0 var(--mui-t-space3); text-transform: uppercase; }\n.mui-v-InventoryPage-catTitle { color: var(--mui-t-ink); font-family: var(--mui-t-fontDisplay); font-size: 1.25rem; font-weight: 800; letter-spacing: 0.04em; margin: 0 0 var(--mui-t-space3); text-transform: uppercase; }\n.mui-v-InventoryPage-catWrap { margin-bottom: var(--mui-t-space5); }\n.mui-v-InventoryPage-cats { display: grid; gap: var(--mui-t-space3); grid-template-columns: repeat(2, minmax(0, 1fr)); }\n@media (min-width: 768px) { .mui-v-InventoryPage-cats { grid-template-columns: repeat(3, minmax(0, 1fr)); } }\n@media (min-width: 1024px) { .mui-v-InventoryPage-cats { grid-template-columns: repeat(6, minmax(0, 1fr)); } }\n.mui-v-InventoryPage-chip { background: transparent; border: 2px solid var(--mui-t-lineStrong); border-radius: 2px; color: var(--mui-t-ink); cursor: pointer; font-family: var(--mui-t-fontDisplay); font-size: 1.0625rem; font-weight: 700; letter-spacing: 0.04em; min-height: var(--mui-t-tap); padding: 0 1.125rem; text-transform: uppercase; transition: background-color 140ms ease, color 140ms ease, border-color 140ms ease; }\n.mui-v-InventoryPage-chip:hover:where(:not(:disabled, [aria-disabled=\"true\"])) { background: var(--mui-t-sunken); border-color: var(--mui-t-ink); color: var(--mui-t-ink); }\n.mui-v-InventoryPage-chip:focus-visible { outline: 3px solid var(--mui-t-focus); outline-offset: 2px; }\n@media (prefers-reduced-motion: reduce) { .mui-v-InventoryPage-chip { transition: none; } }\n.mui-v-InventoryPage-chip--active.mui-v-InventoryPage-chip--active.mui-v-InventoryPage-chip--active { background: var(--mui-t-ink); border-color: var(--mui-t-ink); color: var(--mui-t-canvas); }\n.mui-v-InventoryPage-desc { color: var(--mui-t-muted); line-height: 1.6; margin: 0; }\n.mui-v-InventoryPage-detailsLink { align-items: center; border-bottom: 2px solid var(--mui-t-red); color: var(--mui-t-ink); display: inline-flex; font-family: var(--mui-t-fontDisplay); font-size: 1.0625rem; font-weight: 800; gap: 0.5rem; justify-content: space-between; letter-spacing: 0.04em; margin-top: var(--mui-t-space2); min-height: var(--mui-t-tap); padding: 0 0.25rem; position: relative; text-decoration: none; text-transform: uppercase; z-index: 2; }\n.mui-v-InventoryPage-detailsLink:hover:where(:not(:disabled, [aria-disabled=\"true\"])) { color: var(--mui-t-redInk); }\n.mui-v-InventoryPage-detailsLink:focus-visible { outline: 3px solid var(--mui-t-focus); outline-offset: 2px; }\n.mui-v-InventoryPage-directionsLink { align-items: center; align-self: center; color: var(--mui-t-ink); display: inline-flex; font-size: 0.9375rem; font-weight: 700; gap: 0.375rem; min-height: var(--mui-t-tap); padding: 0 0.25rem; position: relative; text-decoration: underline; text-decoration-color: var(--mui-t-red); text-decoration-thickness: 2px; text-underline-offset: 3px; z-index: 2; }\n.mui-v-InventoryPage-directionsLink:hover:where(:not(:disabled, [aria-disabled=\"true\"])) { color: var(--mui-t-redInk); }\n.mui-v-InventoryPage-directionsLink:focus-visible { outline: 3px solid var(--mui-t-focus); outline-offset: 2px; }\n.mui-v-InventoryPage-filters { display: flex; flex-wrap: wrap; gap: var(--mui-t-space2); margin-bottom: var(--mui-t-space5); }\n.mui-v-InventoryPage-financed { color: var(--mui-t-ink); font-size: 1rem; font-variant-numeric: tabular-nums; font-weight: 700; margin: 0.5rem 0 0; }\n.mui-v-InventoryPage-grid { display: grid; gap: var(--mui-t-space4); grid-template-columns: minmax(0, 1fr); list-style: none; margin: 0; padding: 0; }\n@media (min-width: 768px) { .mui-v-InventoryPage-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); } }\n@media (min-width: 1024px) { .mui-v-InventoryPage-grid { gap: var(--mui-t-space5); grid-template-columns: repeat(3, minmax(0, 1fr)); } }\n.mui-v-InventoryPage-img { display: block; height: 100%; object-fit: contain; width: 100%; }\n.mui-v-InventoryPage-media { aspect-ratio: 4 / 3; background: #ffffff; margin: calc(-1 * var(--mui-t-space5)) calc(-1 * var(--mui-t-space5)) var(--mui-t-space2); overflow: hidden; }\n.mui-v-InventoryPage-model { color: var(--mui-t-ink); font-size: 0.9375rem; font-variant-numeric: tabular-nums; font-weight: 700; letter-spacing: 0.02em; margin: 0; }\n.mui-v-InventoryPage-monthly { background: var(--mui-t-highlight); color: #111111; display: inline-block; font-size: 0.9375rem; font-weight: 800; margin: 0.5rem 0 0; padding: 0.25rem 0.5rem; }\n.mui-v-InventoryPage-name { font-family: var(--mui-t-fontDisplay); font-size: 1.625rem; font-weight: 800; line-height: 1.02; margin: var(--mui-t-space2) 0 0; text-transform: uppercase; text-wrap: balance; }\n.mui-v-InventoryPage-nameLink { color: inherit; position: relative; text-decoration: none; z-index: 2; }\n.mui-v-InventoryPage-nameLink:hover:where(:not(:disabled, [aria-disabled=\"true\"])) { color: var(--mui-t-redInk); text-decoration: underline; }\n.mui-v-InventoryPage-nameLink:focus-visible { outline: 3px solid var(--mui-t-focus); outline-offset: 2px; }\n.mui-v-InventoryPage-note { color: var(--mui-t-muted); font-size: 1.0625rem; line-height: 1.6; margin: 0; }\n.mui-v-InventoryPage-price { color: var(--mui-t-ink); font-family: var(--mui-t-fontDisplay); font-size: 2.25rem; font-variant-numeric: tabular-nums; font-weight: 800; line-height: 1; margin: 0; }\n.mui-v-InventoryPage-priceLabel { color: var(--mui-t-muted); font-family: var(--mui-t-fontDisplay); font-size: 0.875rem; font-weight: 700; letter-spacing: 0.08em; margin: 0 0 0.25rem; text-transform: uppercase; }\n.mui-v-InventoryPage-priceRow { border-top: 1px solid var(--mui-t-line); margin-top: auto; padding-top: var(--mui-t-space3); }\n.mui-v-InventoryPage-search { display: flex; flex-direction: column; gap: var(--mui-t-space2); margin-bottom: var(--mui-t-space5); max-width: 40rem; }\n.mui-v-InventoryPage-searchClear { align-items: center; background: transparent; border: 0; border-radius: 2px; color: var(--mui-t-ink); cursor: pointer; display: inline-flex; flex-shrink: 0; height: var(--mui-t-tap); justify-content: center; width: var(--mui-t-tap); }\n.mui-v-InventoryPage-searchClear:hover:where(:not(:disabled, [aria-disabled=\"true\"])) { background: var(--mui-t-sunken); color: var(--mui-t-ink); }\n.mui-v-InventoryPage-searchClear:focus-visible { outline: 3px solid var(--mui-t-focus); outline-offset: 2px; }\n.mui-v-InventoryPage-searchField { align-items: center; background: var(--mui-t-surface); border: 2px solid var(--mui-t-lineStrong); border-left: 6px solid var(--mui-t-red); border-radius: 2px; color: var(--mui-t-ink); display: flex; gap: 0.5rem; min-height: 3.25rem; padding-inline: 0.75rem 0.25rem; }\n.mui-v-InventoryPage-searchIcon { color: var(--mui-t-muted); flex-shrink: 0; }\n.mui-v-InventoryPage-searchInput { appearance: none; background: transparent; border: 0; color: var(--mui-t-ink); flex: 1; font: inherit; font-size: 1.0625rem; min-height: 3rem; min-width: 0; outline: none; padding: 0; }\n.mui-v-InventoryPage-searchInput:focus-visible { outline: 3px solid var(--mui-t-focus); outline-offset: 4px; }\n.mui-v-InventoryPage-searchLabel { color: var(--mui-t-ink); font-family: var(--mui-t-fontDisplay); font-size: 1.25rem; font-weight: 800; letter-spacing: 0.04em; text-transform: uppercase; }\n.mui-v-InventoryPage-searchStatus { color: var(--mui-t-muted); font-size: 0.9375rem; margin: 0; min-height: 1.25rem; }\n.mui-v-InventoryPage-section { padding-bottom: var(--mui-t-space7); padding-top: var(--mui-t-space7); }\n@media (min-width: 768px) { .mui-v-InventoryPage-section { padding-bottom: var(--mui-t-space8); padding-top: var(--mui-t-space8); } }\n.mui-v-InventoryPage-stock { color: var(--mui-t-muted); font-size: 0.875rem; font-variant-numeric: tabular-nums; }\n.mui-v-InventoryPage-sub { color: var(--mui-t-muted); font-size: 0.9375rem; margin: 0; }\n.mui-v-InventoryPage-top { align-items: center; display: flex; flex-wrap: wrap; gap: var(--mui-t-space2) var(--mui-t-space3); justify-content: space-between; }\n.mui-v-OfferLeadBand-actions { display: flex; flex-wrap: wrap; gap: var(--mui-t-space3); margin-top: var(--mui-t-space5); }\n.mui-v-OfferLeadBand-alert { color: var(--mui-t-redInk); font-weight: 700; line-height: 1.5; margin: var(--mui-t-space3) 0 0; }\n.mui-v-OfferLeadBand-band { background: var(--mui-t-heroBg); border-bottom: 4px solid var(--mui-t-brandRed); color: var(--mui-t-heroInk); }\n.mui-v-OfferLeadBand-body { color: var(--mui-t-heroMuted); font-size: 1.0625rem; line-height: 1.6; margin: var(--mui-t-space4) 0 0; max-width: 38rem; }\n.mui-v-OfferLeadBand-card { background: var(--mui-t-surface); border-top: 4px solid var(--mui-t-highlight); color: var(--mui-t-ink); margin-top: var(--mui-t-space6); padding: var(--mui-t-space5); }\n.mui-v-OfferLeadBand-cardLead { color: var(--mui-t-muted); line-height: 1.55; margin: var(--mui-t-space2) 0 var(--mui-t-space4); }\n.mui-v-OfferLeadBand-cardTitle { font-family: var(--mui-t-fontDisplay); font-size: 1.875rem; font-weight: 800; line-height: 1; margin: 0; text-transform: uppercase; }\n.mui-v-OfferLeadBand-copy { min-width: 0; }\n.mui-v-OfferLeadBand-field { display: grid; gap: 0.375rem; min-width: 0; }\n.mui-v-OfferLeadBand-fields { display: grid; gap: var(--mui-t-space3); grid-template-columns: minmax(0, 1fr); }\n@media (min-width: 640px) { .mui-v-OfferLeadBand-fields { grid-template-columns: repeat(2, minmax(0, 1fr)); } }\n.mui-v-OfferLeadBand-fine { color: var(--mui-t-heroMuted); font-size: 0.8125rem; line-height: 1.55; margin: var(--mui-t-space5) 0 0; max-width: 40rem; }\n.mui-v-OfferLeadBand-frame { background: #ffffff; box-shadow: 10px 10px 0 var(--mui-t-brandRed); margin: 0 10px 10px 0; max-width: 34rem; padding: 6px; }\n@media (min-width: 1024px) { .mui-v-OfferLeadBand-frame { position: sticky; top: var(--mui-t-space5); } }\n.mui-v-OfferLeadBand-img { display: block; height: auto; width: 100%; }\n.mui-v-OfferLeadBand-inner { display: grid; gap: var(--mui-t-space6); padding-bottom: var(--mui-t-space7); padding-top: var(--mui-t-space7); }\n@media (min-width: 768px) { .mui-v-OfferLeadBand-inner { padding-bottom: var(--mui-t-space8); padding-top: var(--mui-t-space8); } }\n@media (min-width: 1024px) { .mui-v-OfferLeadBand-inner { align-items: start; column-gap: var(--mui-t-space7); grid-template-columns: minmax(0, 0.85fr) minmax(0, 1.15fr); } }\n.mui-v-OfferLeadBand-input { background: var(--mui-t-canvas); border: 1px solid var(--mui-t-lineStrong); border-radius: 2px; color: var(--mui-t-ink); font: inherit; font-size: 1rem; min-height: var(--mui-v-OfferLeadBand-input-min-h); padding: 0.625rem 0.75rem; resize: vertical; width: 100%; }\n.mui-v-OfferLeadBand-input:focus-visible { border-color: var(--mui-t-ink); outline: 3px solid var(--mui-t-focus); outline-offset: 1px; }\n.mui-v-OfferLeadBand-kicker { align-items: center; color: var(--mui-t-highlight); display: inline-flex; font-family: var(--mui-t-fontDisplay); font-size: 1rem; font-weight: 700; gap: var(--mui-t-space3); letter-spacing: 0.16em; margin: 0; text-transform: uppercase; }\n.mui-v-OfferLeadBand-label { color: var(--mui-t-ink); font-size: 0.9375rem; font-weight: 700; }\n.mui-v-OfferLeadBand-opt { color: var(--mui-t-muted); font-weight: 400; }\n.mui-v-OfferLeadBand-point { align-items: flex-start; color: var(--mui-t-heroInk); display: flex; font-weight: 700; gap: var(--mui-t-space3); line-height: 1.45; }\n.mui-v-OfferLeadBand-pointIcon { color: var(--mui-t-highlight); margin-top: 0.0625rem; }\n.mui-v-OfferLeadBand-points { display: grid; gap: var(--mui-t-space2); list-style: none; margin: var(--mui-t-space5) 0 0; padding: 0; }\n.mui-v-OfferLeadBand-rule { background: var(--mui-t-brandRed); display: inline-block; flex-shrink: 0; height: 4px; width: 2.5rem; }\n.mui-v-OfferLeadBand-small { color: var(--mui-t-muted); font-size: 0.9375rem; }\n.mui-v-OfferLeadBand-submit:is(:disabled, [aria-disabled=\"true\"]) { cursor: progress; opacity: 0.65; }\n.mui-v-OfferLeadBand-submitRow { align-items: center; display: flex; flex-wrap: wrap; gap: var(--mui-t-space3); margin-top: var(--mui-t-space4); }\n.mui-v-OfferLeadBand-title { font-family: var(--mui-t-fontDisplay); font-size: clamp(2.25rem, 1.5rem + 3vw, 3.75rem); font-weight: 800; line-height: 0.95; margin: var(--mui-t-space3) 0 0; text-transform: uppercase; text-wrap: balance; }\n@media (min-width: 640px) { .mui-v-OfferLeadBand-wide { grid-column: 1 / -1; } }\n.mui-v-OfferingCard-card { background: var(--mui-t-surface); border: 1px solid var(--mui-t-line); border-top: 4px solid var(--mui-t-red); display: flex; flex-direction: column; gap: var(--mui-t-space3); padding: var(--mui-t-space5); }\n.mui-v-OfferingCard-glyph { align-items: center; background: var(--mui-t-brandRed); color: var(--mui-t-onBrandRed); display: inline-flex; height: 3rem; justify-content: center; width: 3rem; }\n.mui-v-OfferingCard-link { align-items: center; align-self: flex-start; border-bottom: 2px solid var(--mui-t-red); color: var(--mui-t-ink); display: inline-flex; font-family: var(--mui-t-fontDisplay); font-size: 1.1875rem; font-weight: 700; gap: var(--mui-t-space2); letter-spacing: 0.03em; margin-top: auto; min-height: var(--mui-t-tap); text-decoration: none; text-transform: uppercase; }\n.mui-v-OfferingCard-link:hover:where(:not(:disabled, [aria-disabled=\"true\"])) { color: var(--mui-t-redInk); }\n.mui-v-OfferingCard-link:focus-visible { outline: 3px solid var(--mui-t-focus); outline-offset: 2px; }\n.mui-v-OfferingCard-summary { color: var(--mui-t-muted); line-height: 1.65; margin: 0 0 var(--mui-t-space3); }\n.mui-v-OfferingCard-tag { color: var(--mui-t-muted); font-family: var(--mui-t-fontDisplay); font-size: 0.875rem; font-weight: 700; letter-spacing: 0.1em; text-align: right; text-transform: uppercase; }\n.mui-v-OfferingCard-title { font-family: var(--mui-t-fontDisplay); font-size: 1.875rem; font-weight: 800; line-height: 1; margin: var(--mui-t-space2) 0 0; text-transform: uppercase; }\n.mui-v-OfferingCard-top { align-items: center; display: flex; gap: var(--mui-t-space3); justify-content: space-between; }\n.mui-v-PageHero-badge { align-items: center; display: flex; gap: var(--mui-t-space3); margin-bottom: var(--mui-t-space5); width: fit-content; }\n.mui-v-PageHero-badgeText { border-left: 1px solid rgba(246, 243, 236, 0.35); color: var(--mui-t-heroInk); font-family: var(--mui-t-fontDisplay); font-size: 1.0625rem; font-weight: 700; letter-spacing: 0.12em; line-height: 1.1; padding-left: var(--mui-t-space3); text-transform: uppercase; }\n.mui-v-PageHero-band { background: var(--mui-t-heroBg); border-bottom: 4px solid var(--mui-t-brandRed); color: var(--mui-t-heroInk); }\n.mui-v-PageHero-copy { min-width: 0; }\n.mui-v-PageHero-eyebrow { color: var(--mui-t-heroMuted); font-family: var(--mui-t-fontDisplay); font-size: 1rem; font-weight: 700; letter-spacing: 0.16em; margin: 0; text-transform: uppercase; }\n.mui-v-PageHero-frame { background: #ffffff; box-shadow: 10px 10px 0 var(--mui-t-brandRed); margin: var(--mui-t-space6) 10px 10px 0; max-width: 32rem; padding: 6px; }\n@media (min-width: 1024px) { .mui-v-PageHero-frame { margin: 0 10px 10px 0; max-width: none; width: 100%; } }\n.mui-v-PageHero-img { aspect-ratio: 3 / 2; display: block; height: auto; object-fit: cover; width: 100%; }\n.mui-v-PageHero-inner { padding-bottom: var(--mui-t-space7); padding-top: var(--mui-t-space7); }\n@media (min-width: 768px) { .mui-v-PageHero-inner { padding-bottom: var(--mui-t-space8); padding-top: var(--mui-t-space8); } }\n@media (min-width: 1024px) { .mui-v-PageHero-inner { align-items: center; column-gap: var(--mui-t-space7); display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 28rem); } }\n.mui-v-PageHero-lead { color: var(--mui-t-heroMuted); font-size: 1.0625rem; line-height: 1.65; margin: var(--mui-t-space5) 0 0; max-width: 42rem; }\n@media (min-width: 768px) { .mui-v-PageHero-lead { font-size: 1.1875rem; } }\n.mui-v-PageHero-logo { display: block; height: auto; width: 4.5rem; }\n@media (min-width: 768px) { .mui-v-PageHero-logo { width: 5.6875rem; } }\n.mui-v-PageHero-title { font-family: var(--mui-t-fontDisplay); font-size: clamp(2.375rem, 1.5rem + 3.6vw, 4.25rem); font-weight: 800; line-height: 0.95; margin: var(--mui-t-space3) 0 0; max-width: 20ch; text-transform: uppercase; text-wrap: balance; }\n.mui-v-PartsPage-body { color: var(--mui-t-muted); font-size: 1.0625rem; line-height: 1.7; margin: 0; }\n.mui-v-PartsPage-callout { align-items: flex-start; background: var(--mui-t-surface); border-left: 4px solid var(--mui-t-red); display: flex; gap: var(--mui-t-space3); line-height: 1.6; margin: var(--mui-t-space5) 0 0; padding: var(--mui-t-space4) var(--mui-t-space5); }\n.mui-v-PartsPage-calloutIcon { color: var(--mui-t-redInk); margin-top: 0.125rem; }\n.mui-v-PartsPage-check { color: var(--mui-t-redInk); margin-top: 0.3rem; }\n.mui-v-PartsPage-col { background: var(--mui-t-surface); border: 1px solid var(--mui-t-line); border-top: 4px solid var(--mui-t-ink); padding: var(--mui-t-space5); }\n.mui-v-PartsPage-cols { display: grid; gap: var(--mui-t-space4); }\n@media (min-width: 768px) { .mui-v-PartsPage-cols { grid-template-columns: repeat(2, minmax(0, 1fr)); } }\n.mui-v-PartsPage-grid { display: grid; gap: var(--mui-t-space4); grid-template-columns: minmax(0, 1fr); list-style: none; margin: 0; padding: 0; }\n@media (min-width: 1024px) { .mui-v-PartsPage-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); } }\n.mui-v-PartsPage-li { align-items: flex-start; display: flex; gap: var(--mui-t-space3); line-height: 1.55; }\n.mui-v-PartsPage-list { display: grid; gap: var(--mui-t-space3); list-style: none; margin: var(--mui-t-space4) 0 0; padding: 0; }\n.mui-v-PartsPage-listTitle { font-family: var(--mui-t-fontDisplay); font-size: 1.625rem; font-weight: 800; margin: 0; text-transform: uppercase; }\n.mui-v-PartsPage-prose { max-width: 46rem; }\n.mui-v-PartsPage-section { padding-bottom: var(--mui-t-space7); padding-top: var(--mui-t-space7); }\n@media (min-width: 768px) { .mui-v-PartsPage-section { padding-bottom: var(--mui-t-space8); padding-top: var(--mui-t-space8); } }\n.mui-v-PartsPage-sunken { background: var(--mui-t-sunken); border-bottom: 1px solid var(--mui-t-line); border-top: 1px solid var(--mui-t-line); }\n.mui-v-PhotoBannerSlide-actions { display: flex; flex-wrap: wrap; gap: var(--mui-t-space3); margin-top: var(--mui-t-space6); }\n.mui-v-PhotoBannerSlide-badge { align-items: center; display: flex; gap: var(--mui-t-space3); margin-bottom: var(--mui-t-space5); width: fit-content; }\n.mui-v-PhotoBannerSlide-badgeText { border-left: 1px solid rgba(246, 243, 236, 0.35); color: var(--mui-t-heroInk); font-family: var(--mui-t-fontDisplay); font-size: 1.0625rem; font-weight: 700; letter-spacing: 0.12em; line-height: 1.1; padding-left: var(--mui-t-space3); text-transform: uppercase; }\n.mui-v-PhotoBannerSlide-eyebrow { align-items: center; color: var(--mui-t-heroInk); display: inline-flex; font-family: var(--mui-t-fontDisplay); font-size: 1rem; font-weight: 700; gap: var(--mui-t-space3); letter-spacing: 0.16em; margin: 0; text-transform: uppercase; }\n.mui-v-PhotoBannerSlide-img { height: 100%; inset: 0; object-fit: cover; object-position: var(--mui-v-PhotoBannerSlide-img-pos); position: absolute; width: 100%; }\n.mui-v-PhotoBannerSlide-inner { padding-bottom: var(--mui-t-space7); padding-top: var(--mui-t-space8); position: relative; }\n@media (min-width: 768px) { .mui-v-PhotoBannerSlide-inner { padding-bottom: var(--mui-t-space8); padding-top: var(--mui-t-space8); } }\n.mui-v-PhotoBannerSlide-logo { display: block; height: auto; width: 4.5rem; }\n@media (min-width: 768px) { .mui-v-PhotoBannerSlide-logo { width: 5.6875rem; } }\n.mui-v-PhotoBannerSlide-rule { background: var(--mui-t-brandRed); display: inline-block; flex-shrink: 0; height: 4px; width: 2.5rem; }\n.mui-v-PhotoBannerSlide-shade { background: linear-gradient(180deg, rgba(14, 14, 14, 0.2) 0%, rgba(14, 14, 14, 0.6) 45%, rgba(14, 14, 14, 0.94) 100%); inset: 0; position: absolute; }\n@media (min-width: 768px) { .mui-v-PhotoBannerSlide-shade { background: linear-gradient(90deg, rgba(14, 14, 14, 0.94) 0%, rgba(14, 14, 14, 0.78) 42%, rgba(14, 14, 14, 0.12) 80%); } }\n.mui-v-PhotoBannerSlide-slide { align-items: end; display: grid; min-height: min(80dvh, 44rem); overflow: hidden; position: relative; }\n@media (min-width: 768px) { .mui-v-PhotoBannerSlide-slide { align-items: center; } }\n.mui-v-PhotoBannerSlide-sub { color: var(--mui-t-heroMuted); font-size: 1.0625rem; line-height: 1.6; margin: var(--mui-t-space5) 0 0; max-width: 34rem; }\n@media (min-width: 768px) { .mui-v-PhotoBannerSlide-sub { font-size: 1.1875rem; } }\n.mui-v-PhotoBannerSlide-title { font-family: var(--mui-t-fontDisplay); font-size: clamp(2.5rem, 1.5rem + 4vw, 4.5rem); font-weight: 800; line-height: 0.92; margin: var(--mui-t-space4) 0 0; max-width: 16ch; text-transform: uppercase; text-wrap: balance; }\n.mui-v-ProductLineCard-body { color: var(--mui-t-muted); line-height: 1.65; margin: 0; }\n.mui-v-ProductLineCard-card { background: var(--mui-t-surface); border: 1px solid var(--mui-t-line); border-top: 4px solid var(--mui-t-ink); display: flex; flex-direction: column; gap: var(--mui-t-space3); padding: var(--mui-t-space5); transition: border-color 160ms ease; }\n.mui-v-ProductLineCard-card:hover:where(:not(:disabled, [aria-disabled=\"true\"])) { border-top-color: var(--mui-t-red); }\n@media (prefers-reduced-motion: reduce) { .mui-v-ProductLineCard-card { transition: none; } }\n.mui-v-ProductLineCard-img { aspect-ratio: 3 / 2; background: var(--mui-v-ProductLineCard-img-bg); display: block; height: auto; object-fit: var(--mui-v-ProductLineCard-img-fit); width: 100%; }\n.mui-v-ProductLineCard-index { color: var(--mui-t-red); font-family: var(--mui-t-fontDisplay); font-size: 2.25rem; font-weight: 800; line-height: 1; }\n.mui-v-ProductLineCard-media { background: var(--mui-t-sunken); margin: calc(-1 * var(--mui-t-space5)) calc(-1 * var(--mui-t-space5)) var(--mui-t-space2); overflow: hidden; }\n.mui-v-ProductLineCard-name { font-family: var(--mui-t-fontDisplay); font-size: 1.75rem; font-weight: 800; line-height: 1.02; margin: 0; text-transform: uppercase; }\n.mui-v-ProductLineCard-segment { background: var(--mui-t-sunken); color: var(--mui-t-ink); font-family: var(--mui-t-fontDisplay); font-size: 0.875rem; font-weight: 700; letter-spacing: 0.08em; padding: 0.25rem 0.5rem; text-transform: uppercase; white-space: nowrap; }\n.mui-v-ProductLineCard-top { align-items: baseline; display: flex; gap: var(--mui-t-space3); justify-content: space-between; }\n.mui-v-QuickAnswers-action { font-size: 1.0625rem; min-height: 2.75rem; }\n.mui-v-QuickAnswers-actions { display: grid; gap: var(--mui-t-space2); grid-template-columns: 1fr 1fr; }\n.mui-v-QuickAnswers-answer { padding: 0 0 var(--mui-t-space4); }\n.mui-v-QuickAnswers-answerLink { align-items: center; color: var(--mui-t-redInk); display: inline-flex; font-size: 0.9375rem; font-weight: 700; gap: 0.35rem; margin-top: var(--mui-t-space2); min-height: 2rem; text-decoration: underline; text-underline-offset: 3px; }\n.mui-v-QuickAnswers-answerLink:focus-visible { outline: 3px solid var(--mui-t-focus); outline-offset: 2px; }\n.mui-v-QuickAnswers-answerText { background: var(--mui-t-sunken); border-left: 3px solid var(--mui-t-brandRed); color: var(--mui-t-ink); font-size: 0.9375rem; line-height: 1.6; margin: 0; padding: var(--mui-t-space3) var(--mui-t-space4); }\n.mui-v-QuickAnswers-body { flex: 1; min-height: 0; overflow-y: auto; padding: var(--mui-t-space3) var(--mui-t-space5) var(--mui-t-space4); }\n.mui-v-QuickAnswers-chev { display: inline-flex; flex-shrink: 0; transition: transform 180ms ease; }\n@media (prefers-reduced-motion: reduce) { .mui-v-QuickAnswers-chev { transition: none; } }\n.mui-v-QuickAnswers-chev--on.mui-v-QuickAnswers-chev--on.mui-v-QuickAnswers-chev--on { transform: rotate(180deg); }\n.mui-v-QuickAnswers-close { align-items: center; background: transparent; border: 1px solid rgba(246, 243, 236, 0.35); border-radius: 2px; color: var(--mui-t-heroInk); cursor: pointer; display: inline-flex; flex-shrink: 0; height: var(--mui-t-tap); justify-content: center; width: var(--mui-t-tap); }\n.mui-v-QuickAnswers-close:hover:where(:not(:disabled, [aria-disabled=\"true\"])) { background: rgba(246, 243, 236, 0.12); color: var(--mui-t-heroInk); }\n.mui-v-QuickAnswers-close:focus-visible { outline: 3px solid var(--mui-t-heroInk); outline-offset: 2px; }\n.mui-v-QuickAnswers-foot { background: var(--mui-t-sunken); border-top: 1px solid var(--mui-t-line); display: grid; gap: var(--mui-t-space3); padding: var(--mui-t-space4) var(--mui-t-space5); }\n.mui-v-QuickAnswers-footLead { color: var(--mui-t-muted); font-size: 0.875rem; font-weight: 600; margin: 0; }\n.mui-v-QuickAnswers-head { align-items: flex-start; background: var(--mui-t-heroBg); color: var(--mui-t-heroInk); display: flex; gap: var(--mui-t-space3); justify-content: space-between; padding: var(--mui-t-space4) var(--mui-t-space4) var(--mui-t-space3) var(--mui-t-space5); }\n.mui-v-QuickAnswers-intro { color: var(--mui-t-muted); font-size: 0.9375rem; margin: 0 0 var(--mui-t-space2); }\n.mui-v-QuickAnswers-item { border-bottom: 1px solid var(--mui-t-line); }\n.mui-v-QuickAnswers-kicker { color: var(--mui-t-heroMuted); font-size: 0.75rem; font-weight: 700; letter-spacing: 0.14em; margin: 0; text-transform: uppercase; }\n.mui-v-QuickAnswers-launch { align-items: center; background: var(--mui-t-brandRed); border: 2px solid var(--mui-t-heroBg); border-radius: 999px; box-shadow: var(--mui-t-shadowOverlay); color: var(--mui-t-onBrandRed); cursor: pointer; display: inline-flex; font-family: var(--mui-t-fontDisplay); font-size: 1.125rem; font-weight: 800; gap: var(--mui-t-space2); letter-spacing: 0.04em; min-height: 3.25rem; padding: 0 1.125rem 0 0.95rem; pointer-events: auto; text-transform: uppercase; transition: background-color 140ms ease, transform 160ms ease; }\n.mui-v-QuickAnswers-launch:hover:where(:not(:disabled, [aria-disabled=\"true\"])) { background: var(--mui-t-brandRedHover); color: var(--mui-t-onBrandRed); transform: translateY(-2px); }\n.mui-v-QuickAnswers-launch:focus-visible { outline: 3px solid var(--mui-t-focus); outline-offset: 3px; }\n@media (prefers-reduced-motion: reduce) { .mui-v-QuickAnswers-launch { transition: none; } }\n.mui-v-QuickAnswers-launch--on.mui-v-QuickAnswers-launch--on.mui-v-QuickAnswers-launch--on { background: var(--mui-t-heroBg); border-color: var(--mui-t-heroInk); color: var(--mui-t-heroInk); }\n.mui-v-QuickAnswers-launchText { line-height: 1; }\n.mui-v-QuickAnswers-list { list-style: none; margin: 0; padding: 0; }\n.mui-v-QuickAnswers-messenger { align-items: center; background: var(--mui-t-surface); border: 1px solid var(--mui-t-lineStrong); border-radius: 2px; color: var(--mui-t-ink); display: inline-flex; font-size: 0.9375rem; font-weight: 700; gap: var(--mui-t-space2); justify-content: center; min-height: 2.75rem; padding: 0 var(--mui-t-space3); text-decoration: none; }\n.mui-v-QuickAnswers-messenger:hover:where(:not(:disabled, [aria-disabled=\"true\"])) { background: var(--mui-t-surface); border-color: var(--mui-t-ink); color: var(--mui-t-ink); text-decoration: underline; }\n.mui-v-QuickAnswers-messenger:focus-visible { outline: 3px solid var(--mui-t-focus); outline-offset: 2px; }\n.mui-v-QuickAnswers-panel { background: var(--mui-t-surface); border: 1px solid var(--mui-t-line); border-radius: 4px; border-top: 4px solid var(--mui-t-brandRed); box-shadow: var(--mui-t-shadowOverlay); color: var(--mui-t-ink); display: flex; flex-direction: column; max-height: min(36rem, calc(100dvh - 6.5rem)); overflow: hidden; pointer-events: auto; width: min(24rem, calc(100vw - 2rem)); }\n.mui-v-QuickAnswers-q { align-items: center; background: transparent; border: 0; color: var(--mui-t-ink); cursor: pointer; display: flex; font-family: var(--mui-t-fontBody); font-size: 1rem; font-weight: 700; gap: var(--mui-t-space3); justify-content: space-between; line-height: 1.35; min-height: var(--mui-t-tap); padding: var(--mui-t-space3) 0; text-align: left; width: 100%; }\n.mui-v-QuickAnswers-q:hover:where(:not(:disabled, [aria-disabled=\"true\"])) { background: transparent; color: var(--mui-t-redInk); }\n.mui-v-QuickAnswers-q:focus-visible { outline: 3px solid var(--mui-t-focus); outline-offset: 2px; }\n.mui-v-QuickAnswers-q--on.mui-v-QuickAnswers-q--on.mui-v-QuickAnswers-q--on { color: var(--mui-t-redInk); }\n.mui-v-QuickAnswers-title { color: var(--mui-t-heroInk); font-family: var(--mui-t-fontDisplay); font-size: 1.75rem; font-weight: 800; line-height: 1; margin: 0.15rem 0 0; text-transform: uppercase; }\n.mui-v-QuickAnswers-wrap { align-items: flex-end; bottom: 1rem; display: flex; flex-direction: column; gap: var(--mui-t-space3); pointer-events: none; position: fixed; right: 1rem; z-index: 40; }\n@media (min-width: 768px) { .mui-v-QuickAnswers-wrap { bottom: 1.5rem; right: 1.5rem; } }\n.mui-v-SectionHead-head { margin-bottom: var(--mui-t-space6); max-width: 46rem; }\n.mui-v-SectionHead-kicker { align-items: center; color: var(--mui-t-redInk); display: inline-flex; font-family: var(--mui-t-fontDisplay); font-size: 1rem; font-weight: 700; gap: var(--mui-t-space3); letter-spacing: 0.16em; margin: 0; text-transform: uppercase; }\n.mui-v-SectionHead-lead { color: var(--mui-t-muted); font-size: 1.0625rem; line-height: 1.65; margin: var(--mui-t-space4) 0 0; }\n.mui-v-SectionHead-rule { background: var(--mui-t-red); display: inline-block; height: 3px; width: 2rem; }\n.mui-v-SectionHead-title { font-family: var(--mui-t-fontDisplay); font-size: clamp(2rem, 1.4rem + 2.4vw, 3.25rem); font-weight: 800; line-height: 0.98; margin: var(--mui-t-space3) 0 0; text-transform: uppercase; text-wrap: balance; }\n.mui-v-ServicePage-grid { display: grid; gap: var(--mui-t-space4); grid-template-columns: minmax(0, 1fr); list-style: none; margin: 0; padding: 0; }\n@media (min-width: 768px) { .mui-v-ServicePage-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); } }\n@media (min-width: 1024px) { .mui-v-ServicePage-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); } }\n.mui-v-ServicePage-section { padding-bottom: var(--mui-t-space7); padding-top: var(--mui-t-space7); }\n@media (min-width: 768px) { .mui-v-ServicePage-section { padding-bottom: var(--mui-t-space8); padding-top: var(--mui-t-space8); } }\n.mui-v-ServicePage-sunken { background: var(--mui-t-sunken); border-bottom: 1px solid var(--mui-t-line); border-top: 1px solid var(--mui-t-line); }\n.mui-v-ServicePage-tip { background: var(--mui-t-surface); border-left: 4px solid var(--mui-t-red); padding: var(--mui-t-space5); }\n.mui-v-ServicePage-tipBody { color: var(--mui-t-muted); line-height: 1.6; margin: var(--mui-t-space2) 0 0; }\n.mui-v-ServicePage-tipIcon { color: var(--mui-t-redInk); }\n.mui-v-ServicePage-tipTitle { font-family: var(--mui-t-fontDisplay); font-size: 1.5rem; font-weight: 800; margin: var(--mui-t-space3) 0 0; text-transform: uppercase; }\n.mui-v-ServicePage-tips { display: grid; gap: var(--mui-t-space4); }\n@media (min-width: 768px) { .mui-v-ServicePage-tips { grid-template-columns: repeat(2, minmax(0, 1fr)); } }\n.mui-v-SiteFooter-contact { align-items: center; color: var(--mui-t-heroInk); display: inline-flex; gap: var(--mui-t-space2); min-height: 2rem; text-decoration: none; }\n.mui-v-SiteFooter-contact:hover:where(:not(:disabled, [aria-disabled=\"true\"])) { text-decoration: underline; }\n.mui-v-SiteFooter-contact:focus-visible { outline: 3px solid var(--mui-t-heroInk); outline-offset: 2px; }\n.mui-v-SiteFooter-footer { background: var(--mui-t-heroBg); border-top: 4px solid var(--mui-t-brandRed); color: var(--mui-t-heroMuted); font-size: 0.9375rem; }\n.mui-v-SiteFooter-grid { display: grid; gap: var(--mui-t-space6); padding-bottom: var(--mui-t-space6); padding-top: var(--mui-t-space7); }\n@media (min-width: 768px) { .mui-v-SiteFooter-grid { grid-template-columns: 1.3fr 1fr 1fr; } }\n.mui-v-SiteFooter-head { color: var(--mui-t-heroInk); font-family: var(--mui-t-fontDisplay); font-size: 1.0625rem; font-weight: 700; letter-spacing: 0.12em; margin: 0 0 var(--mui-t-space3); text-transform: uppercase; }\n.mui-v-SiteFooter-legal { border-top: 1px solid rgba(246, 243, 236, 0.18); font-size: 0.8125rem; line-height: 1.6; padding-bottom: var(--mui-t-space5); padding-top: var(--mui-t-space4); }\n.mui-v-SiteFooter-link { color: var(--mui-t-heroMuted); text-decoration: none; }\n.mui-v-SiteFooter-link:hover:where(:not(:disabled, [aria-disabled=\"true\"])) { color: var(--mui-t-heroInk); text-decoration: underline; }\n.mui-v-SiteFooter-link:focus-visible { outline: 3px solid var(--mui-t-heroInk); outline-offset: 2px; }\n.mui-v-SiteFooter-list { display: grid; gap: var(--mui-t-space2); list-style: none; margin: 0; padding: 0; }\n.mui-v-SiteFooter-name { color: var(--mui-t-heroInk); font-family: var(--mui-t-fontDisplay); font-size: 1.75rem; font-weight: 800; line-height: 1; margin: 0; text-transform: uppercase; }\n.mui-v-SiteFooter-pickup { align-items: center; background: var(--mui-t-highlight); color: var(--mui-t-onHighlight); display: inline-flex; font-family: var(--mui-t-fontDisplay); font-size: 1.125rem; font-weight: 800; gap: var(--mui-t-space2); letter-spacing: 0.04em; margin: var(--mui-t-space4) 0 var(--mui-t-space4); padding: 0.5rem 0.75rem; text-transform: uppercase; }\n.mui-v-SiteFooter-row { display: flex; gap: var(--mui-t-space4); justify-content: space-between; }\n.mui-v-SiteFooter-tag { line-height: 1.6; margin: var(--mui-t-space2) 0 0; max-width: 22rem; }\n.mui-v-SiteHeader-actions { align-items: center; display: flex; flex-shrink: 0; gap: var(--mui-t-space2); }\n.mui-v-SiteHeader-bar { align-items: center; display: flex; flex-wrap: wrap; gap: var(--mui-t-space3); justify-content: space-between; min-height: 4.25rem; }\n@media (min-width: 1024px) { .mui-v-SiteHeader-bar { padding-top: var(--mui-t-space2); row-gap: 0; } }\n.mui-v-SiteHeader-brand { align-items: center; color: var(--mui-t-ink); display: inline-flex; gap: 0.625rem; min-height: var(--mui-t-tap); min-width: 0; text-decoration: none; }\n.mui-v-SiteHeader-brand:focus-visible { outline: 3px solid var(--mui-t-focus); outline-offset: 3px; }\n.mui-v-SiteHeader-brandName { font-family: var(--mui-t-fontDisplay); font-size: 1.0625rem; font-weight: 800; letter-spacing: 0.01em; text-transform: uppercase; white-space: nowrap; }\n@media (min-width: 640px) { .mui-v-SiteHeader-brandName { font-size: 1.375rem; } }\n.mui-v-SiteHeader-brandSub { color: var(--mui-t-redInk); display: none; font-family: var(--mui-t-fontDisplay); font-size: 0.8125rem; font-weight: 700; letter-spacing: 0.12em; margin-top: 0.25rem; text-transform: uppercase; white-space: nowrap; }\n@media (min-width: 640px) { .mui-v-SiteHeader-brandSub { display: block; } }\n.mui-v-SiteHeader-brandText { display: grid; line-height: 1; min-width: 0; }\n.mui-v-SiteHeader-call { min-height: var(--mui-t-tap); padding: 0 0.875rem; }\n.mui-v-SiteHeader-callText { display: none; }\n@media (min-width: 640px) { .mui-v-SiteHeader-callText { display: inline; } }\n.mui-v-SiteHeader-drawerFoot { color: var(--mui-t-muted); display: grid; font-size: 0.9375rem; gap: var(--mui-t-space3); margin-top: auto; }\n.mui-v-SiteHeader-drawerLink { align-items: center; border-bottom: 1px solid var(--mui-t-line); color: var(--mui-t-ink); display: flex; font-family: var(--mui-t-fontDisplay); font-size: 1.375rem; font-weight: 700; justify-content: space-between; min-height: 3.5rem; padding: 0 var(--mui-t-space2); text-decoration: none; text-transform: uppercase; }\n.mui-v-SiteHeader-drawerLink:hover:where(:not(:disabled, [aria-disabled=\"true\"])) { background: var(--mui-t-sunken); color: var(--mui-t-ink); }\n.mui-v-SiteHeader-drawerLink:focus-visible { outline: 3px solid var(--mui-t-focus); outline-offset: -3px; }\n.mui-v-SiteHeader-drawerLink--active.mui-v-SiteHeader-drawerLink--active.mui-v-SiteHeader-drawerLink--active { box-shadow: inset 4px 0 0 var(--mui-t-red); color: var(--mui-t-redInk); }\n.mui-v-SiteHeader-drawerList { display: grid; list-style: none; margin: 0; padding: 0; }\n.mui-v-SiteHeader-header { background: var(--mui-t-canvas); border-bottom: 1px solid var(--mui-t-line); border-top: 4px solid var(--mui-t-brandRed); flex-shrink: 0; position: relative; z-index: 20; }\n.mui-v-SiteHeader-layer { background: var(--mui-t-scrim); display: flex; inset: 0; justify-content: flex-end; overscroll-behavior: contain; padding-left: var(--mui-t-space6); position: fixed; z-index: 40; }\n.mui-v-SiteHeader-link { align-items: center; box-shadow: inset 0 -3px 0 transparent; color: var(--mui-t-muted); display: inline-flex; font-family: var(--mui-t-fontDisplay); font-size: 1.0625rem; font-weight: 700; letter-spacing: 0.03em; min-height: var(--mui-t-tap); padding: 0 0.625rem; text-decoration: none; text-transform: uppercase; white-space: nowrap; }\n.mui-v-SiteHeader-link:hover:where(:not(:disabled, [aria-disabled=\"true\"])) { box-shadow: inset 0 -3px 0 var(--mui-t-line); color: var(--mui-t-ink); }\n.mui-v-SiteHeader-link:focus-visible { outline: 3px solid var(--mui-t-focus); outline-offset: 2px; }\n.mui-v-SiteHeader-link--active.mui-v-SiteHeader-link--active.mui-v-SiteHeader-link--active { box-shadow: inset 0 -3px 0 var(--mui-t-red); color: var(--mui-t-ink); }\n.mui-v-SiteHeader-list { align-items: center; display: flex; gap: 0.125rem; list-style: none; margin: 0; padding: 0; }\n.mui-v-SiteHeader-mark { background: #ffffff; border-radius: 4px; box-shadow: inset 0 0 0 1px var(--mui-t-line); display: block; flex-shrink: 0; height: 2.758rem; overflow: hidden; width: 3.5rem; }\n@media (min-width: 640px) { .mui-v-SiteHeader-mark { height: 3.25rem; width: 4.125rem; } }\n.mui-v-SiteHeader-markImg { display: block; height: auto; margin-left: -1.432rem; margin-top: -1.803rem; max-width: none; width: 6.364rem; }\n@media (min-width: 640px) { .mui-v-SiteHeader-markImg { margin-left: -1.6875rem; margin-top: -2.125rem; width: 7.5rem; } }\n.mui-v-SiteHeader-menuWrap { display: inline-flex; }\n@media (min-width: 1024px) { .mui-v-SiteHeader-menuWrap { display: none; } }\n.mui-v-SiteHeader-nav { display: none; }\n@media (min-width: 1024px) { .mui-v-SiteHeader-nav { border-top: 1px solid var(--mui-t-line); display: block; margin-inline: -0.625rem; order: 3; width: 100%; } }\n.mui-v-SiteHeader-panel { background: var(--mui-t-canvas); border-top: 4px solid var(--mui-t-brandRed); box-shadow: var(--mui-t-shadowOverlay); color: var(--mui-t-ink); display: flex; flex-direction: column; gap: var(--mui-t-space5); height: 100%; overflow-y: auto; padding: var(--mui-t-space4); width: min(22rem, 100%); }\n.mui-v-SiteHeader-panelHead { align-items: center; border-bottom: 1px solid var(--mui-t-line); display: flex; gap: var(--mui-t-space4); justify-content: space-between; padding-bottom: var(--mui-t-space3); }\n.mui-v-SiteHeader-panelTitle { font-family: var(--mui-t-fontDisplay); font-size: 1.5rem; font-weight: 800; margin: 0; text-transform: uppercase; }\n.mui-v-SiteHeader-skip { background: var(--mui-t-ink); color: var(--mui-t-canvas); font-weight: 700; left: 1rem; padding: 0.75rem 1rem; position: fixed; text-decoration: none; top: -5rem; z-index: 60; }\n.mui-v-SiteHeader-skip:focus-visible { outline: 3px solid var(--mui-t-focus); outline-offset: 2px; top: 1rem; }\n.mui-v-StoreMap-cap { align-items: center; border-top: 1px solid var(--mui-t-line); color: var(--mui-t-ink); display: flex; flex-wrap: wrap; gap: var(--mui-t-space2) var(--mui-t-space4); justify-content: space-between; padding: var(--mui-t-space3) var(--mui-t-space4); }\n.mui-v-StoreMap-capText { align-items: center; display: inline-flex; font-weight: 700; gap: var(--mui-t-space2); }\n.mui-v-StoreMap-fallback { align-items: center; background: var(--mui-t-sunken); display: flex; gap: var(--mui-t-space3); min-height: 10rem; padding: var(--mui-t-space5); }\n.mui-v-StoreMap-fallbackText { color: var(--mui-t-ink); line-height: 1.55; margin: 0; }\n.mui-v-StoreMap-frame { background: var(--mui-t-surface); border: 1px solid var(--mui-t-line); border-top: 4px solid var(--mui-t-red); margin: var(--mui-t-space5) 0 0; overflow: hidden; }\n.mui-v-StoreMap-link { align-items: center; color: var(--mui-t-redInk); display: inline-flex; font-weight: 700; gap: 0.375rem; min-height: var(--mui-t-tap); text-decoration: none; }\n.mui-v-StoreMap-link:hover:where(:not(:disabled, [aria-disabled=\"true\"])) { text-decoration: underline; }\n.mui-v-StoreMap-link:focus-visible { outline: 3px solid var(--mui-t-focus); outline-offset: 2px; }\n.mui-v-StoreMap-map { background: var(--mui-t-sunken); height: 20rem; width: 100%; }\n@media (min-width: 768px) { .mui-v-StoreMap-map { height: 26rem; } }\n.mui-v-StoreMap-pin { color: var(--mui-t-redInk); }\n.mui-v-TradeInBand-actions { display: flex; flex-wrap: wrap; gap: var(--mui-t-space3); margin-top: var(--mui-t-space6); }\n.mui-v-TradeInBand-alert { color: var(--mui-t-redInk); font-weight: 700; line-height: 1.5; margin: var(--mui-t-space3) 0 0; }\n.mui-v-TradeInBand-band { background: var(--mui-t-heroBg); border-top: 4px solid var(--mui-t-highlight); color: var(--mui-t-heroInk); }\n.mui-v-TradeInBand-body { color: var(--mui-t-heroMuted); font-size: 1.0625rem; line-height: 1.6; margin: var(--mui-t-space4) 0 0; max-width: 36rem; }\n.mui-v-TradeInBand-card { background: var(--mui-t-surface); border-top: 4px solid var(--mui-t-highlight); color: var(--mui-t-ink); padding: var(--mui-t-space5); }\n@media (min-width: 768px) { .mui-v-TradeInBand-card { padding: var(--mui-t-space6); } }\n.mui-v-TradeInBand-cardLead { color: var(--mui-t-muted); line-height: 1.55; margin: var(--mui-t-space2) 0 var(--mui-t-space4); }\n.mui-v-TradeInBand-cardTitle { font-family: var(--mui-t-fontDisplay); font-size: 1.875rem; font-weight: 800; line-height: 1; margin: 0; text-transform: uppercase; }\n.mui-v-TradeInBand-copy { min-width: 0; }\n.mui-v-TradeInBand-field { align-content: end; display: grid; gap: 0.375rem; min-width: 0; }\n.mui-v-TradeInBand-fields { display: grid; gap: var(--mui-t-space3); grid-template-columns: minmax(0, 1fr); }\n@media (min-width: 640px) { .mui-v-TradeInBand-fields { grid-template-columns: repeat(2, minmax(0, 1fr)); } }\n.mui-v-TradeInBand-fine { color: var(--mui-t-heroMuted); font-size: 0.875rem; line-height: 1.55; margin: var(--mui-t-space4) 0 0; }\n.mui-v-TradeInBand-hint { color: var(--mui-t-muted); font-size: 0.875rem; line-height: 1.5; margin: 0; }\n.mui-v-TradeInBand-inner { display: grid; gap: var(--mui-t-space6); padding-bottom: var(--mui-t-space7); padding-top: var(--mui-t-space7); }\n@media (min-width: 768px) { .mui-v-TradeInBand-inner { padding-bottom: var(--mui-t-space8); padding-top: var(--mui-t-space8); } }\n@media (min-width: 1024px) { .mui-v-TradeInBand-inner { align-items: start; column-gap: var(--mui-t-space7); grid-template-columns: minmax(0, 1fr) minmax(0, 1.05fr); } }\n.mui-v-TradeInBand-input { background: var(--mui-t-canvas); border: 1px solid var(--mui-t-lineStrong); border-radius: 2px; color: var(--mui-t-ink); font: inherit; font-size: 1rem; min-height: var(--mui-v-TradeInBand-input-min-h); padding: 0.625rem 0.75rem; resize: vertical; width: 100%; }\n.mui-v-TradeInBand-input:focus-visible { border-color: var(--mui-t-ink); outline: 3px solid var(--mui-t-focus); outline-offset: 1px; }\n.mui-v-TradeInBand-kicker { align-items: center; color: var(--mui-t-highlight); display: inline-flex; font-family: var(--mui-t-fontDisplay); font-size: 1rem; font-weight: 700; gap: var(--mui-t-space3); letter-spacing: 0.16em; margin: 0; text-transform: uppercase; }\n.mui-v-TradeInBand-label { color: var(--mui-t-ink); font-size: 0.9375rem; font-weight: 700; margin: 0; }\n.mui-v-TradeInBand-opt { color: var(--mui-t-muted); font-weight: 400; }\n.mui-v-TradeInBand-photoBtn { align-items: center; background: var(--mui-t-canvas); border: 2px dashed var(--mui-t-lineStrong); border-radius: 2px; color: var(--mui-t-ink); cursor: pointer; display: inline-flex; font-family: var(--mui-t-fontDisplay); font-size: 1.125rem; font-weight: 700; gap: var(--mui-t-space2); letter-spacing: 0.03em; min-height: 3rem; padding: 0 1.25rem; text-transform: uppercase; transition: background-color 140ms ease, border-color 140ms ease; }\n.mui-v-TradeInBand-photoBtn:hover:where(:not(:disabled, [aria-disabled=\"true\"])) { background: var(--mui-t-sunken); border-color: var(--mui-t-ink); color: var(--mui-t-ink); }\n.mui-v-TradeInBand-photoWrap:is(:hover, :focus-within) .mui-v-TradeInBand-photoBtn { border-color: var(--mui-t-ink); outline: 3px solid var(--mui-t-focus); outline-offset: 2px; }\n@media (prefers-reduced-motion: reduce) { .mui-v-TradeInBand-photoBtn { transition: none; } }\n.mui-v-TradeInBand-photoCard { align-items: center; background: var(--mui-t-canvas); border: 1px solid var(--mui-t-line); display: flex; gap: var(--mui-t-space4); margin-top: 0.25rem; padding: var(--mui-t-space3); }\n.mui-v-TradeInBand-photoMeta { display: grid; gap: 0.25rem; min-width: 0; }\n.mui-v-TradeInBand-photoName { color: var(--mui-t-ink); font-weight: 700; margin: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }\n.mui-v-TradeInBand-photoRemove { background: transparent; border: 0; color: var(--mui-t-redInk); cursor: pointer; font: inherit; font-size: 0.9375rem; font-weight: 700; justify-self: start; min-height: 2rem; padding: 0; text-decoration: underline; }\n.mui-v-TradeInBand-photoRemove:hover:where(:not(:disabled, [aria-disabled=\"true\"])) { background: transparent; color: var(--mui-t-ink); }\n.mui-v-TradeInBand-photoRemove:focus-visible { outline: 3px solid var(--mui-t-focus); outline-offset: 2px; }\n.mui-v-TradeInBand-photoRemove:is(:disabled, [aria-disabled=\"true\"]) { cursor: progress; opacity: 0.6; }\n.mui-v-TradeInBand-photoStatus { color: var(--mui-t-muted); font-size: 0.875rem; margin: 0; }\n.mui-v-TradeInBand-photoWrap { margin-top: 0.25rem; position: relative; }\n.mui-v-TradeInBand-rule { background: var(--mui-t-highlight); display: inline-block; flex-shrink: 0; height: 4px; width: 2.5rem; }\n.mui-v-TradeInBand-step { align-items: start; border-top: 1px solid rgba(246, 243, 236, 0.2); display: grid; gap: var(--mui-t-space4); grid-template-columns: auto minmax(0, 1fr); padding-top: var(--mui-t-space4); }\n.mui-v-TradeInBand-stepBody { color: var(--mui-t-heroMuted); line-height: 1.55; margin: 0.25rem 0 0; }\n.mui-v-TradeInBand-stepNum { color: var(--mui-t-highlight); font-family: var(--mui-t-fontDisplay); font-size: 2.25rem; font-variant-numeric: tabular-nums; font-weight: 800; line-height: 1; }\n.mui-v-TradeInBand-stepTitle { color: var(--mui-t-heroInk); font-family: var(--mui-t-fontDisplay); font-size: 1.5rem; font-weight: 800; line-height: 1.05; margin: 0; text-transform: uppercase; }\n.mui-v-TradeInBand-steps { display: grid; gap: var(--mui-t-space4); list-style: none; margin: var(--mui-t-space6) 0 0; padding: 0; }\n.mui-v-TradeInBand-submit:is(:disabled, [aria-disabled=\"true\"]) { cursor: progress; opacity: 0.65; }\n.mui-v-TradeInBand-submitRow { display: flex; flex-wrap: wrap; gap: var(--mui-t-space3); margin-top: var(--mui-t-space4); }\n.mui-v-TradeInBand-thumb { background: var(--mui-t-sunken); display: block; flex-shrink: 0; height: 5rem; object-fit: cover; width: 5rem; }\n.mui-v-TradeInBand-title { font-family: var(--mui-t-fontDisplay); font-size: clamp(2.25rem, 1.5rem + 3vw, 3.75rem); font-weight: 800; line-height: 0.95; margin: var(--mui-t-space3) 0 0; text-transform: uppercase; text-wrap: balance; }\n@media (min-width: 640px) { .mui-v-TradeInBand-wide { grid-column: 1 / -1; } }\n.mui-v-VisitPanel-cell { align-items: start; border-bottom: 1px solid var(--mui-t-line); display: grid; gap: var(--mui-t-space4); grid-template-columns: auto minmax(0, 1fr); padding: var(--mui-t-space5); }\n@media (min-width: 1024px) { .mui-v-VisitPanel-cell { border-bottom: 0; border-right: 1px solid var(--mui-t-line); } }\n.mui-v-VisitPanel-grow { min-width: 0; }\n.mui-v-VisitPanel-hours { display: grid; gap: 0.375rem; list-style: none; margin: 0; padding: 0; }\n.mui-v-VisitPanel-icon { color: var(--mui-t-redInk); margin-top: 0.125rem; }\n.mui-v-VisitPanel-label { color: var(--mui-t-muted); font-family: var(--mui-t-fontDisplay); font-size: 0.9375rem; font-weight: 700; letter-spacing: 0.14em; margin: 0 0 var(--mui-t-space2); text-transform: uppercase; }\n.mui-v-VisitPanel-link { align-items: center; color: var(--mui-t-redInk); display: flex; font-weight: 700; gap: 0.375rem; margin-top: var(--mui-t-space3); min-height: 2rem; text-decoration: none; width: fit-content; }\n.mui-v-VisitPanel-link:hover:where(:not(:disabled, [aria-disabled=\"true\"])) { text-decoration: underline; }\n.mui-v-VisitPanel-link:focus-visible { outline: 3px solid var(--mui-t-focus); outline-offset: 2px; }\n.mui-v-VisitPanel-note { color: var(--mui-t-muted); font-size: 0.875rem; line-height: 1.5; margin: var(--mui-t-space3) 0 0; }\n.mui-v-VisitPanel-panel { background: var(--mui-t-surface); border: 1px solid var(--mui-t-line); border-top: 4px solid var(--mui-t-red); display: grid; grid-template-columns: minmax(0, 1fr); }\n@media (min-width: 1024px) { .mui-v-VisitPanel-panel { grid-template-columns: 1fr 1fr 1.3fr; } }\n.mui-v-VisitPanel-phone { color: var(--mui-t-ink); display: inline-block; text-decoration: none; }\n.mui-v-VisitPanel-phone:hover:where(:not(:disabled, [aria-disabled=\"true\"])) { color: var(--mui-t-redInk); }\n.mui-v-VisitPanel-phone:focus-visible { outline: 3px solid var(--mui-t-focus); outline-offset: 2px; }\n.mui-v-VisitPanel-row { display: flex; flex-wrap: wrap; gap: 0.25rem var(--mui-t-space4); justify-content: space-between; }\n.mui-v-VisitPanel-time { font-variant-numeric: tabular-nums; font-weight: 700; }\n.mui-v-VisitPanel-value { font-family: var(--mui-t-fontDisplay); font-size: 1.625rem; font-weight: 800; line-height: 1.1; margin: 0; text-transform: uppercase; }\n.mui-v-appRoot { -webkit-font-smoothing: antialiased; background: var(--mui-t-canvas); color: var(--mui-t-ink); color-scheme: light; display: flex; flex-direction: column; font-family: var(--mui-t-fontBody); font-size: 1rem; height: 100dvh; line-height: 1.55; overflow: hidden; }\n@media (prefers-color-scheme: dark) { .mui-v-appRoot { color-scheme: dark; } }\n.mui-v-btn { align-items: center; border: 2px solid transparent; border-radius: 2px; cursor: pointer; display: inline-flex; font-family: var(--mui-t-fontDisplay); font-size: 1.1875rem; font-weight: 700; gap: var(--mui-t-space2); justify-content: center; letter-spacing: 0.03em; line-height: 1; min-height: 3rem; padding: 0 1.25rem; text-decoration: none; text-transform: uppercase; transition: background-color 140ms ease, border-color 140ms ease, color 140ms ease; white-space: nowrap; }\n.mui-v-btn:focus-visible { outline: 3px solid var(--mui-t-focus); outline-offset: 3px; }\n@media (prefers-reduced-motion: reduce) { .mui-v-btn { transition: none; } }\n.mui-v-btnOnDark { background: transparent; border-color: var(--mui-t-heroInk); color: var(--mui-t-heroInk); }\n.mui-v-btnOnDark:hover:where(:not(:disabled, [aria-disabled=\"true\"])) { background: var(--mui-t-heroInk); border-color: var(--mui-t-heroInk); color: var(--mui-t-heroBg); }\n.mui-v-btnOnDark:focus-visible { outline: 3px solid var(--mui-t-heroInk); outline-offset: 3px; }\n.mui-v-btnPrimary { background: var(--mui-t-brandRed); border-color: var(--mui-t-brandRed); color: var(--mui-t-onBrandRed); }\n.mui-v-btnPrimary:hover:where(:not(:disabled, [aria-disabled=\"true\"])) { background: var(--mui-t-brandRedHover); border-color: var(--mui-t-brandRedHover); color: var(--mui-t-onBrandRed); }\n.mui-v-btnSecondary { background: transparent; border-color: var(--mui-t-ink); color: var(--mui-t-ink); }\n.mui-v-btnSecondary:hover:where(:not(:disabled, [aria-disabled=\"true\"])) { background: var(--mui-t-ink); border-color: var(--mui-t-ink); color: var(--mui-t-canvas); }\n.mui-v-container { margin: 0 auto; max-width: 76rem; padding-inline: var(--mui-t-space4); width: 100%; }\n@media (min-width: 640px) { .mui-v-container { padding-inline: var(--mui-t-space5); } }\n@media (min-width: 1024px) { .mui-v-container { padding-inline: var(--mui-t-space6); } }\n.mui-v-facebookGlyph { align-items: center; background: #1877f2; border-radius: 3px; color: #ffffff; display: inline-flex; flex-shrink: 0; font-family: Arial, Helvetica, sans-serif; font-size: 0.75rem; font-weight: 800; height: 1rem; justify-content: center; line-height: 1; width: 1rem; }\n.mui-v-formPrivacyLinks { color: var(--mui-t-muted); font-size: 0.875rem; line-height: 1.4; margin-top: 0.125rem; }\n.mui-v-iconBtn { align-items: center; background: transparent; border: 1px solid var(--mui-t-lineStrong); border-radius: 2px; color: var(--mui-t-ink); cursor: pointer; display: inline-flex; flex-shrink: 0; height: var(--mui-t-tap); justify-content: center; padding: 0; width: var(--mui-t-tap); }\n.mui-v-iconBtn:hover:where(:not(:disabled, [aria-disabled=\"true\"])) { background: var(--mui-t-sunken); color: var(--mui-t-ink); }\n.mui-v-iconBtn:focus-visible { outline: 3px solid var(--mui-t-focus); outline-offset: 2px; }\n.mui-v-iconLg { flex-shrink: 0; height: 1.5rem; width: 1.5rem; }\n.mui-v-iconMd { flex-shrink: 0; height: 1.25rem; width: 1.25rem; }\n.mui-v-iconSm { flex-shrink: 0; height: 1rem; width: 1rem; }\n.mui-v-legal__Links-chevron { opacity: 0.5; font-size: 1.25em; line-height: 1; }\n.mui-v-legal__Links-list { margin: 0; padding: 0; list-style: none; display: grid; }\n.mui-v-legal__Links-listLink { display: flex; align-items: center; justify-content: space-between; min-height: 3rem; padding: 0.75rem 0; color: inherit; text-decoration: none; border-bottom: 1px solid color-mix(in srgb, currentColor 14%, transparent); }\n.mui-v-legal__Links-listLink:focus-visible { outline: 2px solid currentColor; outline-offset: 2px; border-radius: 2px; }\n.mui-v-legal__Links-row { margin: 0; padding: 0; list-style: none; display: flex; flex-wrap: wrap; gap: 0.25rem 1.25rem; }\n.mui-v-legal__Links-rowLink { color: inherit; text-decoration: underline; text-underline-offset: 0.2em; }\n.mui-v-legal__Links-rowLink:hover:where(:not(:disabled, [aria-disabled=\"true\"])) { text-decoration-thickness: 2px; }\n.mui-v-legal__Links-rowLink:focus-visible { outline: 2px solid currentColor; outline-offset: 2px; border-radius: 2px; }\n.mui-v-scroller { flex: 1; min-height: 0; outline: none; overflow-x: clip; overflow-y: auto; }\n.mui-v-srOnly { border: 0; clip: rect(0, 0, 0, 0); height: 1px; margin: -1px; overflow: hidden; padding: 0; position: absolute; white-space: nowrap; width: 1px; }"]},{"children":[{"tag":"a","text":"Skip to main content","props":{"href":"#main-content","class":"mui-v-SiteHeader-skip"}},{"children":[{"children":[{"children":[{"props":{"alt":"","height":"1200","src":{"$t":375},"width":"1200","class":"mui-v-SiteHeader-markImg"},"tag":"img"}],"props":{"aria-hidden":"true","class":"mui-v-SiteHeader-mark"},"tag":"span"},{"children":[{"tag":"span","text":"Gerardy Outdoor Power","props":{"class":"mui-v-SiteHeader-brandName"}},{"tag":"span","text":"Authorized Toro Dealer","props":{"class":"mui-v-SiteHeader-brandSub"}}],"tag":"span","props":{"class":"mui-v-SiteHeader-brandText"}}],"props":{"aria-label":"Gerardy Outdoor Power home","href":"/","class":"mui-v-SiteHeader-brand"},"tag":"a","on":{"click":[{"call":"navigate","to":"/"}]},"$demand":[]},{"children":[{"children":[{"children":[{"props":{"aria-current":{"$t":287},"href":{"$t":286},"class":{"$t":32}},"tag":"a","text":{"$t":288},"on":{"click":[{"call":"navigate","to":"{{ item.href }}"}]},"$demand":[]}],"repeat":{"as":"item","items":{"$t":184},"key":"id"},"tag":"li"}],"tag":"ul","props":{"class":"mui-v-SiteHeader-list"}}],"props":{"aria-label":"Primary","class":"mui-v-SiteHeader-nav"},"tag":"nav"},{"children":[{"children":[{"$v":0},{"tag":"span","text":"(563) 689-3003","props":{"class":"mui-v-SiteHeader-callText"}}],"props":{"aria-label":"Call (563) 689-3003","href":"tel:+15636893003","class":"mui-v-btn mui-v-btnPrimary mui-v-SiteHeader-call"},"tag":"a"},{"children":[{"children":[{"tag":"svg","props":{"xmlns":"http://www.w3.org/2000/svg","width":"18","height":"18","viewBox":"0 0 24 24","fill":"none","stroke":"currentColor","stroke-width":"2","stroke-linecap":"round","stroke-linejoin":"round","aria-hidden":"true","focusable":"false","class":"mui-v-iconMd"},"children":[{"tag":"path","props":{"d":"M4 5h16"}},{"tag":"path","props":{"d":"M4 12h16"}},{"tag":"path","props":{"d":"M4 19h16"}}]}],"on":{"click":[{"op":"set","path":"navOpen","value":"{{ true }}"}]},"props":{"aria-controls":"site-menu","aria-expanded":{"$t":356},"aria-haspopup":"dialog","aria-label":"Open menu","type":"button","class":"mui-v-iconBtn"},"tag":"button","$demand":[]}],"tag":"span","props":{"class":"mui-v-SiteHeader-menuWrap"}}],"tag":"div","props":{"class":"mui-v-SiteHeader-actions"}}],"tag":"div","props":{"class":"mui-v-container mui-v-SiteHeader-bar"}},{"children":[{"children":[{"children":[{"props":{"id":"site-menu-title","class":"mui-v-SiteHeader-panelTitle"},"tag":"h2","text":"Menu"},{"children":[{"$v":2}],"on":{"click":[{"op":"set","path":"navOpen","value":"{{ false }}"}]},"props":{"aria-label":"Close menu","type":"button","class":"mui-v-iconBtn"},"tag":"button","$demand":[]}],"tag":"div","props":{"class":"mui-v-SiteHeader-panelHead"}},{"children":[{"children":[{"children":[{"children":[{"tag":"span","text":{"$t":288}},{"$v":5}],"on":{"click":[{"op":"set","path":"navOpen","value":"{{ false }}"},{"call":"navigate","to":"{{ item.href }}"}]},"props":{"aria-current":{"$t":287},"href":{"$t":286},"class":{"$t":31}},"tag":"a","$demand":[]}],"repeat":{"as":"item","items":{"$t":184},"key":"id"},"tag":"li"}],"tag":"ul","props":{"class":"mui-v-SiteHeader-drawerList"}}],"props":{"aria-label":"Primary"},"tag":"nav"},{"children":[{"children":[{"$v":0},{"$v":6}],"tag":"a","props":{"href":"tel:+15636893003","class":"mui-v-btn mui-v-btnPrimary"}},{"$v":7}],"tag":"div","props":{"class":"mui-v-SiteHeader-drawerFoot"}}],"props":{"aria-labelledby":"site-menu-title","aria-modal":"true","id":"site-menu","role":"dialog","tabindex":"-1","class":"mui-v-SiteHeader-panel mui-m-drawerIn"},"tag":"section"}],"tag":"div","use":[{"action":{"op":"set","path":"navOpen","value":"{{ false }}"},"behavior":"modalSurface","initialFocus":"[aria-current='page']","surface":"[role='dialog']"}],"when":{"$t":357},"props":{"class":"mui-v-SiteHeader-layer mui-m-scrimIn"},"$demand":[]}],"tag":"header","props":{"class":"mui-v-SiteHeader-header"}},{"children":[{"children":[{"children":[{"tag":"h1","text":"Gerardy Outdoor Power: Authorized Toro Dealer in Preston, Iowa","props":{"class":"mui-v-srOnly"}},{"children":[{"children":[{"props":{"alt":"","fetchpriority":"high","height":"1024","src":{"$t":377},"width":"1536","class":"mui-v-Home-heroImg"},"tag":"img"},{"props":{"aria-hidden":"true","class":"mui-v-Home-shade"},"tag":"div"},{"children":[{"children":[{"children":[{"props":{"alt":"Toro","height":"60","src":{"$t":162},"width":"91","class":"mui-v-Home-logo"},"tag":"img"},{"tag":"span","text":"Authorized Dealer","props":{"class":"mui-v-Home-badgeText"}}],"tag":"div","props":{"class":"mui-v-Home-badge"}},{"children":[{"props":{"aria-hidden":"true","class":"mui-v-Home-rule"},"tag":"span"},{"tag":"span","text":"Preston, Iowa · Since day one on 1st Ave"}],"tag":"p","props":{"class":"mui-v-Home-eyebrow"}},{"props":{"id":"hero-title","class":"mui-v-Home-title"},"tag":"h2","text":"Your Trusted Local Toro Dealer in Eastern, Iowa"},{"tag":"p","text":"Authorized sales, factory-trained service, and OEM repairs for Toro residential and commercial lawn mowers and snow blowers.","props":{"class":"mui-v-Home-sub"}},{"children":[{"$v":8},{"$v":10},{"children":[{"tag":"span","text":"Browse In-Stock Inventory"},{"$v":14}],"tag":"a","props":{"href":"/inventory","class":"mui-v-btn mui-v-btnOnDark"},"on":{"click":[{"call":"navigate","to":"/inventory"}]},"$demand":[]}],"tag":"div","props":{"class":"mui-v-Home-actions"}},{"children":[{"children":[{"$v":17},{"$v":7}],"tag":"li","props":{"class":"mui-v-Home-fact"}},{"children":[{"tag":"svg","props":{"xmlns":"http://www.w3.org/2000/svg","width":"18","height":"18","viewBox":"0 0 24 24","fill":"none","stroke":"currentColor","stroke-width":"2","stroke-linecap":"round","stroke-linejoin":"round","aria-hidden":"true","focusable":"false","class":"mui-v-iconSm"},"children":[{"$v":20},{"$v":21}]},{"tag":"span","text":"Mon–Thu 7–5 · Fri 7–4"}],"tag":"li","props":{"class":"mui-v-Home-fact"}},{"children":[{"tag":"svg","props":{"xmlns":"http://www.w3.org/2000/svg","width":"18","height":"18","viewBox":"0 0 24 24","fill":"none","stroke":"currentColor","stroke-width":"2","stroke-linecap":"round","stroke-linejoin":"round","aria-hidden":"true","focusable":"false","class":"mui-v-iconSm"},"children":[{"$v":22},{"$v":23}]},{"tag":"span","text":"Master Service Dealer"}],"tag":"li","props":{"class":"mui-v-Home-fact"}}],"tag":"ul","props":{"class":"mui-v-Home-facts"}}],"tag":"div","props":{"class":"mui-v-Home-copy"}},{"children":[{"props":{"alt":"Red and black Toro zero-turn mowers lined up on a freshly cut lawn","height":"600","loading":"eager","src":{"$t":379},"width":"600","class":"mui-v-Home-mowerImg"},"tag":"img"}],"tag":"figure","props":{"class":"mui-v-Home-mowerFrame"}}],"tag":"div","props":{"class":"mui-v-container mui-v-Home-inner mui-m-heroIn"}}],"props":{"aria-label":"1 of 3: Toro zero-turn mowers","aria-roledescription":"slide","role":"group","class":"mui-v-Home-slide mui-m-bannerIn"},"tag":"div","when":{"$t":345}},{"children":[{"props":{"alt":"","height":"1024","src":{"$t":382},"width":"1536","class":"mui-v-PhotoBannerSlide-img","style":"--mui-v-PhotoBannerSlide-img-pos: 70% center"},"tag":"img"},{"$v":24},{"children":[{"$v":25},{"children":[{"$v":26},{"tag":"span","text":"Toro snow blowers · Single- & two-stage"}],"tag":"p","props":{"class":"mui-v-PhotoBannerSlide-eyebrow"}},{"tag":"h2","text":"Ready for the First Eastern Iowa Storm","props":{"class":"mui-v-PhotoBannerSlide-title"}},{"tag":"p","text":"Toro Power Clear® and Power Max® snow blowers—set up, tested and serviced right here in Preston.","props":{"class":"mui-v-PhotoBannerSlide-sub"}},{"children":[{"$v":8},{"$v":10},{"children":[{"$v":27},{"$v":14}],"tag":"a","props":{"href":"/inventory?category=snowblowers#in-stock","class":"mui-v-btn mui-v-btnOnDark"},"on":{"click":[{"call":"navigate","to":"/inventory?category=snowblowers#in-stock"}]},"$demand":[]}],"tag":"div","props":{"class":"mui-v-PhotoBannerSlide-actions"}}],"tag":"div","props":{"class":"mui-v-container mui-v-PhotoBannerSlide-inner mui-m-heroIn"}}],"props":{"aria-label":"2 of 3: Toro snow blowers","aria-roledescription":"slide","role":"group","class":"mui-v-PhotoBannerSlide-slide mui-m-bannerIn"},"tag":"div","when":{"$t":346}},{"children":[{"props":{"alt":"","height":"1024","src":{"$t":381},"width":"1536","class":"mui-v-PhotoBannerSlide-img","style":"--mui-v-PhotoBannerSlide-img-pos: 75% center"},"tag":"img"},{"$v":24},{"children":[{"$v":25},{"children":[{"$v":26},{"tag":"span","text":"Master Service Dealer · 103 1st Ave"}],"tag":"p","props":{"class":"mui-v-PhotoBannerSlide-eyebrow"}},{"tag":"h2","text":"Factory-Trained Service Under One Roof","props":{"class":"mui-v-PhotoBannerSlide-title"}},{"tag":"p","text":"Seasonal tune-ups, blade sharpening, carburetor rebuilds and Toro warranty repairs by experienced technicians.","props":{"class":"mui-v-PhotoBannerSlide-sub"}},{"children":[{"$v":8},{"$v":10},{"children":[{"$v":28},{"$v":14}],"tag":"a","props":{"href":"/service","class":"mui-v-btn mui-v-btnOnDark"},"on":{"click":[{"call":"navigate","to":"/service"}]},"$demand":[]}],"tag":"div","props":{"class":"mui-v-PhotoBannerSlide-actions"}}],"tag":"div","props":{"class":"mui-v-container mui-v-PhotoBannerSlide-inner mui-m-heroIn"}}],"props":{"aria-label":"3 of 3: Service and repair","aria-roledescription":"slide","role":"group","class":"mui-v-PhotoBannerSlide-slide mui-m-bannerIn"},"tag":"div","when":{"$t":347}}],"props":{"aria-live":{"$t":343},"class":"mui-v-Home-slides"},"tag":"div"},{"children":[{"children":[{"children":[{"children":[{"props":{"aria-hidden":"true","class":"mui-v-Home-tabFill mui-m-bannerProgress"},"tag":"span","use":[{"action":{"op":"set","path":"heroSlide","value":"{{ mod(state.heroSlide + 1, 3) }}"},"behavior":"delay","ms":7000}],"when":{"$t":362},"$demand":[]},{"tag":"span","text":{"$t":365},"props":{"class":"mui-v-Home-tabNum"}},{"tag":"span","text":{"$t":361},"props":{"class":"mui-v-Home-tabLabel"}}],"on":{"click":[{"op":"set","path":"heroSlide","value":"{{ tab.n }}"}]},"props":{"aria-label":{"$t":3},"aria-pressed":{"$t":363},"type":"button","class":{"$t":24}},"repeat":{"as":"tab","items":{"$t":178},"key":"id"},"tag":"button","$demand":[]}],"props":{"aria-label":"Choose a banner","role":"group","class":"mui-v-Home-tabs"},"tag":"div"},{"children":[{"children":[{"tag":"svg","props":{"xmlns":"http://www.w3.org/2000/svg","width":"18","height":"18","viewBox":"0 0 24 24","fill":"none","stroke":"currentColor","stroke-width":"2","stroke-linecap":"round","stroke-linejoin":"round","aria-hidden":"true","focusable":"false","class":"mui-v-iconMd"},"children":[{"$v":29}]}],"on":{"click":[{"op":"set","path":"heroSlide","value":"{{ mod(state.heroSlide + 2, 3) }}"}]},"props":{"aria-label":"Previous banner","type":"button","class":"mui-v-Home-ctrl"},"tag":"button","$demand":[]},{"children":[{"tag":"svg","props":{"xmlns":"http://www.w3.org/2000/svg","width":"18","height":"18","viewBox":"0 0 24 24","fill":"none","stroke":"currentColor","stroke-width":"2","stroke-linecap":"round","stroke-linejoin":"round","aria-hidden":"true","focusable":"false","class":"mui-v-iconMd"},"children":[{"$v":30},{"$v":31}],"when":{"$t":51}},{"tag":"svg","props":{"xmlns":"http://www.w3.org/2000/svg","width":"18","height":"18","viewBox":"0 0 24 24","fill":"none","stroke":"currentColor","stroke-width":"2","stroke-linecap":"round","stroke-linejoin":"round","aria-hidden":"true","focusable":"false","class":"mui-v-iconMd"},"children":[{"tag":"path","props":{"d":"M5 5a2 2 0 0 1 3.008-1.728l11.997 6.998a2 2 0 0 1 .003 3.458l-12 7A2 2 0 0 1 5 19z"}}],"when":{"$t":344}}],"on":{"click":[{"op":"toggle","path":"heroPaused"}]},"props":{"aria-label":{"$t":342},"type":"button","class":"mui-v-Home-ctrl"},"tag":"button","when":{"$t":49},"$demand":[]},{"children":[{"$v":5}],"on":{"click":[{"op":"set","path":"heroSlide","value":"{{ mod(state.heroSlide + 1, 3) }}"}]},"props":{"aria-label":"Next banner","type":"button","class":"mui-v-Home-ctrl"},"tag":"button","$demand":[]}],"tag":"div","props":{"class":"mui-v-Home-ctrls"}}],"tag":"div","props":{"class":"mui-v-container mui-v-Home-barInner"}}],"tag":"div","props":{"class":"mui-v-Home-bar"}}],"props":{"aria-label":"Featured at Gerardy Outdoor Power","aria-roledescription":"carousel","class":"mui-v-Home-hero"},"tag":"section"},{"children":[{"$v":32},{"children":[{"$v":33},{"children":[{"$v":39},{"tag":"p","text":"No trailer? No problem. Call the shop to arrange pick-up and delivery for new equipment, service and repairs.","props":{"class":"mui-v-AnnouncementBand-body"}}],"tag":"div"},{"$v":40}],"tag":"div","props":{"class":"mui-v-container mui-v-AnnouncementBand-inner"}},{"$v":32}],"props":{"aria-label":"We provide Pick‑up and Delivery","class":"mui-v-AnnouncementBand-band"},"tag":"section"},{"children":[{"children":[{"children":[{"children":[{"$v":41},{"tag":"span","text":"Toro offers · Ends Oct 31"}],"tag":"p","props":{"class":"mui-v-SectionHead-kicker"}},{"props":{"id":"zmaster-title","class":"mui-v-SectionHead-title"},"tag":"h2","text":"Fall Savings on Z Master® Zero‑Turns"},{"tag":"p","text":"Save on select Toro Z Master® 2000 and 4000 Series mowers, or ask about low monthly payment options. Call or stop in to see which models qualify.","when":{"$t":55},"props":{"class":"mui-v-SectionHead-lead"}}],"tag":"div","props":{"class":"mui-v-SectionHead-head"}},{"children":[{"children":[{"children":[{"props":{"alt":"Toro ad: Save up to $500 or low monthly payment options on select Z Master 2000 Series mowers, with TURBO FORCE cutting deck, deluxe suspension system and commercial-grade performance. Ask about our customized fleet program and save up to 24%.","height":"766","loading":"lazy","src":{"$t":374},"width":"1450","class":"mui-v-Home-promoImg"},"tag":"img"}],"tag":"div","props":{"class":"mui-v-Home-promoFrame"}},{"children":[{"tag":"p","text":"Save up to $500 on select Z Master® 2000 Series","props":{"class":"mui-v-Home-promoTitle"}},{"tag":"p","text":"*Sale ends 10/31/26. Tax additional. Prior sales ineligible. Discounts based off current 2026 MAP pricing. $500 off model #'s 77281, 77283, 77285, 77291, 77294, 77288. Sale price subject to change without notice. See dealer for exclusions and details. **Credit card and delivery fees may apply. ^Financing subject to credit approval. See dealer for available terms and details. Offer effective on eligible and qualified units purchased from a participant dealer.","props":{"class":"mui-v-Home-finePrint"}}],"tag":"figcaption","props":{"class":"mui-v-Home-promoCap"}}],"tag":"figure","props":{"class":"mui-v-Home-promoCard"}},{"children":[{"children":[{"props":{"alt":"Toro ad: Save up to $650 or low monthly payment options on select Z Master 4000 Series mowers, with Kawasaki FX commercial engines, 7-gauge steel TURBO FORCE deck, and up to 12 MPH with commercial hydros. Ask about our customized fleet program and save up to 24%.","height":"582","loading":"lazy","src":{"$t":373},"width":"582","class":"mui-v-Home-promoImg"},"tag":"img"}],"tag":"div","props":{"class":"mui-v-Home-promoFrame"}},{"children":[{"tag":"p","text":"Save up to $650 on select Z Master® 4000 Series","props":{"class":"mui-v-Home-promoTitle"}},{"tag":"p","text":"*Sale ends 10/31/26. Tax additional. Prior sales ineligible. Discounts based off current 2026 MAP pricing. Applies to select Z Master 4000 Series models; see dealer for qualifying model numbers. Sale price subject to change without notice. **Credit card and delivery fees may apply. ^Financing subject to credit approval. See dealer for available terms and details.","props":{"class":"mui-v-Home-finePrint"}}],"tag":"figcaption","props":{"class":"mui-v-Home-promoCap"}}],"tag":"figure","props":{"class":"mui-v-Home-promoCard"}}],"tag":"div","props":{"class":"mui-v-Home-promoGrid"}},{"children":[{"$v":8},{"children":[{"tag":"span","text":"Shop Commercial Mowers"},{"$v":14}],"tag":"a","props":{"href":"/inventory?category=commercialLawn#in-stock","class":"mui-v-btn mui-v-btnSecondary"},"on":{"click":[{"call":"navigate","to":"/inventory?category=commercialLawn#in-stock"}]},"$demand":[]}],"tag":"div","props":{"class":"mui-v-Home-actions"}}],"tag":"div","props":{"class":"mui-v-container"}}],"props":{"aria-labelledby":"zmaster-title","id":"z-master-savings","class":"mui-v-Home-section"},"tag":"section","when":{"$t":436}},{"children":[{"children":[{"$v":42},{"children":[{"$v":43},{"$v":45},{"$v":46},{"$v":47},{"$v":51},{"children":[{"children":[{"$v":52},{"$v":53},{"children":[{"children":[{"$v":54},{"on":{"input":[{"op":"set","path":"$inst.homeOffer[\"_\"].name","value":"{{ event.value }}"}]},"props":{"autocomplete":"name","id":{"$t":76},"name":"name","required":true,"type":"text","value":{"$t":128},"class":"mui-v-OfferLeadBand-input","style":"--mui-v-OfferLeadBand-input-min-h: 2.75rem"},"tag":"input","$demand":[]}],"tag":"div","props":{"class":"mui-v-OfferLeadBand-field"}},{"children":[{"$v":55},{"on":{"input":[{"op":"set","path":"$inst.homeOffer[\"_\"].phone","value":"{{ event.value }}"}]},"props":{"autocomplete":"tel","id":{"$t":78},"inputmode":"tel","name":"phone","required":true,"type":"tel","value":{"$t":130},"class":"mui-v-OfferLeadBand-input","style":"--mui-v-OfferLeadBand-input-min-h: 2.75rem"},"tag":"input","$demand":[]}],"tag":"div","props":{"class":"mui-v-OfferLeadBand-field"}},{"children":[{"$v":56},{"on":{"input":[{"op":"set","path":"$inst.homeOffer[\"_\"].email","value":"{{ event.value }}"}]},"props":{"autocomplete":"email","id":{"$t":73},"name":"email","type":"email","value":{"$t":126},"class":"mui-v-OfferLeadBand-input","style":"--mui-v-OfferLeadBand-input-min-h: 2.75rem"},"tag":"input","$demand":[]},{"$v":58}],"tag":"div","props":{"class":"mui-v-OfferLeadBand-field"}},{"children":[{"$v":62},{"on":{"input":[{"op":"set","path":"$inst.homeOffer[\"_\"].equipment","value":"{{ event.value }}"}]},"props":{"id":{"$t":74},"name":"equipment","type":"text","value":{"$t":127},"class":"mui-v-OfferLeadBand-input","style":"--mui-v-OfferLeadBand-input-min-h: 2.75rem"},"tag":"input","$demand":[]}],"tag":"div","props":{"class":"mui-v-OfferLeadBand-field"}},{"children":[{"$v":63},{"on":{"input":[{"op":"set","path":"$inst.homeOffer[\"_\"].notes","value":"{{ event.value }}"}]},"props":{"id":{"$t":77},"name":"message","rows":"3","value":{"$t":129},"class":"mui-v-OfferLeadBand-input","style":"--mui-v-OfferLeadBand-input-min-h: 6rem"},"tag":"textarea","$demand":[]}],"tag":"div","props":{"class":"mui-v-OfferLeadBand-field mui-v-OfferLeadBand-wide"}}],"tag":"div","props":{"class":"mui-v-OfferLeadBand-fields"}},{"props":{"role":"alert","class":"mui-v-OfferLeadBand-alert"},"tag":"p","text":"Please add your name and a phone number so we can call you.","when":{"$t":132}},{"props":{"role":"alert","class":"mui-v-OfferLeadBand-alert"},"tag":"p","text":{"$t":18},"when":{"$t":134}},{"children":[{"children":[{"$v":64},{"tag":"span","text":{"$t":133}}],"props":{"disabled":{"$t":235},"type":"submit","class":"mui-v-btn mui-v-btnPrimary mui-v-OfferLeadBand-submit"},"tag":"button"},{"$v":65}],"tag":"div","props":{"class":"mui-v-OfferLeadBand-submitRow"}}],"on":{"submit":[{"op":"set","path":"$inst.homeOffer[\"_\"].tried","value":true},{"call":"tuneupRequest.create","onSuccess":[{"op":"set","path":"$inst.homeOffer[\"_\"].sent","value":true},{"op":"set","path":"$inst.homeOffer[\"_\"].name","value":""},{"op":"set","path":"$inst.homeOffer[\"_\"].phone","value":""},{"op":"set","path":"$inst.homeOffer[\"_\"].email","value":""},{"op":"set","path":"$inst.homeOffer[\"_\"].equipment","value":""},{"op":"set","path":"$inst.homeOffer[\"_\"].notes","value":""},{"op":"set","path":"$inst.homeOffer[\"_\"].tried","value":false}],"value":{"email":"{{ trim((state.$inst.homeOffer['_'].email ?? state.$default.homeOffer.email)) }}","equipment":"{{ trim((state.$inst.homeOffer['_'].equipment ?? state.$default.homeOffer.equipment)) }}","message":"{{ trim((state.$inst.homeOffer['_'].notes ?? state.$default.homeOffer.notes)) }}","name":"{{ trim((state.$inst.homeOffer['_'].name ?? state.$default.homeOffer.name)) }}","offer":"{{ constants.fallTuneUp.offer }}","phone":"{{ trim((state.$inst.homeOffer['_'].phone ?? state.$default.homeOffer.phone)) }}"},"when":"{{ $7258290e$valid && !fx.tuneupRequest.pending }}"}]},"props":{"aria-labelledby":{"$t":75}},"tag":"form","when":{"$t":41},"$demand":[]},{"children":[{"$v":66},{"$v":67},{"on":{"click":[{"op":"set","path":"$inst.homeOffer[\"_\"].sent","value":false}]},"props":{"type":"button","class":"mui-v-btn mui-v-btnSecondary"},"tag":"button","text":"Send another request","$demand":[]}],"props":{"role":"status"},"tag":"div","when":{"$t":131}}],"tag":"div","props":{"class":"mui-v-OfferLeadBand-card"}},{"$v":68}],"tag":"div","props":{"class":"mui-v-OfferLeadBand-copy"}}],"tag":"div","props":{"class":"mui-v-container mui-v-OfferLeadBand-inner"}}],"props":{"aria-labelledby":{"$t":79},"id":"fall-tune-up","class":"mui-v-OfferLeadBand-band"},"tag":"section","when":{"$t":218}},{"children":[{"children":[{"children":[{"children":[{"props":{"aria-hidden":"true","class":"mui-v-Home-kRule"},"tag":"span"},{"tag":"span","text":"Gerardy Outdoor Power"}],"tag":"p","props":{"class":"mui-v-Home-kicker"}},{"props":{"id":"intro-title","class":"mui-v-Home-h2"},"tag":"h2","text":"Local Expertise. Proven Toro Reliability."},{"children":[{"props":{"alt":"Matt Gerardy, owner of Gerardy Outdoor Power, smiling in a Toro cap","height":"837","loading":"lazy","src":{"$t":380},"width":"1600","class":"mui-v-Home-ownerImg"},"tag":"img"},{"children":[{"tag":"span","text":"Matt Gerardy","props":{"class":"mui-v-Home-ownerName"}},{"tag":"span","text":"Owner · Gerardy Outdoor Power","props":{"class":"mui-v-Home-ownerRole"}}],"tag":"figcaption","props":{"class":"mui-v-Home-ownerCap"}}],"tag":"figure","props":{"class":"mui-v-Home-ownerFig"}}],"tag":"div"},{"children":[{"tag":"p","text":"At Gerardy Outdoor Power, we keep your lawn manicured and your driveways clear through every Iowa season. As an authorized Toro dealer located right here on 1st Avenue in Preston, we provide more than just equipment in a crate. We deliver fully assembled, tested machinery backed by hands-on service, genuine Toro parts, and decades of small-engine expertise.","props":{"class":"mui-v-Home-lede"}},{"tag":"p","text":"Whether you are a homeowner managing an acre or a commercial landscaper needing zero-turn dependability, we have the machinery and service bay to keep your operation running.","props":{"class":"mui-v-Home-body"}}],"tag":"div"}],"tag":"div","props":{"class":"mui-v-container mui-v-Home-introGrid"}}],"props":{"aria-labelledby":"intro-title","class":"mui-v-Home-section"},"tag":"section"},{"children":[{"children":[{"children":[{"children":[{"$v":41},{"tag":"span","text":"Watch"}],"tag":"p","props":{"class":"mui-v-SectionHead-kicker"}},{"props":{"id":"video-title","class":"mui-v-SectionHead-title"},"tag":"h2","text":"Thank You For Your Business Testimonials"},{"$v":69}],"tag":"div","props":{"class":"mui-v-SectionHead-head"}},{"children":[{"tag":"div","use":[{"element":"youtube_video","title":"Video from Gerardy Outdoor Power","video":"https://youtu.be/3_TlVgEdwxQ"}],"props":{"class":"mui-v-Home-video"},"$demand":[]}],"tag":"div","props":{"class":"mui-v-Home-videoFrame"}}],"tag":"div","props":{"class":"mui-v-container"}}],"props":{"aria-labelledby":"video-title","id":"video","class":"mui-v-Home-section"},"tag":"section"},{"children":[{"children":[{"children":[{"children":[{"$v":41},{"tag":"span","text":"What we offer"}],"tag":"p","props":{"class":"mui-v-SectionHead-kicker"}},{"props":{"id":"offerings-title","class":"mui-v-SectionHead-title"},"tag":"h2","text":"Sales, service & repair under one roof"},{"$v":69}],"tag":"div","props":{"class":"mui-v-SectionHead-head"}},{"children":[{"children":[{"children":[{"children":[{"tag":"svg","props":{"xmlns":"http://www.w3.org/2000/svg","width":"18","height":"18","viewBox":"0 0 24 24","fill":"none","stroke":"currentColor","stroke-width":"2","stroke-linecap":"round","stroke-linejoin":"round","aria-hidden":"true","focusable":"false","class":"mui-v-iconLg"},"children":[{"$v":70},{"$v":71},{"$v":72}]}],"props":{"aria-hidden":"true","class":"mui-v-OfferingCard-glyph"},"tag":"span"},{"tag":"span","text":"Residential & Commercial","props":{"class":"mui-v-OfferingCard-tag"}}],"tag":"div","props":{"class":"mui-v-OfferingCard-top"}},{"tag":"h3","text":"Lawn Mowers","props":{"class":"mui-v-OfferingCard-title"}},{"tag":"p","text":"Walk-behind mowers, TimeCutter® zero-turns, and rugged commercial-grade Toro mowers engineered for speed, clean cutting, and durability.","props":{"class":"mui-v-OfferingCard-summary"}},{"children":[{"tag":"span","text":"View Lawn Mowers"},{"$v":14}],"tag":"a","props":{"href":"/inventory?category=residentialLawn#in-stock","class":"mui-v-OfferingCard-link"},"on":{"click":[{"call":"navigate","to":"/inventory?category=residentialLawn#in-stock"}]},"$demand":[]}],"tag":"article","props":{"class":"mui-v-OfferingCard-card"}},{"children":[{"children":[{"children":[{"$v":73}],"props":{"aria-hidden":"true","class":"mui-v-OfferingCard-glyph"},"tag":"span"},{"tag":"span","text":"Single- & Two-Stage","props":{"class":"mui-v-OfferingCard-tag"}}],"tag":"div","props":{"class":"mui-v-OfferingCard-top"}},{"tag":"h3","text":"Snow Blowers","props":{"class":"mui-v-OfferingCard-title"}},{"tag":"p","text":"Toro Power Clear® and Power Max® snow blowers built to cut through heavy Eastern Iowa drifts, packed wet snow, and deep end-of-driveway berms.","props":{"class":"mui-v-OfferingCard-summary"}},{"children":[{"$v":27},{"$v":14}],"tag":"a","props":{"href":"/inventory?category=snowblowers#in-stock","class":"mui-v-OfferingCard-link"},"on":{"click":[{"call":"navigate","to":"/inventory?category=snowblowers#in-stock"}]},"$demand":[]}],"tag":"article","props":{"class":"mui-v-OfferingCard-card"}},{"children":[{"children":[{"children":[{"$v":86}],"props":{"aria-hidden":"true","class":"mui-v-OfferingCard-glyph"},"tag":"span"},{"tag":"span","text":"Service & Repair","props":{"class":"mui-v-OfferingCard-tag"}}],"tag":"div","props":{"class":"mui-v-OfferingCard-top"}},{"tag":"h3","text":"Small Engine Service","props":{"class":"mui-v-OfferingCard-title"}},{"tag":"p","text":"Certified diagnostics, seasonal tune-ups, blade sharpening, carburetor rebuilds, and warranty repairs done by experienced technicians.","props":{"class":"mui-v-OfferingCard-summary"}},{"children":[{"$v":28},{"$v":14}],"tag":"a","props":{"href":"/service","class":"mui-v-OfferingCard-link"},"on":{"click":[{"call":"navigate","to":"/service"}]},"$demand":[]}],"tag":"article","props":{"class":"mui-v-OfferingCard-card"}}],"tag":"div","props":{"class":"mui-v-Home-grid3"}}],"tag":"div","props":{"class":"mui-v-container"}}],"props":{"aria-labelledby":"offerings-title","id":"offerings","class":"mui-v-Home-section mui-v-Home-sunken"},"tag":"section"},{"children":[{"children":[{"$v":88},{"children":[{"$v":89},{"$v":90},{"$v":91},{"$v":92},{"$v":51},{"children":[{"children":[{"$v":93},{"$v":94},{"children":[{"children":[{"$v":95},{"on":{"input":[{"op":"set","path":"$inst.homeSnowSale[\"_\"].name","value":"{{ event.value }}"}]},"props":{"autocomplete":"name","id":{"$t":69},"name":"name","required":true,"type":"text","value":{"$t":137},"class":"mui-v-OfferLeadBand-input","style":"--mui-v-OfferLeadBand-input-min-h: 2.75rem"},"tag":"input","$demand":[]}],"tag":"div","props":{"class":"mui-v-OfferLeadBand-field"}},{"children":[{"$v":96},{"on":{"input":[{"op":"set","path":"$inst.homeSnowSale[\"_\"].phone","value":"{{ event.value }}"}]},"props":{"autocomplete":"tel","id":{"$t":71},"inputmode":"tel","name":"phone","required":true,"type":"tel","value":{"$t":139},"class":"mui-v-OfferLeadBand-input","style":"--mui-v-OfferLeadBand-input-min-h: 2.75rem"},"tag":"input","$demand":[]}],"tag":"div","props":{"class":"mui-v-OfferLeadBand-field"}},{"children":[{"$v":97},{"on":{"input":[{"op":"set","path":"$inst.homeSnowSale[\"_\"].email","value":"{{ event.value }}"}]},"props":{"autocomplete":"email","id":{"$t":66},"name":"email","type":"email","value":{"$t":135},"class":"mui-v-OfferLeadBand-input","style":"--mui-v-OfferLeadBand-input-min-h: 2.75rem"},"tag":"input","$demand":[]},{"$v":58}],"tag":"div","props":{"class":"mui-v-OfferLeadBand-field"}},{"children":[{"$v":98},{"on":{"input":[{"op":"set","path":"$inst.homeSnowSale[\"_\"].equipment","value":"{{ event.value }}"}]},"props":{"id":{"$t":67},"name":"equipment","type":"text","value":{"$t":136},"class":"mui-v-OfferLeadBand-input","style":"--mui-v-OfferLeadBand-input-min-h: 2.75rem"},"tag":"input","$demand":[]}],"tag":"div","props":{"class":"mui-v-OfferLeadBand-field"}},{"children":[{"$v":99},{"on":{"input":[{"op":"set","path":"$inst.homeSnowSale[\"_\"].notes","value":"{{ event.value }}"}]},"props":{"id":{"$t":70},"name":"message","rows":"3","value":{"$t":138},"class":"mui-v-OfferLeadBand-input","style":"--mui-v-OfferLeadBand-input-min-h: 6rem"},"tag":"textarea","$demand":[]}],"tag":"div","props":{"class":"mui-v-OfferLeadBand-field mui-v-OfferLeadBand-wide"}}],"tag":"div","props":{"class":"mui-v-OfferLeadBand-fields"}},{"props":{"role":"alert","class":"mui-v-OfferLeadBand-alert"},"tag":"p","text":"Please add your name and a phone number so we can call you.","when":{"$t":141}},{"props":{"role":"alert","class":"mui-v-OfferLeadBand-alert"},"tag":"p","text":{"$t":18},"when":{"$t":143}},{"children":[{"children":[{"$v":64},{"tag":"span","text":{"$t":142}}],"props":{"disabled":{"$t":235},"type":"submit","class":"mui-v-btn mui-v-btnPrimary mui-v-OfferLeadBand-submit"},"tag":"button"},{"$v":65}],"tag":"div","props":{"class":"mui-v-OfferLeadBand-submitRow"}}],"on":{"submit":[{"op":"set","path":"$inst.homeSnowSale[\"_\"].tried","value":true},{"call":"tuneupRequest.create","onSuccess":[{"op":"set","path":"$inst.homeSnowSale[\"_\"].sent","value":true},{"op":"set","path":"$inst.homeSnowSale[\"_\"].name","value":""},{"op":"set","path":"$inst.homeSnowSale[\"_\"].phone","value":""},{"op":"set","path":"$inst.homeSnowSale[\"_\"].email","value":""},{"op":"set","path":"$inst.homeSnowSale[\"_\"].equipment","value":""},{"op":"set","path":"$inst.homeSnowSale[\"_\"].notes","value":""},{"op":"set","path":"$inst.homeSnowSale[\"_\"].tried","value":false}],"value":{"email":"{{ trim((state.$inst.homeSnowSale['_'].email ?? state.$default.homeSnowSale.email)) }}","equipment":"{{ trim((state.$inst.homeSnowSale['_'].equipment ?? state.$default.homeSnowSale.equipment)) }}","message":"{{ trim((state.$inst.homeSnowSale['_'].notes ?? state.$default.homeSnowSale.notes)) }}","name":"{{ trim((state.$inst.homeSnowSale['_'].name ?? state.$default.homeSnowSale.name)) }}","offer":"{{ constants.snowSale.offer }}","phone":"{{ trim((state.$inst.homeSnowSale['_'].phone ?? state.$default.homeSnowSale.phone)) }}"},"when":"{{ $42268c8c$valid && !fx.tuneupRequest.pending }}"}]},"props":{"aria-labelledby":{"$t":68}},"tag":"form","when":{"$t":42},"$demand":[]},{"children":[{"$v":66},{"$v":100},{"on":{"click":[{"op":"set","path":"$inst.homeSnowSale[\"_\"].sent","value":false}]},"props":{"type":"button","class":"mui-v-btn mui-v-btnSecondary"},"tag":"button","text":"Send another request","$demand":[]}],"props":{"role":"status"},"tag":"div","when":{"$t":140}}],"tag":"div","props":{"class":"mui-v-OfferLeadBand-card"}},{"$v":101}],"tag":"div","props":{"class":"mui-v-OfferLeadBand-copy"}}],"tag":"div","props":{"class":"mui-v-container mui-v-OfferLeadBand-inner"}}],"props":{"aria-labelledby":{"$t":72},"id":"snow-sale","class":"mui-v-OfferLeadBand-band"},"tag":"section","when":{"$t":337}},{"children":[{"children":[{"children":[{"children":[{"$v":41},{"tag":"span","text":"Why choose Gerardy Outdoor Power?"}],"tag":"p","props":{"class":"mui-v-SectionHead-kicker"}},{"props":{"id":"advantage-title","class":"mui-v-SectionHead-title"},"tag":"h2","text":"The Gerardy Outdoor Power Advantage"},{"$v":69}],"tag":"div","props":{"class":"mui-v-SectionHead-head"}},{"children":[{"children":[{"$v":102},{"children":[{"tag":"h3","text":"100% Professionally Assembled, Calibrated & Tuned","props":{"class":"mui-v-IconFeature-title"}},{"tag":"p","text":"No boxes, no setup headaches. Inspected and ready to work the moment it leaves our shop.","props":{"class":"mui-v-IconFeature-body"}}],"tag":"div"}],"tag":"li","props":{"class":"mui-v-IconFeature-item"}},{"children":[{"$v":103},{"children":[{"tag":"h3","text":"Instant Toro Warranty","props":{"class":"mui-v-IconFeature-title"}},{"tag":"p","text":"We handle the paperwork and register your machine on day one.","props":{"class":"mui-v-IconFeature-body"}}],"tag":"div"}],"tag":"li","props":{"class":"mui-v-IconFeature-item"}},{"children":[{"$v":105},{"children":[{"tag":"h3","text":"Lifetime Local Support","props":{"class":"mui-v-IconFeature-title"}},{"tag":"p","text":"From routine maintenance to genuine Toro parts, our factory-trained techs have you covered.","props":{"class":"mui-v-IconFeature-body"}}],"tag":"div"}],"tag":"li","props":{"class":"mui-v-IconFeature-item"}},{"children":[{"children":[{"tag":"svg","props":{"xmlns":"http://www.w3.org/2000/svg","width":"18","height":"18","viewBox":"0 0 24 24","fill":"none","stroke":"currentColor","stroke-width":"2","stroke-linecap":"round","stroke-linejoin":"round","aria-hidden":"true","focusable":"false","class":"mui-v-iconLg"},"children":[{"$v":18},{"$v":19}]}],"props":{"aria-hidden":"true","class":"mui-v-IconFeature-glyph"},"tag":"span"},{"children":[{"tag":"h3","text":"Rooted in Jackson County","props":{"class":"mui-v-IconFeature-title"}},{"tag":"p","text":"Locally owned and operated, providing direct, no-nonsense customer service to Preston and surrounding communities.","props":{"class":"mui-v-IconFeature-body"}}],"tag":"div"}],"tag":"li","props":{"class":"mui-v-IconFeature-item"}}],"tag":"ul","props":{"class":"mui-v-Home-grid2"}}],"tag":"div","props":{"class":"mui-v-container"}}],"props":{"aria-labelledby":"advantage-title","class":"mui-v-Home-section"},"tag":"section"},{"children":[{"children":[{"children":[{"children":[{"$v":41},{"tag":"span","text":"Visit us"}],"tag":"p","props":{"class":"mui-v-SectionHead-kicker"}},{"props":{"id":"visit-title","class":"mui-v-SectionHead-title"},"tag":"h2","text":"Stop by the Shop or Give Us a Call"},{"$v":69}],"tag":"div","props":{"class":"mui-v-SectionHead-head"}},{"$v":106}],"tag":"div","props":{"class":"mui-v-container"}}],"props":{"aria-labelledby":"visit-title","class":"mui-v-Home-section mui-v-Home-sunken"},"tag":"section"},{"children":[{"$v":116}],"props":{"aria-labelledby":"reviews-title","class":{"$t":22}},"tag":"section"}],"tag":"div","when":{"$t":325}},{"children":[{"children":[{"children":[{"children":[{"$v":118},{"tag":"p","text":"Accessibility · Gerardy Outdoor Power","props":{"class":"mui-v-PageHero-eyebrow"}},{"tag":"h1","text":"Accessibility Statement","props":{"class":"mui-v-PageHero-title"}},{"tag":"p","text":"We want everyone in Preston and the surrounding communities to be able to use this website: to find equipment, learn about service and parts, and reach the shop.","props":{"class":"mui-v-PageHero-lead"}}],"tag":"div","props":{"class":"mui-v-PageHero-copy"}},{"children":[{"props":{"alt":"","height":"1024","loading":"eager","src":{"$t":367},"width":"1536","class":"mui-v-PageHero-img"},"tag":"img"}],"tag":"figure","when":{"$t":52},"props":{"class":"mui-v-PageHero-frame"}}],"tag":"div","props":{"class":"mui-v-container mui-v-PageHero-inner mui-m-heroIn"}}],"tag":"header","props":{"class":"mui-v-PageHero-band"}},{"children":[{"children":[{"children":[{"children":[{"$v":41},{"tag":"span","text":"Our commitment"}],"tag":"p","props":{"class":"mui-v-SectionHead-kicker"}},{"props":{"id":"a11y-commit-title","class":"mui-v-SectionHead-title"},"tag":"h2","text":"Working toward WCAG 2.1 AA"},{"tag":"p","text":"We aim to meet the Web Content Accessibility Guidelines (WCAG) 2.1 Level AA, the widely used standard for accessible websites. Accessibility is ongoing work, and we review the site as we add new pages, photos and offers.","when":{"$t":56},"props":{"class":"mui-v-SectionHead-lead"}}],"tag":"div","props":{"class":"mui-v-SectionHead-head"}},{"children":[{"children":[{"children":[{"tag":"svg","props":{"xmlns":"http://www.w3.org/2000/svg","width":"18","height":"18","viewBox":"0 0 24 24","fill":"none","stroke":"currentColor","stroke-width":"2","stroke-linecap":"round","stroke-linejoin":"round","aria-hidden":"true","focusable":"false","class":"mui-v-iconLg"},"children":[{"tag":"path","props":{"d":"M13 5h8"}},{"tag":"path","props":{"d":"M13 12h8"}},{"tag":"path","props":{"d":"M13 19h8"}},{"tag":"path","props":{"d":"m3 17 2 2 4-4"}},{"tag":"path","props":{"d":"m3 7 2 2 4-4"}}]}],"props":{"aria-hidden":"true","class":"mui-v-IconFeature-glyph"},"tag":"span"},{"children":[{"tag":"h3","text":"Keyboard navigation","props":{"class":"mui-v-IconFeature-title"}},{"tag":"p","text":"A skip link, a keyboard-friendly menu and a visible outline on whatever is selected.","props":{"class":"mui-v-IconFeature-body"}}],"tag":"div"}],"tag":"li","props":{"class":"mui-v-IconFeature-item"}},{"children":[{"children":[{"tag":"svg","props":{"xmlns":"http://www.w3.org/2000/svg","width":"18","height":"18","viewBox":"0 0 24 24","fill":"none","stroke":"currentColor","stroke-width":"2","stroke-linecap":"round","stroke-linejoin":"round","aria-hidden":"true","focusable":"false","class":"mui-v-iconLg"},"children":[{"tag":"rect","props":{"width":"18","height":"18","x":"3","y":"3","rx":"2","ry":"2"}},{"tag":"circle","props":{"cx":"9","cy":"9","r":"2"}},{"tag":"path","props":{"d":"m21 15-3.086-3.086a2 2 0 0 0-2.828 0L6 21"}}]}],"props":{"aria-hidden":"true","class":"mui-v-IconFeature-glyph"},"tag":"span"},{"children":[{"tag":"h3","text":"Described images","props":{"class":"mui-v-IconFeature-title"}},{"tag":"p","text":"Photos and logos have text descriptions, and sale flyers include their full offer wording.","props":{"class":"mui-v-IconFeature-body"}}],"tag":"div"}],"tag":"li","props":{"class":"mui-v-IconFeature-item"}},{"children":[{"children":[{"tag":"svg","props":{"xmlns":"http://www.w3.org/2000/svg","width":"18","height":"18","viewBox":"0 0 24 24","fill":"none","stroke":"currentColor","stroke-width":"2","stroke-linecap":"round","stroke-linejoin":"round","aria-hidden":"true","focusable":"false","class":"mui-v-iconLg"},"children":[{"$v":119},{"$v":120},{"$v":121},{"$v":122},{"$v":123}]}],"props":{"aria-hidden":"true","class":"mui-v-IconFeature-glyph"},"tag":"span"},{"children":[{"tag":"h3","text":"Labeled forms","props":{"class":"mui-v-IconFeature-title"}},{"tag":"p","text":"Every form field has a label, and errors are announced to screen readers.","props":{"class":"mui-v-IconFeature-body"}}],"tag":"div"}],"tag":"li","props":{"class":"mui-v-IconFeature-item"}},{"children":[{"children":[{"tag":"svg","props":{"xmlns":"http://www.w3.org/2000/svg","width":"18","height":"18","viewBox":"0 0 24 24","fill":"none","stroke":"currentColor","stroke-width":"2","stroke-linecap":"round","stroke-linejoin":"round","aria-hidden":"true","focusable":"false","class":"mui-v-iconLg"},"children":[{"$v":30},{"$v":31}]}],"props":{"aria-hidden":"true","class":"mui-v-IconFeature-glyph"},"tag":"span"},{"children":[{"tag":"h3","text":"Motion you control","props":{"class":"mui-v-IconFeature-title"}},{"tag":"p","text":"Rotating banners can be paused, and they stop rotating when your device is set to reduce motion.","props":{"class":"mui-v-IconFeature-body"}}],"tag":"div"}],"tag":"li","props":{"class":"mui-v-IconFeature-item"}},{"children":[{"children":[{"tag":"svg","props":{"xmlns":"http://www.w3.org/2000/svg","width":"18","height":"18","viewBox":"0 0 24 24","fill":"none","stroke":"currentColor","stroke-width":"2","stroke-linecap":"round","stroke-linejoin":"round","aria-hidden":"true","focusable":"false","class":"mui-v-iconLg"},"children":[{"tag":"path","props":{"d":"M2.062 12.348a1 1 0 0 1 0-.696 10.75 10.75 0 0 1 19.876 0 1 1 0 0 1 0 .696 10.75 10.75 0 0 1-19.876 0"}},{"tag":"circle","props":{"cx":"12","cy":"12","r":"3"}}]}],"props":{"aria-hidden":"true","class":"mui-v-IconFeature-glyph"},"tag":"span"},{"children":[{"tag":"h3","text":"Readable contrast","props":{"class":"mui-v-IconFeature-title"}},{"tag":"p","text":"Text and buttons are designed for strong contrast in light and dark mode.","props":{"class":"mui-v-IconFeature-body"}}],"tag":"div"}],"tag":"li","props":{"class":"mui-v-IconFeature-item"}},{"children":[{"children":[{"tag":"svg","props":{"xmlns":"http://www.w3.org/2000/svg","width":"18","height":"18","viewBox":"0 0 24 24","fill":"none","stroke":"currentColor","stroke-width":"2","stroke-linecap":"round","stroke-linejoin":"round","aria-hidden":"true","focusable":"false","class":"mui-v-iconLg"},"children":[{"tag":"rect","props":{"width":"14","height":"20","x":"5","y":"2","rx":"2","ry":"2"}},{"tag":"path","props":{"d":"M12 18h.01"}}]}],"props":{"aria-hidden":"true","class":"mui-v-IconFeature-glyph"},"tag":"span"},{"children":[{"tag":"h3","text":"Works when zoomed","props":{"class":"mui-v-IconFeature-title"}},{"tag":"p","text":"Pages reflow on phones and with browser zoom so content isn’t cut off.","props":{"class":"mui-v-IconFeature-body"}}],"tag":"div"}],"tag":"li","props":{"class":"mui-v-IconFeature-item"}}],"tag":"ul","props":{"class":"mui-v-AccessibilityPage-grid"}}],"tag":"div","props":{"class":"mui-v-container"}}],"props":{"aria-labelledby":"a11y-commit-title","class":"mui-v-AccessibilityPage-section"},"tag":"section"},{"children":[{"children":[{"children":[{"children":[{"$v":41},{"tag":"span","text":"Known limitations"}],"tag":"p","props":{"class":"mui-v-SectionHead-kicker"}},{"props":{"id":"a11y-limits-title","class":"mui-v-SectionHead-title"},"tag":"h2","text":"Content from other services"},{"$v":69}],"tag":"div","props":{"class":"mui-v-SectionHead-head"}},{"tag":"p","text":"Some content and links come from other companies, such as Google reviews, Google Maps directions and Facebook. We can’t fully control how accessible those services are. If something there is hard to use, call us and we’ll help you directly.","props":{"class":"mui-v-AccessibilityPage-body"}}],"tag":"div","props":{"class":"mui-v-container"}}],"props":{"aria-labelledby":"a11y-limits-title","class":"mui-v-AccessibilityPage-section mui-v-AccessibilityPage-sunken"},"tag":"section"},{"children":[{"children":[{"children":[{"tag":"h2","text":"Trouble using this site?","props":{"class":"mui-v-CallBand-title"}},{"tag":"p","text":"If any part of this website is hard to use, or you need information in another format, call the shop during business hours or stop by 103 1st Ave in Preston. We’ll get you what you need and work to fix the problem.","props":{"class":"mui-v-CallBand-body"}}],"tag":"div"},{"$v":124}],"tag":"div","props":{"class":"mui-v-container mui-v-CallBand-inner"}}],"props":{"aria-label":"Trouble using this site?","class":"mui-v-CallBand-band"},"tag":"section"}],"tag":"div","when":{"$t":321}},{"children":[{"children":[{"children":[{"children":[{"$v":118},{"tag":"p","text":"Contact & Location","props":{"class":"mui-v-PageHero-eyebrow"}},{"tag":"h1","text":"Visit Gerardy Outdoor Power","props":{"class":"mui-v-PageHero-title"}},{"tag":"p","text":"Stop by the shop on 1st Avenue in downtown Preston or give us a call. We serve Preston and the surrounding Jackson County communities.","props":{"class":"mui-v-PageHero-lead"}}],"tag":"div","props":{"class":"mui-v-PageHero-copy"}},{"children":[{"props":{"alt":"Man mowing a green lawn on a Toro TimeCutter zero-turn mower beside a split-rail fence and evergreen trees","height":"1024","loading":"eager","src":{"$t":372},"width":"1536","class":"mui-v-PageHero-img"},"tag":"img"}],"tag":"figure","when":{"$t":63},"props":{"class":"mui-v-PageHero-frame"}}],"tag":"div","props":{"class":"mui-v-container mui-v-PageHero-inner mui-m-heroIn"}}],"tag":"header","props":{"class":"mui-v-PageHero-band"}},{"children":[{"$v":32},{"children":[{"$v":33},{"children":[{"$v":39},{"tag":"p","text":"Can’t make it to 1st Ave? Call and we’ll arrange pick-up and delivery.","props":{"class":"mui-v-AnnouncementBand-body"}}],"tag":"div"},{"$v":40}],"tag":"div","props":{"class":"mui-v-container mui-v-AnnouncementBand-inner"}},{"$v":32}],"props":{"aria-label":"We provide Pick‑up and Delivery","class":"mui-v-AnnouncementBand-band"},"tag":"section"},{"children":[{"children":[{"$v":106},{"children":[{"props":{"aria-label":"Map showing Gerardy Outdoor Power at 103 1st Ave, Preston, Iowa","class":"mui-v-StoreMap-map"},"tag":"div","use":[{"center":{"lat":42.055115,"lng":-90.405594},"element":"google_maps","markers":[{"id":"shop","info":"Gerardy Outdoor Power · 103 1st Ave, Preston, IA 52069","position":{"lat":42.055115,"lng":-90.405594},"title":"Gerardy Outdoor Power"}],"onError":{"op":"set","path":"$inst.contactMap[\"_\"].failed","value":true},"options":{"fullscreenControl":true,"gestureHandling":"cooperative","mapTypeControl":false,"streetViewControl":false},"zoom":16}],"when":{"$t":37},"$demand":[]},{"children":[{"tag":"svg","props":{"xmlns":"http://www.w3.org/2000/svg","width":"18","height":"18","viewBox":"0 0 24 24","fill":"none","stroke":"currentColor","stroke-width":"2","stroke-linecap":"round","stroke-linejoin":"round","aria-hidden":"true","focusable":"false","class":"mui-v-iconLg mui-v-StoreMap-pin"},"children":[{"tag":"path","props":{"d":"M18 8c0 3.613-3.869 7.429-5.393 8.795a1 1 0 0 1-1.214 0C9.87 15.429 6 11.613 6 8a6 6 0 0 1 12 0"}},{"tag":"circle","props":{"cx":"12","cy":"8","r":"2"}},{"tag":"path","props":{"d":"M8.714 14h-3.71a1 1 0 0 0-.948.683l-2.004 6A1 1 0 0 0 3 22h18a1 1 0 0 0 .948-1.316l-2-6a1 1 0 0 0-.949-.684h-3.712"}}]},{"tag":"p","text":"The map couldn’t load right now. You’ll find us at 103 1st Ave in downtown Preston.","props":{"class":"mui-v-StoreMap-fallbackText"}}],"props":{"role":"status","class":"mui-v-StoreMap-fallback"},"tag":"div","when":{"$t":102}},{"children":[{"children":[{"tag":"svg","props":{"xmlns":"http://www.w3.org/2000/svg","width":"18","height":"18","viewBox":"0 0 24 24","fill":"none","stroke":"currentColor","stroke-width":"2","stroke-linecap":"round","stroke-linejoin":"round","aria-hidden":"true","focusable":"false","class":"mui-v-iconSm mui-v-StoreMap-pin"},"children":[{"$v":18},{"$v":19}]},{"tag":"span","text":"Gerardy Outdoor Power · 103 1st Ave, Preston, IA 52069"}],"tag":"span","props":{"class":"mui-v-StoreMap-capText"}},{"children":[{"tag":"span","text":"Open in Google Maps"},{"$v":108},{"$v":126}],"props":{"rel":"noopener noreferrer","target":"_blank","href":"https://www.google.com/maps/search/?api=1&query=Gerardy+Outdoor+Power+103+1st+Ave+Preston+IA+52069","class":"mui-v-StoreMap-link"},"tag":"a"}],"tag":"figcaption","props":{"class":"mui-v-StoreMap-cap"}}],"tag":"figure","props":{"class":"mui-v-StoreMap-frame"}},{"children":[{"$v":8},{"$v":127},{"children":[{"$v":125},{"$v":107},{"$v":109}],"props":{"rel":"noopener noreferrer","target":"_blank","href":"https://www.google.com/maps/dir/?api=1&destination=103+1st+Ave+Preston+IA+52069","class":"mui-v-btn mui-v-btnSecondary"},"tag":"a"}],"tag":"div","props":{"class":"mui-v-ContactPage-actions"}}],"tag":"div","props":{"class":"mui-v-container"}}],"props":{"aria-label":"Shop details","class":"mui-v-ContactPage-section"},"tag":"section"},{"children":[{"$v":116}],"props":{"aria-labelledby":"reviews-title","class":{"$t":23}},"tag":"section"}],"tag":"div","when":{"$t":322}},{"children":[{"children":[{"children":[{"children":[{"$v":118},{"tag":"p","text":"Equipment Sales · Authorized Toro Dealer","props":{"class":"mui-v-PageHero-eyebrow"}},{"tag":"h1","text":"Toro Lawn Mowers & Snow Blowers in Preston, Iowa","props":{"class":"mui-v-PageHero-title"}},{"tag":"p","text":"Investing in commercial or residential power equipment requires the right match for your property and terrain. At Gerardy Outdoor Power, we guide you to the exact Toro machine built for your workload.","props":{"class":"mui-v-PageHero-lead"}}],"tag":"div","props":{"class":"mui-v-PageHero-copy"}},{"children":[{"props":{"alt":"A lineup of red and black Toro zero-turn mowers on a lawn","height":"1024","loading":"eager","src":{"$t":371},"width":"1536","class":"mui-v-PageHero-img"},"tag":"img"}],"tag":"figure","when":{"$t":62},"props":{"class":"mui-v-PageHero-frame"}}],"tag":"div","props":{"class":"mui-v-container mui-v-PageHero-inner mui-m-heroIn"}}],"tag":"header","props":{"class":"mui-v-PageHero-band"}},{"children":[{"$v":32},{"children":[{"$v":33},{"children":[{"$v":39},{"tag":"p","text":"Your new Toro arrives set up, tested and ready to run. Call to arrange delivery.","props":{"class":"mui-v-AnnouncementBand-body"}}],"tag":"div"},{"$v":40}],"tag":"div","props":{"class":"mui-v-container mui-v-AnnouncementBand-inner"}},{"$v":32}],"props":{"aria-label":"We provide Pick‑up and Delivery","class":"mui-v-AnnouncementBand-band"},"tag":"section"},{"children":[{"children":[{"$v":88},{"children":[{"$v":89},{"$v":90},{"$v":91},{"$v":92},{"$v":51},{"children":[{"children":[{"$v":93},{"$v":94},{"children":[{"children":[{"$v":95},{"on":{"input":[{"op":"set","path":"$inst.equipmentSnowSale[\"_\"].name","value":"{{ event.value }}"}]},"props":{"autocomplete":"name","id":{"$t":69},"name":"name","required":true,"type":"text","value":{"$t":105},"class":"mui-v-OfferLeadBand-input","style":"--mui-v-OfferLeadBand-input-min-h: 2.75rem"},"tag":"input","$demand":[]}],"tag":"div","props":{"class":"mui-v-OfferLeadBand-field"}},{"children":[{"$v":96},{"on":{"input":[{"op":"set","path":"$inst.equipmentSnowSale[\"_\"].phone","value":"{{ event.value }}"}]},"props":{"autocomplete":"tel","id":{"$t":71},"inputmode":"tel","name":"phone","required":true,"type":"tel","value":{"$t":107},"class":"mui-v-OfferLeadBand-input","style":"--mui-v-OfferLeadBand-input-min-h: 2.75rem"},"tag":"input","$demand":[]}],"tag":"div","props":{"class":"mui-v-OfferLeadBand-field"}},{"children":[{"$v":97},{"on":{"input":[{"op":"set","path":"$inst.equipmentSnowSale[\"_\"].email","value":"{{ event.value }}"}]},"props":{"autocomplete":"email","id":{"$t":66},"name":"email","type":"email","value":{"$t":103},"class":"mui-v-OfferLeadBand-input","style":"--mui-v-OfferLeadBand-input-min-h: 2.75rem"},"tag":"input","$demand":[]},{"$v":58}],"tag":"div","props":{"class":"mui-v-OfferLeadBand-field"}},{"children":[{"$v":98},{"on":{"input":[{"op":"set","path":"$inst.equipmentSnowSale[\"_\"].equipment","value":"{{ event.value }}"}]},"props":{"id":{"$t":67},"name":"equipment","type":"text","value":{"$t":104},"class":"mui-v-OfferLeadBand-input","style":"--mui-v-OfferLeadBand-input-min-h: 2.75rem"},"tag":"input","$demand":[]}],"tag":"div","props":{"class":"mui-v-OfferLeadBand-field"}},{"children":[{"$v":99},{"on":{"input":[{"op":"set","path":"$inst.equipmentSnowSale[\"_\"].notes","value":"{{ event.value }}"}]},"props":{"id":{"$t":70},"name":"message","rows":"3","value":{"$t":106},"class":"mui-v-OfferLeadBand-input","style":"--mui-v-OfferLeadBand-input-min-h: 6rem"},"tag":"textarea","$demand":[]}],"tag":"div","props":{"class":"mui-v-OfferLeadBand-field mui-v-OfferLeadBand-wide"}}],"tag":"div","props":{"class":"mui-v-OfferLeadBand-fields"}},{"props":{"role":"alert","class":"mui-v-OfferLeadBand-alert"},"tag":"p","text":"Please add your name and a phone number so we can call you.","when":{"$t":109}},{"props":{"role":"alert","class":"mui-v-OfferLeadBand-alert"},"tag":"p","text":{"$t":18},"when":{"$t":111}},{"children":[{"children":[{"$v":64},{"tag":"span","text":{"$t":110}}],"props":{"disabled":{"$t":235},"type":"submit","class":"mui-v-btn mui-v-btnPrimary mui-v-OfferLeadBand-submit"},"tag":"button"},{"$v":65}],"tag":"div","props":{"class":"mui-v-OfferLeadBand-submitRow"}}],"on":{"submit":[{"op":"set","path":"$inst.equipmentSnowSale[\"_\"].tried","value":true},{"call":"tuneupRequest.create","onSuccess":[{"op":"set","path":"$inst.equipmentSnowSale[\"_\"].sent","value":true},{"op":"set","path":"$inst.equipmentSnowSale[\"_\"].name","value":""},{"op":"set","path":"$inst.equipmentSnowSale[\"_\"].phone","value":""},{"op":"set","path":"$inst.equipmentSnowSale[\"_\"].email","value":""},{"op":"set","path":"$inst.equipmentSnowSale[\"_\"].equipment","value":""},{"op":"set","path":"$inst.equipmentSnowSale[\"_\"].notes","value":""},{"op":"set","path":"$inst.equipmentSnowSale[\"_\"].tried","value":false}],"value":{"email":"{{ trim((state.$inst.equipmentSnowSale['_'].email ?? state.$default.equipmentSnowSale.email)) }}","equipment":"{{ trim((state.$inst.equipmentSnowSale['_'].equipment ?? state.$default.equipmentSnowSale.equipment)) }}","message":"{{ trim((state.$inst.equipmentSnowSale['_'].notes ?? state.$default.equipmentSnowSale.notes)) }}","name":"{{ trim((state.$inst.equipmentSnowSale['_'].name ?? state.$default.equipmentSnowSale.name)) }}","offer":"{{ constants.snowSale.offer }}","phone":"{{ trim((state.$inst.equipmentSnowSale['_'].phone ?? state.$default.equipmentSnowSale.phone)) }}"},"when":"{{ $51381f10$valid && !fx.tuneupRequest.pending }}"}]},"props":{"aria-labelledby":{"$t":68}},"tag":"form","when":{"$t":38},"$demand":[]},{"children":[{"$v":66},{"$v":100},{"on":{"click":[{"op":"set","path":"$inst.equipmentSnowSale[\"_\"].sent","value":false}]},"props":{"type":"button","class":"mui-v-btn mui-v-btnSecondary"},"tag":"button","text":"Send another request","$demand":[]}],"props":{"role":"status"},"tag":"div","when":{"$t":108}}],"tag":"div","props":{"class":"mui-v-OfferLeadBand-card"}},{"$v":101}],"tag":"div","props":{"class":"mui-v-OfferLeadBand-copy"}}],"tag":"div","props":{"class":"mui-v-container mui-v-OfferLeadBand-inner"}}],"props":{"aria-labelledby":{"$t":72},"id":"snow-sale","class":"mui-v-OfferLeadBand-band"},"tag":"section","when":{"$t":337}},{"children":[{"children":[{"children":[{"children":[{"$v":41},{"tag":"span","text":"Toro lawn mowers"}],"tag":"p","props":{"class":"mui-v-SectionHead-kicker"}},{"props":{"id":"mowers-title","class":"mui-v-SectionHead-title"},"tag":"h2","text":"Residential & Commercial Mowers Built to Last"},{"$v":69}],"tag":"div","props":{"class":"mui-v-SectionHead-head"}},{"children":[{"children":[{"children":[{"props":{"alt":{"$t":296},"height":"1024","loading":"lazy","src":{"$t":384},"width":"1536","class":"mui-v-ProductLineCard-img","style":{"$t":1}},"tag":"img"}],"tag":"div","when":{"$t":295},"props":{"class":"mui-v-ProductLineCard-media"}},{"$v":128},{"$v":129},{"$v":130}],"tag":"article","repeat":{"as":"line","items":{"$t":181},"key":"id"},"props":{"class":"mui-v-ProductLineCard-card"}}],"tag":"div","props":{"class":"mui-v-EquipmentPage-grid3"}},{"children":[{"tag":"svg","props":{"xmlns":"http://www.w3.org/2000/svg","width":"18","height":"18","viewBox":"0 0 24 24","fill":"none","stroke":"currentColor","stroke-width":"2","stroke-linecap":"round","stroke-linejoin":"round","aria-hidden":"true","focusable":"false","class":"mui-v-iconLg mui-v-EquipmentPage-noteIcon"},"children":[{"$v":87}]},{"children":[{"tag":"h3","text":"The Gerardy Outdoor Power Advantage","props":{"class":"mui-v-EquipmentPage-noteTitle"}},{"children":[{"children":[{"tag":"strong","text":"100% Professionally Assembled, Calibrated & Tuned:","props":{"class":"mui-v-EquipmentPage-noteLead"}}," No boxes, no setup headaches. Inspected and ready to work the moment it leaves our shop."],"tag":"li","props":{"class":"mui-v-EquipmentPage-notePoint"}},{"children":[{"tag":"strong","text":"Instant Toro Warranty:","props":{"class":"mui-v-EquipmentPage-noteLead"}}," We handle the paperwork and register your machine on day one."],"tag":"li","props":{"class":"mui-v-EquipmentPage-notePoint"}},{"children":[{"tag":"strong","text":"Lifetime Local Support:","props":{"class":"mui-v-EquipmentPage-noteLead"}}," From routine maintenance to genuine Toro parts, our factory-trained techs have you covered."],"tag":"li","props":{"class":"mui-v-EquipmentPage-notePoint"}}],"tag":"ul","props":{"class":"mui-v-EquipmentPage-noteList"}}],"tag":"div","props":{"class":"mui-v-EquipmentPage-noteBody"}}],"tag":"div","props":{"class":"mui-v-EquipmentPage-note"}}],"tag":"div","props":{"class":"mui-v-container"}}],"props":{"aria-labelledby":"mowers-title","id":"mowers","class":"mui-v-EquipmentPage-section"},"tag":"section"},{"children":[{"children":[{"children":[{"children":[{"props":{"aria-hidden":"true","class":"mui-v-TradeInBand-rule"},"tag":"span"},{"tag":"span","text":"Trade-ins welcome"}],"tag":"p","props":{"class":"mui-v-TradeInBand-kicker"}},{"props":{"id":"trade-title","class":"mui-v-TradeInBand-title"},"tag":"h2","text":"Trade in your Used Mower or Snowblower"},{"tag":"p","text":"Ready to upgrade? Gerardy Outdoor Power accepts used mowers and snowblowers as trade credit.","props":{"class":"mui-v-TradeInBand-body"}},{"children":[{"children":[{"props":{"aria-hidden":"true","class":"mui-v-TradeInBand-stepNum"},"tag":"span","text":{"$t":335}},{"children":[{"tag":"h3","text":{"$t":336},"props":{"class":"mui-v-TradeInBand-stepTitle"}},{"tag":"p","text":{"$t":334},"props":{"class":"mui-v-TradeInBand-stepBody"}}],"tag":"div"}],"repeat":{"as":"s","items":{"$t":197},"key":"id"},"tag":"li","props":{"class":"mui-v-TradeInBand-step"}}],"tag":"ol","props":{"class":"mui-v-TradeInBand-steps"}},{"children":[{"$v":8},{"$v":10}],"tag":"div","props":{"class":"mui-v-TradeInBand-actions"}},{"tag":"p","text":"*Terms apply. Contact us for details.","props":{"class":"mui-v-TradeInBand-fine"}}],"tag":"div","props":{"class":"mui-v-TradeInBand-copy"}},{"children":[{"children":[{"props":{"id":"trade-form-title","class":"mui-v-TradeInBand-cardTitle"},"tag":"h3","text":"Tell us about your trade"},{"tag":"p","text":"Share your Mower and/or Snowblower details and the shop will call you to talk trade","props":{"class":"mui-v-TradeInBand-cardLead"}},{"children":[{"children":[{"props":{"for":"trade-name","class":"mui-v-TradeInBand-label"},"tag":"label","text":"Name"},{"on":{"input":[{"op":"set","path":"$inst.equipmentTradeIn[\"_\"].name","value":"{{ event.value }}"}]},"props":{"autocomplete":"name","id":"trade-name","name":"name","required":true,"type":"text","value":{"$t":114},"class":"mui-v-TradeInBand-input","style":"--mui-v-TradeInBand-input-min-h: 2.75rem"},"tag":"input","$demand":[]}],"tag":"div","props":{"class":"mui-v-TradeInBand-field"}},{"children":[{"props":{"for":"trade-phone","class":"mui-v-TradeInBand-label"},"tag":"label","text":"Phone"},{"on":{"input":[{"op":"set","path":"$inst.equipmentTradeIn[\"_\"].phone","value":"{{ event.value }}"}]},"props":{"autocomplete":"tel","id":"trade-phone","inputmode":"tel","name":"phone","required":true,"type":"tel","value":{"$t":116},"class":"mui-v-TradeInBand-input","style":"--mui-v-TradeInBand-input-min-h: 2.75rem"},"tag":"input","$demand":[]}],"tag":"div","props":{"class":"mui-v-TradeInBand-field"}},{"children":[{"children":["Email ",{"$v":131}],"props":{"for":"trade-email","class":"mui-v-TradeInBand-label"},"tag":"label"},{"on":{"input":[{"op":"set","path":"$inst.equipmentTradeIn[\"_\"].email","value":"{{ event.value }}"}]},"props":{"autocomplete":"email","id":"trade-email","name":"email","type":"email","value":{"$t":112},"class":"mui-v-TradeInBand-input","style":"--mui-v-TradeInBand-input-min-h: 2.75rem"},"tag":"input","$demand":[]},{"$v":58}],"tag":"div","props":{"class":"mui-v-TradeInBand-field"}},{"children":[{"children":["Mower or Snowblower to trade ",{"$v":131}],"props":{"for":"trade-mower","class":"mui-v-TradeInBand-label"},"tag":"label"},{"on":{"input":[{"op":"set","path":"$inst.equipmentTradeIn[\"_\"].mower","value":"{{ event.value }}"}]},"props":{"id":"trade-mower","name":"equipment","placeholder":"Make, model, year","type":"text","value":{"$t":113},"class":"mui-v-TradeInBand-input","style":"--mui-v-TradeInBand-input-min-h: 2.75rem"},"tag":"input","$demand":[]}],"tag":"div","props":{"class":"mui-v-TradeInBand-field"}},{"children":[{"children":["Condition & what you’re shopping for ",{"$v":131}],"props":{"for":"trade-notes","class":"mui-v-TradeInBand-label"},"tag":"label"},{"on":{"input":[{"op":"set","path":"$inst.equipmentTradeIn[\"_\"].notes","value":"{{ event.value }}"}]},"props":{"id":"trade-notes","name":"message","rows":"3","value":{"$t":115},"class":"mui-v-TradeInBand-input","style":"--mui-v-TradeInBand-input-min-h: 6rem"},"tag":"textarea","$demand":[]}],"tag":"div","props":{"class":"mui-v-TradeInBand-field mui-v-TradeInBand-wide"}},{"children":[{"children":["Photo of your mower or snow blower ",{"$v":131}],"tag":"p","props":{"class":"mui-v-TradeInBand-label"}},{"props":{"id":"trade-photo-hint","class":"mui-v-TradeInBand-hint"},"tag":"p","text":"Lawnmower and/or Snowblower Image files only. A clear shot of the whole machine helps the shop look it over."},{"children":[{"children":[{"tag":"svg","props":{"xmlns":"http://www.w3.org/2000/svg","width":"18","height":"18","viewBox":"0 0 24 24","fill":"none","stroke":"currentColor","stroke-width":"2","stroke-linecap":"round","stroke-linejoin":"round","aria-hidden":"true","focusable":"false","class":"mui-v-iconMd"},"children":[{"tag":"path","props":{"d":"M13.997 4a2 2 0 0 1 1.76 1.05l.486.9A2 2 0 0 0 18.003 7H20a2 2 0 0 1 2 2v9a2 2 0 0 1-2 2H4a2 2 0 0 1-2-2V9a2 2 0 0 1 2-2h1.997a2 2 0 0 0 1.759-1.048l.489-.904A2 2 0 0 1 10.004 4z"}},{"tag":"circle","props":{"cx":"12","cy":"13","r":"3"}}]},{"tag":"span","text":"Add a photo"}],"props":{"for":"trade-photo","class":"mui-v-TradeInBand-photoBtn"},"tag":"label"},{"on":{"change":[{"call":"tradePhotos.upload","description":"Trade-in photo","path":"$inst.equipmentTradeIn[\"_\"].photo"}]},"props":{"accept":{"$t":293},"aria-describedby":"trade-photo-hint","disabled":{"$t":232},"id":"trade-photo","name":"photo","type":"file","class":"mui-v-srOnly"},"tag":"input","$demand":[]}],"tag":"div","when":{"$t":39},"props":{"class":"mui-v-TradeInBand-photoWrap"}},{"children":[{"props":{"alt":"Your selected photo","height":"96","src":{"$t":121},"width":"96","class":"mui-v-TradeInBand-thumb"},"tag":"img","when":{"$t":121}},{"children":[{"tag":"p","text":{"$t":118},"props":{"class":"mui-v-TradeInBand-photoName"}},{"props":{"role":"status","class":"mui-v-TradeInBand-photoStatus"},"tag":"p","text":{"$t":119}},{"on":{"click":[{"op":"set","path":"$inst.equipmentTradeIn[\"_\"].photo","value":null}]},"props":{"disabled":{"$t":232},"type":"button","class":"mui-v-TradeInBand-photoRemove"},"tag":"button","text":"Remove photo","$demand":[]}],"tag":"div","props":{"class":"mui-v-TradeInBand-photoMeta"}}],"tag":"div","when":{"$t":117},"props":{"class":"mui-v-TradeInBand-photoCard"}},{"props":{"role":"alert","class":"mui-v-TradeInBand-alert"},"tag":"p","text":{"$t":17},"when":{"$t":233}}],"tag":"div","props":{"class":"mui-v-TradeInBand-field mui-v-TradeInBand-wide"}}],"tag":"div","props":{"class":"mui-v-TradeInBand-fields"}},{"props":{"role":"alert","class":"mui-v-TradeInBand-alert"},"tag":"p","text":"Please add your name and a phone number so we can call you.","when":{"$t":123}},{"props":{"role":"alert","class":"mui-v-TradeInBand-alert"},"tag":"p","text":{"$t":16},"when":{"$t":125}},{"children":[{"children":[{"$v":64},{"tag":"span","text":{"$t":124}}],"props":{"disabled":{"$t":234},"type":"submit","class":"mui-v-btn mui-v-btnPrimary mui-v-TradeInBand-submit"},"tag":"button"}],"tag":"div","props":{"class":"mui-v-TradeInBand-submitRow"}}],"on":{"submit":[{"op":"set","path":"$inst.equipmentTradeIn[\"_\"].tried","value":true},{"call":"tuneupRequest.create","onSuccess":[{"op":"set","path":"$inst.equipmentTradeIn[\"_\"].sent","value":true},{"op":"set","path":"$inst.equipmentTradeIn[\"_\"].name","value":""},{"op":"set","path":"$inst.equipmentTradeIn[\"_\"].phone","value":""},{"op":"set","path":"$inst.equipmentTradeIn[\"_\"].email","value":""},{"op":"set","path":"$inst.equipmentTradeIn[\"_\"].mower","value":""},{"op":"set","path":"$inst.equipmentTradeIn[\"_\"].notes","value":""},{"op":"set","path":"$inst.equipmentTradeIn[\"_\"].tried","value":false},{"op":"set","path":"$inst.equipmentTradeIn[\"_\"].photo","value":null}],"value":{"email":"{{ trim((state.$inst.equipmentTradeIn['_'].email ?? state.$default.equipmentTradeIn.email)) }}","equipment":"{{ trim((state.$inst.equipmentTradeIn['_'].mower ?? state.$default.equipmentTradeIn.mower)) }}","message":"{{ trim((state.$inst.equipmentTradeIn['_'].notes ?? state.$default.equipmentTradeIn.notes)) }}","name":"{{ trim((state.$inst.equipmentTradeIn['_'].name ?? state.$default.equipmentTradeIn.name)) }}","offer":"Trade-in inquiry – used mower","phone":"{{ trim((state.$inst.equipmentTradeIn['_'].phone ?? state.$default.equipmentTradeIn.phone)) }}","photo":"{{ (state.$inst.equipmentTradeIn['_'].photo.ref ?? state.$default.equipmentTradeIn.photo.ref) ? (startsWith(tenant_media__imageUrl((state.$inst.equipmentTradeIn['_'].photo.ref ?? state.$default.equipmentTradeIn.photo.ref), 1600), 'http') ? tenant_media__imageUrl((state.$inst.equipmentTradeIn['_'].photo.ref ?? state.$default.equipmentTradeIn.photo.ref), 1600) : route.origin + tenant_media__imageUrl((state.$inst.equipmentTradeIn['_'].photo.ref ?? state.$default.equipmentTradeIn.photo.ref), 1600)) : '' }}"},"when":"{{ $f049eda0$valid && !fx.tuneupRequest.pending && !fx.tradePhotos.busy }}"}]},"props":{"aria-labelledby":"trade-form-title"},"tag":"form","when":{"$t":40},"$demand":[]},{"children":[{"tag":"h3","text":"Details sent","props":{"class":"mui-v-TradeInBand-cardTitle"}},{"tag":"p","text":"Thanks! Your trade-in details are on their way to the shop, and we’ll call you to talk it over. Need us sooner? Call (563) 689-3003.","props":{"class":"mui-v-TradeInBand-cardLead"}},{"on":{"click":[{"op":"set","path":"$inst.equipmentTradeIn[\"_\"].sent","value":false}]},"props":{"type":"button","class":"mui-v-btn mui-v-btnSecondary"},"tag":"button","text":"Send another","$demand":[]}],"props":{"role":"status"},"tag":"div","when":{"$t":122}}],"tag":"div","props":{"class":"mui-v-TradeInBand-card"}}],"tag":"div","props":{"class":"mui-v-container mui-v-TradeInBand-inner"}}],"props":{"aria-labelledby":"trade-title","id":"trade-in","class":"mui-v-TradeInBand-band"},"tag":"section"},{"children":[{"children":[{"children":[{"children":[{"$v":41},{"tag":"span","text":"Toro snow blowers"}],"tag":"p","props":{"class":"mui-v-SectionHead-kicker"}},{"props":{"id":"snow-title","class":"mui-v-SectionHead-title"},"tag":"h2","text":"Clear Winter Drifts with Toro Power"},{"$v":69}],"tag":"div","props":{"class":"mui-v-SectionHead-head"}},{"children":[{"children":[{"children":[{"props":{"alt":{"$t":296},"height":"1024","loading":"lazy","src":{"$t":384},"width":"1536","class":"mui-v-ProductLineCard-img","style":{"$t":0}},"tag":"img"}],"tag":"div","when":{"$t":295},"props":{"class":"mui-v-ProductLineCard-media"}},{"$v":128},{"$v":129},{"$v":130}],"tag":"article","repeat":{"as":"line","items":{"$t":187},"key":"id"},"props":{"class":"mui-v-ProductLineCard-card"}}],"tag":"div","props":{"class":"mui-v-EquipmentPage-grid2"}}],"tag":"div","props":{"class":"mui-v-container"}}],"props":{"aria-labelledby":"snow-title","id":"snow-blowers","class":"mui-v-EquipmentPage-section mui-v-EquipmentPage-sunken"},"tag":"section"},{"children":[{"children":[{"children":[{"tag":"h2","text":"Not sure which Toro fits your property?","props":{"class":"mui-v-CallBand-title"}},{"tag":"p","text":"Call or stop by the shop on 1st Ave. We’ll walk you through the right mower or snow blower for your yard, driveway and budget—and check current Toro promotions.","props":{"class":"mui-v-CallBand-body"}}],"tag":"div"},{"$v":124}],"tag":"div","props":{"class":"mui-v-container mui-v-CallBand-inner"}}],"props":{"aria-label":"Not sure which Toro fits your property?","class":"mui-v-CallBand-band"},"tag":"section"}],"tag":"div","when":{"$t":323}},{"children":[{"children":[{"children":[{"children":[{"$v":118},{"tag":"p","text":"FAQ · Authorized Toro Dealer · Preston, Iowa","props":{"class":"mui-v-PageHero-eyebrow"}},{"tag":"h1","text":"Your Toro Questions, Answered","props":{"class":"mui-v-PageHero-title"}},{"tag":"p","text":"When you buy from Gerardy Outdoor Power, your authorized Toro dealer, you get a dedicated partner for the life of your equipment.","props":{"class":"mui-v-PageHero-lead"}}],"tag":"div","props":{"class":"mui-v-PageHero-copy"}},{"children":[{"props":{"alt":"Technician checking the oil on a new Toro TimeCutter MyRide zero-turn mower during setup in the shop","height":"1024","loading":"eager","src":{"$t":368},"width":"1536","class":"mui-v-PageHero-img"},"tag":"img"}],"tag":"figure","when":{"$t":59},"props":{"class":"mui-v-PageHero-frame"}}],"tag":"div","props":{"class":"mui-v-container mui-v-PageHero-inner mui-m-heroIn"}}],"tag":"header","props":{"class":"mui-v-PageHero-band"}},{"children":[{"children":[{"children":[{"children":[{"$v":41},{"tag":"span","text":"The dealer difference"}],"tag":"p","props":{"class":"mui-v-SectionHead-kicker"}},{"props":{"id":"partner-title","class":"mui-v-SectionHead-title"},"tag":"h2","text":"The Gerardy Outdoor Power Advantage"},{"$v":69}],"tag":"div","props":{"class":"mui-v-SectionHead-head"}},{"children":[{"children":[{"$v":102},{"children":[{"tag":"h3","text":"Expert Setup & Inspection","props":{"class":"mui-v-IconFeature-title"}},{"tag":"p","text":"Fully assembled, leveled, and run-tested before you take delivery.","props":{"class":"mui-v-IconFeature-body"}}],"tag":"div"}],"tag":"li","props":{"class":"mui-v-IconFeature-item"}},{"children":[{"$v":132},{"children":[{"tag":"h3","text":"Hassle-Free Warranty","props":{"class":"mui-v-IconFeature-title"}},{"tag":"p","text":"We register it directly with Toro on day one.","props":{"class":"mui-v-IconFeature-body"}}],"tag":"div"}],"tag":"li","props":{"class":"mui-v-IconFeature-item"}},{"children":[{"$v":105},{"children":[{"tag":"h3","text":"Factory-Trained Support","props":{"class":"mui-v-IconFeature-title"}},{"tag":"p","text":"If you ever need routine maintenance, OEM parts, or repairs, our certified technicians are right here under our roof.","props":{"class":"mui-v-IconFeature-body"}}],"tag":"div"}],"tag":"li","props":{"class":"mui-v-IconFeature-item"}}],"tag":"ul","props":{"class":"mui-v-FaqPage-grid3"}},{"tag":"p","text":"Skip the guesswork in the garden aisle. Invest in local expertise that keeps you running season after season.","props":{"class":"mui-v-FaqPage-statement"}}],"tag":"div","props":{"class":"mui-v-container"}}],"props":{"aria-labelledby":"partner-title","class":"mui-v-FaqPage-section"},"tag":"section"},{"children":[{"children":[{"children":[{"children":[{"$v":41},{"tag":"span","text":"Questions & answers"}],"tag":"p","props":{"class":"mui-v-SectionHead-kicker"}},{"props":{"id":"faq-title","class":"mui-v-SectionHead-title"},"tag":"h2","text":"Frequently Asked Questions"},{"$v":69}],"tag":"div","props":{"class":"mui-v-SectionHead-head"}},{"children":[{"children":[{"props":{"aria-hidden":"true","class":"mui-v-FaqPage-groupNum"},"tag":"p","text":"01"},{"tag":"h2","text":"Equipment Sales & Availability","props":{"class":"mui-v-FaqPage-groupTitle"}}],"tag":"div"},{"children":[{"children":[{"children":[{"children":[{"$v":133},{"children":[{"$v":134}],"props":{"aria-hidden":"true","class":{"$t":19}},"tag":"span"}],"on":{"click":[{"op":"toggle","path":"$inst.FaqItem__u0[{{ f.id }}].open"}]},"props":{"aria-controls":{"$t":214},"aria-expanded":{"$t":88},"id":{"$t":215},"type":"button","class":"mui-v-FaqItem-q"},"tag":"button","$demand":[]}],"tag":"h3","props":{"class":"mui-v-FaqItem-heading"}},{"children":[{"$v":136}],"props":{"aria-labelledby":{"$t":215},"hidden":{"$t":33},"id":{"$t":214},"role":"region"},"tag":"div"}],"tag":"li","repeat":{"as":"f","items":{"$t":176},"key":"id"},"props":{"class":"mui-v-FaqItem-item"}}],"tag":"ul","props":{"class":"mui-v-FaqPage-list"}}],"tag":"div","props":{"class":"mui-v-FaqPage-group"}},{"children":[{"children":[{"props":{"aria-hidden":"true","class":"mui-v-FaqPage-groupNum"},"tag":"p","text":"02"},{"tag":"h2","text":"Service, Repairs & Warranties","props":{"class":"mui-v-FaqPage-groupTitle"}}],"tag":"div"},{"children":[{"children":[{"children":[{"children":[{"$v":133},{"children":[{"$v":134}],"props":{"aria-hidden":"true","class":{"$t":20}},"tag":"span"}],"on":{"click":[{"op":"toggle","path":"$inst.FaqItem__u1[{{ f.id }}].open"}]},"props":{"aria-controls":{"$t":214},"aria-expanded":{"$t":89},"id":{"$t":215},"type":"button","class":"mui-v-FaqItem-q"},"tag":"button","$demand":[]}],"tag":"h3","props":{"class":"mui-v-FaqItem-heading"}},{"children":[{"$v":136}],"props":{"aria-labelledby":{"$t":215},"hidden":{"$t":34},"id":{"$t":214},"role":"region"},"tag":"div"}],"tag":"li","repeat":{"as":"f","items":{"$t":177},"key":"id"},"props":{"class":"mui-v-FaqItem-item"}}],"tag":"ul","props":{"class":"mui-v-FaqPage-list"}}],"tag":"div","props":{"class":"mui-v-FaqPage-group"}},{"children":[{"children":[{"props":{"aria-hidden":"true","class":"mui-v-FaqPage-groupNum"},"tag":"p","text":"03"},{"tag":"h2","text":"Parts & Support","props":{"class":"mui-v-FaqPage-groupTitle"}}],"tag":"div"},{"children":[{"children":[{"children":[{"children":[{"$v":133},{"children":[{"$v":134}],"props":{"aria-hidden":"true","class":{"$t":21}},"tag":"span"}],"on":{"click":[{"op":"toggle","path":"$inst.FaqItem__u2[{{ f.id }}].open"}]},"props":{"aria-controls":{"$t":214},"aria-expanded":{"$t":90},"id":{"$t":215},"type":"button","class":"mui-v-FaqItem-q"},"tag":"button","$demand":[]}],"tag":"h3","props":{"class":"mui-v-FaqItem-heading"}},{"children":[{"$v":136}],"props":{"aria-labelledby":{"$t":215},"hidden":{"$t":35},"id":{"$t":214},"role":"region"},"tag":"div"}],"tag":"li","repeat":{"as":"f","items":{"$t":175},"key":"id"},"props":{"class":"mui-v-FaqItem-item"}}],"tag":"ul","props":{"class":"mui-v-FaqPage-list"}}],"tag":"div","props":{"class":"mui-v-FaqPage-group"}}],"tag":"div","props":{"class":"mui-v-container"}}],"props":{"aria-labelledby":"faq-title","class":"mui-v-FaqPage-section mui-v-FaqPage-sunken"},"tag":"section"},{"children":[{"children":[{"children":[{"tag":"h2","text":"Still have a question?","props":{"class":"mui-v-CallBand-title"}},{"tag":"p","text":"Call the shop or stop by 103 1st Ave in Preston. We’re happy to help you pick, finance, fix or find parts for your Toro.","props":{"class":"mui-v-CallBand-body"}}],"tag":"div"},{"$v":124}],"tag":"div","props":{"class":"mui-v-container mui-v-CallBand-inner"}}],"props":{"aria-label":"Still have a question?","class":"mui-v-CallBand-band"},"tag":"section"}],"tag":"div","when":{"$t":324}},{"children":[{"children":[{"children":[{"children":[{"$v":118},{"tag":"p","text":"In-Stock Inventory · Authorized Toro Dealer","props":{"class":"mui-v-PageHero-eyebrow"}},{"tag":"h1","text":"Browse Our In-Stock Toro Equipment","props":{"class":"mui-v-PageHero-title"}},{"tag":"p","text":"See the mowers and snow blowers listed on our lot in Preston right now. Call or text the shop to ask about a machine or set up a time to see it.","props":{"class":"mui-v-PageHero-lead"}}],"tag":"div","props":{"class":"mui-v-PageHero-copy"}},{"children":[{"props":{"alt":"A lineup of red and black Toro zero-turn mowers on a lawn","height":"1024","loading":"eager","src":{"$t":378},"width":"1536","class":"mui-v-PageHero-img"},"tag":"img"}],"tag":"figure","when":{"$t":182},"props":{"class":"mui-v-PageHero-frame"}}],"tag":"div","props":{"class":"mui-v-container mui-v-PageHero-inner mui-m-heroIn"}}],"tag":"header","props":{"class":"mui-v-PageHero-band"}},{"children":[{"children":[{"children":[{"children":[{"$v":41},{"tag":"span","text":"On the lot"}],"tag":"p","props":{"class":"mui-v-SectionHead-kicker"}},{"props":{"id":"stock-title","class":"mui-v-SectionHead-title"},"tag":"h2","text":"Available Now"},{"$v":69}],"tag":"div","props":{"class":"mui-v-SectionHead-head"}},{"children":[{"props":{"id":"shop-cat-title","class":"mui-v-InventoryPage-catTitle"},"tag":"h3","text":"Shop by category"},{"children":[{"children":[{"tag":"span","text":"All equipment","props":{"class":"mui-v-InventoryPage-catName"}},{"tag":"span","text":{"$t":202},"props":{"class":"mui-v-InventoryPage-catCount"}}],"on":{"click":[{"op":"set","path":"inventoryCategory","value":"all"}]},"props":{"aria-pressed":{"$t":348},"type":"button","class":{"$t":25}},"tag":"button","$demand":[]},{"children":[{"tag":"span","text":{"$t":165},"props":{"class":"mui-v-InventoryPage-catName"}},{"tag":"span","text":{"$t":198},"props":{"class":"mui-v-InventoryPage-catCount"}}],"on":{"click":[{"op":"set","path":"inventoryCategory","value":"{{ c.id }}"}]},"props":{"aria-pressed":{"$t":351},"type":"button","class":{"$t":26}},"repeat":{"as":"c","items":{"$t":186},"key":"id"},"tag":"button","$demand":[]}],"props":{"aria-labelledby":"shop-cat-title","role":"group","class":"mui-v-InventoryPage-cats"},"tag":"div"}],"tag":"div","when":{"$t":200},"props":{"class":"mui-v-InventoryPage-catWrap"}},{"children":[{"props":{"for":"inventory-search","class":"mui-v-InventoryPage-searchLabel"},"tag":"label","text":"Search by model number or name"},{"children":[{"tag":"svg","props":{"xmlns":"http://www.w3.org/2000/svg","width":"18","height":"18","viewBox":"0 0 24 24","fill":"none","stroke":"currentColor","stroke-width":"2","stroke-linecap":"round","stroke-linejoin":"round","aria-hidden":"true","focusable":"false","class":"mui-v-iconMd mui-v-InventoryPage-searchIcon"},"children":[{"tag":"path","props":{"d":"m21 21-4.34-4.34"}},{"tag":"circle","props":{"cx":"11","cy":"11","r":"8"}}]},{"on":{"input":[{"op":"set","path":"inventorySearch","value":"{{ event.value }}"}]},"props":{"autocomplete":"off","enterkeyhint":"search","id":"inventory-search","inputmode":"search","placeholder":"e.g. 77501 or TimeCutter","type":"search","value":{"$t":355},"class":"mui-v-InventoryPage-searchInput"},"tag":"input","$demand":[]},{"children":[{"$v":2}],"on":{"click":[{"op":"set","path":"inventorySearch","value":""}]},"props":{"aria-label":"Clear search","type":"button","class":"mui-v-InventoryPage-searchClear"},"tag":"button","when":{"$t":354},"$demand":[]}],"tag":"div","props":{"class":"mui-v-InventoryPage-searchField"}},{"props":{"aria-live":"polite","role":"status","class":"mui-v-InventoryPage-searchStatus"},"tag":"p","text":{"$t":423}}],"on":{"submit":[{"op":"set","path":"inventorySearch","value":"{{ trim(state.inventorySearch) }}"}]},"props":{"aria-label":"Search inventory","role":"search","class":"mui-v-InventoryPage-search"},"tag":"form","when":{"$t":200},"$demand":[]},{"children":[{"children":[{"tag":"p","text":"Commercial Lawn","props":{"class":"mui-v-DemoRequestStrip-kicker"}},{"tag":"h3","text":"Try a commercial Toro before you buy","props":{"class":"mui-v-DemoRequestStrip-title"}},{"tag":"p","text":"Request a demo and the shop will call you to set up a time.","props":{"class":"mui-v-DemoRequestStrip-lead"}}],"tag":"div","props":{"class":"mui-v-DemoRequestStrip-copy"}},{"children":[{"tag":"svg","props":{"xmlns":"http://www.w3.org/2000/svg","width":"18","height":"18","viewBox":"0 0 24 24","fill":"none","stroke":"currentColor","stroke-width":"2","stroke-linecap":"round","stroke-linejoin":"round","aria-hidden":"true","focusable":"false","class":"mui-v-iconMd"},"children":[{"$v":137},{"$v":138},{"$v":139},{"$v":140},{"$v":141}]},{"tag":"span","text":"Schedule demo"}],"on":{"click":[{"op":"set","path":"$inst.commercialDemo[\"_\"].open","value":true}]},"props":{"aria-haspopup":"dialog","id":"demo-open","type":"button","class":"mui-v-btn mui-v-btnPrimary mui-v-DemoRequestStrip-openBtn"},"tag":"button","$demand":[]},{"children":[{"children":[{"children":[{"$v":2}],"on":{"click":[{"op":"set","path":"$inst.commercialDemo[\"_\"].open","value":false},{"op":"set","path":"$inst.commercialDemo[\"_\"].sent","value":false}]},"props":{"aria-label":"Close","type":"button","class":"mui-v-DemoRequestStrip-close"},"tag":"button","$demand":[]},{"children":[{"props":{"id":"demo-title","class":"mui-v-DemoRequestStrip-dTitle"},"tag":"h2","text":"Schedule a demo"},{"tag":"p","text":"Tell us which commercial mower you’d like to see and when works for you. The shop will call to set up a time.","props":{"class":"mui-v-DemoRequestStrip-dLead"}},{"children":[{"children":[{"props":{"for":"demo-name","class":"mui-v-DemoRequestStrip-label"},"tag":"label","text":"Name"},{"on":{"input":[{"op":"set","path":"$inst.commercialDemo[\"_\"].name","value":"{{ event.value }}"}]},"props":{"autocomplete":"name","id":"demo-name","name":"name","required":true,"type":"text","value":{"$t":93},"class":"mui-v-DemoRequestStrip-input","style":"--mui-v-DemoRequestStrip-input-min-h: 2.75rem"},"tag":"input","$demand":[]}],"tag":"div","props":{"class":"mui-v-DemoRequestStrip-field"}},{"children":[{"props":{"for":"demo-phone","class":"mui-v-DemoRequestStrip-label"},"tag":"label","text":"Phone"},{"on":{"input":[{"op":"set","path":"$inst.commercialDemo[\"_\"].phone","value":"{{ event.value }}"}]},"props":{"autocomplete":"tel","id":"demo-phone","inputmode":"tel","name":"phone","required":true,"type":"tel","value":{"$t":96},"class":"mui-v-DemoRequestStrip-input","style":"--mui-v-DemoRequestStrip-input-min-h: 2.75rem"},"tag":"input","$demand":[]}],"tag":"div","props":{"class":"mui-v-DemoRequestStrip-field"}},{"children":[{"children":["Email ",{"$v":142}],"props":{"for":"demo-email","class":"mui-v-DemoRequestStrip-label"},"tag":"label"},{"on":{"input":[{"op":"set","path":"$inst.commercialDemo[\"_\"].email","value":"{{ event.value }}"}]},"props":{"autocomplete":"email","id":"demo-email","name":"email","type":"email","value":{"$t":91},"class":"mui-v-DemoRequestStrip-input","style":"--mui-v-DemoRequestStrip-input-min-h: 2.75rem"},"tag":"input","$demand":[]},{"$v":58}],"tag":"div","props":{"class":"mui-v-DemoRequestStrip-field mui-v-DemoRequestStrip-wide"}},{"children":[{"children":["Machine ",{"$v":142}],"props":{"for":"demo-machine","class":"mui-v-DemoRequestStrip-label"},"tag":"label"},{"on":{"input":[{"op":"set","path":"$inst.commercialDemo[\"_\"].machine","value":"{{ event.value }}"}]},"props":{"id":"demo-machine","name":"equipment","placeholder":"Model or stock #","type":"text","value":{"$t":92},"class":"mui-v-DemoRequestStrip-input","style":"--mui-v-DemoRequestStrip-input-min-h: 2.75rem"},"tag":"input","$demand":[]}],"tag":"div","props":{"class":"mui-v-DemoRequestStrip-field"}},{"children":[{"children":["Best day/time ",{"$v":142}],"props":{"for":"demo-when","class":"mui-v-DemoRequestStrip-label"},"tag":"label"},{"on":{"input":[{"op":"set","path":"$inst.commercialDemo[\"_\"].when","value":"{{ event.value }}"}]},"props":{"id":"demo-when","name":"when","placeholder":"e.g. Tuesday morning","type":"text","value":{"$t":101},"class":"mui-v-DemoRequestStrip-input","style":"--mui-v-DemoRequestStrip-input-min-h: 2.75rem"},"tag":"input","$demand":[]}],"tag":"div","props":{"class":"mui-v-DemoRequestStrip-field"}},{"children":[{"children":["Notes ",{"$v":142}],"props":{"for":"demo-notes","class":"mui-v-DemoRequestStrip-label"},"tag":"label"},{"on":{"input":[{"op":"set","path":"$inst.commercialDemo[\"_\"].notes","value":"{{ event.value }}"}]},"props":{"id":"demo-notes","name":"message","placeholder":"Acreage, terrain, what you mow with now","rows":"3","value":{"$t":94},"class":"mui-v-DemoRequestStrip-input","style":"--mui-v-DemoRequestStrip-input-min-h: 5.5rem"},"tag":"textarea","$demand":[]}],"tag":"div","props":{"class":"mui-v-DemoRequestStrip-field mui-v-DemoRequestStrip-wide"}}],"tag":"div","props":{"class":"mui-v-DemoRequestStrip-fields"}},{"props":{"role":"alert","class":"mui-v-DemoRequestStrip-alert"},"tag":"p","text":"Please add your name and a phone number so we can call you.","when":{"$t":98}},{"props":{"role":"alert","class":"mui-v-DemoRequestStrip-alert"},"tag":"p","text":{"$t":18},"when":{"$t":100}},{"children":[{"children":[{"$v":64},{"tag":"span","text":{"$t":99}}],"props":{"disabled":{"$t":235},"type":"submit","class":"mui-v-btn mui-v-btnPrimary mui-v-DemoRequestStrip-submit"},"tag":"button"}],"tag":"div","props":{"class":"mui-v-DemoRequestStrip-submitRow"}}],"on":{"submit":[{"op":"set","path":"$inst.commercialDemo[\"_\"].tried","value":true},{"call":"tuneupRequest.create","onSuccess":[{"op":"set","path":"$inst.commercialDemo[\"_\"].sent","value":true},{"op":"set","path":"$inst.commercialDemo[\"_\"].name","value":""},{"op":"set","path":"$inst.commercialDemo[\"_\"].phone","value":""},{"op":"set","path":"$inst.commercialDemo[\"_\"].email","value":""},{"op":"set","path":"$inst.commercialDemo[\"_\"].machine","value":""},{"op":"set","path":"$inst.commercialDemo[\"_\"].when","value":""},{"op":"set","path":"$inst.commercialDemo[\"_\"].notes","value":""},{"op":"set","path":"$inst.commercialDemo[\"_\"].tried","value":false}],"value":{"email":"{{ trim((state.$inst.commercialDemo['_'].email ?? state.$default.commercialDemo.email)) }}","equipment":"{{ trim((state.$inst.commercialDemo['_'].machine ?? state.$default.commercialDemo.machine)) }}","message":"{{ trim((state.$inst.commercialDemo['_'].when ?? state.$default.commercialDemo.when)) != '' ? 'Preferred day/time: ' + trim((state.$inst.commercialDemo['_'].when ?? state.$default.commercialDemo.when)) + (trim((state.$inst.commercialDemo['_'].notes ?? state.$default.commercialDemo.notes)) != '' ? ' | ' + trim((state.$inst.commercialDemo['_'].notes ?? state.$default.commercialDemo.notes)) : '') : trim((state.$inst.commercialDemo['_'].notes ?? state.$default.commercialDemo.notes)) }}","name":"{{ trim((state.$inst.commercialDemo['_'].name ?? state.$default.commercialDemo.name)) }}","offer":"Commercial mower demo request","phone":"{{ trim((state.$inst.commercialDemo['_'].phone ?? state.$default.commercialDemo.phone)) }}","photo":""},"when":"{{ $57f4bd5c$valid && !fx.tuneupRequest.pending }}"}]},"props":{"aria-labelledby":"demo-title","novalidate":true},"tag":"form","when":{"$t":36},"$demand":[]},{"children":[{"props":{"id":"demo-title","class":"mui-v-DemoRequestStrip-dTitle"},"tag":"h2","text":"Request sent"},{"tag":"p","text":"Thanks! Your demo request is on its way to the shop, and we’ll call you to set up a time. Need us sooner? Call (563) 689-3003.","props":{"class":"mui-v-DemoRequestStrip-dLead"}},{"on":{"click":[{"op":"set","path":"$inst.commercialDemo[\"_\"].open","value":false},{"op":"set","path":"$inst.commercialDemo[\"_\"].sent","value":false}]},"props":{"type":"button","class":"mui-v-btn mui-v-btnSecondary"},"tag":"button","text":"Close","$demand":[]}],"props":{"role":"status"},"tag":"div","when":{"$t":97}}],"props":{"aria-labelledby":"demo-title","aria-modal":"true","id":"demo-dialog","role":"dialog","tabindex":"-1","class":"mui-v-DemoRequestStrip-panel"},"tag":"div"}],"tag":"div","use":[{"action":[{"op":"set","path":"$inst.commercialDemo[\"_\"].open","value":false},{"op":"set","path":"$inst.commercialDemo[\"_\"].sent","value":false}],"behavior":"modalSurface","initialFocus":"#demo-name","returnFocus":"#demo-open","surface":"#demo-dialog"}],"when":{"$t":95},"props":{"class":"mui-v-DemoRequestStrip-overlay"},"$demand":[]}],"tag":"div","when":{"$t":350},"props":{"class":"mui-v-DemoRequestStrip-strip"}},{"children":[{"on":{"click":[{"op":"set","path":"inventoryCondition","value":"{{ f.id }}"}]},"props":{"aria-pressed":{"$t":353},"type":"button","class":{"$t":27}},"repeat":{"as":"f","items":{"$t":180},"key":"id"},"tag":"button","text":{"$t":216},"$demand":[]}],"props":{"aria-label":"Filter by condition","role":"group","class":"mui-v-InventoryPage-filters"},"tag":"div"},{"children":[{"props":{"role":"status","class":"mui-v-InventoryPage-note"},"tag":"p","text":"Loading our current inventory…","when":{"$t":45}},{"children":[{"children":[{"children":[{"props":{"alt":{"$t":432},"height":"480","loading":"lazy","src":{"$t":264},"width":"640","class":"mui-v-InventoryPage-img"},"tag":"img"}],"tag":"div","when":{"$t":263},"props":{"class":"mui-v-InventoryPage-media"}},{"children":[{"tag":"span","text":{"$t":167},"props":{"class":"mui-v-InventoryPage-badge"}},{"tag":"span","text":{"$t":13},"when":{"$t":433},"props":{"class":"mui-v-InventoryPage-stock"}}],"tag":"div","props":{"class":"mui-v-InventoryPage-top"}},{"children":[{"tag":"a","text":{"$t":432},"props":{"href":{"$t":2},"class":"mui-v-InventoryPage-nameLink"},"on":{"click":[{"call":"navigate","to":"/listing/{{ u.id }}"}]},"$demand":[]}],"tag":"h3","props":{"class":"mui-v-InventoryPage-name"}},{"tag":"p","text":{"$t":9},"when":{"$t":265},"props":{"class":"mui-v-InventoryPage-model"}},{"tag":"p","text":{"$t":267},"when":{"$t":266},"props":{"class":"mui-v-InventoryPage-sub"}},{"tag":"p","text":{"$t":386},"when":{"$t":431},"props":{"class":"mui-v-InventoryPage-sub"}},{"tag":"p","text":{"$t":428},"when":{"$t":429},"props":{"class":"mui-v-InventoryPage-desc"}},{"children":[{"tag":"p","text":"Cash price","when":{"$t":430},"props":{"class":"mui-v-InventoryPage-priceLabel"}},{"tag":"p","text":{"$t":210},"props":{"class":"mui-v-InventoryPage-price"}},{"tag":"p","text":{"$t":7},"when":{"$t":430},"props":{"class":"mui-v-InventoryPage-financed"}},{"tag":"p","text":{"$t":10},"when":{"$t":430},"props":{"class":"mui-v-InventoryPage-monthly"}}],"tag":"div","props":{"class":"mui-v-InventoryPage-priceRow"}},{"children":[{"tag":"span","text":"Specs, features & financing"},{"$v":143}],"props":{"aria-label":{"$t":11},"href":{"$t":2},"class":"mui-v-InventoryPage-detailsLink"},"tag":"a","on":{"click":[{"call":"navigate","to":"/listing/{{ u.id }}"}]},"$demand":[]},{"children":[{"children":[{"$v":9},{"$v":144}],"props":{"aria-label":{"$t":5},"href":"tel:+15636893003","class":"mui-v-btn mui-v-btnPrimary mui-v-InventoryPage-act"},"tag":"a"},{"children":[{"$v":11},{"$v":145}],"props":{"aria-label":{"$t":15},"href":"sms:+15633200072","class":"mui-v-btn mui-v-btnSecondary mui-v-InventoryPage-act"},"tag":"a"}],"tag":"div","props":{"class":"mui-v-InventoryPage-actions"}},{"children":[{"$v":17},{"tag":"span","text":"Directions to the store"}],"props":{"aria-label":"Directions to the store at 103 1st Ave, Preston (opens Google Maps in a new tab)","rel":"noopener noreferrer","target":"_blank","href":"https://www.google.com/maps/dir/?api=1&destination=Gerardy+Outdoor+Power,+103+1st+Ave,+Preston,+IA+52069","class":"mui-v-InventoryPage-directionsLink"},"tag":"a"},{"props":{"aria-hidden":"true","tabindex":"-1","href":{"$t":2},"class":"mui-v-InventoryPage-cardCover"},"tag":"a","on":{"click":[{"call":"navigate","to":"/listing/{{ u.id }}"}]},"$demand":[]}],"repeat":{"as":"u","items":{"$t":285},"key":"id"},"tag":"li","props":{"class":"mui-v-InventoryPage-card"}}],"tag":"ul","when":{"$t":201},"props":{"class":"mui-v-InventoryPage-grid"}},{"tag":"p","text":{"$t":199},"when":{"$t":229},"props":{"class":"mui-v-InventoryPage-note"}},{"fallback":true,"tag":"p","text":"Our inventory couldn’t load right now. Call (563) 689-3003 or text (563) 320-0072 to ask what’s in stock.","props":{"class":"mui-v-InventoryPage-note"}}],"tag":"div","$region":["catalogs","categories","inventory"]}],"tag":"div","props":{"class":"mui-v-container"}}],"props":{"aria-labelledby":"stock-title","id":"in-stock","class":"mui-v-InventoryPage-section"},"tag":"section"},{"children":[{"children":[{"children":[{"tag":"h2","text":"Looking for something specific?","props":{"class":"mui-v-CallBand-title"}},{"tag":"p","text":"Call or text the shop. We’ll tell you what’s on the lot and help you pick the right Toro for your yard or driveway.","props":{"class":"mui-v-CallBand-body"}}],"tag":"div"},{"$v":124}],"tag":"div","props":{"class":"mui-v-container mui-v-CallBand-inner"}}],"props":{"aria-label":"Looking for something specific?","class":"mui-v-CallBand-band"},"tag":"section"},{"props":{"hidden":""},"use":[{"action":[{"op":"set","path":"inventoryCategory","value":"{{ route.query.category }}"},{"op":"set","path":"inventoryCondition","value":"all"}],"behavior":"delay","ms":0}],"when":{"$t":330},"$demand":[]}],"tag":"div","when":{"$t":326}},{"children":[{"children":[{"children":[{"children":[{"tag":"svg","props":{"xmlns":"http://www.w3.org/2000/svg","width":"18","height":"18","viewBox":"0 0 24 24","fill":"none","stroke":"currentColor","stroke-width":"2","stroke-linecap":"round","stroke-linejoin":"round","aria-hidden":"true","focusable":"false","class":"mui-v-iconSm"},"children":[{"$v":29}]},{"tag":"span","text":"All in-stock inventory"}],"tag":"a","props":{"href":"/inventory","class":"mui-v-InventoryListingPage-back"},"on":{"click":[{"call":"navigate","to":"/inventory"}]},"$demand":[]},{"props":{"role":"status","class":"mui-v-InventoryListingPage-note"},"tag":"p","text":"Loading this machine…","when":{"$t":46}},{"children":[{"props":{"id":"listing-title","class":"mui-v-InventoryListingPage-name"},"tag":"h1","text":"This machine isn’t listed anymore"},{"tag":"p","text":"It may have sold or been taken off the lot. Browse what’s in stock now, or call (563) 689-3003 to ask about similar equipment.","props":{"class":"mui-v-InventoryListingPage-note"}},{"children":[{"tag":"span","text":"Browse in-stock inventory"}],"tag":"a","props":{"href":"/inventory","class":"mui-v-btn mui-v-btnPrimary"},"on":{"click":[{"call":"navigate","to":"/inventory"}]},"$demand":[]}],"tag":"div","when":{"$t":230},"props":{"class":"mui-v-InventoryListingPage-missing"}},{"children":[{"children":[{"children":[{"props":{"alt":{"$t":281},"height":"1200","src":{"$t":249},"width":"1600","class":"mui-v-InventoryListingPage-mainImg"},"tag":"img"}],"tag":"figure","when":{"$t":248},"props":{"class":"mui-v-InventoryListingPage-mainMedia"}},{"children":[{"children":[{"props":{"alt":{"$t":301},"height":"480","loading":"lazy","src":{"$t":256},"width":"640","class":"mui-v-InventoryListingPage-thumbImg"},"tag":"img"}],"repeat":{"as":"m","index":"mi","items":{"$t":290}},"tag":"li","props":{"class":"mui-v-InventoryListingPage-thumb"}}],"props":{"aria-label":"More photos","class":"mui-v-InventoryListingPage-thumbs"},"tag":"ul","when":{"$t":204}}],"tag":"div","props":{"class":"mui-v-InventoryListingPage-gallery"}},{"children":[{"children":[{"tag":"span","text":{"$t":166},"props":{"class":"mui-v-InventoryListingPage-badge"}},{"tag":"span","text":"Sold","when":{"$t":282},"props":{"class":"mui-v-InventoryListingPage-soldBadge"}},{"tag":"span","text":{"$t":12},"when":{"$t":283},"props":{"class":"mui-v-InventoryListingPage-stock"}}],"tag":"div","props":{"class":"mui-v-InventoryListingPage-tags"}},{"props":{"id":"listing-title","class":"mui-v-InventoryListingPage-name"},"tag":"h1","text":{"$t":281}},{"tag":"p","text":{"$t":253},"when":{"$t":252},"props":{"class":"mui-v-InventoryListingPage-sub"}},{"tag":"p","text":{"$t":8},"props":{"class":"mui-v-InventoryListingPage-sub"}},{"children":[{"tag":"p","text":{"$t":277},"props":{"class":"mui-v-InventoryListingPage-priceLabel"}},{"tag":"p","text":{"$t":209},"props":{"class":"mui-v-InventoryListingPage-price"}},{"tag":"p","text":{"$t":6},"when":{"$t":279},"props":{"class":"mui-v-InventoryListingPage-financedPrice"}}],"tag":"div","props":{"class":"mui-v-InventoryListingPage-priceBlock"}},{"children":[{"tag":"p","text":{"$t":278},"props":{"class":"mui-v-InventoryListingPage-financeKicker"}},{"children":[{"children":[{"tag":"span","text":{"$t":208}},{"tag":"span","text":"/mo","props":{"class":"mui-v-InventoryListingPage-perMonth"}}],"props":{"id":"finance-title","class":"mui-v-InventoryListingPage-financeAmount"},"tag":"h2"},{"tag":"p","text":{"$t":246},"props":{"class":"mui-v-InventoryListingPage-financeTerms"}},{"tag":"p","text":"Estimated monthly payment for the machine, before sales tax, for qualified buyers.","props":{"class":"mui-v-InventoryListingPage-financeFine"}},{"on":{"click":[{"op":"set","path":"financeDisclosureOpen","value":true}]},"props":{"aria-haspopup":"dialog","type":"button","class":"mui-v-InventoryListingPage-disclosureBtn"},"tag":"button","text":"Financing details & disclosure","when":{"$t":243},"$demand":[]},{"children":[{"children":[{"props":{"id":"disclosure-title","class":"mui-v-InventoryListingPage-dialogTitle"},"tag":"h2","text":"Financing disclosure"},{"tag":"p","text":{"$t":245},"props":{"class":"mui-v-InventoryListingPage-dialogLead"}},{"tag":"p","text":{"$t":244},"when":{"$t":50},"props":{"class":"mui-v-InventoryListingPage-dialogBody"}},{"props":{"rel":"noopener","target":"_blank","href":{"$t":244},"class":"mui-v-InventoryListingPage-dialogLink"},"tag":"a","text":"Read the full financing disclosure (opens in a new tab)","when":{"$t":340}},{"tag":"p","text":"Estimated monthly payment for the machine, before sales tax, for qualified buyers. Call (563) 689-3003 with any questions.","props":{"class":"mui-v-InventoryListingPage-dialogBody"}},{"on":{"click":[{"op":"set","path":"financeDisclosureOpen","value":false}]},"props":{"type":"button","class":"mui-v-btn mui-v-btnPrimary"},"tag":"button","text":"Close","$demand":[]}],"props":{"aria-labelledby":"disclosure-title","role":"dialog","class":"mui-v-InventoryListingPage-dialog"},"tag":"div"}],"tag":"div","use":[{"action":{"op":"set","path":"financeDisclosureOpen","value":false},"behavior":"modalSurface","surface":"[role='dialog']"}],"when":{"$t":341},"props":{"class":"mui-v-InventoryListingPage-backdrop"},"$demand":[]}],"tag":"div","when":{"$t":279}},{"children":[{"props":{"id":"finance-title","class":"mui-v-InventoryListingPage-financeHeading"},"tag":"h2","text":"Ask about financing"},{"tag":"p","text":"We participate in official Toro manufacturer financing programs for qualified residential and commercial buyers. Call (563) 689-3003 to go over terms and current promotions.","props":{"class":"mui-v-InventoryListingPage-financeTerms"}}],"tag":"div","when":{"$t":280}},{"children":[{"children":[{"tag":"span","text":"Apply for financing"},{"$v":108},{"$v":126}],"props":{"rel":"noopener","target":"_blank","href":{"$t":242},"class":"mui-v-btn mui-v-btnPrimary"},"tag":"a","when":{"$t":241}},{"children":[{"$v":9},{"tag":"span","text":"Ask about financing"}],"tag":"a","props":{"href":"tel:+15636893003","class":"mui-v-btn mui-v-btnOnDark"}}],"tag":"div","props":{"class":"mui-v-InventoryListingPage-financeActions"}}],"props":{"aria-labelledby":"finance-title","role":"region","class":"mui-v-InventoryListingPage-finance"},"tag":"div"},{"tag":"p","text":"This machine has sold. Call or text the shop to ask about a similar one.","when":{"$t":282},"props":{"class":"mui-v-InventoryListingPage-soldNote"}},{"children":[{"children":[{"$v":9},{"$v":6}],"props":{"aria-label":{"$t":4},"href":"tel:+15636893003","class":"mui-v-btn mui-v-btnPrimary"},"tag":"a"},{"children":[{"$v":11},{"$v":13}],"props":{"aria-label":{"$t":14},"href":"sms:+15633200072","class":"mui-v-btn mui-v-btnSecondary"},"tag":"a"}],"tag":"div","props":{"class":"mui-v-InventoryListingPage-actions"}}],"tag":"div","props":{"class":"mui-v-InventoryListingPage-info"}}],"tag":"div","when":{"$t":274},"props":{"class":"mui-v-InventoryListingPage-layout"}},{"fallback":true,"tag":"p","text":"This machine couldn’t load right now. Call (563) 689-3003 or text (563) 320-0072 and we’ll tell you all about it.","props":{"class":"mui-v-InventoryListingPage-note"}}],"tag":"div","props":{"class":"mui-v-container"},"$region":["inventory"]}],"props":{"aria-labelledby":"listing-title","class":"mui-v-InventoryListingPage-hero"},"tag":"section"},{"children":[{"children":[{"children":[{"tag":"h2","text":"About this machine","props":{"class":"mui-v-InventoryListingPage-h2"}},{"tag":"p","text":{"$t":276},"props":{"class":"mui-v-InventoryListingPage-desc"}}],"tag":"div","when":{"$t":275},"props":{"class":"mui-v-InventoryListingPage-block"}},{"children":[{"props":{"role":"status","class":"mui-v-InventoryListingPage-note"},"tag":"p","text":"Loading specs and features…","when":{"$t":48}},{"tag":"p","text":"Full specs for this model aren’t listed online yet. Call (563) 689-3003 and we’ll walk you through them.","when":{"$t":236},"props":{"class":"mui-v-InventoryListingPage-note"}},{"children":[{"tag":"h2","text":"Features","props":{"class":"mui-v-InventoryListingPage-h2"}},{"children":[{"children":[{"children":[{"props":{"alt":"","height":"640","loading":"lazy","src":{"$t":240},"width":"640","class":"mui-v-InventoryListingPage-featureImg"},"tag":"img"}],"tag":"div","when":{"$t":239},"props":{"class":"mui-v-InventoryListingPage-featureMedia"}},{"tag":"h3","text":{"$t":221},"props":{"class":"mui-v-InventoryListingPage-featureName"}},{"tag":"p","text":{"$t":220},"props":{"class":"mui-v-InventoryListingPage-featureBody"}}],"repeat":{"as":"feat","items":{"$t":289}},"tag":"li","props":{"class":"mui-v-InventoryListingPage-feature"}}],"tag":"ul","props":{"class":"mui-v-InventoryListingPage-features"}}],"tag":"div","when":{"$t":203},"props":{"class":"mui-v-InventoryListingPage-block"}},{"children":[{"tag":"h2","text":"Specifications","props":{"class":"mui-v-InventoryListingPage-h2"}},{"children":[{"children":[{"tag":"h3","text":{"$t":237},"props":{"class":"mui-v-InventoryListingPage-specGroupName"}},{"children":[{"children":[{"tag":"dt","text":{"$t":339},"props":{"class":"mui-v-InventoryListingPage-specName"}},{"tag":"dd","text":{"$t":257},"props":{"class":"mui-v-InventoryListingPage-specValue"}}],"repeat":{"as":"sp","items":{"$t":238},"key":"id"},"tag":"div","props":{"class":"mui-v-InventoryListingPage-specRow"}}],"tag":"dl","props":{"class":"mui-v-InventoryListingPage-specList"}}],"repeat":{"as":"g","items":{"$t":292},"key":"id"},"tag":"div","props":{"class":"mui-v-InventoryListingPage-specGroup"}}],"tag":"div","props":{"class":"mui-v-InventoryListingPage-specGrid"}}],"tag":"div","when":{"$t":206},"props":{"class":"mui-v-InventoryListingPage-block"}},{"children":[{"children":[{"tag":"svg","props":{"xmlns":"http://www.w3.org/2000/svg","width":"18","height":"18","viewBox":"0 0 24 24","fill":"none","stroke":"currentColor","stroke-width":"2","stroke-linecap":"round","stroke-linejoin":"round","aria-hidden":"true","focusable":"false","class":"mui-v-iconSm"},"children":[{"$v":119},{"$v":120},{"$v":121},{"$v":122},{"$v":123}]},{"tag":"span","text":{"$t":300}},{"$v":126}],"props":{"rel":"noopener","target":"_blank","href":{"$t":315},"class":"mui-v-InventoryListingPage-resource"},"repeat":{"as":"r","items":{"$t":291},"key":"url"},"tag":"a"}],"tag":"div","when":{"$t":205},"props":{"class":"mui-v-InventoryListingPage-resources"}},{"fallback":true,"tag":"p","text":"Specs and features couldn’t load right now. Call (563) 689-3003 and we’ll walk you through them.","props":{"class":"mui-v-InventoryListingPage-note"}}],"tag":"div","$region":["inventory","wholegoods"]}],"tag":"div","props":{"class":"mui-v-container"}}],"props":{"aria-label":"Specs and features","class":"mui-v-InventoryListingPage-details"},"tag":"section","when":{"$t":274}},{"children":[{"children":[{"children":[{"tag":"h2","text":"Questions about this machine?","props":{"class":"mui-v-CallBand-title"}},{"tag":"p","text":"Call or text the shop. We’ll answer questions, go over financing and set up a time for you to see it in Preston.","props":{"class":"mui-v-CallBand-body"}}],"tag":"div"},{"$v":124}],"tag":"div","props":{"class":"mui-v-container mui-v-CallBand-inner"}}],"props":{"aria-label":"Questions about this machine?","class":"mui-v-CallBand-band"},"tag":"section"}],"tag":"div","when":{"$t":327}},{"children":[{"children":[{"children":[{"children":[{"$v":118},{"tag":"p","text":"Parts & Maintenance · Genuine Toro OEM","props":{"class":"mui-v-PageHero-eyebrow"}},{"tag":"h1","text":"Genuine Toro Parts & Maintenance","props":{"class":"mui-v-PageHero-title"}},{"tag":"p","text":"The right part fits right and lasts. As an authorized Toro dealer we source genuine OEM parts for your mower or snow blower—and can help you keep up with routine maintenance.","props":{"class":"mui-v-PageHero-lead"}}],"tag":"div","props":{"class":"mui-v-PageHero-copy"}},{"children":[{"props":{"alt":"Genuine Toro filter elements, spark plugs, air filters, seals, bearings and mower blades laid out on a diamond-plate shop floor","height":"1024","loading":"eager","src":{"$t":370},"width":"1536","class":"mui-v-PageHero-img"},"tag":"img"}],"tag":"figure","when":{"$t":61},"props":{"class":"mui-v-PageHero-frame"}}],"tag":"div","props":{"class":"mui-v-container mui-v-PageHero-inner mui-m-heroIn"}}],"tag":"header","props":{"class":"mui-v-PageHero-band"}},{"children":[{"children":[{"children":[{"children":[{"$v":41},{"tag":"span","text":"Common parts"}],"tag":"p","props":{"class":"mui-v-SectionHead-kicker"}},{"props":{"id":"parts-title","class":"mui-v-SectionHead-title"},"tag":"h2","text":"Ask us about"},{"tag":"p","text":"Call with your model and serial number and we’ll check availability or order what you need.","when":{"$t":53},"props":{"class":"mui-v-SectionHead-lead"}}],"tag":"div","props":{"class":"mui-v-SectionHead-head"}},{"children":[{"children":[{"$v":146},{"children":[{"tag":"h3","text":"Blades & belts","props":{"class":"mui-v-IconFeature-title"}},{"tag":"p","text":"Mower blades and sharpening, plus belts that keep decks and drives turning.","props":{"class":"mui-v-IconFeature-body"}}],"tag":"div"}],"tag":"li","props":{"class":"mui-v-IconFeature-item"}},{"children":[{"children":[{"tag":"svg","props":{"xmlns":"http://www.w3.org/2000/svg","width":"18","height":"18","viewBox":"0 0 24 24","fill":"none","stroke":"currentColor","stroke-width":"2","stroke-linecap":"round","stroke-linejoin":"round","aria-hidden":"true","focusable":"false","class":"mui-v-iconLg"},"children":[{"tag":"path","props":{"d":"M12 22a7 7 0 0 0 7-7c0-2-1-3.9-3-5.5s-3.5-4-4-6.5c-.5 2.5-2 4.9-4 6.5C6 11.1 5 13 5 15a7 7 0 0 0 7 7z"}}]}],"props":{"aria-hidden":"true","class":"mui-v-IconFeature-glyph"},"tag":"span"},{"children":[{"tag":"h3","text":"Filters, oil & plugs","props":{"class":"mui-v-IconFeature-title"}},{"tag":"p","text":"Oil, air and fuel filters, spark plugs and tune-up kits for seasonal service.","props":{"class":"mui-v-IconFeature-body"}}],"tag":"div"}],"tag":"li","props":{"class":"mui-v-IconFeature-item"}},{"children":[{"children":[{"$v":73}],"props":{"aria-hidden":"true","class":"mui-v-IconFeature-glyph"},"tag":"span"},{"children":[{"tag":"h3","text":"Snow blower wear parts","props":{"class":"mui-v-IconFeature-title"}},{"tag":"p","text":"Scraper bars, skid shoes, paddles and shear pins to keep snow blowers clearing clean.","props":{"class":"mui-v-IconFeature-body"}}],"tag":"div"}],"tag":"li","props":{"class":"mui-v-IconFeature-item"}}],"tag":"ul","props":{"class":"mui-v-PartsPage-grid"}}],"tag":"div","props":{"class":"mui-v-container"}}],"props":{"aria-labelledby":"parts-title","class":"mui-v-PartsPage-section"},"tag":"section"},{"children":[{"children":[{"children":[{"children":[{"$v":41},{"tag":"span","text":"Before you call"}],"tag":"p","props":{"class":"mui-v-SectionHead-kicker"}},{"props":{"id":"serial-title","class":"mui-v-SectionHead-title"},"tag":"h2","text":"Find your model & serial number"},{"$v":69}],"tag":"div","props":{"class":"mui-v-SectionHead-head"}},{"children":[{"tag":"p","text":"Toro machines carry a model and serial number on a decal—usually on the frame or deck of a mower, or on the back of a snow blower’s housing. Having both numbers ready lets us find the exact part for your machine the first time.","props":{"class":"mui-v-PartsPage-body"}},{"children":[{"tag":"svg","props":{"xmlns":"http://www.w3.org/2000/svg","width":"18","height":"18","viewBox":"0 0 24 24","fill":"none","stroke":"currentColor","stroke-width":"2","stroke-linecap":"round","stroke-linejoin":"round","aria-hidden":"true","focusable":"false","class":"mui-v-iconMd mui-v-PartsPage-calloutIcon"},"children":[{"$v":20},{"tag":"path","props":{"d":"M12 16v-4"}},{"tag":"path","props":{"d":"M12 8h.01"}}]},{"tag":"span","text":"Can’t find the decal? Bring the old part or the machine to the shop and we’ll match it."}],"tag":"p","props":{"class":"mui-v-PartsPage-callout"}}],"tag":"div","props":{"class":"mui-v-PartsPage-prose"}}],"tag":"div","props":{"class":"mui-v-container"}}],"props":{"aria-labelledby":"serial-title","class":"mui-v-PartsPage-section mui-v-PartsPage-sunken"},"tag":"section"},{"children":[{"children":[{"children":[{"children":[{"$v":41},{"tag":"span","text":"Keep it running"}],"tag":"p","props":{"class":"mui-v-SectionHead-kicker"}},{"props":{"id":"maint-title","class":"mui-v-SectionHead-title"},"tag":"h2","text":"Simple seasonal maintenance"},{"$v":69}],"tag":"div","props":{"class":"mui-v-SectionHead-head"}},{"children":[{"children":[{"tag":"h3","text":"Lawn mower","props":{"class":"mui-v-PartsPage-listTitle"}},{"children":[{"children":[{"$v":147},{"$v":148}],"repeat":{"as":"t","items":{"$t":183},"key":true},"tag":"li","props":{"class":"mui-v-PartsPage-li"}}],"tag":"ul","props":{"class":"mui-v-PartsPage-list"}}],"tag":"div","props":{"class":"mui-v-PartsPage-col"}},{"children":[{"tag":"h3","text":"Snow blower","props":{"class":"mui-v-PartsPage-listTitle"}},{"children":[{"children":[{"$v":147},{"$v":148}],"repeat":{"as":"t","items":{"$t":195},"key":true},"tag":"li","props":{"class":"mui-v-PartsPage-li"}}],"tag":"ul","props":{"class":"mui-v-PartsPage-list"}}],"tag":"div","props":{"class":"mui-v-PartsPage-col"}}],"tag":"div","props":{"class":"mui-v-PartsPage-cols"}}],"tag":"div","props":{"class":"mui-v-container"}}],"props":{"aria-labelledby":"maint-title","class":"mui-v-PartsPage-section"},"tag":"section"},{"children":[{"children":[{"children":[{"tag":"h2","text":"Need a part?","props":{"class":"mui-v-CallBand-title"}},{"tag":"p","text":"Call with your model and serial number, or stop by the parts counter on 1st Ave.","props":{"class":"mui-v-CallBand-body"}}],"tag":"div"},{"$v":124}],"tag":"div","props":{"class":"mui-v-container mui-v-CallBand-inner"}}],"props":{"aria-label":"Need a part?","class":"mui-v-CallBand-band"},"tag":"section"}],"tag":"div","when":{"$t":328}},{"children":[{"children":[{"children":[{"children":[{"$v":118},{"tag":"p","text":"Service & Repair · Master Service Dealer","props":{"class":"mui-v-PageHero-eyebrow"}},{"tag":"h1","text":"Small Engine Service & Repair","props":{"class":"mui-v-PageHero-title"}},{"tag":"p","text":"Certified diagnostics, seasonal tune-ups and warranty repairs for Toro mowers and snow blowers—plus the other small engines you depend on—handled by experienced technicians right here on 1st Ave.","props":{"class":"mui-v-PageHero-lead"}}],"tag":"div","props":{"class":"mui-v-PageHero-copy"}},{"children":[{"props":{"alt":"Technician servicing a red walk-behind mower on a shop lift","height":"1024","loading":"eager","src":{"$t":369},"width":"1536","class":"mui-v-PageHero-img"},"tag":"img"}],"tag":"figure","when":{"$t":60},"props":{"class":"mui-v-PageHero-frame"}}],"tag":"div","props":{"class":"mui-v-container mui-v-PageHero-inner mui-m-heroIn"}}],"tag":"header","props":{"class":"mui-v-PageHero-band"}},{"children":[{"children":[{"children":[{"tag":"svg","props":{"xmlns":"http://www.w3.org/2000/svg","width":"18","height":"18","viewBox":"0 0 24 24","fill":"none","stroke":"currentColor","stroke-width":"2","stroke-linecap":"round","stroke-linejoin":"round","aria-hidden":"true","focusable":"false","class":"mui-v-CertificationBand-sealIcon"},"children":[{"$v":22},{"$v":23}]},{"tag":"span","text":"Master","props":{"class":"mui-v-CertificationBand-sealTop"}},{"tag":"span","text":"Service","props":{"class":"mui-v-CertificationBand-sealMain"}},{"tag":"span","text":"Dealer","props":{"class":"mui-v-CertificationBand-sealBottom"}}],"props":{"aria-hidden":"true","class":"mui-v-CertificationBand-seal"},"tag":"div"},{"children":[{"children":[{"props":{"aria-hidden":"true","class":"mui-v-CertificationBand-rule"},"tag":"span"},{"tag":"span","text":"Service credential"}],"tag":"p","props":{"class":"mui-v-CertificationBand-kicker"}},{"props":{"id":"cert-title","class":"mui-v-CertificationBand-title"},"tag":"h2","text":"Master Service Dealer"},{"tag":"p","text":"Gerardy Outdoor Power is a Master Service Dealer. Bring your Toro mower or snow blower—or the other small engines you rely on—to a certified service shop right here on 1st Ave in Preston.","props":{"class":"mui-v-CertificationBand-body"}},{"children":[{"$v":8},{"$v":127}],"tag":"div","props":{"class":"mui-v-CertificationBand-actions"}}],"tag":"div","props":{"class":"mui-v-CertificationBand-copy"}}],"tag":"div","props":{"class":"mui-v-container mui-v-CertificationBand-inner"}}],"props":{"aria-labelledby":"cert-title","class":"mui-v-CertificationBand-band"},"tag":"section"},{"children":[{"$v":32},{"children":[{"$v":33},{"children":[{"$v":39},{"tag":"p","text":"We can pick up your mower or snow blower for service and bring it back when it’s done. Call to schedule.","props":{"class":"mui-v-AnnouncementBand-body"}}],"tag":"div"},{"$v":40}],"tag":"div","props":{"class":"mui-v-container mui-v-AnnouncementBand-inner"}},{"$v":32}],"props":{"aria-label":"We provide Pick‑up and Delivery","class":"mui-v-AnnouncementBand-band"},"tag":"section"},{"children":[{"children":[{"$v":42},{"children":[{"$v":43},{"$v":45},{"$v":46},{"$v":47},{"$v":51},{"children":[{"children":[{"$v":52},{"$v":53},{"children":[{"children":[{"$v":54},{"on":{"input":[{"op":"set","path":"$inst.serviceOffer[\"_\"].name","value":"{{ event.value }}"}]},"props":{"autocomplete":"name","id":{"$t":76},"name":"name","required":true,"type":"text","value":{"$t":152},"class":"mui-v-OfferLeadBand-input","style":"--mui-v-OfferLeadBand-input-min-h: 2.75rem"},"tag":"input","$demand":[]}],"tag":"div","props":{"class":"mui-v-OfferLeadBand-field"}},{"children":[{"$v":55},{"on":{"input":[{"op":"set","path":"$inst.serviceOffer[\"_\"].phone","value":"{{ event.value }}"}]},"props":{"autocomplete":"tel","id":{"$t":78},"inputmode":"tel","name":"phone","required":true,"type":"tel","value":{"$t":154},"class":"mui-v-OfferLeadBand-input","style":"--mui-v-OfferLeadBand-input-min-h: 2.75rem"},"tag":"input","$demand":[]}],"tag":"div","props":{"class":"mui-v-OfferLeadBand-field"}},{"children":[{"$v":56},{"on":{"input":[{"op":"set","path":"$inst.serviceOffer[\"_\"].email","value":"{{ event.value }}"}]},"props":{"autocomplete":"email","id":{"$t":73},"name":"email","type":"email","value":{"$t":150},"class":"mui-v-OfferLeadBand-input","style":"--mui-v-OfferLeadBand-input-min-h: 2.75rem"},"tag":"input","$demand":[]},{"$v":58}],"tag":"div","props":{"class":"mui-v-OfferLeadBand-field"}},{"children":[{"$v":62},{"on":{"input":[{"op":"set","path":"$inst.serviceOffer[\"_\"].equipment","value":"{{ event.value }}"}]},"props":{"id":{"$t":74},"name":"equipment","type":"text","value":{"$t":151},"class":"mui-v-OfferLeadBand-input","style":"--mui-v-OfferLeadBand-input-min-h: 2.75rem"},"tag":"input","$demand":[]}],"tag":"div","props":{"class":"mui-v-OfferLeadBand-field"}},{"children":[{"$v":63},{"on":{"input":[{"op":"set","path":"$inst.serviceOffer[\"_\"].notes","value":"{{ event.value }}"}]},"props":{"id":{"$t":77},"name":"message","rows":"3","value":{"$t":153},"class":"mui-v-OfferLeadBand-input","style":"--mui-v-OfferLeadBand-input-min-h: 6rem"},"tag":"textarea","$demand":[]}],"tag":"div","props":{"class":"mui-v-OfferLeadBand-field mui-v-OfferLeadBand-wide"}}],"tag":"div","props":{"class":"mui-v-OfferLeadBand-fields"}},{"props":{"role":"alert","class":"mui-v-OfferLeadBand-alert"},"tag":"p","text":"Please add your name and a phone number so we can call you.","when":{"$t":156}},{"props":{"role":"alert","class":"mui-v-OfferLeadBand-alert"},"tag":"p","text":{"$t":18},"when":{"$t":158}},{"children":[{"children":[{"$v":64},{"tag":"span","text":{"$t":157}}],"props":{"disabled":{"$t":235},"type":"submit","class":"mui-v-btn mui-v-btnPrimary mui-v-OfferLeadBand-submit"},"tag":"button"},{"$v":65}],"tag":"div","props":{"class":"mui-v-OfferLeadBand-submitRow"}}],"on":{"submit":[{"op":"set","path":"$inst.serviceOffer[\"_\"].tried","value":true},{"call":"tuneupRequest.create","onSuccess":[{"op":"set","path":"$inst.serviceOffer[\"_\"].sent","value":true},{"op":"set","path":"$inst.serviceOffer[\"_\"].name","value":""},{"op":"set","path":"$inst.serviceOffer[\"_\"].phone","value":""},{"op":"set","path":"$inst.serviceOffer[\"_\"].email","value":""},{"op":"set","path":"$inst.serviceOffer[\"_\"].equipment","value":""},{"op":"set","path":"$inst.serviceOffer[\"_\"].notes","value":""},{"op":"set","path":"$inst.serviceOffer[\"_\"].tried","value":false}],"value":{"email":"{{ trim((state.$inst.serviceOffer['_'].email ?? state.$default.serviceOffer.email)) }}","equipment":"{{ trim((state.$inst.serviceOffer['_'].equipment ?? state.$default.serviceOffer.equipment)) }}","message":"{{ trim((state.$inst.serviceOffer['_'].notes ?? state.$default.serviceOffer.notes)) }}","name":"{{ trim((state.$inst.serviceOffer['_'].name ?? state.$default.serviceOffer.name)) }}","offer":"{{ constants.fallTuneUp.offer }}","phone":"{{ trim((state.$inst.serviceOffer['_'].phone ?? state.$default.serviceOffer.phone)) }}"},"when":"{{ $3639076c$valid && !fx.tuneupRequest.pending }}"}]},"props":{"aria-labelledby":{"$t":75}},"tag":"form","when":{"$t":44},"$demand":[]},{"children":[{"$v":66},{"$v":67},{"on":{"click":[{"op":"set","path":"$inst.serviceOffer[\"_\"].sent","value":false}]},"props":{"type":"button","class":"mui-v-btn mui-v-btnSecondary"},"tag":"button","text":"Send another request","$demand":[]}],"props":{"role":"status"},"tag":"div","when":{"$t":155}}],"tag":"div","props":{"class":"mui-v-OfferLeadBand-card"}},{"$v":68}],"tag":"div","props":{"class":"mui-v-OfferLeadBand-copy"}}],"tag":"div","props":{"class":"mui-v-container mui-v-OfferLeadBand-inner"}}],"props":{"aria-labelledby":{"$t":79},"id":"fall-tune-up","class":"mui-v-OfferLeadBand-band"},"tag":"section","when":{"$t":218}},{"children":[{"children":[{"children":[{"children":[{"$v":41},{"tag":"span","text":"What we fix"}],"tag":"p","props":{"class":"mui-v-SectionHead-kicker"}},{"props":{"id":"services-title","class":"mui-v-SectionHead-title"},"tag":"h2","text":"A full-service repair shop"},{"tag":"p","text":"We don’t just sell equipment—we keep it running year after year. Call to get your machine on the schedule.","when":{"$t":57},"props":{"class":"mui-v-SectionHead-lead"}}],"tag":"div","props":{"class":"mui-v-SectionHead-head"}},{"children":[{"children":[{"children":[{"tag":"svg","props":{"xmlns":"http://www.w3.org/2000/svg","width":"18","height":"18","viewBox":"0 0 24 24","fill":"none","stroke":"currentColor","stroke-width":"2","stroke-linecap":"round","stroke-linejoin":"round","aria-hidden":"true","focusable":"false","class":"mui-v-iconLg"},"children":[{"tag":"path","props":{"d":"m12 14 4-4"}},{"tag":"path","props":{"d":"M3.34 19a10 10 0 1 1 17.32 0"}}]}],"props":{"aria-hidden":"true","class":"mui-v-IconFeature-glyph"},"tag":"span"},{"children":[{"tag":"h3","text":"Certified diagnostics","props":{"class":"mui-v-IconFeature-title"}},{"tag":"p","text":"We track down hard starts, rough running, power loss and leaks so you pay for the fix—not guesswork.","props":{"class":"mui-v-IconFeature-body"}}],"tag":"div"}],"tag":"li","props":{"class":"mui-v-IconFeature-item"}},{"children":[{"children":[{"tag":"svg","props":{"xmlns":"http://www.w3.org/2000/svg","width":"18","height":"18","viewBox":"0 0 24 24","fill":"none","stroke":"currentColor","stroke-width":"2","stroke-linecap":"round","stroke-linejoin":"round","aria-hidden":"true","focusable":"false","class":"mui-v-iconLg"},"children":[{"$v":137},{"$v":138},{"$v":139},{"$v":140},{"$v":141}]}],"props":{"aria-hidden":"true","class":"mui-v-IconFeature-glyph"},"tag":"span"},{"children":[{"tag":"h3","text":"Seasonal tune-ups","props":{"class":"mui-v-IconFeature-title"}},{"tag":"p","text":"Oil, filters, spark plug, adjustments and a full inspection so your mower is ready for spring and your snow blower for the first storm.","props":{"class":"mui-v-IconFeature-body"}}],"tag":"div"}],"tag":"li","props":{"class":"mui-v-IconFeature-item"}},{"children":[{"$v":146},{"children":[{"tag":"h3","text":"Blade sharpening","props":{"class":"mui-v-IconFeature-title"}},{"tag":"p","text":"A sharp, balanced blade gives a cleaner cut and a healthier lawn while easing the load on your engine.","props":{"class":"mui-v-IconFeature-body"}}],"tag":"div"}],"tag":"li","props":{"class":"mui-v-IconFeature-item"}},{"children":[{"$v":105},{"children":[{"tag":"h3","text":"Carburetor rebuilds","props":{"class":"mui-v-IconFeature-title"}},{"tag":"p","text":"Old fuel and varnish clog carburetors. We clean, rebuild or replace them to restore smooth starting and running.","props":{"class":"mui-v-IconFeature-body"}}],"tag":"div"}],"tag":"li","props":{"class":"mui-v-IconFeature-item"}},{"children":[{"$v":132},{"children":[{"tag":"h3","text":"Warranty repairs","props":{"class":"mui-v-IconFeature-title"}},{"tag":"p","text":"As an authorized Toro dealer we handle Toro warranty repairs with genuine OEM parts.","props":{"class":"mui-v-IconFeature-body"}}],"tag":"div"}],"tag":"li","props":{"class":"mui-v-IconFeature-item"}},{"children":[{"$v":103},{"children":[{"tag":"h3","text":"Setup & inspection","props":{"class":"mui-v-IconFeature-title"}},{"tag":"p","text":"Every machine we sell is uncrated, fueled, tested and tuned before it goes home with you.","props":{"class":"mui-v-IconFeature-body"}}],"tag":"div"}],"tag":"li","props":{"class":"mui-v-IconFeature-item"}}],"tag":"ul","props":{"class":"mui-v-ServicePage-grid"}}],"tag":"div","props":{"class":"mui-v-container"}}],"props":{"aria-labelledby":"services-title","class":"mui-v-ServicePage-section"},"tag":"section"},{"children":[{"children":[{"children":[{"children":[{"$v":41},{"tag":"span","text":"Plan ahead"}],"tag":"p","props":{"class":"mui-v-SectionHead-kicker"}},{"props":{"id":"rush-title","class":"mui-v-SectionHead-title"},"tag":"h2","text":"Beat the seasonal rush"},{"$v":69}],"tag":"div","props":{"class":"mui-v-SectionHead-head"}},{"children":[{"children":[{"tag":"svg","props":{"xmlns":"http://www.w3.org/2000/svg","width":"18","height":"18","viewBox":"0 0 24 24","fill":"none","stroke":"currentColor","stroke-width":"2","stroke-linecap":"round","stroke-linejoin":"round","aria-hidden":"true","focusable":"false","class":"mui-v-iconLg mui-v-ServicePage-tipIcon"},"children":[{"$v":70},{"$v":71},{"$v":72}]},{"tag":"h3","text":"Mowers: late winter","props":{"class":"mui-v-ServicePage-tipTitle"}},{"tag":"p","text":"Bring your mower in before the grass starts growing and it’s ready on the first warm weekend.","props":{"class":"mui-v-ServicePage-tipBody"}}],"tag":"div","props":{"class":"mui-v-ServicePage-tip"}},{"children":[{"tag":"svg","props":{"xmlns":"http://www.w3.org/2000/svg","width":"18","height":"18","viewBox":"0 0 24 24","fill":"none","stroke":"currentColor","stroke-width":"2","stroke-linecap":"round","stroke-linejoin":"round","aria-hidden":"true","focusable":"false","class":"mui-v-iconLg mui-v-ServicePage-tipIcon"},"children":[{"$v":74},{"$v":75},{"$v":76},{"$v":77},{"$v":78},{"$v":79},{"$v":80},{"$v":81},{"$v":82},{"$v":83},{"$v":84},{"$v":85}]},{"tag":"h3","text":"Snow blowers: early fall","props":{"class":"mui-v-ServicePage-tipTitle"}},{"tag":"p","text":"A fall tune-up means your snow blower starts on the first pull when the first Eastern Iowa storm hits.","props":{"class":"mui-v-ServicePage-tipBody"}}],"tag":"div","props":{"class":"mui-v-ServicePage-tip"}}],"tag":"div","props":{"class":"mui-v-ServicePage-tips"}}],"tag":"div","props":{"class":"mui-v-container"}}],"props":{"aria-labelledby":"rush-title","class":"mui-v-ServicePage-section mui-v-ServicePage-sunken"},"tag":"section"},{"children":[{"children":[{"children":[{"tag":"h2","text":"Book equipment service","props":{"class":"mui-v-CallBand-title"}},{"tag":"p","text":"Tell us the make, model and what it’s doing, and we’ll get it on the shop schedule.","props":{"class":"mui-v-CallBand-body"}}],"tag":"div"},{"$v":124}],"tag":"div","props":{"class":"mui-v-container mui-v-CallBand-inner"}}],"props":{"aria-label":"Book equipment service","class":"mui-v-CallBand-band"},"tag":"section"}],"tag":"div","when":{"$t":329}},{"children":[{"children":[{"children":[{"props":{"itemprop":"name","class":"mui-v-SiteFooter-name"},"tag":"p","text":"Gerardy Outdoor Power"},{"props":{"itemprop":"description","class":"mui-v-SiteFooter-tag"},"tag":"p","text":"Authorized Toro dealer and Master Service Dealer. Sales, service and parts for Preston and Jackson County."},{"children":[{"tag":"svg","props":{"xmlns":"http://www.w3.org/2000/svg","width":"18","height":"18","viewBox":"0 0 24 24","fill":"none","stroke":"currentColor","stroke-width":"2","stroke-linecap":"round","stroke-linejoin":"round","aria-hidden":"true","focusable":"false","class":"mui-v-iconMd"},"children":[{"$v":34},{"$v":35},{"$v":36},{"$v":37},{"$v":38}]},{"tag":"span","text":"We provide Pick‑up and Delivery"}],"tag":"p","props":{"class":"mui-v-SiteFooter-pickup"}},{"children":[{"children":[{"children":[{"$v":0},{"props":{"itemprop":"telephone"},"tag":"span","text":"(563) 689-3003"}],"tag":"a","props":{"href":"tel:+15636893003","class":"mui-v-SiteFooter-contact"}}],"tag":"li"},{"children":[{"children":[{"$v":110},{"$v":13}],"tag":"a","props":{"href":"sms:+15633200072","class":"mui-v-SiteFooter-contact"}}],"tag":"li"},{"children":[{"children":[{"$v":17},{"children":[{"props":{"itemprop":"streetAddress"},"tag":"span","text":"103 1st Ave"},", ",{"props":{"itemprop":"addressLocality"},"tag":"span","text":"Preston"},", ",{"props":{"itemprop":"addressRegion"},"tag":"span","text":"IA"}," ",{"props":{"itemprop":"postalCode"},"tag":"span","text":"52069"}],"props":{"itemprop":"address","itemscope":"","itemtype":"https://schema.org/PostalAddress"},"tag":"span"},{"$v":109}],"props":{"rel":"noopener noreferrer","target":"_blank","href":"https://www.google.com/maps/search/?api=1&query=103+1st+Ave+Preston+IA+52069","class":"mui-v-SiteFooter-contact"},"tag":"a"}],"tag":"li"},{"children":[{"children":[{"$v":111},{"$v":117},{"$v":109}],"props":{"rel":"noopener noreferrer","target":"_blank","href":"https://www.google.com/maps/search/?api=1&query=Gerardy+Outdoor+Power+103+1st+Ave+Preston+IA+52069","class":"mui-v-SiteFooter-contact"},"tag":"a"}],"tag":"li"},{"children":[{"children":[{"$v":113},{"tag":"span","text":"Facebook"},{"$v":114}],"props":{"itemprop":"sameAs","rel":"noopener noreferrer","target":"_blank","href":"https://www.facebook.com/GerardyOutdoorPower/","class":"mui-v-SiteFooter-contact"},"tag":"a"}],"tag":"li"},{"children":[{"children":[{"$v":113},{"$v":149},{"$v":150}],"props":{"rel":"noopener noreferrer","target":"_blank","href":"https://m.me/GerardyOutdoorPower","class":"mui-v-SiteFooter-contact"},"tag":"a"}],"tag":"li"}],"props":{"aria-label":"Contact","class":"mui-v-SiteFooter-list"},"tag":"ul"}],"tag":"div"},{"children":[{"tag":"h2","text":"Shop hours","props":{"class":"mui-v-SiteFooter-head"}},{"children":[{"children":[{"$v":115},{"props":{"datetime":{"$t":272},"itemprop":"openingHours"},"tag":"time","text":{"$t":273},"when":{"$t":270}},{"tag":"span","text":{"$t":273},"when":{"$t":271}}],"repeat":{"as":"h","items":{"$t":179},"key":"id"},"tag":"li","props":{"class":"mui-v-SiteFooter-row"}}],"tag":"ul","props":{"class":"mui-v-SiteFooter-list"}}],"tag":"div"},{"children":[{"tag":"h2","text":"Explore","props":{"class":"mui-v-SiteFooter-head"}},{"children":[{"children":[{"tag":"a","text":{"$t":288},"props":{"href":{"$t":286},"class":"mui-v-SiteFooter-link"},"on":{"click":[{"call":"navigate","to":"{{ item.href }}"}]},"$demand":[]}],"repeat":{"as":"item","items":{"$t":184},"key":"id"},"tag":"li"}],"tag":"ul","props":{"class":"mui-v-SiteFooter-list"}}],"props":{"aria-label":"Footer"},"tag":"nav"}],"tag":"div","props":{"class":"mui-v-container mui-v-SiteFooter-grid"}},{"children":[{"tag":"p","text":{"$t":437}},{"tag":"p","text":"Toro, Recycler, Super Recycler, Personal Pace, TimeCutter, Smart Speed, Titan, GrandStand, Z Master, Turbo Force, Power Clear and Power Max are trademarks of The Toro Company. Gerardy Outdoor Power is an independent authorized dealer."},{"children":[{"tag":"a","text":"Accessibility statement","props":{"href":"/accessibility","class":"mui-v-SiteFooter-link"},"on":{"click":[{"call":"navigate","to":"/accessibility"}]},"$demand":[]}],"tag":"p"},{"tag":"nav","props":{"aria-label":"Legal"},"children":[{"$v":59},{"$v":61}]}],"tag":"div","props":{"class":"mui-v-container mui-v-SiteFooter-legal"}}],"props":{"itemscope":"","itemtype":"https://schema.org/Store","class":"mui-v-SiteFooter-footer"},"tag":"footer"}],"props":{"data-mui-scroll-root":"","id":"main-content","tabindex":"-1","class":"mui-v-scroller"},"tag":"main"},{"children":[{"children":[{"children":[{"children":[{"tag":"p","text":"Gerardy Outdoor Power","props":{"class":"mui-v-QuickAnswers-kicker"}},{"props":{"id":"quick-answers-title","class":"mui-v-QuickAnswers-title"},"tag":"h2","text":"Quick answers"}],"tag":"div"},{"children":[{"$v":2}],"on":{"click":[{"op":"set","path":"$inst.quickAnswers[\"_\"].open","value":false}]},"props":{"aria-label":"Close quick answers","type":"button","class":"mui-v-QuickAnswers-close"},"tag":"button","$demand":[]}],"tag":"div","props":{"class":"mui-v-QuickAnswers-head"}},{"children":[{"tag":"p","text":"Tap a question to see the answer.","props":{"class":"mui-v-QuickAnswers-intro"}},{"children":[{"children":[{"children":[{"tag":"span","text":{"$t":310}},{"children":[{"tag":"svg","props":{"xmlns":"http://www.w3.org/2000/svg","width":"18","height":"18","viewBox":"0 0 24 24","fill":"none","stroke":"currentColor","stroke-width":"2","stroke-linecap":"round","stroke-linejoin":"round","aria-hidden":"true","focusable":"false","class":"mui-v-iconSm"},"children":[{"$v":135}]}],"props":{"aria-hidden":"true","class":{"$t":28}},"tag":"span"}],"on":{"click":[{"op":"set","path":"$inst.quickAnswers[\"_\"].active","value":"{{ (state.$inst.quickAnswers['_'].active ?? state.$default.quickAnswers.active) == qa.id ? '' : qa.id }}"}]},"props":{"aria-controls":{"$t":308},"aria-expanded":{"$t":146},"type":"button","class":{"$t":30}},"tag":"button","$demand":[]},{"children":[{"tag":"p","text":{"$t":305},"props":{"class":"mui-v-QuickAnswers-answerText"}},{"children":[{"tag":"span","text":{"$t":309}},{"$v":143}],"on":{"click":[{"op":"set","path":"$inst.quickAnswers[\"_\"].open","value":false},{"call":"navigate","to":"{{ qa.href }}"}]},"tag":"a","when":{"$t":306},"props":{"href":{"$t":307},"class":"mui-v-QuickAnswers-answerLink"},"$demand":[]}],"props":{"hidden":{"$t":144},"id":{"$t":308},"class":"mui-v-QuickAnswers-answer"},"tag":"div"}],"repeat":{"as":"qa","items":{"$t":185},"key":"id"},"tag":"li","props":{"class":"mui-v-QuickAnswers-item"}}],"tag":"ul","props":{"class":"mui-v-QuickAnswers-list"}}],"tag":"div","props":{"class":"mui-v-QuickAnswers-body"}},{"children":[{"tag":"p","text":"Still have a question? Reach the shop directly:","props":{"class":"mui-v-QuickAnswers-footLead"}},{"children":[{"children":[{"$v":0},{"$v":144}],"tag":"a","props":{"href":"tel:+15636893003","class":"mui-v-btn mui-v-btnPrimary mui-v-QuickAnswers-action"}},{"children":[{"$v":110},{"$v":145}],"tag":"a","props":{"href":"sms:+15633200072","class":"mui-v-btn mui-v-btnPrimary mui-v-QuickAnswers-action"}}],"tag":"div","props":{"class":"mui-v-QuickAnswers-actions"}},{"children":[{"$v":113},{"$v":149},{"$v":150}],"props":{"rel":"noopener noreferrer","target":"_blank","href":"https://m.me/GerardyOutdoorPower","class":"mui-v-QuickAnswers-messenger"},"tag":"a"}],"tag":"div","props":{"class":"mui-v-QuickAnswers-foot"}}],"props":{"aria-labelledby":"quick-answers-title","id":"quick-answers-panel","role":"dialog","class":"mui-v-QuickAnswers-panel"},"tag":"section","use":[{"action":{"op":"set","path":"$inst.quickAnswers[\"_\"].open","value":false},"behavior":"escapeToClose"},{"behavior":"autoFocus","target":"button"}],"when":{"$t":149},"$demand":[]},{"children":[{"tag":"svg","props":{"xmlns":"http://www.w3.org/2000/svg","width":"18","height":"18","viewBox":"0 0 24 24","fill":"none","stroke":"currentColor","stroke-width":"2","stroke-linecap":"round","stroke-linejoin":"round","aria-hidden":"true","focusable":"false","class":"mui-v-iconMd"},"children":[{"tag":"path","props":{"d":"M2.992 16.342a2 2 0 0 1 .094 1.167l-1.065 3.29a1 1 0 0 0 1.236 1.168l3.413-.998a2 2 0 0 1 1.099.092 10 10 0 1 0-4.777-4.719"}}],"when":{"$t":43}},{"tag":"svg","props":{"xmlns":"http://www.w3.org/2000/svg","width":"18","height":"18","viewBox":"0 0 24 24","fill":"none","stroke":"currentColor","stroke-width":"2","stroke-linecap":"round","stroke-linejoin":"round","aria-hidden":"true","focusable":"false","class":"mui-v-iconMd"},"children":[{"$v":3},{"$v":4}],"when":{"$t":149}},{"tag":"span","text":"Questions?","props":{"class":"mui-v-QuickAnswers-launchText"}}],"on":{"click":[{"op":"toggle","path":"$inst.quickAnswers[\"_\"].open"}]},"props":{"aria-controls":"quick-answers-panel","aria-expanded":{"$t":148},"aria-label":{"$t":147},"type":"button","class":{"$t":29}},"tag":"button","$demand":[]}],"tag":"div","props":{"class":"mui-v-QuickAnswers-wrap"}}],"tag":"div","props":{"class":"mui-v-appRoot"}},"shared":[{"tag":"svg","props":{"xmlns":"http://www.w3.org/2000/svg","width":"18","height":"18","viewBox":"0 0 24 24","fill":"none","stroke":"currentColor","stroke-width":"2","stroke-linecap":"round","stroke-linejoin":"round","aria-hidden":"true","focusable":"false","class":"mui-v-iconSm"},"children":[{"$v":1}]},{"tag":"path","props":{"d":"M13.832 16.568a1 1 0 0 0 1.213-.303l.355-.465A2 2 0 0 1 17 15h3a2 2 0 0 1 2 2v3a2 2 0 0 1-2 2A18 18 0 0 1 2 4a2 2 0 0 1 2-2h3a2 2 0 0 1 2 2v3a2 2 0 0 1-.8 1.6l-.468.351a1 1 0 0 0-.292 1.233 14 14 0 0 0 6.392 6.384"}},{"tag":"svg","props":{"xmlns":"http://www.w3.org/2000/svg","width":"18","height":"18","viewBox":"0 0 24 24","fill":"none","stroke":"currentColor","stroke-width":"2","stroke-linecap":"round","stroke-linejoin":"round","aria-hidden":"true","focusable":"false","class":"mui-v-iconMd"},"children":[{"$v":3},{"$v":4}]},{"tag":"path","props":{"d":"M18 6 6 18"}},{"tag":"path","props":{"d":"m6 6 12 12"}},{"tag":"svg","props":{"xmlns":"http://www.w3.org/2000/svg","width":"18","height":"18","viewBox":"0 0 24 24","fill":"none","stroke":"currentColor","stroke-width":"2","stroke-linecap":"round","stroke-linejoin":"round","aria-hidden":"true","focusable":"false","class":"mui-v-iconMd"},"children":[{"tag":"path","props":{"d":"m9 18 6-6-6-6"}}]},{"tag":"span","text":"Call (563) 689-3003"},{"tag":"span","text":"103 1st Ave, Preston, IA 52069"},{"children":[{"$v":9},{"$v":6}],"tag":"a","props":{"href":"tel:+15636893003","class":"mui-v-btn mui-v-btnPrimary"}},{"tag":"svg","props":{"xmlns":"http://www.w3.org/2000/svg","width":"18","height":"18","viewBox":"0 0 24 24","fill":"none","stroke":"currentColor","stroke-width":"2","stroke-linecap":"round","stroke-linejoin":"round","aria-hidden":"true","focusable":"false","class":"mui-v-iconMd"},"children":[{"$v":1}]},{"children":[{"$v":11},{"$v":13}],"tag":"a","props":{"href":"sms:+15633200072","class":"mui-v-btn mui-v-btnOnDark"}},{"tag":"svg","props":{"xmlns":"http://www.w3.org/2000/svg","width":"18","height":"18","viewBox":"0 0 24 24","fill":"none","stroke":"currentColor","stroke-width":"2","stroke-linecap":"round","stroke-linejoin":"round","aria-hidden":"true","focusable":"false","class":"mui-v-iconMd"},"children":[{"$v":12}]},{"tag":"path","props":{"d":"M22 17a2 2 0 0 1-2 2H6.828a2 2 0 0 0-1.414.586l-2.202 2.202A.71.71 0 0 1 2 21.286V5a2 2 0 0 1 2-2h16a2 2 0 0 1 2 2z"}},{"tag":"span","text":"Text (563) 320-0072"},{"tag":"svg","props":{"xmlns":"http://www.w3.org/2000/svg","width":"18","height":"18","viewBox":"0 0 24 24","fill":"none","stroke":"currentColor","stroke-width":"2","stroke-linecap":"round","stroke-linejoin":"round","aria-hidden":"true","focusable":"false","class":"mui-v-iconMd"},"children":[{"$v":15},{"$v":16}]},{"tag":"path","props":{"d":"M5 12h14"}},{"tag":"path","props":{"d":"m12 5 7 7-7 7"}},{"tag":"svg","props":{"xmlns":"http://www.w3.org/2000/svg","width":"18","height":"18","viewBox":"0 0 24 24","fill":"none","stroke":"currentColor","stroke-width":"2","stroke-linecap":"round","stroke-linejoin":"round","aria-hidden":"true","focusable":"false","class":"mui-v-iconSm"},"children":[{"$v":18},{"$v":19}]},{"tag":"path","props":{"d":"M20 10c0 4.993-5.539 10.193-7.399 11.799a1 1 0 0 1-1.202 0C9.539 20.193 4 14.993 4 10a8 8 0 0 1 16 0"}},{"tag":"circle","props":{"cx":"12","cy":"10","r":"3"}},{"tag":"circle","props":{"cx":"12","cy":"12","r":"10"}},{"tag":"path","props":{"d":"M12 6v6l4 2"}},{"tag":"path","props":{"d":"m15.477 12.89 1.515 8.526a.5.5 0 0 1-.81.47l-3.58-2.687a1 1 0 0 0-1.197 0l-3.586 2.686a.5.5 0 0 1-.81-.469l1.514-8.526"}},{"tag":"circle","props":{"cx":"12","cy":"8","r":"6"}},{"props":{"aria-hidden":"true","class":"mui-v-PhotoBannerSlide-shade"},"tag":"div"},{"children":[{"props":{"alt":"Toro","height":"60","src":{"$t":162},"width":"91","class":"mui-v-PhotoBannerSlide-logo"},"tag":"img"},{"tag":"span","text":"Authorized Dealer","props":{"class":"mui-v-PhotoBannerSlide-badgeText"}}],"tag":"div","when":{"$t":196},"props":{"class":"mui-v-PhotoBannerSlide-badge"}},{"props":{"aria-hidden":"true","class":"mui-v-PhotoBannerSlide-rule"},"tag":"span"},{"tag":"span","text":"View Snow Blowers"},{"tag":"span","text":"Book Equipment Service"},{"tag":"path","props":{"d":"m15 18-6-6 6-6"}},{"tag":"rect","props":{"x":"14","y":"3","width":"5","height":"18","rx":"1"}},{"tag":"rect","props":{"x":"5","y":"3","width":"5","height":"18","rx":"1"}},{"props":{"aria-hidden":"true","class":"mui-v-AnnouncementBand-edge"},"tag":"div"},{"children":[{"tag":"svg","props":{"xmlns":"http://www.w3.org/2000/svg","width":"18","height":"18","viewBox":"0 0 24 24","fill":"none","stroke":"currentColor","stroke-width":"2","stroke-linecap":"round","stroke-linejoin":"round","aria-hidden":"true","focusable":"false","class":"mui-v-AnnouncementBand-icon"},"children":[{"$v":34},{"$v":35},{"$v":36},{"$v":37},{"$v":38}]}],"props":{"aria-hidden":"true","class":"mui-v-AnnouncementBand-glyph"},"tag":"span"},{"tag":"path","props":{"d":"M14 18V6a2 2 0 0 0-2-2H4a2 2 0 0 0-2 2v11a1 1 0 0 0 1 1h2"}},{"tag":"path","props":{"d":"M15 18H9"}},{"tag":"path","props":{"d":"M19 18h2a1 1 0 0 0 1-1v-3.65a1 1 0 0 0-.22-.624l-3.48-4.35A1 1 0 0 0 17.52 8H14"}},{"tag":"circle","props":{"cx":"17","cy":"18","r":"2"}},{"tag":"circle","props":{"cx":"7","cy":"18","r":"2"}},{"tag":"p","text":"We provide Pick‑up and Delivery","props":{"class":"mui-v-AnnouncementBand-title"}},{"children":[{"$v":9},{"$v":6}],"tag":"a","props":{"href":"tel:+15636893003","class":"mui-v-btn mui-v-AnnouncementBand-callBtn"}},{"props":{"aria-hidden":"true","class":"mui-v-SectionHead-rule"},"tag":"span"},{"children":[{"props":{"alt":{"$t":170},"height":{"$t":159},"loading":"lazy","src":{"$t":376},"width":{"$t":159},"class":"mui-v-OfferLeadBand-img"},"tag":"img"}],"tag":"figure","props":{"class":"mui-v-OfferLeadBand-frame"}},{"children":[{"$v":44},{"tag":"span","text":{"$t":171}}],"tag":"p","props":{"class":"mui-v-OfferLeadBand-kicker"}},{"props":{"aria-hidden":"true","class":"mui-v-OfferLeadBand-rule"},"tag":"span"},{"props":{"id":{"$t":79},"class":"mui-v-OfferLeadBand-title"},"tag":"h2","text":{"$t":173}},{"tag":"p","text":{"$t":168},"props":{"class":"mui-v-OfferLeadBand-body"}},{"children":[{"children":[{"$v":48},{"$v":50}],"repeat":{"as":"pt","items":{"$t":174},"key":true},"tag":"li","props":{"class":"mui-v-OfferLeadBand-point"}}],"tag":"ul","props":{"class":"mui-v-OfferLeadBand-points"}},{"tag":"svg","props":{"xmlns":"http://www.w3.org/2000/svg","width":"18","height":"18","viewBox":"0 0 24 24","fill":"none","stroke":"currentColor","stroke-width":"2","stroke-linecap":"round","stroke-linejoin":"round","aria-hidden":"true","focusable":"false","class":"mui-v-iconMd mui-v-OfferLeadBand-pointIcon"},"children":[{"$v":49}]},{"tag":"path","props":{"d":"M20 6 9 17l-5-5"}},{"tag":"span","text":"{{ pt }}"},{"children":[{"$v":8},{"$v":10}],"tag":"div","props":{"class":"mui-v-OfferLeadBand-actions"}},{"props":{"id":{"$t":75},"class":"mui-v-OfferLeadBand-cardTitle"},"tag":"h3","text":"Request your fall tune‑up"},{"tag":"p","text":"Leave your name and number and the shop will get back to you to schedule pickup.","props":{"class":"mui-v-OfferLeadBand-cardLead"}},{"props":{"for":{"$t":76},"class":"mui-v-OfferLeadBand-label"},"tag":"label","text":"Name"},{"props":{"for":{"$t":78},"class":"mui-v-OfferLeadBand-label"},"tag":"label","text":"Phone"},{"children":["Email ",{"$v":57}],"props":{"for":{"$t":73},"class":"mui-v-OfferLeadBand-label"},"tag":"label"},{"tag":"span","text":"(optional)","props":{"class":"mui-v-OfferLeadBand-opt"}},{"tag":"nav","props":{"aria-label":"Legal","class":"mui-v-formPrivacyLinks"},"children":[{"$v":59},{"$v":61}]},{"tag":"ul","when":{"$t":65},"children":[{"tag":"li","children":[{"tag":"a","props":{"href":"/legal/privacy","class":"mui-v-legal__Links-listLink"},"children":["Privacy",{"$v":60}]}]},{"tag":"li","children":[{"tag":"a","props":{"href":"/legal/terms","class":"mui-v-legal__Links-listLink"},"children":["Terms",{"$v":60}]}]}],"props":{"class":"mui-v-legal__Links-list"}},{"tag":"span","props":{"aria-hidden":"true","class":"mui-v-legal__Links-chevron"},"text":"›"},{"tag":"ul","when":{"$t":64},"children":[{"tag":"li","children":[{"tag":"a","props":{"href":"/legal/privacy","class":"mui-v-legal__Links-rowLink"},"children":["Privacy"]}]},{"tag":"li","children":[{"tag":"a","props":{"href":"/legal/terms","class":"mui-v-legal__Links-rowLink"},"children":["Terms"]}]}],"props":{"class":"mui-v-legal__Links-row"}},{"children":[{"$t":54},{"$v":57}],"props":{"for":{"$t":74},"class":"mui-v-OfferLeadBand-label"},"tag":"label"},{"children":["Anything we should know? ",{"$v":57}],"props":{"for":{"$t":77},"class":"mui-v-OfferLeadBand-label"},"tag":"label"},{"tag":"svg","props":{"xmlns":"http://www.w3.org/2000/svg","width":"18","height":"18","viewBox":"0 0 24 24","fill":"none","stroke":"currentColor","stroke-width":"2","stroke-linecap":"round","stroke-linejoin":"round","aria-hidden":"true","focusable":"false","class":"mui-v-iconMd"},"children":[{"tag":"path","props":{"d":"M14.536 21.686a.5.5 0 0 0 .937-.024l6.5-19a.496.496 0 0 0-.635-.635l-19 6.5a.5.5 0 0 0-.024.937l7.93 3.18a2 2 0 0 1 1.112 1.11z"}},{"tag":"path","props":{"d":"m21.854 2.147-10.94 10.939"}}]},{"tag":"span","text":"Prefer to talk? Call (563) 689-3003.","props":{"class":"mui-v-OfferLeadBand-small"}},{"tag":"h3","text":"Request sent","props":{"class":"mui-v-OfferLeadBand-cardTitle"}},{"tag":"p","text":"Thanks! Your tune-up request is on its way to the shop, and we’ll be in touch to schedule it. Need it sooner? Call (563) 689-3003.","props":{"class":"mui-v-OfferLeadBand-cardLead"}},{"tag":"p","text":{"$t":169},"props":{"class":"mui-v-OfferLeadBand-fine"}},{"tag":"p","text":"","when":{"$t":52},"props":{"class":"mui-v-SectionHead-lead"}},{"tag":"path","props":{"d":"M14 9.536V7a4 4 0 0 1 4-4h1.5a.5.5 0 0 1 .5.5V5a4 4 0 0 1-4 4 4 4 0 0 0-4 4c0 2 1 3 1 5a5 5 0 0 1-1 3"}},{"tag":"path","props":{"d":"M4 9a5 5 0 0 1 8 4 5 5 0 0 1-8-4"}},{"tag":"path","props":{"d":"M5 21h14"}},{"tag":"svg","props":{"xmlns":"http://www.w3.org/2000/svg","width":"18","height":"18","viewBox":"0 0 24 24","fill":"none","stroke":"currentColor","stroke-width":"2","stroke-linecap":"round","stroke-linejoin":"round","aria-hidden":"true","focusable":"false","class":"mui-v-iconLg"},"children":[{"$v":74},{"$v":75},{"$v":76},{"$v":77},{"$v":78},{"$v":79},{"$v":80},{"$v":81},{"$v":82},{"$v":83},{"$v":84},{"$v":85}]},{"tag":"path","props":{"d":"m10 20-1.25-2.5L6 18"}},{"tag":"path","props":{"d":"M10 4 8.75 6.5 6 6"}},{"tag":"path","props":{"d":"m14 20 1.25-2.5L18 18"}},{"tag":"path","props":{"d":"m14 4 1.25 2.5L18 6"}},{"tag":"path","props":{"d":"m17 21-3-6h-4"}},{"tag":"path","props":{"d":"m17 3-3 6 1.5 3"}},{"tag":"path","props":{"d":"M2 12h6.5L10 9"}},{"tag":"path","props":{"d":"m20 10-1.5 2 1.5 2"}},{"tag":"path","props":{"d":"M22 12h-6.5L14 15"}},{"tag":"path","props":{"d":"m4 10 1.5 2L4 14"}},{"tag":"path","props":{"d":"m7 21 3-6-1.5-3"}},{"tag":"path","props":{"d":"m7 3 3 6h4"}},{"tag":"svg","props":{"xmlns":"http://www.w3.org/2000/svg","width":"18","height":"18","viewBox":"0 0 24 24","fill":"none","stroke":"currentColor","stroke-width":"2","stroke-linecap":"round","stroke-linejoin":"round","aria-hidden":"true","focusable":"false","class":"mui-v-iconLg"},"children":[{"$v":87}]},{"tag":"path","props":{"d":"M14.7 6.3a1 1 0 0 0 0 1.4l1.6 1.6a1 1 0 0 0 1.4 0l3.106-3.105c.32-.322.863-.22.983.218a6 6 0 0 1-8.259 7.057l-7.91 7.91a1 1 0 0 1-2.999-3l7.91-7.91a6 6 0 0 1 7.057-8.259c.438.12.54.662.219.984z"}},{"children":[{"props":{"alt":{"$t":190},"height":{"$t":161},"loading":"lazy","src":{"$t":383},"width":{"$t":160},"class":"mui-v-OfferLeadBand-img"},"tag":"img"}],"tag":"figure","props":{"class":"mui-v-OfferLeadBand-frame"}},{"children":[{"$v":44},{"tag":"span","text":{"$t":191}}],"tag":"p","props":{"class":"mui-v-OfferLeadBand-kicker"}},{"props":{"id":{"$t":72},"class":"mui-v-OfferLeadBand-title"},"tag":"h2","text":{"$t":193}},{"tag":"p","text":{"$t":188},"props":{"class":"mui-v-OfferLeadBand-body"}},{"children":[{"children":[{"$v":48},{"$v":50}],"repeat":{"as":"pt","items":{"$t":194},"key":true},"tag":"li","props":{"class":"mui-v-OfferLeadBand-point"}}],"tag":"ul","props":{"class":"mui-v-OfferLeadBand-points"}},{"props":{"id":{"$t":68},"class":"mui-v-OfferLeadBand-cardTitle"},"tag":"h3","text":"Ask about the $50 savings"},{"tag":"p","text":"Leave your name and number and the shop will call you about the qualifying models and availability.","props":{"class":"mui-v-OfferLeadBand-cardLead"}},{"props":{"for":{"$t":69},"class":"mui-v-OfferLeadBand-label"},"tag":"label","text":"Name"},{"props":{"for":{"$t":71},"class":"mui-v-OfferLeadBand-label"},"tag":"label","text":"Phone"},{"children":["Email ",{"$v":57}],"props":{"for":{"$t":66},"class":"mui-v-OfferLeadBand-label"},"tag":"label"},{"children":[{"$t":58},{"$v":57}],"props":{"for":{"$t":67},"class":"mui-v-OfferLeadBand-label"},"tag":"label"},{"children":["Anything we should know? ",{"$v":57}],"props":{"for":{"$t":70},"class":"mui-v-OfferLeadBand-label"},"tag":"label"},{"tag":"p","text":"Thanks! Your request is on its way to the shop, and we’ll be in touch about the Snow Savings Sale. Need it sooner? Call (563) 689-3003.","props":{"class":"mui-v-OfferLeadBand-cardLead"}},{"tag":"p","text":{"$t":189},"props":{"class":"mui-v-OfferLeadBand-fine"}},{"children":[{"tag":"svg","props":{"xmlns":"http://www.w3.org/2000/svg","width":"18","height":"18","viewBox":"0 0 24 24","fill":"none","stroke":"currentColor","stroke-width":"2","stroke-linecap":"round","stroke-linejoin":"round","aria-hidden":"true","focusable":"false","class":"mui-v-iconLg"},"children":[{"tag":"rect","props":{"width":"8","height":"4","x":"8","y":"2","rx":"1","ry":"1"}},{"tag":"path","props":{"d":"M16 4h2a2 2 0 0 1 2 2v14a2 2 0 0 1-2 2H6a2 2 0 0 1-2-2V6a2 2 0 0 1 2-2h2"}},{"tag":"path","props":{"d":"m9 14 2 2 4-4"}}]}],"props":{"aria-hidden":"true","class":"mui-v-IconFeature-glyph"},"tag":"span"},{"children":[{"tag":"svg","props":{"xmlns":"http://www.w3.org/2000/svg","width":"18","height":"18","viewBox":"0 0 24 24","fill":"none","stroke":"currentColor","stroke-width":"2","stroke-linecap":"round","stroke-linejoin":"round","aria-hidden":"true","focusable":"false","class":"mui-v-iconLg"},"children":[{"tag":"path","props":{"d":"M3.85 8.62a4 4 0 0 1 4.78-4.77 4 4 0 0 1 6.74 0 4 4 0 0 1 4.78 4.78 4 4 0 0 1 0 6.74 4 4 0 0 1-4.77 4.78 4 4 0 0 1-6.75 0 4 4 0 0 1-4.78-4.77 4 4 0 0 1 0-6.76Z"}},{"$v":104}]}],"props":{"aria-hidden":"true","class":"mui-v-IconFeature-glyph"},"tag":"span"},{"tag":"path","props":{"d":"m9 12 2 2 4-4"}},{"children":[{"$v":86}],"props":{"aria-hidden":"true","class":"mui-v-IconFeature-glyph"},"tag":"span"},{"children":[{"children":[{"tag":"svg","props":{"xmlns":"http://www.w3.org/2000/svg","width":"18","height":"18","viewBox":"0 0 24 24","fill":"none","stroke":"currentColor","stroke-width":"2","stroke-linecap":"round","stroke-linejoin":"round","aria-hidden":"true","focusable":"false","class":"mui-v-iconLg mui-v-VisitPanel-icon"},"children":[{"$v":18},{"$v":19}]},{"children":[{"tag":"h3","text":"Address","props":{"class":"mui-v-VisitPanel-label"}},{"tag":"p","text":"103 1st Ave, Preston, IA 52069","props":{"class":"mui-v-VisitPanel-value"}},{"children":[{"$v":107},{"$v":108},{"$v":109}],"props":{"rel":"noopener noreferrer","target":"_blank","href":"https://www.google.com/maps/dir/?api=1&destination=103+1st+Ave+Preston+IA+52069","class":"mui-v-VisitPanel-link"},"tag":"a"}],"tag":"div"}],"tag":"div","props":{"class":"mui-v-VisitPanel-cell"}},{"children":[{"tag":"svg","props":{"xmlns":"http://www.w3.org/2000/svg","width":"18","height":"18","viewBox":"0 0 24 24","fill":"none","stroke":"currentColor","stroke-width":"2","stroke-linecap":"round","stroke-linejoin":"round","aria-hidden":"true","focusable":"false","class":"mui-v-iconLg mui-v-VisitPanel-icon"},"children":[{"$v":1}]},{"children":[{"tag":"h3","text":"Phone","props":{"class":"mui-v-VisitPanel-label"}},{"tag":"a","text":"(563) 689-3003","props":{"href":"tel:+15636893003","class":"mui-v-VisitPanel-value mui-v-VisitPanel-phone"}},{"tag":"p","text":"Tap to call the shop directly.","props":{"class":"mui-v-VisitPanel-note"}},{"children":[{"$v":110},{"tag":"span","text":"Text us: (563) 320-0072"}],"tag":"a","props":{"href":"sms:+15633200072","class":"mui-v-VisitPanel-link"}},{"children":[{"$v":111},{"tag":"span","text":"Read our Google reviews"},{"$v":108},{"$v":109}],"props":{"rel":"noopener noreferrer","target":"_blank","href":"https://www.google.com/maps/search/?api=1&query=Gerardy+Outdoor+Power+103+1st+Ave+Preston+IA+52069","class":"mui-v-VisitPanel-link"},"tag":"a"},{"children":[{"$v":113},{"tag":"span","text":"Follow us on Facebook"},{"$v":108},{"$v":114}],"props":{"rel":"noopener noreferrer","target":"_blank","href":"https://www.facebook.com/GerardyOutdoorPower/","class":"mui-v-VisitPanel-link"},"tag":"a"}],"tag":"div"}],"tag":"div","props":{"class":"mui-v-VisitPanel-cell"}},{"children":[{"tag":"svg","props":{"xmlns":"http://www.w3.org/2000/svg","width":"18","height":"18","viewBox":"0 0 24 24","fill":"none","stroke":"currentColor","stroke-width":"2","stroke-linecap":"round","stroke-linejoin":"round","aria-hidden":"true","focusable":"false","class":"mui-v-iconLg mui-v-VisitPanel-icon"},"children":[{"$v":20},{"$v":21}]},{"children":[{"tag":"h3","text":"Hours","props":{"class":"mui-v-VisitPanel-label"}},{"children":[{"children":[{"$v":115},{"tag":"span","text":{"$t":273},"props":{"class":"mui-v-VisitPanel-time"}}],"repeat":{"as":"h","items":{"$t":179},"key":"id"},"tag":"li","props":{"class":"mui-v-VisitPanel-row"}}],"tag":"ul","props":{"class":"mui-v-VisitPanel-hours"}},{"tag":"p","text":"Hours may change with the season—call ahead to be sure.","props":{"class":"mui-v-VisitPanel-note"}}],"tag":"div","props":{"class":"mui-v-VisitPanel-grow"}}],"tag":"div","props":{"class":"mui-v-VisitPanel-cell"}}],"tag":"div","props":{"class":"mui-v-VisitPanel-panel"}},{"tag":"span","text":"Get directions"},{"tag":"svg","props":{"xmlns":"http://www.w3.org/2000/svg","width":"18","height":"18","viewBox":"0 0 24 24","fill":"none","stroke":"currentColor","stroke-width":"2","stroke-linecap":"round","stroke-linejoin":"round","aria-hidden":"true","focusable":"false","class":"mui-v-iconSm"},"children":[{"tag":"path","props":{"d":"M7 7h10v10"}},{"tag":"path","props":{"d":"M7 17 17 7"}}]},{"tag":"span","text":"(opens Google Maps in a new tab)","props":{"class":"mui-v-srOnly"}},{"tag":"svg","props":{"xmlns":"http://www.w3.org/2000/svg","width":"18","height":"18","viewBox":"0 0 24 24","fill":"none","stroke":"currentColor","stroke-width":"2","stroke-linecap":"round","stroke-linejoin":"round","aria-hidden":"true","focusable":"false","class":"mui-v-iconSm"},"children":[{"$v":12}]},{"tag":"svg","props":{"xmlns":"http://www.w3.org/2000/svg","width":"18","height":"18","viewBox":"0 0 24 24","fill":"none","stroke":"currentColor","stroke-width":"2","stroke-linecap":"round","stroke-linejoin":"round","aria-hidden":"true","focusable":"false","class":"mui-v-iconSm"},"children":[{"$v":112}]},{"tag":"path","props":{"d":"M11.525 2.295a.53.53 0 0 1 .95 0l2.31 4.679a2.123 2.123 0 0 0 1.595 1.16l5.166.756a.53.53 0 0 1 .294.904l-3.736 3.638a2.123 2.123 0 0 0-.611 1.878l.882 5.14a.53.53 0 0 1-.771.56l-4.618-2.428a2.122 2.122 0 0 0-1.973 0L6.396 21.01a.53.53 0 0 1-.77-.56l.881-5.139a2.122 2.122 0 0 0-.611-1.879L2.16 9.795a.53.53 0 0 1 .294-.906l5.165-.755a2.122 2.122 0 0 0 1.597-1.16z"}},{"props":{"aria-hidden":"true","class":"mui-v-facebookGlyph"},"tag":"span","text":"f"},{"tag":"span","text":"(opens Facebook in a new tab)","props":{"class":"mui-v-srOnly"}},{"tag":"span","text":{"$t":269}},{"children":[{"children":[{"children":[{"children":[{"$v":41},{"$v":117}],"tag":"p","props":{"class":"mui-v-SectionHead-kicker"}},{"props":{"id":"reviews-title","class":"mui-v-SectionHead-title"},"tag":"h2","text":"What Our Customers Say"},{"$v":69}],"tag":"div","props":{"class":"mui-v-SectionHead-head"}},{"children":[{"tag":"span","text":{"$t":225},"props":{"class":"mui-v-GoogleReviews-scoreNum"}},{"children":[{"props":{"aria-label":{"$t":226},"role":"img","class":"mui-v-GoogleReviews-stars"},"tag":"span","text":{"$t":317}},{"tag":"span","text":{"$t":385},"props":{"class":"mui-v-GoogleReviews-scoreSub"}}],"tag":"div"}],"tag":"div","when":{"$t":319},"props":{"class":"mui-v-GoogleReviews-score"}}],"tag":"div","props":{"class":"mui-v-GoogleReviews-head"}},{"children":[{"props":{"role":"status","class":"mui-v-GoogleReviews-note"},"tag":"p","text":"Loading reviews from Google…","when":{"$t":47}},{"children":[{"children":[{"props":{"aria-label":{"$t":313},"role":"img","class":"mui-v-GoogleReviews-stars"},"tag":"span","text":{"$t":316}},{"children":[{"tag":"p","text":{"$t":427}}],"tag":"blockquote","props":{"class":"mui-v-GoogleReviews-quote"}},{"children":[{"props":{"rel":"noopener noreferrer","target":"_blank","href":{"$t":312},"class":"mui-v-GoogleReviews-authorLink"},"tag":"a","text":{"$t":311}},{"tag":"span","text":{"$t":314},"props":{"class":"mui-v-GoogleReviews-when"}}],"tag":"p","props":{"class":"mui-v-GoogleReviews-author"}}],"repeat":{"as":"r","items":{"$t":318},"key":"name"},"tag":"li","props":{"class":"mui-v-GoogleReviews-card"}}],"tag":"ul","when":{"$t":207},"props":{"class":"mui-v-GoogleReviews-grid"}},{"tag":"p","text":"See what Preston-area customers say about us on Google.","when":{"$t":231},"props":{"class":"mui-v-GoogleReviews-note"}},{"fallback":true,"tag":"p","text":"Google reviews couldn’t load right now. You can still read them on Google.","props":{"class":"mui-v-GoogleReviews-note"}}],"tag":"div","$region":["reviewSearch"]},{"children":[{"children":[{"tag":"svg","props":{"xmlns":"http://www.w3.org/2000/svg","width":"18","height":"18","viewBox":"0 0 24 24","fill":"none","stroke":"currentColor","stroke-width":"2","stroke-linecap":"round","stroke-linejoin":"round","aria-hidden":"true","focusable":"false","class":"mui-v-iconMd"},"children":[{"$v":112}]},{"tag":"span","text":"Read all reviews"},{"$v":109}],"props":{"rel":"noopener noreferrer","target":"_blank","href":{"$t":320},"class":"mui-v-btn mui-v-btnSecondary"},"tag":"a"},{"children":[{"tag":"svg","props":{"xmlns":"http://www.w3.org/2000/svg","width":"18","height":"18","viewBox":"0 0 24 24","fill":"none","stroke":"currentColor","stroke-width":"2","stroke-linecap":"round","stroke-linejoin":"round","aria-hidden":"true","focusable":"false","class":"mui-v-iconMd"},"children":[{"$v":18},{"$v":19}]},{"tag":"span","text":"Our Google Business Profile"},{"$v":109}],"props":{"rel":"noopener noreferrer","target":"_blank","href":{"$t":163},"class":"mui-v-btn mui-v-btnSecondary"},"tag":"a"},{"children":[{"tag":"svg","props":{"xmlns":"http://www.w3.org/2000/svg","width":"18","height":"18","viewBox":"0 0 24 24","fill":"none","stroke":"currentColor","stroke-width":"2","stroke-linecap":"round","stroke-linejoin":"round","aria-hidden":"true","focusable":"false","class":"mui-v-iconMd"},"children":[{"tag":"path","props":{"d":"M12 3H5a2 2 0 0 0-2 2v14a2 2 0 0 0 2 2h14a2 2 0 0 0 2-2v-7"}},{"tag":"path","props":{"d":"M18.375 2.625a1 1 0 0 1 3 3l-9.013 9.014a2 2 0 0 1-.853.505l-2.873.84a.5.5 0 0 1-.62-.62l.84-2.873a2 2 0 0 1 .506-.852z"}}]},{"tag":"span","text":"Write a review"},{"tag":"span","text":"(opens Google in a new tab)","props":{"class":"mui-v-srOnly"}}],"props":{"rel":"noopener noreferrer","target":"_blank","href":{"$t":435},"class":"mui-v-btn mui-v-btnPrimary"},"tag":"a","when":{"$t":434}}],"tag":"div","props":{"class":"mui-v-GoogleReviews-actions"}},{"tag":"p","text":"Reviews from Google","props":{"class":"mui-v-GoogleReviews-attr"}}],"tag":"div","props":{"class":"mui-v-container"}},{"tag":"span","text":"Google reviews"},{"children":[{"props":{"alt":"Toro","height":"60","src":{"$t":162},"width":"91","class":"mui-v-PageHero-logo"},"tag":"img"},{"tag":"span","text":"Authorized Dealer","props":{"class":"mui-v-PageHero-badgeText"}}],"tag":"div","props":{"class":"mui-v-PageHero-badge"}},{"tag":"path","props":{"d":"M6 22a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h8a2.4 2.4 0 0 1 1.704.706l3.588 3.588A2.4 2.4 0 0 1 20 8v12a2 2 0 0 1-2 2z"}},{"tag":"path","props":{"d":"M14 2v5a1 1 0 0 0 1 1h5"}},{"tag":"path","props":{"d":"M10 9H8"}},{"tag":"path","props":{"d":"M16 13H8"}},{"tag":"path","props":{"d":"M16 17H8"}},{"children":[{"children":[{"$v":9},{"$v":6}],"tag":"a","props":{"href":"tel:+15636893003","class":"mui-v-btn mui-v-CallBand-callBtn"}},{"$v":10},{"children":[{"$v":125},{"$v":107},{"$v":109}],"props":{"rel":"noopener noreferrer","target":"_blank","href":"https://www.google.com/maps/dir/?api=1&destination=103+1st+Ave+Preston+IA+52069","class":"mui-v-btn mui-v-btnOnDark"},"tag":"a"}],"tag":"div","props":{"class":"mui-v-CallBand-actions"}},{"tag":"svg","props":{"xmlns":"http://www.w3.org/2000/svg","width":"18","height":"18","viewBox":"0 0 24 24","fill":"none","stroke":"currentColor","stroke-width":"2","stroke-linecap":"round","stroke-linejoin":"round","aria-hidden":"true","focusable":"false","class":"mui-v-iconMd"},"children":[{"tag":"polygon","props":{"points":"3 11 22 2 13 21 11 13 3 11"}}]},{"tag":"span","text":"(opens in a new tab)","props":{"class":"mui-v-srOnly"}},{"children":[{"$v":11},{"$v":13}],"tag":"a","props":{"href":"sms:+15633200072","class":"mui-v-btn mui-v-btnSecondary"}},{"children":[{"props":{"aria-hidden":"true","class":"mui-v-ProductLineCard-index"},"tag":"span","text":{"$t":297}},{"tag":"span","text":{"$t":299},"props":{"class":"mui-v-ProductLineCard-segment"}}],"tag":"div","props":{"class":"mui-v-ProductLineCard-top"}},{"tag":"h3","text":{"$t":298},"props":{"class":"mui-v-ProductLineCard-name"}},{"tag":"p","text":{"$t":294},"props":{"class":"mui-v-ProductLineCard-body"}},{"tag":"span","text":"(optional)","props":{"class":"mui-v-TradeInBand-opt"}},{"children":[{"tag":"svg","props":{"xmlns":"http://www.w3.org/2000/svg","width":"18","height":"18","viewBox":"0 0 24 24","fill":"none","stroke":"currentColor","stroke-width":"2","stroke-linecap":"round","stroke-linejoin":"round","aria-hidden":"true","focusable":"false","class":"mui-v-iconLg"},"children":[{"tag":"path","props":{"d":"M20 13c0 5-3.5 7.5-7.66 8.95a1 1 0 0 1-.67-.01C7.5 20.5 4 18 4 13V6a1 1 0 0 1 1-1c2 0 4.5-1.2 6.24-2.72a1.17 1.17 0 0 1 1.52 0C14.51 3.81 17 5 19 5a1 1 0 0 1 1 1z"}},{"$v":104}]}],"props":{"aria-hidden":"true","class":"mui-v-IconFeature-glyph"},"tag":"span"},{"tag":"span","text":{"$t":217}},{"tag":"svg","props":{"xmlns":"http://www.w3.org/2000/svg","width":"18","height":"18","viewBox":"0 0 24 24","fill":"none","stroke":"currentColor","stroke-width":"2","stroke-linecap":"round","stroke-linejoin":"round","aria-hidden":"true","focusable":"false","class":"mui-v-iconMd"},"children":[{"$v":135}]},{"tag":"path","props":{"d":"m6 9 6 6 6-6"}},{"tag":"p","text":{"$t":212},"props":{"class":"mui-v-FaqItem-a"}},{"tag":"path","props":{"d":"M8 2v4"}},{"tag":"path","props":{"d":"M16 2v4"}},{"tag":"rect","props":{"width":"18","height":"18","x":"3","y":"4","rx":"2"}},{"tag":"path","props":{"d":"M3 10h18"}},{"tag":"path","props":{"d":"m9 16 2 2 4-4"}},{"tag":"span","text":"(optional)","props":{"class":"mui-v-DemoRequestStrip-opt"}},{"tag":"svg","props":{"xmlns":"http://www.w3.org/2000/svg","width":"18","height":"18","viewBox":"0 0 24 24","fill":"none","stroke":"currentColor","stroke-width":"2","stroke-linecap":"round","stroke-linejoin":"round","aria-hidden":"true","focusable":"false","class":"mui-v-iconSm"},"children":[{"$v":15},{"$v":16}]},{"tag":"span","text":"Call"},{"tag":"span","text":"Text"},{"children":[{"tag":"svg","props":{"xmlns":"http://www.w3.org/2000/svg","width":"18","height":"18","viewBox":"0 0 24 24","fill":"none","stroke":"currentColor","stroke-width":"2","stroke-linecap":"round","stroke-linejoin":"round","aria-hidden":"true","focusable":"false","class":"mui-v-iconLg"},"children":[{"tag":"circle","props":{"cx":"6","cy":"6","r":"3"}},{"tag":"path","props":{"d":"M8.12 8.12 12 12"}},{"tag":"path","props":{"d":"M20 4 8.12 15.88"}},{"tag":"circle","props":{"cx":"6","cy":"18","r":"3"}},{"tag":"path","props":{"d":"M14.8 14.8 20 20"}}]}],"props":{"aria-hidden":"true","class":"mui-v-IconFeature-glyph"},"tag":"span"},{"tag":"svg","props":{"xmlns":"http://www.w3.org/2000/svg","width":"18","height":"18","viewBox":"0 0 24 24","fill":"none","stroke":"currentColor","stroke-width":"2","stroke-linecap":"round","stroke-linejoin":"round","aria-hidden":"true","focusable":"false","class":"mui-v-iconSm mui-v-PartsPage-check"},"children":[{"$v":49}]},{"tag":"span","text":"{{ t }}"},{"tag":"span","text":"Message us on Messenger"},{"tag":"span","text":"(opens Messenger in a new tab)","props":{"class":"mui-v-srOnly"}}]},"operations":{"id":"operations:2312419359bbb3ad","entries":[{"id":"intent:clipboard.copy","name":"clipboard.copy","lineage":"clipboard.copy","kind":"intent","owner":"engine","availability":"executable","exposed":false,"emitted":false,"description":"copy a value to the host clipboard","input":{"type":"object","additionalProperties":false,"properties":{"value":{}}},"result":null,"effect":"external","staticWrites":[],"dynamicWrites":false,"capability":null,"hostRequirements":["clipboard"],"command":null,"notify":{"ok":null,"problem":"silent"},"plan":{"capability":"host-intent","action":"intent.dispatch","policy":{"authorization":"manifest.intent","audit":"app","cost":"none","recovery":"reconcile","reversibility":"irreversible"},"problemCodes":["INTENT_FAILED","INTENT_REJECTED","CALL_UNHANDLED"]},"authority":null,"source":null,"provider":null},{"id":"intent:commands.checkStatus","name":"commands.checkStatus","lineage":"commands.checkStatus","kind":"intent","owner":"engine","availability":"executable","exposed":false,"emitted":false,"description":"check the outcome of one journal-accepted command without repeating it; value is its notification id or fx occurrence. Unknown or already terminal identities are inert.","input":{"type":"object","additionalProperties":false,"required":["value"],"properties":{"value":{"type":"string","description":"the accepted command's own identity"}}},"result":null,"effect":"read","staticWrites":[],"dynamicWrites":false,"capability":null,"hostRequirements":[],"command":null,"notify":{"ok":null,"problem":"silent"},"plan":{"capability":"host-intent","action":"intent.dispatch","policy":{"authorization":"manifest.intent","audit":"app","cost":"none","recovery":"reconcile","reversibility":"irreversible"},"problemCodes":["INTENT_FAILED","INTENT_REJECTED","CALL_UNHANDLED"]},"authority":null,"source":null,"provider":null},{"id":"intent:data.refresh","name":"data.refresh","lineage":"data.refresh","kind":"intent","owner":"data","availability":"executable","exposed":true,"emitted":false,"description":"retry acquisition of one declared data binding","input":{"type":"object","additionalProperties":false,"properties":{"value":{"type":"string"}}},"result":null,"effect":"read","staticWrites":[],"dynamicWrites":false,"capability":null,"hostRequirements":[],"command":null,"notify":{"ok":null,"problem":"silent"},"plan":{"capability":"host-intent","action":"intent.dispatch","policy":{"authorization":"manifest.intent","audit":"app","cost":"none","recovery":"reconcile","reversibility":"irreversible"},"problemCodes":["INTENT_FAILED","INTENT_REJECTED","CALL_UNHANDLED"]},"authority":null,"source":null,"provider":null},{"id":"intent:inbox.post","name":"inbox.post","lineage":"inbox.post","kind":"intent","owner":"engine","availability":"executable","exposed":false,"emitted":false,"description":"post a payload to a host-wired inbox channel","input":{"type":"object","additionalProperties":false,"required":["value"],"properties":{"value":{"type":"object","additionalProperties":false,"required":["to","payload"],"properties":{"to":{"type":"string"},"payload":{}}}}},"result":null,"effect":"external","staticWrites":[],"dynamicWrites":false,"capability":null,"hostRequirements":["inbox"],"command":null,"notify":{"ok":null,"problem":"silent"},"plan":{"capability":"host-intent","action":"intent.dispatch","policy":{"authorization":"manifest.intent","audit":"app","cost":"none","recovery":"reconcile","reversibility":"irreversible"},"problemCodes":["INTENT_FAILED","INTENT_REJECTED","CALL_UNHANDLED"]},"authority":null,"source":null,"provider":null},{"id":"intent:manifest.edit","name":"manifest.edit","lineage":"manifest.edit","kind":"intent","owner":"engine","availability":"executable","exposed":false,"emitted":false,"description":"submit a governed manifest patch","input":{"type":"object","additionalProperties":false,"required":["value"],"properties":{"value":{"type":"array","items":{"type":"object","additionalProperties":true}}}},"result":null,"effect":"write","staticWrites":[],"dynamicWrites":false,"capability":null,"hostRequirements":[],"command":null,"notify":{"ok":null,"problem":"silent"},"plan":{"capability":"host-intent","action":"intent.dispatch","policy":{"authorization":"manifest.intent","audit":"app","cost":"none","recovery":"reconcile","reversibility":"irreversible"},"problemCodes":["INTENT_FAILED","INTENT_REJECTED","CALL_UNHANDLED"]},"authority":null,"source":null,"provider":null},{"id":"intent:media.remove","name":"media.remove","lineage":"media","kind":"intent","owner":"asset","availability":"executable","exposed":true,"emitted":false,"description":"detach the `media` asset reference at `path`","input":{"type":"object","additionalProperties":false,"required":["path"],"properties":{"path":{"type":"string","description":"the state path of the asset reference cell"}}},"result":null,"effect":"write","staticWrites":[],"dynamicWrites":false,"capability":null,"hostRequirements":["asset:tenantMedia"],"command":null,"notify":{"ok":null,"problem":"auto"},"plan":{"capability":"host-intent","action":"intent.dispatch","policy":{"authorization":"manifest.intent","audit":"app","cost":"none","recovery":"retry-idempotent","reversibility":"compensating"},"problemCodes":["INTENT_FAILED","INTENT_REJECTED","CALL_UNHANDLED"]},"authority":null,"source":null,"provider":null},{"id":"intent:media.upload","name":"media.upload","lineage":"media","kind":"intent","owner":"asset","availability":"executable","exposed":true,"emitted":false,"description":"upload a user-chosen file into `media`; the bytes ride a user file-input event and cannot be supplied by a model call","input":{"type":"object","additionalProperties":false,"required":["path"],"properties":{"path":{"type":"string","description":"the state path of the asset reference cell"}}},"result":null,"effect":"external","staticWrites":[],"dynamicWrites":false,"capability":null,"hostRequirements":["asset:tenantMedia"],"command":null,"notify":{"ok":null,"problem":"auto"},"plan":{"capability":"host-intent","action":"intent.dispatch","policy":{"authorization":"manifest.intent","audit":"app","cost":"none","recovery":"reconcile","reversibility":"irreversible"},"problemCodes":["INTENT_FAILED","INTENT_REJECTED","CALL_UNHANDLED"]},"authority":null,"source":null,"provider":null},{"id":"intent:media.uploadUrl","name":"media.uploadUrl","lineage":"media","kind":"intent","owner":"asset","availability":"executable","exposed":true,"emitted":false,"description":"ask the selected provider to import an http(s) URL into `media`; the provider owns SSRF, timeout, and byte limits","input":{"type":"object","additionalProperties":false,"required":["path","value"],"properties":{"path":{"type":"string","description":"the state path of the asset reference cell"},"value":{"type":"string","description":"the http(s) URL to import"}}},"result":null,"effect":"external","staticWrites":[],"dynamicWrites":false,"capability":null,"hostRequirements":["asset:tenantMedia"],"command":null,"notify":{"ok":null,"problem":"auto"},"plan":{"capability":"host-intent","action":"intent.dispatch","policy":{"authorization":"manifest.intent","audit":"app","cost":"none","recovery":"reconcile","reversibility":"irreversible"},"problemCodes":["INTENT_FAILED","INTENT_REJECTED","CALL_UNHANDLED"]},"authority":null,"source":null,"provider":null},{"id":"intent:navigate","name":"navigate","lineage":"navigate","kind":"intent","owner":"engine","availability":"executable","exposed":true,"emitted":true,"description":"navigate within the declared route graph","input":{"type":"object","additionalProperties":false,"properties":{"to":{"type":"string"},"query":{"type":"object","additionalProperties":true},"replace":{"type":"boolean"}}},"result":null,"effect":"local","staticWrites":[],"dynamicWrites":false,"capability":null,"hostRequirements":[],"command":null,"notify":{"ok":null,"problem":"silent"},"plan":{"capability":"host-intent","action":"intent.dispatch","policy":{"authorization":"manifest.intent","audit":"app","cost":"none","recovery":"reconcile","reversibility":"irreversible"},"problemCodes":["INTENT_FAILED","INTENT_REJECTED","CALL_UNHANDLED"]},"authority":null,"source":null,"provider":null},{"id":"intent:notifications.dismiss","name":"notifications.dismiss","lineage":"notifications.dismiss","kind":"intent","owner":"engine","availability":"executable","exposed":false,"emitted":false,"description":"close one notification the engine's stream is carrying; `value` is that entry's `id`. Idempotent — an id already closed or never seen settles ok.","input":{"type":"object","additionalProperties":false,"required":["value"],"properties":{"value":{"type":"string","description":"the `id` of the notification row being closed"}}},"result":null,"effect":"local","staticWrites":[],"dynamicWrites":false,"capability":null,"hostRequirements":[],"command":null,"notify":{"ok":null,"problem":"silent"},"plan":{"capability":"host-intent","action":"intent.dispatch","policy":{"authorization":"manifest.intent","audit":"app","cost":"none","recovery":"reconcile","reversibility":"irreversible"},"problemCodes":["INTENT_FAILED","INTENT_REJECTED","CALL_UNHANDLED"]},"authority":null,"source":null,"provider":null},{"id":"intent:tradePhotos.remove","name":"tradePhotos.remove","lineage":"tradePhotos","kind":"intent","owner":"asset","availability":"executable","exposed":true,"emitted":false,"description":"detach the `tradePhotos` asset reference at `path`","input":{"type":"object","additionalProperties":false,"required":["path"],"properties":{"path":{"type":"string","description":"the state path of the asset reference cell"}}},"result":null,"effect":"write","staticWrites":[],"dynamicWrites":false,"capability":null,"hostRequirements":["asset:tenantMedia"],"command":null,"notify":{"ok":null,"problem":"silent"},"plan":{"capability":"host-intent","action":"intent.dispatch","policy":{"authorization":"manifest.intent","audit":"app","cost":"none","recovery":"retry-idempotent","reversibility":"compensating"},"problemCodes":["INTENT_FAILED","INTENT_REJECTED","CALL_UNHANDLED"]},"authority":null,"source":null,"provider":null},{"id":"intent:tradePhotos.upload","name":"tradePhotos.upload","lineage":"tradePhotos","kind":"intent","owner":"asset","availability":"executable","exposed":true,"emitted":true,"description":"upload a user-chosen file into `tradePhotos`; the bytes ride a user file-input event and cannot be supplied by a model call","input":{"type":"object","additionalProperties":false,"required":["path"],"properties":{"path":{"type":"string","description":"the state path of the asset reference cell"}}},"result":null,"effect":"external","staticWrites":[],"dynamicWrites":false,"capability":null,"hostRequirements":["asset:tenantMedia"],"command":null,"notify":{"ok":null,"problem":"silent"},"plan":{"capability":"host-intent","action":"intent.dispatch","policy":{"authorization":"manifest.intent","audit":"app","cost":"none","recovery":"reconcile","reversibility":"irreversible"},"problemCodes":["INTENT_FAILED","INTENT_REJECTED","CALL_UNHANDLED"]},"authority":null,"source":null,"provider":null},{"id":"intent:tradePhotos.uploadUrl","name":"tradePhotos.uploadUrl","lineage":"tradePhotos","kind":"intent","owner":"asset","availability":"executable","exposed":true,"emitted":false,"description":"ask the selected provider to import an http(s) URL into `tradePhotos`; the provider owns SSRF, timeout, and byte limits","input":{"type":"object","additionalProperties":false,"required":["path","value"],"properties":{"path":{"type":"string","description":"the state path of the asset reference cell"},"value":{"type":"string","description":"the http(s) URL to import"}}},"result":null,"effect":"external","staticWrites":[],"dynamicWrites":false,"capability":null,"hostRequirements":["asset:tenantMedia"],"command":null,"notify":{"ok":null,"problem":"silent"},"plan":{"capability":"host-intent","action":"intent.dispatch","policy":{"authorization":"manifest.intent","audit":"app","cost":"none","recovery":"reconcile","reversibility":"irreversible"},"problemCodes":["INTENT_FAILED","INTENT_REJECTED","CALL_UNHANDLED"]},"authority":null,"source":null,"provider":null},{"id":"intent:tuneupRequest.create","name":"tuneupRequest.create","lineage":"tuneupRequest","kind":"intent","owner":"data","availability":"executable","exposed":true,"emitted":true,"description":"create one row in the `tuneupRequest` collection — the fields ride UNDER `value`","input":{"type":"object","additionalProperties":false,"required":["value"],"properties":{"value":{"type":"object","additionalProperties":false,"properties":{"name":{"type":"string"},"phone":{"type":"string"},"email":{"type":"string"},"equipment":{"type":"string"},"message":{"type":"string"},"offer":{"type":"string"},"photo":{"type":"string"},"id":{}},"description":"the new row's fields"}}},"result":null,"effect":"write","staticWrites":[],"dynamicWrites":false,"capability":null,"hostRequirements":[],"command":null,"notify":{"ok":null,"problem":"silent"},"plan":{"capability":"host-intent","action":"intent.dispatch","policy":{"authorization":"manifest.intent","audit":"app","cost":"none","recovery":"reconcile","reversibility":"compensating"},"problemCodes":["INTENT_FAILED","INTENT_REJECTED","CALL_UNHANDLED"]},"authority":{"worldId":"world:6a97df7e3e6a37b8","operationId":"intent:tuneupRequest.create","actors":[{"name":"administrator","matcher":"first-light-actor.has","matcherId":"first-light-actor@1.0.0:has@c6067841bc80f0b3","config":{"actor":"first-light.app-administrator"}},{"name":"visitor","matcher":"first-light-actor.has","matcherId":"first-light-actor@1.0.0:has@c6067841bc80f0b3","config":{"actor":"first-light.app-visitor"}}],"grant":[{"actors":["visitor"]}],"id":"authority:782d599cb4b6d00e"},"source":null,"provider":{"source":"formEmail","owner":"app.form-email.web via capability `forms`","collection":"messages","anonymousCapable":null}},{"id":"op:append","name":"append","lineage":"append","kind":"op","owner":"engine","availability":"executable","exposed":false,"emitted":false,"description":"append the item to the end of the list at path","input":{"type":"object","additionalProperties":false,"required":["path","value"],"properties":{"when":{"type":"string","description":"optional whole {{ }} guard; it reads the evolving transaction draft, including earlier sibling writes, and the action runs only if it is truthy"},"debounce":{"type":"number","description":"optional trailing-edge debounce in ms — the DOM host coalesces rapid events and dispatches once after this quiet period (headless runners and source pushes ignore it)"},"andThen":{"oneOf":[{"type":"object"},{"type":"null"}],"description":"optional coupled follow-up op; it runs only when this op ran. A chained follow-up with its own when must be terminal because a false guard stops its tail; keep independent guards as siblings or use choose"},"path":{"description":"the list path to append to","type":"string"},"value":{"description":"the item to append"}}},"result":null,"effect":"local","staticWrites":[],"dynamicWrites":false,"capability":null,"hostRequirements":[],"command":null,"notify":{"ok":null,"problem":"silent"},"plan":null,"authority":null,"source":null,"provider":null},{"id":"op:choose","name":"choose","lineage":"choose","kind":"op","owner":"engine","availability":"executable","exposed":false,"emitted":false,"description":"branch: run `then` when cond is truthy, else `else` (lazy — only the taken branch runs)","input":{"type":"object","additionalProperties":false,"required":["cond"],"properties":{"when":{"type":"string","description":"optional whole {{ }} guard; it reads the evolving transaction draft, including earlier sibling writes, and the action runs only if it is truthy"},"debounce":{"type":"number","description":"optional trailing-edge debounce in ms — the DOM host coalesces rapid events and dispatches once after this quiet period (headless runners and source pushes ignore it)"},"andThen":{"oneOf":[{"type":"object"},{"type":"null"}],"description":"optional coupled follow-up op; it runs only when this op ran. A chained follow-up with its own when must be terminal because a false guard stops its tail; keep independent guards as siblings or use choose"},"cond":{"description":"a {{ }} condition: runs `then` if truthy, else `else`","type":"string"},"then":{"description":"the action run when cond is truthy","type":"object","default":null},"else":{"description":"the action run when cond is falsy","type":"object","default":null}}},"result":null,"effect":"local","staticWrites":[],"dynamicWrites":false,"capability":null,"hostRequirements":[],"command":null,"notify":{"ok":null,"problem":"silent"},"plan":null,"authority":null,"source":null,"provider":null},{"id":"op:clear","name":"clear","lineage":"clear","kind":"op","owner":"engine","availability":"executable","exposed":false,"emitted":false,"description":"reset a list path to [] (a provided `value` list replaces instead — but prefer setList for that; clear is the empty case)","input":{"type":"object","additionalProperties":false,"required":["path"],"properties":{"when":{"type":"string","description":"optional whole {{ }} guard; it reads the evolving transaction draft, including earlier sibling writes, and the action runs only if it is truthy"},"debounce":{"type":"number","description":"optional trailing-edge debounce in ms — the DOM host coalesces rapid events and dispatches once after this quiet period (headless runners and source pushes ignore it)"},"andThen":{"oneOf":[{"type":"object"},{"type":"null"}],"description":"optional coupled follow-up op; it runs only when this op ran. A chained follow-up with its own when must be terminal because a false guard stops its tail; keep independent guards as siblings or use choose"},"path":{"description":"the list path to reset","type":"string"},"value":{"description":"the list to reset to","type":"array","default":[]}}},"result":null,"effect":"local","staticWrites":[],"dynamicWrites":false,"capability":null,"hostRequirements":[],"command":null,"notify":{"ok":null,"problem":"silent"},"plan":null,"authority":null,"source":null,"provider":null},{"id":"op:decr","name":"decr","lineage":"decr","kind":"op","owner":"engine","availability":"executable","exposed":false,"emitted":false,"description":"subtract an amount (default 1) from a number at a state path","input":{"type":"object","additionalProperties":false,"required":["path"],"properties":{"when":{"type":"string","description":"optional whole {{ }} guard; it reads the evolving transaction draft, including earlier sibling writes, and the action runs only if it is truthy"},"debounce":{"type":"number","description":"optional trailing-edge debounce in ms — the DOM host coalesces rapid events and dispatches once after this quiet period (headless runners and source pushes ignore it)"},"andThen":{"oneOf":[{"type":"object"},{"type":"null"}],"description":"optional coupled follow-up op; it runs only when this op ran. A chained follow-up with its own when must be terminal because a false guard stops its tail; keep independent guards as siblings or use choose"},"path":{"description":"the numeric state path to subtract from","type":"string"},"by":{"description":"amount to subtract","type":"number","default":1}}},"result":null,"effect":"local","staticWrites":[],"dynamicWrites":false,"capability":null,"hostRequirements":[],"command":null,"notify":{"ok":null,"problem":"silent"},"plan":null,"authority":null,"source":null,"provider":null},{"id":"op:dedupe","name":"dedupe","lineage":"dedupe","kind":"op","owner":"engine","availability":"executable","exposed":false,"emitted":false,"description":"remove duplicate items from the list at path (by a key field when given, else by value)","input":{"type":"object","additionalProperties":false,"required":["path"],"properties":{"when":{"type":"string","description":"optional whole {{ }} guard; it reads the evolving transaction draft, including earlier sibling writes, and the action runs only if it is truthy"},"debounce":{"type":"number","description":"optional trailing-edge debounce in ms — the DOM host coalesces rapid events and dispatches once after this quiet period (headless runners and source pushes ignore it)"},"andThen":{"oneOf":[{"type":"object"},{"type":"null"}],"description":"optional coupled follow-up op; it runs only when this op ran. A chained follow-up with its own when must be terminal because a false guard stops its tail; keep independent guards as siblings or use choose"},"path":{"description":"the list path to dedupe","type":"string"},"key":{"description":"the field to dedupe by; omit to dedupe by whole value","type":"string","default":null}}},"result":null,"effect":"local","staticWrites":[],"dynamicWrites":false,"capability":null,"hostRequirements":[],"command":null,"notify":{"ok":null,"problem":"silent"},"plan":null,"authority":null,"source":null,"provider":null},{"id":"op:deepMerge","name":"deepMerge","lineage":"deepMerge","kind":"op","owner":"engine","availability":"executable","exposed":false,"emitted":false,"description":"recursively merge an object into the object at path (nested plain objects merge; arrays and scalars replace)","input":{"type":"object","additionalProperties":false,"required":["path","value"],"properties":{"when":{"type":"string","description":"optional whole {{ }} guard; it reads the evolving transaction draft, including earlier sibling writes, and the action runs only if it is truthy"},"debounce":{"type":"number","description":"optional trailing-edge debounce in ms — the DOM host coalesces rapid events and dispatches once after this quiet period (headless runners and source pushes ignore it)"},"andThen":{"oneOf":[{"type":"object"},{"type":"null"}],"description":"optional coupled follow-up op; it runs only when this op ran. A chained follow-up with its own when must be terminal because a false guard stops its tail; keep independent guards as siblings or use choose"},"path":{"description":"the object path to deep-merge into","type":"string"},"value":{"description":"the object recursively merged in (nested objects merge; arrays/scalars replace)","type":"object"}}},"result":null,"effect":"local","staticWrites":[],"dynamicWrites":false,"capability":null,"hostRequirements":[],"command":null,"notify":{"ok":null,"problem":"silent"},"plan":null,"authority":null,"source":null,"provider":null},{"id":"op:delete","name":"delete","lineage":"delete","kind":"op","owner":"engine","availability":"executable","exposed":false,"emitted":false,"description":"remove one own key from the object at path","input":{"type":"object","additionalProperties":false,"required":["path","key"],"properties":{"when":{"type":"string","description":"optional whole {{ }} guard; it reads the evolving transaction draft, including earlier sibling writes, and the action runs only if it is truthy"},"debounce":{"type":"number","description":"optional trailing-edge debounce in ms — the DOM host coalesces rapid events and dispatches once after this quiet period (headless runners and source pushes ignore it)"},"andThen":{"oneOf":[{"type":"object"},{"type":"null"}],"description":"optional coupled follow-up op; it runs only when this op ran. A chained follow-up with its own when must be terminal because a false guard stops its tail; keep independent guards as siblings or use choose"},"path":{"description":"the object path to remove a key from","type":"string"},"key":{"description":"the own key to remove","type":"string"}}},"result":null,"effect":"local","staticWrites":[],"dynamicWrites":false,"capability":null,"hostRequirements":[],"command":null,"notify":{"ok":null,"problem":"silent"},"plan":null,"authority":null,"source":null,"provider":null},{"id":"op:incr","name":"incr","lineage":"incr","kind":"op","owner":"engine","availability":"executable","exposed":false,"emitted":false,"description":"add an amount (default 1) to a number at a state path","input":{"type":"object","additionalProperties":false,"required":["path"],"properties":{"when":{"type":"string","description":"optional whole {{ }} guard; it reads the evolving transaction draft, including earlier sibling writes, and the action runs only if it is truthy"},"debounce":{"type":"number","description":"optional trailing-edge debounce in ms — the DOM host coalesces rapid events and dispatches once after this quiet period (headless runners and source pushes ignore it)"},"andThen":{"oneOf":[{"type":"object"},{"type":"null"}],"description":"optional coupled follow-up op; it runs only when this op ran. A chained follow-up with its own when must be terminal because a false guard stops its tail; keep independent guards as siblings or use choose"},"path":{"description":"the numeric state path to add to","type":"string"},"by":{"description":"amount to add","type":"number","default":1}}},"result":null,"effect":"local","staticWrites":[],"dynamicWrites":false,"capability":null,"hostRequirements":[],"command":null,"notify":{"ok":null,"problem":"silent"},"plan":null,"authority":null,"source":null,"provider":null},{"id":"op:insertAt","name":"insertAt","lineage":"insertAt","kind":"op","owner":"engine","availability":"executable","exposed":false,"emitted":false,"description":"insert the item at a position in the list at path (index clamps to the ends)","input":{"type":"object","additionalProperties":false,"required":["path","index","value"],"properties":{"when":{"type":"string","description":"optional whole {{ }} guard; it reads the evolving transaction draft, including earlier sibling writes, and the action runs only if it is truthy"},"debounce":{"type":"number","description":"optional trailing-edge debounce in ms — the DOM host coalesces rapid events and dispatches once after this quiet period (headless runners and source pushes ignore it)"},"andThen":{"oneOf":[{"type":"object"},{"type":"null"}],"description":"optional coupled follow-up op; it runs only when this op ran. A chained follow-up with its own when must be terminal because a false guard stops its tail; keep independent guards as siblings or use choose"},"path":{"description":"the list path to insert into","type":"string"},"index":{"description":"position to insert at (number or {{ }} expression; clamped to [0, length])","type":"number"},"value":{"description":"the item to insert"}}},"result":null,"effect":"local","staticWrites":[],"dynamicWrites":false,"capability":null,"hostRequirements":[],"command":null,"notify":{"ok":null,"problem":"silent"},"plan":null,"authority":null,"source":null,"provider":null},{"id":"op:merge","name":"merge","lineage":"merge","kind":"op","owner":"engine","availability":"executable","exposed":false,"emitted":false,"description":"shallow-merge an object into the object at path (top-level keys overwrite)","input":{"type":"object","additionalProperties":false,"required":["path","value"],"properties":{"when":{"type":"string","description":"optional whole {{ }} guard; it reads the evolving transaction draft, including earlier sibling writes, and the action runs only if it is truthy"},"debounce":{"type":"number","description":"optional trailing-edge debounce in ms — the DOM host coalesces rapid events and dispatches once after this quiet period (headless runners and source pushes ignore it)"},"andThen":{"oneOf":[{"type":"object"},{"type":"null"}],"description":"optional coupled follow-up op; it runs only when this op ran. A chained follow-up with its own when must be terminal because a false guard stops its tail; keep independent guards as siblings or use choose"},"path":{"description":"the object path to merge into","type":"string"},"value":{"description":"the object whose keys are shallow-merged in","type":"object"}}},"result":null,"effect":"local","staticWrites":[],"dynamicWrites":false,"capability":null,"hostRequirements":[],"command":null,"notify":{"ok":null,"problem":"silent"},"plan":null,"authority":null,"source":null,"provider":null},{"id":"op:move","name":"move","lineage":"move","kind":"op","owner":"engine","availability":"executable","exposed":false,"emitted":false,"description":"move a list item from one position to another (positions clamp; same-position is a no-op)","input":{"type":"object","additionalProperties":false,"required":["path","from","to"],"properties":{"when":{"type":"string","description":"optional whole {{ }} guard; it reads the evolving transaction draft, including earlier sibling writes, and the action runs only if it is truthy"},"debounce":{"type":"number","description":"optional trailing-edge debounce in ms — the DOM host coalesces rapid events and dispatches once after this quiet period (headless runners and source pushes ignore it)"},"andThen":{"oneOf":[{"type":"object"},{"type":"null"}],"description":"optional coupled follow-up op; it runs only when this op ran. A chained follow-up with its own when must be terminal because a false guard stops its tail; keep independent guards as siblings or use choose"},"path":{"description":"the list path to reorder","type":"string"},"from":{"description":"index to move from (number or {{ }} expression)","type":"number"},"to":{"description":"index to move to (number or {{ }} expression)","type":"number"}}},"result":null,"effect":"local","staticWrites":[],"dynamicWrites":false,"capability":null,"hostRequirements":[],"command":null,"notify":{"ok":null,"problem":"silent"},"plan":null,"authority":null,"source":null,"provider":null},{"id":"op:patchWhere","name":"patchWhere","lineage":"patchWhere","kind":"op","owner":"engine","availability":"executable","exposed":false,"emitted":false,"description":"in the list at path, shallow-merge an object into the row whose idKey matches id (untouched fields survive)","input":{"type":"object","additionalProperties":false,"required":["path","id","value"],"properties":{"when":{"type":"string","description":"optional whole {{ }} guard; it reads the evolving transaction draft, including earlier sibling writes, and the action runs only if it is truthy"},"debounce":{"type":"number","description":"optional trailing-edge debounce in ms — the DOM host coalesces rapid events and dispatches once after this quiet period (headless runners and source pushes ignore it)"},"andThen":{"oneOf":[{"type":"object"},{"type":"null"}],"description":"optional coupled follow-up op; it runs only when this op ran. A chained follow-up with its own when must be terminal because a false guard stops its tail; keep independent guards as siblings or use choose"},"path":{"description":"the list path","type":"string"},"id":{"description":"the id value to match"},"idKey":{"description":"the field matched against id (read own-only)","type":"string","default":"id"},"value":{"description":"the object shallow-merged into the matched row (top-level keys overwrite)","type":"object"}}},"result":null,"effect":"local","staticWrites":[],"dynamicWrites":false,"capability":null,"hostRequirements":[],"command":null,"notify":{"ok":null,"problem":"silent"},"plan":null,"authority":null,"source":null,"provider":null},{"id":"op:prepend","name":"prepend","lineage":"prepend","kind":"op","owner":"engine","availability":"executable","exposed":false,"emitted":false,"description":"insert the item at the start of the list at path","input":{"type":"object","additionalProperties":false,"required":["path","value"],"properties":{"when":{"type":"string","description":"optional whole {{ }} guard; it reads the evolving transaction draft, including earlier sibling writes, and the action runs only if it is truthy"},"debounce":{"type":"number","description":"optional trailing-edge debounce in ms — the DOM host coalesces rapid events and dispatches once after this quiet period (headless runners and source pushes ignore it)"},"andThen":{"oneOf":[{"type":"object"},{"type":"null"}],"description":"optional coupled follow-up op; it runs only when this op ran. A chained follow-up with its own when must be terminal because a false guard stops its tail; keep independent guards as siblings or use choose"},"path":{"description":"the list path to prepend to","type":"string"},"value":{"description":"the item to prepend"}}},"result":null,"effect":"local","staticWrites":[],"dynamicWrites":false,"capability":null,"hostRequirements":[],"command":null,"notify":{"ok":null,"problem":"silent"},"plan":null,"authority":null,"source":null,"provider":null},{"id":"op:pushUnique","name":"pushUnique","lineage":"pushUnique","kind":"op","owner":"engine","availability":"executable","exposed":false,"emitted":false,"description":"append the item to the list only if it is not already present","input":{"type":"object","additionalProperties":false,"required":["path","value"],"properties":{"when":{"type":"string","description":"optional whole {{ }} guard; it reads the evolving transaction draft, including earlier sibling writes, and the action runs only if it is truthy"},"debounce":{"type":"number","description":"optional trailing-edge debounce in ms — the DOM host coalesces rapid events and dispatches once after this quiet period (headless runners and source pushes ignore it)"},"andThen":{"oneOf":[{"type":"object"},{"type":"null"}],"description":"optional coupled follow-up op; it runs only when this op ran. A chained follow-up with its own when must be terminal because a false guard stops its tail; keep independent guards as siblings or use choose"},"path":{"description":"the list path to append to","type":"string"},"value":{"description":"the item to append if absent"}}},"result":null,"effect":"local","staticWrites":[],"dynamicWrites":false,"capability":null,"hostRequirements":[],"command":null,"notify":{"ok":null,"problem":"silent"},"plan":null,"authority":null,"source":null,"provider":null},{"id":"op:removeAt","name":"removeAt","lineage":"removeAt","kind":"op","owner":"engine","availability":"executable","exposed":false,"emitted":false,"description":"remove the item at a position from the list at path","input":{"type":"object","additionalProperties":false,"required":["path","index"],"properties":{"when":{"type":"string","description":"optional whole {{ }} guard; it reads the evolving transaction draft, including earlier sibling writes, and the action runs only if it is truthy"},"debounce":{"type":"number","description":"optional trailing-edge debounce in ms — the DOM host coalesces rapid events and dispatches once after this quiet period (headless runners and source pushes ignore it)"},"andThen":{"oneOf":[{"type":"object"},{"type":"null"}],"description":"optional coupled follow-up op; it runs only when this op ran. A chained follow-up with its own when must be terminal because a false guard stops its tail; keep independent guards as siblings or use choose"},"path":{"description":"the list path to remove from","type":"string"},"index":{"description":"position to remove (number or {{ }} expression)","type":"number"}}},"result":null,"effect":"local","staticWrites":[],"dynamicWrites":false,"capability":null,"hostRequirements":[],"command":null,"notify":{"ok":null,"problem":"silent"},"plan":null,"authority":null,"source":null,"provider":null},{"id":"op:removeFromList","name":"removeFromList","lineage":"removeFromList","kind":"op","owner":"engine","availability":"executable","exposed":false,"emitted":false,"description":"remove every occurrence of the item from the list","input":{"type":"object","additionalProperties":false,"required":["path","value"],"properties":{"when":{"type":"string","description":"optional whole {{ }} guard; it reads the evolving transaction draft, including earlier sibling writes, and the action runs only if it is truthy"},"debounce":{"type":"number","description":"optional trailing-edge debounce in ms — the DOM host coalesces rapid events and dispatches once after this quiet period (headless runners and source pushes ignore it)"},"andThen":{"oneOf":[{"type":"object"},{"type":"null"}],"description":"optional coupled follow-up op; it runs only when this op ran. A chained follow-up with its own when must be terminal because a false guard stops its tail; keep independent guards as siblings or use choose"},"path":{"description":"the list path to update","type":"string"},"value":{"description":"the item to remove"}}},"result":null,"effect":"local","staticWrites":[],"dynamicWrites":false,"capability":null,"hostRequirements":[],"command":null,"notify":{"ok":null,"problem":"silent"},"plan":null,"authority":null,"source":null,"provider":null},{"id":"op:removeWhere","name":"removeWhere","lineage":"removeWhere","kind":"op","owner":"engine","availability":"executable","exposed":false,"emitted":false,"description":"remove every row whose key field equals the value from the list at path","input":{"type":"object","additionalProperties":false,"required":["path","key","value"],"properties":{"when":{"type":"string","description":"optional whole {{ }} guard; it reads the evolving transaction draft, including earlier sibling writes, and the action runs only if it is truthy"},"debounce":{"type":"number","description":"optional trailing-edge debounce in ms — the DOM host coalesces rapid events and dispatches once after this quiet period (headless runners and source pushes ignore it)"},"andThen":{"oneOf":[{"type":"object"},{"type":"null"}],"description":"optional coupled follow-up op; it runs only when this op ran. A chained follow-up with its own when must be terminal because a false guard stops its tail; keep independent guards as siblings or use choose"},"path":{"description":"the list path to filter","type":"string"},"key":{"description":"the field compared on each item (read own-only)","type":"string"},"value":{"description":"items whose key equals this are dropped"}}},"result":null,"effect":"local","staticWrites":[],"dynamicWrites":false,"capability":null,"hostRequirements":[],"command":null,"notify":{"ok":null,"problem":"silent"},"plan":null,"authority":null,"source":null,"provider":null},{"id":"op:selectAll","name":"selectAll","lineage":"selectAll","kind":"op","owner":"engine","availability":"executable","exposed":false,"emitted":false,"description":"write the key of every non-disabled option object from `from` into the list at path","input":{"type":"object","additionalProperties":false,"required":["path","from"],"properties":{"when":{"type":"string","description":"optional whole {{ }} guard; it reads the evolving transaction draft, including earlier sibling writes, and the action runs only if it is truthy"},"debounce":{"type":"number","description":"optional trailing-edge debounce in ms — the DOM host coalesces rapid events and dispatches once after this quiet period (headless runners and source pushes ignore it)"},"andThen":{"oneOf":[{"type":"object"},{"type":"null"}],"description":"optional coupled follow-up op; it runs only when this op ran. A chained follow-up with its own when must be terminal because a false guard stops its tail; keep independent guards as siblings or use choose"},"path":{"description":"the path to write the selection to","type":"string"},"from":{"description":"the source list to select from","type":"array"},"key":{"description":"the field read from each item","type":"string","default":"value"}}},"result":null,"effect":"local","staticWrites":[],"dynamicWrites":false,"capability":null,"hostRequirements":[],"command":null,"notify":{"ok":null,"problem":"silent"},"plan":null,"authority":null,"source":null,"provider":null},{"id":"op:set","name":"set","lineage":"set","kind":"op","owner":"engine","availability":"executable","exposed":true,"emitted":true,"description":"write a value to a state path","input":{"type":"object","additionalProperties":false,"required":["path","value"],"properties":{"when":{"type":"string","description":"optional whole {{ }} guard; it reads the evolving transaction draft, including earlier sibling writes, and the action runs only if it is truthy"},"debounce":{"type":"number","description":"optional trailing-edge debounce in ms — the DOM host coalesces rapid events and dispatches once after this quiet period (headless runners and source pushes ignore it)"},"andThen":{"oneOf":[{"type":"object"},{"type":"null"}],"description":"optional coupled follow-up op; it runs only when this op ran. A chained follow-up with its own when must be terminal because a false guard stops its tail; keep independent guards as siblings or use choose"},"path":{"description":"the state path to write","type":"string"},"value":{"description":"the value to write"}}},"result":null,"effect":"local","staticWrites":[],"dynamicWrites":false,"capability":null,"hostRequirements":[],"command":null,"notify":{"ok":null,"problem":"silent"},"plan":null,"authority":null,"source":null,"provider":null},{"id":"op:setIfEmpty","name":"setIfEmpty","lineage":"setIfEmpty","kind":"op","owner":"engine","availability":"executable","exposed":false,"emitted":false,"description":"write the value only when the path is empty (null/undefined/empty string)","input":{"type":"object","additionalProperties":false,"required":["path","value"],"properties":{"when":{"type":"string","description":"optional whole {{ }} guard; it reads the evolving transaction draft, including earlier sibling writes, and the action runs only if it is truthy"},"debounce":{"type":"number","description":"optional trailing-edge debounce in ms — the DOM host coalesces rapid events and dispatches once after this quiet period (headless runners and source pushes ignore it)"},"andThen":{"oneOf":[{"type":"object"},{"type":"null"}],"description":"optional coupled follow-up op; it runs only when this op ran. A chained follow-up with its own when must be terminal because a false guard stops its tail; keep independent guards as siblings or use choose"},"path":{"description":"the path to default","type":"string"},"value":{"description":"the value to set when the path is null/absent"}}},"result":null,"effect":"local","staticWrites":[],"dynamicWrites":false,"capability":null,"hostRequirements":[],"command":null,"notify":{"ok":null,"problem":"silent"},"plan":null,"authority":null,"source":null,"provider":null},{"id":"op:setList","name":"setList","lineage":"setList","kind":"op","owner":"engine","availability":"executable","exposed":false,"emitted":false,"description":"write a whole list to a state path (a non-array value becomes [])","input":{"type":"object","additionalProperties":false,"required":["path","value"],"properties":{"when":{"type":"string","description":"optional whole {{ }} guard; it reads the evolving transaction draft, including earlier sibling writes, and the action runs only if it is truthy"},"debounce":{"type":"number","description":"optional trailing-edge debounce in ms — the DOM host coalesces rapid events and dispatches once after this quiet period (headless runners and source pushes ignore it)"},"andThen":{"oneOf":[{"type":"object"},{"type":"null"}],"description":"optional coupled follow-up op; it runs only when this op ran. A chained follow-up with its own when must be terminal because a false guard stops its tail; keep independent guards as siblings or use choose"},"path":{"description":"the list path to write","type":"string"},"value":{"description":"the list value to set","type":"array"}}},"result":null,"effect":"local","staticWrites":[],"dynamicWrites":false,"capability":null,"hostRequirements":[],"command":null,"notify":{"ok":null,"problem":"silent"},"plan":null,"authority":null,"source":null,"provider":null},{"id":"op:setMinMax","name":"setMinMax","lineage":"setMinMax","kind":"op","owner":"engine","availability":"executable","exposed":false,"emitted":false,"description":"sort the pair: write the lesser of a/b to minPath and the greater to maxPath","input":{"type":"object","additionalProperties":false,"required":["a","b","minPath","maxPath"],"properties":{"when":{"type":"string","description":"optional whole {{ }} guard; it reads the evolving transaction draft, including earlier sibling writes, and the action runs only if it is truthy"},"debounce":{"type":"number","description":"optional trailing-edge debounce in ms — the DOM host coalesces rapid events and dispatches once after this quiet period (headless runners and source pushes ignore it)"},"andThen":{"oneOf":[{"type":"object"},{"type":"null"}],"description":"optional coupled follow-up op; it runs only when this op ran. A chained follow-up with its own when must be terminal because a false guard stops its tail; keep independent guards as siblings or use choose"},"a":{"description":"first value to compare"},"b":{"description":"second value to compare"},"minPath":{"description":"path to write the lesser of a and b","type":"string"},"maxPath":{"description":"path to write the greater of a and b","type":"string"}}},"result":null,"effect":"local","staticWrites":[],"dynamicWrites":false,"capability":null,"hostRequirements":[],"command":null,"notify":{"ok":null,"problem":"silent"},"plan":null,"authority":null,"source":null,"provider":null},{"id":"op:sortList","name":"sortList","lineage":"sortList","kind":"op","owner":"engine","availability":"executable","exposed":false,"emitted":false,"description":"reorder the list at path by a field (through the sortBy helper), ascending or descending","input":{"type":"object","additionalProperties":false,"required":["path","key"],"properties":{"when":{"type":"string","description":"optional whole {{ }} guard; it reads the evolving transaction draft, including earlier sibling writes, and the action runs only if it is truthy"},"debounce":{"type":"number","description":"optional trailing-edge debounce in ms — the DOM host coalesces rapid events and dispatches once after this quiet period (headless runners and source pushes ignore it)"},"andThen":{"oneOf":[{"type":"object"},{"type":"null"}],"description":"optional coupled follow-up op; it runs only when this op ran. A chained follow-up with its own when must be terminal because a false guard stops its tail; keep independent guards as siblings or use choose"},"path":{"description":"the list path to sort","type":"string"},"key":{"description":"the field to sort by","type":"string"},"dir":{"description":"'desc' reverses; otherwise ascending","type":"string","default":"asc"}}},"result":null,"effect":"local","staticWrites":[],"dynamicWrites":false,"capability":null,"hostRequirements":[],"command":null,"notify":{"ok":null,"problem":"silent"},"plan":null,"authority":null,"source":null,"provider":null},{"id":"op:swap","name":"swap","lineage":"swap","kind":"op","owner":"engine","availability":"executable","exposed":false,"emitted":false,"description":"exchange the values at two state paths","input":{"type":"object","additionalProperties":false,"required":["pathA","pathB"],"properties":{"when":{"type":"string","description":"optional whole {{ }} guard; it reads the evolving transaction draft, including earlier sibling writes, and the action runs only if it is truthy"},"debounce":{"type":"number","description":"optional trailing-edge debounce in ms — the DOM host coalesces rapid events and dispatches once after this quiet period (headless runners and source pushes ignore it)"},"andThen":{"oneOf":[{"type":"object"},{"type":"null"}],"description":"optional coupled follow-up op; it runs only when this op ran. A chained follow-up with its own when must be terminal because a false guard stops its tail; keep independent guards as siblings or use choose"},"pathA":{"description":"one state path","type":"string"},"pathB":{"description":"the other state path","type":"string"}}},"result":null,"effect":"local","staticWrites":[],"dynamicWrites":false,"capability":null,"hostRequirements":[],"command":null,"notify":{"ok":null,"problem":"silent"},"plan":null,"authority":null,"source":null,"provider":null},{"id":"op:toggle","name":"toggle","lineage":"toggle","kind":"op","owner":"engine","availability":"executable","exposed":true,"emitted":true,"description":"flip a boolean at a state path","input":{"type":"object","additionalProperties":false,"required":["path"],"properties":{"when":{"type":"string","description":"optional whole {{ }} guard; it reads the evolving transaction draft, including earlier sibling writes, and the action runs only if it is truthy"},"debounce":{"type":"number","description":"optional trailing-edge debounce in ms — the DOM host coalesces rapid events and dispatches once after this quiet period (headless runners and source pushes ignore it)"},"andThen":{"oneOf":[{"type":"object"},{"type":"null"}],"description":"optional coupled follow-up op; it runs only when this op ran. A chained follow-up with its own when must be terminal because a false guard stops its tail; keep independent guards as siblings or use choose"},"path":{"description":"the boolean state path to flip","type":"string"}}},"result":null,"effect":"local","staticWrites":[],"dynamicWrites":false,"capability":null,"hostRequirements":[],"command":null,"notify":{"ok":null,"problem":"silent"},"plan":null,"authority":null,"source":null,"provider":null},{"id":"op:toggleInList","name":"toggleInList","lineage":"toggleInList","kind":"op","owner":"engine","availability":"executable","exposed":false,"emitted":false,"description":"add the item to the list if absent, remove it if present","input":{"type":"object","additionalProperties":false,"required":["path","value"],"properties":{"when":{"type":"string","description":"optional whole {{ }} guard; it reads the evolving transaction draft, including earlier sibling writes, and the action runs only if it is truthy"},"debounce":{"type":"number","description":"optional trailing-edge debounce in ms — the DOM host coalesces rapid events and dispatches once after this quiet period (headless runners and source pushes ignore it)"},"andThen":{"oneOf":[{"type":"object"},{"type":"null"}],"description":"optional coupled follow-up op; it runs only when this op ran. A chained follow-up with its own when must be terminal because a false guard stops its tail; keep independent guards as siblings or use choose"},"path":{"description":"the list path to update","type":"string"},"value":{"description":"the item to add if absent or remove if present"}}},"result":null,"effect":"local","staticWrites":[],"dynamicWrites":false,"capability":null,"hostRequirements":[],"command":null,"notify":{"ok":null,"problem":"silent"},"plan":null,"authority":null,"source":null,"provider":null},{"id":"op:unsetPath","name":"unsetPath","lineage":"unsetPath","kind":"op","owner":"engine","availability":"executable","exposed":false,"emitted":false,"description":"remove the state slot at path entirely (the key is deleted, not set to undefined)","input":{"type":"object","additionalProperties":false,"required":["path"],"properties":{"when":{"type":"string","description":"optional whole {{ }} guard; it reads the evolving transaction draft, including earlier sibling writes, and the action runs only if it is truthy"},"debounce":{"type":"number","description":"optional trailing-edge debounce in ms — the DOM host coalesces rapid events and dispatches once after this quiet period (headless runners and source pushes ignore it)"},"andThen":{"oneOf":[{"type":"object"},{"type":"null"}],"description":"optional coupled follow-up op; it runs only when this op ran. A chained follow-up with its own when must be terminal because a false guard stops its tail; keep independent guards as siblings or use choose"},"path":{"description":"the property path to remove; dynamic-keyed brackets are resolved against scope at dispatch","type":"string"}}},"result":null,"effect":"local","staticWrites":[],"dynamicWrites":false,"capability":null,"hostRequirements":[],"command":null,"notify":{"ok":null,"problem":"silent"},"plan":null,"authority":null,"source":null,"provider":null},{"id":"op:updateWhere","name":"updateWhere","lineage":"updateWhere","kind":"op","owner":"engine","availability":"executable","exposed":false,"emitted":false,"description":"in the list at path, set one field on the row whose idKey matches id","input":{"type":"object","additionalProperties":false,"required":["path","id","field","value"],"properties":{"when":{"type":"string","description":"optional whole {{ }} guard; it reads the evolving transaction draft, including earlier sibling writes, and the action runs only if it is truthy"},"debounce":{"type":"number","description":"optional trailing-edge debounce in ms — the DOM host coalesces rapid events and dispatches once after this quiet period (headless runners and source pushes ignore it)"},"andThen":{"oneOf":[{"type":"object"},{"type":"null"}],"description":"optional coupled follow-up op; it runs only when this op ran. A chained follow-up with its own when must be terminal because a false guard stops its tail; keep independent guards as siblings or use choose"},"path":{"description":"the list path to update","type":"string"},"id":{"description":"the id value to match"},"idKey":{"description":"the field matched against id","type":"string","default":"id"},"field":{"description":"the field written on the matched row","type":"string"},"value":{"description":"the value written to field"}}},"result":null,"effect":"local","staticWrites":[],"dynamicWrites":false,"capability":null,"hostRequirements":[],"command":null,"notify":{"ok":null,"problem":"silent"},"plan":null,"authority":null,"source":null,"provider":null},{"id":"op:upsert","name":"upsert","lineage":"upsert","kind":"op","owner":"engine","availability":"executable","exposed":false,"emitted":false,"description":"in the list at path, replace the row with a matching id or append it when absent","input":{"type":"object","additionalProperties":false,"required":["path","value","key"],"properties":{"when":{"type":"string","description":"optional whole {{ }} guard; it reads the evolving transaction draft, including earlier sibling writes, and the action runs only if it is truthy"},"debounce":{"type":"number","description":"optional trailing-edge debounce in ms — the DOM host coalesces rapid events and dispatches once after this quiet period (headless runners and source pushes ignore it)"},"andThen":{"oneOf":[{"type":"object"},{"type":"null"}],"description":"optional coupled follow-up op; it runs only when this op ran. A chained follow-up with its own when must be terminal because a false guard stops its tail; keep independent guards as siblings or use choose"},"path":{"description":"the list path","type":"string"},"value":{"description":"the row to insert or replace","type":"object"},"key":{"description":"the field matched to find an existing row (own-only)","type":"string"}}},"result":null,"effect":"local","staticWrites":[],"dynamicWrites":false,"capability":null,"hostRequirements":[],"command":null,"notify":{"ok":null,"problem":"silent"},"plan":null,"authority":null,"source":null,"provider":null},{"id":"source:catalogs.read","name":"catalogs.read","lineage":"catalogs","kind":"source","owner":"data","availability":"executable","exposed":true,"emitted":false,"description":"acquire the reviewed `catalogs` binding projection","input":{"type":"object","additionalProperties":false},"result":{"type":"object","additionalProperties":false,"properties":{"count":{"type":"number","description":"number of rows admitted by this acquisition"},"hasMore":{"type":"boolean","description":"whether another reviewed page may be available"}}},"effect":"read","staticWrites":["catalogs"],"dynamicWrites":false,"capability":null,"hostRequirements":["source:opehub"],"command":null,"notify":{"ok":null,"problem":"silent"},"plan":null,"authority":{"worldId":"world:6a97df7e3e6a37b8","operationId":"source:catalogs.read","actors":[{"name":"administrator","matcher":"first-light-actor.has","matcherId":"first-light-actor@1.0.0:has@c6067841bc80f0b3","config":{"actor":"first-light.app-administrator"}},{"name":"visitor","matcher":"first-light-actor.has","matcherId":"first-light-actor@1.0.0:has@c6067841bc80f0b3","config":{"actor":"first-light.app-visitor"}}],"grant":[{"actors":["visitor"]}],"id":"authority:4214fc6dd860e2bb"},"source":{"name":"opehub","owner":"opehub.rest via capability `opehub`","definition":"source:562a17210b9ea3a7","collection":"catalogs"},"provider":null},{"id":"source:categories.read","name":"categories.read","lineage":"categories","kind":"source","owner":"data","availability":"executable","exposed":true,"emitted":false,"description":"acquire the reviewed `categories` binding projection","input":{"type":"object","additionalProperties":false},"result":{"type":"object","additionalProperties":false,"properties":{"count":{"type":"number","description":"number of rows admitted by this acquisition"},"hasMore":{"type":"boolean","description":"whether another reviewed page may be available"}}},"effect":"read","staticWrites":["categories"],"dynamicWrites":false,"capability":null,"hostRequirements":["source:opehub"],"command":null,"notify":{"ok":null,"problem":"silent"},"plan":null,"authority":{"worldId":"world:6a97df7e3e6a37b8","operationId":"source:categories.read","actors":[{"name":"administrator","matcher":"first-light-actor.has","matcherId":"first-light-actor@1.0.0:has@c6067841bc80f0b3","config":{"actor":"first-light.app-administrator"}},{"name":"visitor","matcher":"first-light-actor.has","matcherId":"first-light-actor@1.0.0:has@c6067841bc80f0b3","config":{"actor":"first-light.app-visitor"}}],"grant":[{"actors":["visitor"]}],"id":"authority:c35f813d62448b8f"},"source":{"name":"opehub","owner":"opehub.rest via capability `opehub`","definition":"source:562a17210b9ea3a7","collection":"categories"},"provider":null},{"id":"source:inventory.read","name":"inventory.read","lineage":"inventory","kind":"source","owner":"data","availability":"executable","exposed":true,"emitted":false,"description":"acquire the reviewed `inventory` binding projection","input":{"type":"object","additionalProperties":false},"result":{"type":"object","additionalProperties":false,"properties":{"count":{"type":"number","description":"number of rows admitted by this acquisition"},"hasMore":{"type":"boolean","description":"whether another reviewed page may be available"}}},"effect":"read","staticWrites":["inventory"],"dynamicWrites":false,"capability":null,"hostRequirements":["source:opehub"],"command":null,"notify":{"ok":null,"problem":"silent"},"plan":null,"authority":{"worldId":"world:6a97df7e3e6a37b8","operationId":"source:inventory.read","actors":[{"name":"administrator","matcher":"first-light-actor.has","matcherId":"first-light-actor@1.0.0:has@c6067841bc80f0b3","config":{"actor":"first-light.app-administrator"}},{"name":"visitor","matcher":"first-light-actor.has","matcherId":"first-light-actor@1.0.0:has@c6067841bc80f0b3","config":{"actor":"first-light.app-visitor"}}],"grant":[{"actors":["visitor"]}],"id":"authority:a1600e3bb968d211"},"source":{"name":"opehub","owner":"opehub.rest via capability `opehub`","definition":"source:562a17210b9ea3a7","collection":"inventory"},"provider":null},{"id":"source:reviewSearch.read","name":"reviewSearch.read","lineage":"reviewSearch","kind":"source","owner":"data","availability":"executable","exposed":true,"emitted":false,"description":"acquire the reviewed `reviewSearch` binding projection","input":{"type":"object","additionalProperties":false},"result":{"type":"object","additionalProperties":false,"properties":{"count":{"type":"number","description":"number of rows admitted by this acquisition"},"hasMore":{"type":"boolean","description":"whether another reviewed page may be available"}}},"effect":"read","staticWrites":["reviewSearch"],"dynamicWrites":false,"capability":null,"hostRequirements":["source:googleMaps"],"command":null,"notify":{"ok":null,"problem":"silent"},"plan":null,"authority":{"worldId":"world:6a97df7e3e6a37b8","operationId":"source:reviewSearch.read","actors":[{"name":"administrator","matcher":"first-light-actor.has","matcherId":"first-light-actor@1.0.0:has@c6067841bc80f0b3","config":{"actor":"first-light.app-administrator"}},{"name":"visitor","matcher":"first-light-actor.has","matcherId":"first-light-actor@1.0.0:has@c6067841bc80f0b3","config":{"actor":"first-light.app-visitor"}}],"grant":[{"actors":["visitor"]}],"id":"authority:ff2951296400abdf"},"source":{"name":"googleMaps","owner":"google.maps.rest via capability `maps`","definition":"source:142cf20c8fb9e0fa","collection":"searchText"},"provider":null},{"id":"source:tuneupRequest.read","name":"tuneupRequest.read","lineage":"tuneupRequest","kind":"source","owner":"data","availability":"executable","exposed":true,"emitted":false,"description":"acquire the reviewed `tuneupRequest` binding projection","input":{"type":"object","additionalProperties":false},"result":{"type":"object","additionalProperties":false,"properties":{"count":{"type":"number","description":"number of rows admitted by this acquisition"},"hasMore":{"type":"boolean","description":"whether another reviewed page may be available"}}},"effect":"read","staticWrites":["tuneupRequest"],"dynamicWrites":false,"capability":null,"hostRequirements":["source:formEmail"],"command":null,"notify":{"ok":null,"problem":"silent"},"plan":null,"authority":{"worldId":"world:6a97df7e3e6a37b8","operationId":"source:tuneupRequest.read","actors":[{"name":"administrator","matcher":"first-light-actor.has","matcherId":"first-light-actor@1.0.0:has@c6067841bc80f0b3","config":{"actor":"first-light.app-administrator"}},{"name":"visitor","matcher":"first-light-actor.has","matcherId":"first-light-actor@1.0.0:has@c6067841bc80f0b3","config":{"actor":"first-light.app-visitor"}}],"grant":[{"actors":["visitor"]}],"id":"authority:4378545743430185"},"source":{"name":"formEmail","owner":"app.form-email.web via capability `forms`","definition":"source:298d46816ed88713","collection":"messages"},"provider":null},{"id":"source:wholegoods.read","name":"wholegoods.read","lineage":"wholegoods","kind":"source","owner":"data","availability":"executable","exposed":true,"emitted":false,"description":"acquire the reviewed `wholegoods` binding projection","input":{"type":"object","additionalProperties":false},"result":{"type":"object","additionalProperties":false,"properties":{"count":{"type":"number","description":"number of rows admitted by this acquisition"},"hasMore":{"type":"boolean","description":"whether another reviewed page may be available"}}},"effect":"read","staticWrites":["wholegoods"],"dynamicWrites":false,"capability":null,"hostRequirements":["source:opehub"],"command":null,"notify":{"ok":null,"problem":"silent"},"plan":null,"authority":{"worldId":"world:6a97df7e3e6a37b8","operationId":"source:wholegoods.read","actors":[{"name":"administrator","matcher":"first-light-actor.has","matcherId":"first-light-actor@1.0.0:has@c6067841bc80f0b3","config":{"actor":"first-light.app-administrator"}},{"name":"visitor","matcher":"first-light-actor.has","matcherId":"first-light-actor@1.0.0:has@c6067841bc80f0b3","config":{"actor":"first-light.app-visitor"}}],"grant":[{"actors":["visitor"]}],"id":"authority:a5e43d6ad1a66750"},"source":{"name":"opehub","owner":"opehub.rest via capability `opehub`","definition":"source:562a17210b9ea3a7","collection":"wholegoods"},"provider":null}],"errors":[]},"references":{"schema":"singularity.manifest-reference-graph.v1","version":"1","worldContractId":"world-contract:01c8bac583878623","vocabulary":{"helpers":["addTime","assetUrl","capitalize","contains","count","currency","datePart","filterBy","findBy","fixed","fromEntries","get","groupRows","includes","isBefore","join","length","lookup","lower","mod","pluck","pluralize","repeat","round","searchBy","sortBy","startsWith","take","tenant_media__imageUrl","thousands","trim","truncate","zip"],"operations":["set","toggle"],"namespaces":["tenant-media"]},"components":{"names":["legal__Links","lucide__ArrowRight","lucide__ArrowUpRight","lucide__Award","lucide__BadgeCheck","lucide__CalendarCheck","lucide__Camera","lucide__Check","lucide__ChevronDown","lucide__ChevronLeft","lucide__ChevronRight","lucide__ClipboardCheck","lucide__Clock","lucide__Droplet","lucide__Eye","lucide__FileText","lucide__Gauge","lucide__Image","lucide__Info","lucide__ListChecks","lucide__MapPin","lucide__MapPinned","lucide__Menu","lucide__MessageCircle","lucide__MessageSquare","lucide__Navigation","lucide__Pause","lucide__Phone","lucide__Play","lucide__Scissors","lucide__Search","lucide__Send","lucide__ShieldCheck","lucide__Smartphone","lucide__Snowflake","lucide__Sprout","lucide__SquarePen","lucide__Star","lucide__Truck","lucide__Wrench","lucide__X"],"namespaces":["legal","lucide"]},"behaviors":["autoFocus","delay","escapeToClose","modalSurface"],"lifecycle":{"triggers":[],"agents":[]},"policy":{"actorMatchers":["first-light-actor.has"]},"capabilities":{"declarations":[{"name":"analytics","kind":"tracking.google-tag"},{"name":"firstLight","kind":"first-light.builder"},{"name":"forms","kind":"app.form-email.web"},{"name":"maps","kind":"google.maps.rest"},{"name":"media","kind":"cloudflare.r2.tenant-media.web"},{"name":"opehub","kind":"opehub.rest"},{"name":"storeMap","kind":"google.maps-browser.web"},{"name":"youtube","kind":"youtube.video.web"}],"dependencies":[],"actions":[],"problems":[],"provisions":[{"capability":"media","kind":"assets","name":"tenantMedia"},{"capability":"forms","kind":"data","name":"formEmail"},{"capability":"maps","kind":"data","name":"googleMaps"},{"capability":"opehub","kind":"data","name":"opehub"},{"capability":"storeMap","kind":"element","name":"google_maps"},{"capability":"youtube","kind":"element","name":"youtube_video"}],"hostRequirements":["asset:tenantMedia","capability:forms:app-id","capability:forms:mount:capabilityData","capability:forms:source-authority","capability:forms:source-authority-identity","capability:forms:source-resource-identity:formEmail","capability:maps:app-id","capability:maps:mount:capabilityData","capability:maps:source-resource-identity:googleMaps","capability:media:app-id","capability:media:mount:media","capability:opehub:app-id","capability:opehub:mount:capabilityData","capability:opehub:source-resource-identity:opehub","capability:storeMap:app-id","capability:storeMap:mount:capabilityUsage","clipboard","inbox","source:formEmail","source:googleMaps","source:opehub"]},"resources":{"data":["formEmail","googleMaps","opehub"],"assets":["media@tenantMedia","tradePhotos@tenantMedia"],"ai":[],"directSources":[],"elements":["google_maps","youtube_video"]},"optional":{"models":[],"agents":[]},"diagnostics":[],"resolved":true,"id":"references:f52a3336ac1159d8"},"sourceNames":["formEmail","googleMaps","opehub"],"manifestContentAddress":"manifest:9164eb62946effa0"}