{"openapi":"3.1.0","info":{"title":"Reckon API","version":"0.1.0","description":"Units, currency, percentages, tips, loans, compound interest, body metrics, cooking measures, sizes, fuel cost, unit prices, number formats — exact everyday maths.\n\nEvery operation is read-only or compute-only. The same tools are available over MCP (streamable HTTP) at https://reckon.connectorbay.com/mcp.","contact":{"name":"Unify Dynamics LLC","email":"hr@unifydynamics.com","url":"https://connectorbay.com/reckon/docs"},"termsOfService":"https://connectorbay.com/reckon/terms"},"servers":[{"url":"https://reckon.connectorbay.com"}],"externalDocs":{"url":"https://connectorbay.com/reckon/docs"},"security":[{},{"bearer":[]}],"components":{"securitySchemes":{"bearer":{"type":"http","scheme":"bearer","description":"Optional. A Pro API key raises rate limits; no credentials are required."}},"schemas":{"Error":{"type":"object","properties":{"ok":{"const":false},"error":{"type":"object"}}}}},"paths":{"/v1/tools/convert_units":{"post":{"operationId":"convert_units","summary":"Convert between units — length, mass, volume, area (incl. acre, hectare, bigha, guntha), speed, time, energy, power,","description":"Convert between units — length, mass, volume, area (incl. acre, hectare, bigha, guntha), speed, time, energy, power,\n    pressure, data (KB vs KiB), angle, frequency, fuel economy (mpg ↔ L/100km ↔ km/L) and temperature (C/F/K). 200+ units.\n    Use for \"5 miles in km\", \"80 F in C\", \"3 acres in square metres\", \"30 mpg in litres per 100 km\", \"2 TB in GiB\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"value":{"description":"The quantity.","examples":[5],"title":"Value","type":"number"},"from_unit":{"description":"Unit to convert from: 'miles', 'kg', 'cups', 'F', 'mpg', 'acres', 'bigha'…","examples":["miles"],"title":"From Unit","type":"string"},"to_unit":{"description":"Unit to convert to.","examples":["km"],"title":"To Unit","type":"string"}},"required":["value","from_unit","to_unit"],"title":"convert_unitsArguments","type":"object"}}}},"responses":{"200":{"description":"Tool result. `ok: true` on success; `ok: false` with a structured `error` (provider_unavailable, upstream_error, bad_input) when the tool could not answer.","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"422":{"description":"Arguments failed validation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limit exceeded (see Retry-After)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-read-only":true}},"/v1/tools/units":{"post":{"operationId":"units","summary":"The unit categories and unit names Reckon understands (for convert_units).","description":"The unit categories and unit names Reckon understands (for convert_units).","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{},"title":"unitsArguments","type":"object"}}}},"responses":{"200":{"description":"Tool result. `ok: true` on success; `ok: false` with a structured `error` (provider_unavailable, upstream_error, bad_input) when the tool could not answer.","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"422":{"description":"Arguments failed validation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limit exceeded (see Retry-After)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-read-only":true}},"/v1/tools/currency":{"post":{"operationId":"currency","summary":"Convert money between 30 major currencies at the European Central Bank's daily reference rate — today's or any past","description":"Convert money between 30 major currencies at the European Central Bank's daily reference rate — today's or any past\n    date's — with the rate and its date. Use for \"$250 in rupees\", \"100 euros in yen last Friday\", \"what was the pound\n    worth in dollars on 1 Jan 2020\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"amount":{"description":"Amount to convert.","examples":[250],"title":"Amount","type":"number"},"from_currency":{"description":"ISO code: USD, EUR, INR, GBP…","examples":["USD"],"title":"From Currency","type":"string"},"to_currency":{"anyOf":[{"type":"string"},{"items":{"type":"string"},"type":"array"}],"description":"Target ISO code, or a list of codes.","examples":["INR"],"title":"To Currency"},"on_date":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"description":"Use the rate on this date (YYYY-MM-DD, 1999 onward).","title":"On Date"}},"required":["amount","from_currency","to_currency"],"title":"currencyArguments","type":"object"}}}},"responses":{"200":{"description":"Tool result. `ok: true` on success; `ok: false` with a structured `error` (provider_unavailable, upstream_error, bad_input) when the tool could not answer.","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"422":{"description":"Arguments failed validation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limit exceeded (see Retry-After)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-read-only":true}},"/v1/tools/percent":{"post":{"operationId":"percent","summary":"Percentage arithmetic done right: X% of Y; percent change from A to B; A is what % of B; the original before a","description":"Percentage arithmetic done right: X% of Y; percent change from A to B; A is what % of B; the original before a\n    percentage was added (pre-tax, pre-discount); add or subtract a percentage; markup vs margin; split a tax-inclusive\n    price into net and tax. Use for \"18% GST on 4,500\", \"from 80 to 92 is what % increase\", \"118 includes 18% tax — what's\n    the net\", \"price for 30% margin on a cost of 70\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"operation":{"description":"'of' (X% of Y), 'change' (from A to B), 'is_what_percent' (A of B), 'reverse' (Y is after +X%: original?), 'add' (Y + X%), 'subtract' (Y − X%), 'markup' (cost→price at X%), 'margin' (price with X% margin), 'tax_inclusive' (price incl. tax → net & tax).","examples":["of","change","reverse"],"title":"Operation","type":"string"},"x":{"description":"The percentage (or, for 'change'/'is_what_percent', the first value A).","title":"X","type":"number"},"y":{"description":"The base amount (or the second value B).","title":"Y","type":"number"}},"required":["operation","x","y"],"title":"percentArguments","type":"object"}}}},"responses":{"200":{"description":"Tool result. `ok: true` on success; `ok: false` with a structured `error` (provider_unavailable, upstream_error, bad_input) when the tool could not answer.","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"422":{"description":"Arguments failed validation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limit exceeded (see Retry-After)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-read-only":true}},"/v1/tools/tip_split":{"post":{"operationId":"tip_split","summary":"Tip and split: the tip amount, total with tip (and tax if you add it), each person's share, and rounded-up shares if","description":"Tip and split: the tip amount, total with tip (and tax if you add it), each person's share, and rounded-up shares if\n    you want tidy numbers. Use for \"15% tip on 84.50 split 3 ways\", \"we're 6 people, bill 230 plus 8% tax and 18% tip\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"bill":{"description":"Bill total before tip.","examples":[84.5],"title":"Bill","type":"number"},"tip_pct":{"default":15,"description":"Tip percentage (0–100).","maximum":100,"minimum":0,"title":"Tip Pct","type":"number"},"people":{"default":1,"description":"People splitting (1–100).","maximum":100,"minimum":1,"title":"People","type":"integer"},"tax_pct":{"anyOf":[{"maximum":50,"minimum":0,"type":"number"},{"type":"null"}],"default":null,"description":"If the bill excludes tax, add this % first.","title":"Tax Pct"},"round_up":{"default":false,"description":"Round each person's share up to the next whole unit.","title":"Round Up","type":"boolean"}},"required":["bill"],"title":"tip_splitArguments","type":"object"}}}},"responses":{"200":{"description":"Tool result. `ok: true` on success; `ok: false` with a structured `error` (provider_unavailable, upstream_error, bad_input) when the tool could not answer.","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"422":{"description":"Arguments failed validation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limit exceeded (see Retry-After)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-read-only":true}},"/v1/tools/loan":{"post":{"operationId":"loan","summary":"Amortising loan or mortgage maths: the payment, total interest and total paid, how an extra payment shortens the","description":"Amortising loan or mortgage maths: the payment, total interest and total paid, how an extra payment shortens the\n    term and saves interest, and a year-by-year breakdown of interest, principal and balance. Use for \"mortgage on 400k at\n    6.5% over 30 years\", \"car loan 25k at 9% for 5 years\", \"what if I pay 200 extra a month\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"principal":{"description":"Amount borrowed.","examples":[400000],"exclusiveMinimum":0,"title":"Principal","type":"number"},"annual_rate_pct":{"description":"Annual interest rate in %.","examples":[6.5],"maximum":100,"minimum":0,"title":"Annual Rate Pct","type":"number"},"years":{"description":"Term in years.","examples":[30],"exclusiveMinimum":0,"maximum":60,"title":"Years","type":"number"},"extra_monthly":{"default":0,"description":"Extra paid toward principal each month.","minimum":0,"title":"Extra Monthly","type":"number"},"payments_per_year":{"default":12,"description":"12 monthly (default), 26 fortnightly, 52 weekly.","maximum":52,"minimum":1,"title":"Payments Per Year","type":"integer"}},"required":["principal","annual_rate_pct","years"],"title":"loanArguments","type":"object"}}}},"responses":{"200":{"description":"Tool result. `ok: true` on success; `ok: false` with a structured `error` (provider_unavailable, upstream_error, bad_input) when the tool could not answer.","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"422":{"description":"Arguments failed validation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limit exceeded (see Retry-After)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-read-only":true}},"/v1/tools/compound_interest":{"post":{"operationId":"compound_interest","summary":"Compound growth: future value of a lump sum plus regular contributions, interest earned, effective annual rate,","description":"Compound growth: future value of a lump sum plus regular contributions, interest earned, effective annual rate,\n    doubling time (exact and rule of 72), inflation-adjusted value, and — given a goal — the contribution needed to reach\n    it. Use for \"10k at 7% for 20 years with 200 a month\", \"how much to save monthly to reach 1 crore in 15 years at 12%\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"principal":{"description":"Starting amount.","examples":[10000],"minimum":0,"title":"Principal","type":"number"},"annual_rate_pct":{"description":"Annual return/interest in %.","examples":[7],"maximum":100,"minimum":-50,"title":"Annual Rate Pct","type":"number"},"years":{"description":"Years.","examples":[20],"exclusiveMinimum":0,"maximum":100,"title":"Years","type":"number"},"contribution":{"default":0,"description":"Regular contribution amount.","minimum":0,"title":"Contribution","type":"number"},"contributions_per_year":{"default":12,"description":"How often you contribute: 12 monthly, 1 yearly, 26 fortnightly.","maximum":365,"minimum":0,"title":"Contributions Per Year","type":"integer"},"compounds_per_year":{"default":12,"description":"Compounding periods per year (12 monthly, 1 yearly, 365 daily).","maximum":365,"minimum":1,"title":"Compounds Per Year","type":"integer"},"inflation_pct":{"anyOf":[{"maximum":50,"minimum":0,"type":"number"},{"type":"null"}],"default":null,"description":"To also show the result in today's money.","title":"Inflation Pct"},"goal":{"anyOf":[{"exclusiveMinimum":0,"type":"number"},{"type":"null"}],"default":null,"description":"A target amount: Reckon also says the monthly contribution needed to reach it.","title":"Goal"}},"required":["principal","annual_rate_pct","years"],"title":"compound_interestArguments","type":"object"}}}},"responses":{"200":{"description":"Tool result. `ok: true` on success; `ok: false` with a structured `error` (provider_unavailable, upstream_error, bad_input) when the tool could not answer.","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"422":{"description":"Arguments failed validation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limit exceeded (see Retry-After)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-read-only":true}},"/v1/tools/body_metrics":{"post":{"operationId":"body_metrics","summary":"BMI with the WHO category and healthy-weight range for the height, and — with age and sex — basal metabolic rate","description":"BMI with the WHO category and healthy-weight range for the height, and — with age and sex — basal metabolic rate\n    (Mifflin–St Jeor), daily calories by activity level and the intake for ±0.5 kg/week. General wellness numbers, not\n    medical advice. Use for \"BMI for 178 cm and 72 kg\", \"how many calories does a 35-year-old woman, 165 cm, 60 kg,\n    moderately active need\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"height":{"description":"Height: '178 cm', '5 ft 10 in', '5'10\"', '1.78 m'.","examples":["178 cm","5 ft 10 in"],"title":"Height","type":"string"},"weight":{"description":"Weight: '72 kg', '160 lb', '11 st 6 lb'.","examples":["72 kg","160 lb"],"title":"Weight","type":"string"},"age":{"anyOf":[{"maximum":120,"minimum":5,"type":"integer"},{"type":"null"}],"default":null,"description":"Age in years (for BMR/TDEE).","title":"Age"},"sex":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"description":"'male' or 'female' (for BMR/TDEE).","title":"Sex"},"activity":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"description":"sedentary, light, moderate, active, very active.","title":"Activity"}},"required":["height","weight"],"title":"body_metricsArguments","type":"object"}}}},"responses":{"200":{"description":"Tool result. `ok: true` on success; `ok: false` with a structured `error` (provider_unavailable, upstream_error, bad_input) when the tool could not answer.","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"422":{"description":"Arguments failed validation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limit exceeded (see Retry-After)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-read-only":true}},"/v1/tools/cooking":{"post":{"operationId":"cooking","summary":"Cooking conversions by ingredient — cups, tablespoons, teaspoons, millilitres, sticks ↔ grams, ounces, pounds — using","description":"Cooking conversions by ingredient — cups, tablespoons, teaspoons, millilitres, sticks ↔ grams, ounces, pounds — using\n    each ingredient's density (flour ≠ sugar ≠ butter), for 60 common ingredients including Indian staples. Use for \"2 cups\n    flour in grams\", \"200 g butter in sticks\", \"how many tablespoons is 30 g honey\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"ingredient":{"description":"Ingredient: flour, sugar, butter, rice, honey, oats, besan, ghee…","examples":["flour"],"title":"Ingredient","type":"string"},"amount":{"description":"Quantity.","examples":[2],"exclusiveMinimum":0,"title":"Amount","type":"number"},"from_unit":{"description":"cup, tbsp, tsp, ml, fl oz, stick, g, oz, lb…","examples":["cup"],"title":"From Unit","type":"string"},"to_unit":{"description":"Unit wanted.","examples":["g"],"title":"To Unit","type":"string"}},"required":["ingredient","amount","from_unit","to_unit"],"title":"cookingArguments","type":"object"}}}},"responses":{"200":{"description":"Tool result. `ok: true` on success; `ok: false` with a structured `error` (provider_unavailable, upstream_error, bad_input) when the tool could not answer.","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"422":{"description":"Arguments failed validation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limit exceeded (see Retry-After)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-read-only":true}},"/v1/tools/sizes":{"post":{"operationId":"sizes","summary":"Convert clothing, shoe and ring sizes between US, UK, EU and metric systems — men's and women's shoes (with foot","description":"Convert clothing, shoe and ring sizes between US, UK, EU and metric systems — men's and women's shoes (with foot\n    length in cm), women's numeric and letter sizes, men's chest sizes, ring sizes by US/UK/circumference/diameter. Use for\n    \"US 9 men's shoe in EU\", \"what's a UK 12 dress in US\", \"ring size 54 mm in US\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"kind":{"description":"'shoes', 'clothing' or 'ring'.","examples":["shoes"],"title":"Kind","type":"string"},"size":{"description":"The size you have: '9', '42', 'M', '25.4', 'N½'.","examples":["9"],"title":"Size","type":"string"},"region":{"default":"us","description":"System of the given size: us, uk, eu, cm (foot length), jp; for rings also 'diameter' (mm).","examples":["us"],"title":"Region","type":"string"},"sex":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"description":"'men' or 'women' (shoes and clothing).","title":"Sex"}},"required":["kind","size"],"title":"sizesArguments","type":"object"}}}},"responses":{"200":{"description":"Tool result. `ok: true` on success; `ok: false` with a structured `error` (provider_unavailable, upstream_error, bad_input) when the tool could not answer.","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"422":{"description":"Arguments failed validation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limit exceeded (see Retry-After)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-read-only":true}},"/v1/tools/fuel_cost":{"post":{"operationId":"fuel_cost","summary":"Fuel needed and cost for a trip from distance, efficiency (L/100 km, km/L or mpg) and price, optionally round trip and","description":"Fuel needed and cost for a trip from distance, efficiency (L/100 km, km/L or mpg) and price, optionally round trip and\n    split between passengers. Use for \"fuel cost Denver to Santa Fe at 32 mpg and $3.40 a gallon\", \"350 km at 6.5 L/100km\n    with petrol at 1.65\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"distance":{"description":"Trip distance.","examples":[350],"exclusiveMinimum":0,"title":"Distance","type":"number"},"efficiency":{"description":"Vehicle efficiency value.","examples":[6.5],"exclusiveMinimum":0,"title":"Efficiency","type":"number"},"fuel_price":{"description":"Price per litre or per gallon.","examples":[1.65],"exclusiveMinimum":0,"title":"Fuel Price","type":"number"},"distance_unit":{"default":"km","description":"'km' or 'miles'.","title":"Distance Unit","type":"string"},"efficiency_unit":{"default":"l/100km","description":"'l/100km', 'km/l', 'mpg' (US) or 'uk mpg'.","examples":["l/100km"],"title":"Efficiency Unit","type":"string"},"price_unit":{"default":"per_litre","description":"'per_litre' or 'per_gallon' (US gallon).","title":"Price Unit","type":"string"},"round_trip":{"default":false,"description":"Double the distance.","title":"Round Trip","type":"boolean"},"passengers":{"default":1,"description":"To split the cost.","maximum":20,"minimum":1,"title":"Passengers","type":"integer"}},"required":["distance","efficiency","fuel_price"],"title":"fuel_costArguments","type":"object"}}}},"responses":{"200":{"description":"Tool result. `ok: true` on success; `ok: false` with a structured `error` (provider_unavailable, upstream_error, bad_input) when the tool could not answer.","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"422":{"description":"Arguments failed validation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limit exceeded (see Retry-After)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-read-only":true}},"/v1/tools/unit_price":{"post":{"operationId":"unit_price","summary":"Which offer is the better value: normalises each to a price per common unit (per kg, per litre, per item) and ranks","description":"Which offer is the better value: normalises each to a price per common unit (per kg, per litre, per item) and ranks\n    them, with the saving versus the dearest. Use for \"750 g for 4.99 or 1 kg for 6.49\", \"12-pack for 8 vs 18-pack for 11\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"offers":{"description":"2–10 offers, each {\"label\": \"...\", \"price\": 4.99, \"quantity\": 750, \"unit\": \"g\"}; units may differ within a category (g/kg/oz, ml/l/fl oz).","examples":[[{"label":"A","price":4.99,"quantity":750,"unit":"g"},{"label":"B","price":6.49,"quantity":1,"unit":"kg"}]],"items":{"additionalProperties":true,"type":"object"},"title":"Offers","type":"array"}},"required":["offers"],"title":"unit_priceArguments","type":"object"}}}},"responses":{"200":{"description":"Tool result. `ok: true` on success; `ok: false` with a structured `error` (provider_unavailable, upstream_error, bad_input) when the tool could not answer.","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"422":{"description":"Arguments failed validation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limit exceeded (see Retry-After)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-read-only":true}},"/v1/tools/number_format":{"post":{"operationId":"number_format","summary":"A number every way: words (English and Indian lakh/crore), international and Indian digit grouping, scientific, Roman","description":"A number every way: words (English and Indian lakh/crore), international and Indian digit grouping, scientific, Roman\n    numerals, ordinal, binary/octal/hex, and lakh/crore/million equivalents — accepting shorthand like '2.5 lakh', '1.2M'\n    or a Roman numeral as input. Use for \"12345678 in words\", \"how much is 3 crore in millions\", \"1994 in Roman numerals\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"number":{"description":"A number: '1234567.89', '2.5 lakh', '3 crore', '1.2M', '0x1F', 'MCMXCIV'.","examples":["12345678","2.5 crore","MCMXCIV"],"title":"Number","type":"string"}},"required":["number"],"title":"number_formatArguments","type":"object"}}}},"responses":{"200":{"description":"Tool result. `ok: true` on success; `ok: false` with a structured `error` (provider_unavailable, upstream_error, bad_input) when the tool could not answer.","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"422":{"description":"Arguments failed validation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limit exceeded (see Retry-After)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-read-only":true}}}}