[{"slug":"ZV-2026-1318","server_name":"maps.ikeytz.com","severity":"breaking","title":"maps.ikeytz.com: Field body was removed from get_ai_txt output; consumers reading it will break.","summary":"[breaking] Field body was removed from get_ai_txt output; consumers reading it will break. [risky] Field bytesReturned was added to get_ai_txt output. [risky] Field nextOffset was added to get_ai_txt output. [risky] Field returnedLines was added to get_ai_txt output. [risky] Field returnedUrls was added to get_ai_txt output. [risky] Field totalLines was added to get_ai_txt output. [risky] Field totalUrls was added to get_ai_txt output. [risky] Field truncated was added to get_ai_txt output. [safe] Description of get_discovery changed (11% word delta). [breaking] Field body was removed from get_discovery output; consumers reading it will break. [risky] Field bytesReturned was added to get_discovery output. [risky] Field nextOffset was added to get_discovery output. [risky] Field returnedLines was added to get_discovery output. [risky] Field returnedUrls was added to get_discovery output. [risky] Field totalLines was added to get_discovery output. [risky] Field totalUrls was added to get_discovery output. [risky] Field truncated was added to get_discovery output. [breaking] Field body was removed from get_llms_mcp_server output; consumers reading it will break. [risky] Field bytesReturned was added to get_llms_mcp_server output. [risky] Field nextOffset was added to get_llms_mcp_server output. [risky] Field returnedLines was added to get_llms_mcp_server output. [risky] Field returnedUrls was added to get_llms_mcp_server output. [risky] Field totalLines was added to get_llms_mcp_server output. [risky] Field totalUrls was added to get_llms_mcp_server output. [risky] Field truncated was added to get_llms_mcp_server output. [breaking] Field body was removed from get_llms_mcp_web output; consumers reading it will break. [risky] Field bytesReturned was added to get_llms_mcp_web output. [risky] Field nextOffset was added to get_llms_mcp_web output. [risky] Field returnedLines was added to get_llms_mcp_web output. [risky] Field returnedUrls was added to get_llms_mcp_web outpu","changes":[{"kind":"output_property_removed","path":"outputSchema.properties.body","tool":"get_ai_txt","before":{"type":"string","description":"UTF-8 text window after offset/limit"},"detail":"Field `body` was removed from `get_ai_txt` output; consumers reading it will break.","severity":"breaking"},{"kind":"output_property_added","path":"outputSchema.properties.bytesReturned","tool":"get_ai_txt","after":{"type":"number","description":"UTF-8 length of text window"},"detail":"Field `bytesReturned` was added to `get_ai_txt` output.","severity":"risky"},{"kind":"output_property_added","path":"outputSchema.properties.nextOffset","tool":"get_ai_txt","after":{"type":["number","null"],"description":"Pass as next offset when truncated; else null. Also in # MCP-META."},"detail":"Field `nextOffset` was added to `get_ai_txt` output.","severity":"risky"},{"kind":"output_property_added","path":"outputSchema.properties.returnedLines","tool":"get_ai_txt","after":{"type":"number","description":"Lines in this window (before # MCP-META)"},"detail":"Field `returnedLines` was added to `get_ai_txt` output.","severity":"risky"},{"kind":"output_property_added","path":"outputSchema.properties.returnedUrls","tool":"get_ai_txt","after":{"type":"number","description":"http(s) lines in this window"},"detail":"Field `returnedUrls` was added to `get_ai_txt` output.","severity":"risky"},{"kind":"output_property_added","path":"outputSchema.properties.totalLines","tool":"get_ai_txt","after":{"type":"number","description":"Alias of total_lines"},"detail":"Field `totalLines` was added to `get_ai_txt` output.","severity":"risky"},{"kind":"output_property_added","path":"outputSchema.properties.totalUrls","tool":"get_ai_txt","after":{"type":"number","description":"http(s) lines in the full file"},"detail":"Field `totalUrls` was added to `get_ai_txt` output.","severity":"risky"},{"kind":"output_property_added","path":"outputSchema.properties.truncated","tool":"get_ai_txt","after":{"type":"boolean","description":"true if offset+limit left more lines. Also in trailing # MCP-META."},"detail":"Field `truncated` was added to `get_ai_txt` output.","severity":"risky"},{"kind":"description_changed","tool":"get_discovery","after":"WHAT: 1:1 mirror of a maps discovery file (UTF-8 text/JSON). summary ≡ line window + trailing # MCP-META (truncated, totalUrls, nextOffset) — not a one-line stub. which is required — common ids: ard, ai-catalog, ai-txt, ai-plugin, answer-engine, agent-skills, llms, llms-full, llms-index, llms-keywords, llms-serp, llms-impressum-kontakt, llms-orte-geo, llms-urheberrecht, llms-copyright, llms-mcp-server, llms-mcp-web, robots, sitemap-txt, sitemap-xml. Optional offset/limit line window. USE for agent-ready catalogs and robots/sitemap. DOES NOT invent missing files (missing=true). NEXT: find_by_keyword / find_by_serp for structured search; get_llms_txt / get_ai_txt aliases.","before":"WHAT: 1:1 mirror of a maps discovery file (UTF-8 text/JSON). which is required — common ids: ard, ai-catalog, ai-txt, ai-plugin, answer-engine, agent-skills, llms, llms-full, llms-index, llms-keywords, llms-serp, llms-impressum-kontakt, llms-orte-geo, llms-urheberrecht, llms-copyright, llms-mcp-server, llms-mcp-web, robots, sitemap-txt, sitemap-xml. Optional offset/limit line window. USE for agent-ready catalogs and robots/sitemap. DOES NOT invent missing files (missing=true). NEXT: find_by_keyword / find_by_serp for structured search; get_llms_txt / get_ai_txt aliases.","detail":"Description of `get_discovery` changed (11% word delta).","severity":"safe","descriptionDelta":0.10666666666666669},{"kind":"output_property_removed","path":"outputSchema.properties.body","tool":"get_discovery","before":{"type":"string","description":"UTF-8 text window after offset/limit"},"detail":"Field `body` was removed from `get_discovery` output; consumers reading it will break.","severity":"breaking"},{"kind":"output_property_added","path":"outputSchema.properties.bytesReturned","tool":"get_discovery","after":{"type":"number","description":"UTF-8 length of text window"},"detail":"Field `bytesReturned` was added to `get_discovery` output.","severity":"risky"},{"kind":"output_property_added","path":"outputSchema.properties.nextOffset","tool":"get_discovery","after":{"type":["number","null"],"description":"Pass as next offset when truncated; else null. Also in # MCP-META."},"detail":"Field `nextOffset` was added to `get_discovery` output.","severity":"risky"},{"kind":"output_property_added","path":"outputSchema.properties.returnedLines","tool":"get_discovery","after":{"type":"number","description":"Lines in this window (before # MCP-META)"},"detail":"Field `returnedLines` was added to `get_discovery` output.","severity":"risky"},{"kind":"output_property_added","path":"outputSchema.properties.returnedUrls","tool":"get_discovery","after":{"type":"number","description":"http(s) lines in this window"},"detail":"Field `returnedUrls` was added to `get_discovery` output.","severity":"risky"},{"kind":"output_property_added","path":"outputSchema.properties.totalLines","tool":"get_discovery","after":{"type":"number","description":"Alias of total_lines"},"detail":"Field `totalLines` was added to `get_discovery` output.","severity":"risky"},{"kind":"output_property_added","path":"outputSchema.properties.totalUrls","tool":"get_discovery","after":{"type":"number","description":"http(s) lines in the full file"},"detail":"Field `totalUrls` was added to `get_discovery` output.","severity":"risky"},{"kind":"output_property_added","path":"outputSchema.properties.truncated","tool":"get_discovery","after":{"type":"boolean","description":"true if offset+limit left more lines. Also in trailing # MCP-META."},"detail":"Field `truncated` was added to `get_discovery` output.","severity":"risky"},{"kind":"output_property_removed","path":"outputSchema.properties.body","tool":"get_llms_mcp_server","before":{"type":"string","description":"UTF-8 text window after offset/limit"},"detail":"Field `body` was removed from `get_llms_mcp_server` output; consumers reading it will break.","severity":"breaking"},{"kind":"output_property_added","path":"outputSchema.properties.bytesReturned","tool":"get_llms_mcp_server","after":{"type":"number","description":"UTF-8 length of text window"},"detail":"Field `bytesReturned` was added to `get_llms_mcp_server` output.","severity":"risky"},{"kind":"output_property_added","path":"outputSchema.properties.nextOffset","tool":"get_llms_mcp_server","after":{"type":["number","null"],"description":"Pass as next offset when truncated; else null. Also in # MCP-META."},"detail":"Field `nextOffset` was added to `get_llms_mcp_server` output.","severity":"risky"},{"kind":"output_property_added","path":"outputSchema.properties.returnedLines","tool":"get_llms_mcp_server","after":{"type":"number","description":"Lines in this window (before # MCP-META)"},"detail":"Field `returnedLines` was added to `get_llms_mcp_server` output.","severity":"risky"},{"kind":"output_property_added","path":"outputSchema.properties.returnedUrls","tool":"get_llms_mcp_server","after":{"type":"number","description":"http(s) lines in this window"},"detail":"Field `returnedUrls` was added to `get_llms_mcp_server` output.","severity":"risky"},{"kind":"output_property_added","path":"outputSchema.properties.totalLines","tool":"get_llms_mcp_server","after":{"type":"number","description":"Alias of total_lines"},"detail":"Field `totalLines` was added to `get_llms_mcp_server` output.","severity":"risky"},{"kind":"output_property_added","path":"outputSchema.properties.totalUrls","tool":"get_llms_mcp_server","after":{"type":"number","description":"http(s) lines in the full file"},"detail":"Field `totalUrls` was added to `get_llms_mcp_server` output.","severity":"risky"},{"kind":"output_property_added","path":"outputSchema.properties.truncated","tool":"get_llms_mcp_server","after":{"type":"boolean","description":"true if offset+limit left more lines. Also in trailing # MCP-META."},"detail":"Field `truncated` was added to `get_llms_mcp_server` output.","severity":"risky"},{"kind":"output_property_removed","path":"outputSchema.properties.body","tool":"get_llms_mcp_web","before":{"type":"string","description":"UTF-8 text window after offset/limit"},"detail":"Field `body` was removed from `get_llms_mcp_web` output; consumers reading it will break.","severity":"breaking"},{"kind":"output_property_added","path":"outputSchema.properties.bytesReturned","tool":"get_llms_mcp_web","after":{"type":"number","description":"UTF-8 length of text window"},"detail":"Field `bytesReturned` was added to `get_llms_mcp_web` output.","severity":"risky"},{"kind":"output_property_added","path":"outputSchema.properties.nextOffset","tool":"get_llms_mcp_web","after":{"type":["number","null"],"description":"Pass as next offset when truncated; else null. Also in # MCP-META."},"detail":"Field `nextOffset` was added to `get_llms_mcp_web` output.","severity":"risky"},{"kind":"output_property_added","path":"outputSchema.properties.returnedLines","tool":"get_llms_mcp_web","after":{"type":"number","description":"Lines in this window (before # MCP-META)"},"detail":"Field `returnedLines` was added to `get_llms_mcp_web` output.","severity":"risky"},{"kind":"output_property_added","path":"outputSchema.properties.returnedUrls","tool":"get_llms_mcp_web","after":{"type":"number","description":"http(s) lines in this window"},"detail":"Field `returnedUrls` was added to `get_llms_mcp_web` output.","severity":"risky"},{"kind":"output_property_added","path":"outputSchema.properties.totalLines","tool":"get_llms_mcp_web","after":{"type":"number","description":"Alias of total_lines"},"detail":"Field `totalLines` was added to `get_llms_mcp_web` output.","severity":"risky"},{"kind":"output_property_added","path":"outputSchema.properties.totalUrls","tool":"get_llms_mcp_web","after":{"type":"number","description":"http(s) lines in the full file"},"detail":"Field `totalUrls` was added to `get_llms_mcp_web` output.","severity":"risky"},{"kind":"output_property_added","path":"outputSchema.properties.truncated","tool":"get_llms_mcp_web","after":{"type":"boolean","description":"true if offset+limit left more lines. Also in trailing # MCP-META."},"detail":"Field `truncated` was added to `get_llms_mcp_web` output.","severity":"risky"},{"kind":"output_property_removed","path":"outputSchema.properties.body","tool":"get_llms_txt","before":{"type":"string","description":"UTF-8 text window after offset/limit"},"detail":"Field `body` was removed from `get_llms_txt` output; consumers reading it will break.","severity":"breaking"},{"kind":"output_property_added","path":"outputSchema.properties.bytesReturned","tool":"get_llms_txt","after":{"type":"number","description":"UTF-8 length of text window"},"detail":"Field `bytesReturned` was added to `get_llms_txt` output.","severity":"risky"},{"kind":"output_property_added","path":"outputSchema.properties.nextOffset","tool":"get_llms_txt","after":{"type":["number","null"],"description":"Pass as next offset when truncated; else null. Also in # MCP-META."},"detail":"Field `nextOffset` was added to `get_llms_txt` output.","severity":"risky"},{"kind":"output_property_added","path":"outputSchema.properties.returnedLines","tool":"get_llms_txt","after":{"type":"number","description":"Lines in this window (before # MCP-META)"},"detail":"Field `returnedLines` was added to `get_llms_txt` output.","severity":"risky"},{"kind":"output_property_added","path":"outputSchema.properties.returnedUrls","tool":"get_llms_txt","after":{"type":"number","description":"http(s) lines in this window"},"detail":"Field `returnedUrls` was added to `get_llms_txt` output.","severity":"risky"},{"kind":"output_property_added","path":"outputSchema.properties.totalLines","tool":"get_llms_txt","after":{"type":"number","description":"Alias of total_lines"},"detail":"Field `totalLines` was added to `get_llms_txt` output.","severity":"risky"},{"kind":"output_property_added","path":"outputSchema.properties.totalUrls","tool":"get_llms_txt","after":{"type":"number","description":"http(s) lines in the full file"},"detail":"Field `totalUrls` was added to `get_llms_txt` output.","severity":"risky"},{"kind":"output_property_added","path":"outputSchema.properties.truncated","tool":"get_llms_txt","after":{"type":"boolean","description":"true if offset+limit left more lines. Also in trailing # MCP-META."},"detail":"Field `truncated` was added to `get_llms_txt` output.","severity":"risky"},{"kind":"description_changed","tool":"get_sitemap_txt","after":"WHAT: Alias get_discovery(which=sitemap-txt) — maps /sitemap.txt 1:1 (embed URLs incl. /buero). summary ≡ file window + # MCP-META (not a stub). Optional offset/limit. USE to list public maps URLs. NEXT: resolve_maps_url, get_embed_map, get_geo_office.","before":"WHAT: Alias get_discovery(which=sitemap-txt) — maps /sitemap.txt 1:1 (embed URLs). Optional offset/limit. USE to list public maps URLs. NEXT: resolve_maps_url, get_embed_map.","detail":"Description of `get_sitemap_txt` changed (35% word delta).","severity":"risky","descriptionDelta":0.3548387096774194},{"kind":"output_property_removed","path":"outputSchema.properties.body","tool":"get_sitemap_txt","before":{"type":"string","description":"UTF-8 text window after offset/limit"},"detail":"Field `body` was removed from `get_sitemap_txt` output; consumers reading it will break.","severity":"breaking"},{"kind":"output_property_added","path":"outputSchema.properties.bytesReturned","tool":"get_sitemap_txt","after":{"type":"number","description":"UTF-8 length of text window"},"detail":"Field `bytesReturned` was added to `get_sitemap_txt` output.","severity":"risky"},{"kind":"output_property_added","path":"outputSchema.properties.nextOffset","tool":"get_sitemap_txt","after":{"type":["number","null"],"description":"Pass as next offset when truncated; else null. Also in # MCP-META."},"detail":"Field `nextOffset` was added to `get_sitemap_txt` output.","severity":"risky"},{"kind":"output_property_added","path":"outputSchema.properties.returnedLines","tool":"get_sitemap_txt","after":{"type":"number","description":"Lines in this window (before # MCP-META)"},"detail":"Field `returnedLines` was added to `get_sitemap_txt` output.","severity":"risky"},{"kind":"output_property_added","path":"outputSchema.properties.returnedUrls","tool":"get_sitemap_txt","after":{"type":"number","description":"http(s) lines in this window"},"detail":"Field `returnedUrls` was added to `get_sitemap_txt` output.","severity":"risky"},{"kind":"output_property_added","path":"outputSchema.properties.totalLines","tool":"get_sitemap_txt","after":{"type":"number","description":"Alias of total_lines"},"detail":"Field `totalLines` was added to `get_sitemap_txt` output.","severity":"risky"},{"kind":"output_property_added","path":"outputSchema.properties.totalUrls","tool":"get_sitemap_txt","after":{"type":"number","description":"http(s) lines in the full file"},"detail":"Field `totalUrls` was added to `get_sitemap_txt` output.","severity":"risky"},{"kind":"output_property_added","path":"outputSchema.properties.truncated","tool":"get_sitemap_txt","after":{"type":"boolean","description":"true if offset+limit left more lines. Also in trailing # MCP-META."},"detail":"Field `truncated` was added to `get_sitemap_txt` output.","severity":"risky"}],"published_at":"2026-09-22T16:47:15.528Z"},{"slug":"ZV-2026-0655","server_name":"maps.ikeytz.com","severity":"breaking","title":"maps.ikeytz.com: locale on find_by_keyword narrowed to a closed enum (de); previously valid values may now be rejected.","summary":"[risky] Description of compose_mailto changed (82% word delta). [risky] Field attribution was added to compose_mailto output. [risky] Field canonicalUrl was added to compose_mailto output. [risky] Field error was added to compose_mailto output. [risky] Field hint was added to compose_mailto output. [risky] Field href was added to compose_mailto output. [risky] Field locale was added to compose_mailto output. [risky] Field mapsEmail was added to compose_mailto output. [risky] Field mapsHref was added to compose_mailto output. [risky] Field ok was added to compose_mailto output. [risky] Field related was added to compose_mailto output. [risky] Field summary was added to compose_mailto output. [risky] Field tool was added to compose_mailto output. [risky] Description of compose_tel_landline changed (95% word delta). [risky] Field attribution was added to compose_tel_landline output. [risky] Field canonicalUrl was added to compose_tel_landline output. [risky] Field display was added to compose_tel_landline output. [risky] Field error was added to compose_tel_landline output. [risky] Field hint was added to compose_tel_landline output. [risky] Field href was added to compose_tel_landline output. [risky] Field locale was added to compose_tel_landline output. [risky] Field ok was added to compose_tel_landline output. [risky] Field related was added to compose_tel_landline output. [risky] Field summary was added to compose_tel_landline output. [risky] Field tool was added to compose_tel_landline output. [risky] Description of compose_tel_mobile changed (96% word delta). [risky] Field attribution was added to compose_tel_mobile output. [risky] Field canonicalUrl was added to compose_tel_mobile output. [risky] Field display was added to compose_tel_mobile output. [risky] Field error was added to compose_tel_mobile output. [risky] Field hint was added to compose_tel_mobile output. [risky] Field href was added to compose_tel_mobile output. [risky] Field locale was added to comp","changes":[{"kind":"description_changed","tool":"compose_mailto","after":"WHAT: mailto:info@ikeytz.com plus mapsEmail info@maps.ikeytz.com (mapsHref). Call with {}. USE for email CTAs. DOES NOT send mail. NEXT: get_contact, list_footer.","before":"mailto:info@ikeytz.com","detail":"Description of `compose_mailto` changed (82% word delta).","severity":"risky","descriptionDelta":0.8181818181818181},{"kind":"output_property_added","path":"outputSchema.properties.attribution","tool":"compose_mailto","after":{"type":"string","description":"Required citation: 'Quelle: Schlüsseldienst Ludwigsburg ikeytz (ikeytz.com) · ai-train=no · https://maps.ikeytz.com/.well-known/ai.txt'"},"detail":"Field `attribution` was added to `compose_mailto` output.","severity":"risky"},{"kind":"output_property_added","path":"outputSchema.properties.canonicalUrl","tool":"compose_mailto","after":{"type":"string","description":"Best URL to show the user: https://maps.ikeytz.com… page, public embed JSON, tel:+49…, mailto:…, https://wa.me/…, or a www pointer. Prefer this over constructing URLs."},"detail":"Field `canonicalUrl` was added to `compose_mailto` output.","severity":"risky"},{"kind":"output_property_added","path":"outputSchema.properties.error","tool":"compose_mailto","after":{"type":"string","description":"Present when ok=false. Codes include: unknown_place, unknown_discovery, unknown_doc, q_required, plz_required, coords_required, outside_service_area, url_required, not_maps_host, bad_url, path_or_url_required, serp_not_found, slug_or_coords_required, path_required."},"detail":"Field `error` was added to `compose_mailto` output.","severity":"risky"},{"kind":"output_property_added","path":"outputSchema.properties.hint","tool":"compose_mailto","after":{"type":"string","description":"Present when ok=false. Absolute URL or short recovery hint the agent should open or pass to another tool."},"detail":"Field `hint` was added to `compose_mailto` output.","severity":"risky"},{"kind":"output_property_added","path":"outputSchema.properties.href","tool":"compose_mailto","after":{"type":"string","description":"mailto:info@ikeytz.com"},"detail":"Field `href` was added to `compose_mailto` output.","severity":"risky"},{"kind":"output_property_added","path":"outputSchema.properties.locale","tool":"compose_mailto","after":{"enum":["de"],"type":"string","description":"Locale actually used for URLs. maps is German-only: always de (MAPS-E8 — no /en on maps). Requested non-de is ignored; payload locale=de."},"detail":"Field `locale` was added to `compose_mailto` output.","severity":"risky"},{"kind":"output_property_added","path":"outputSchema.properties.mapsEmail","tool":"compose_mailto","after":{"type":"string","description":"info@maps.ikeytz.com"},"detail":"Field `mapsEmail` was added to `compose_mailto` output.","severity":"risky"},{"kind":"output_property_added","path":"outputSchema.properties.mapsHref","tool":"compose_mailto","after":{"type":"string","description":"mailto:info@maps.ikeytz.com"},"detail":"Field `mapsHref` was added to `compose_mailto` output.","severity":"risky"},{"kind":"output_property_added","path":"outputSchema.properties.ok","tool":"compose_mailto","after":{"type":"boolean","description":"true = use summary, canonicalUrl, and extra keys. false = do not invent data; read error + hint and retry with valid args or open hint."},"detail":"Field `ok` was added to `compose_mailto` output.","severity":"risky"},{"kind":"output_property_added","path":"outputSchema.properties.related","tool":"compose_mailto","after":{"type":"array","items":{"type":"string","format":"uri"},"description":"Always includes https://maps.ikeytz.com/llms.txt."},"detail":"Field `related` was added to `compose_mailto` output.","severity":"risky"},{"kind":"output_property_added","path":"outputSchema.properties.summary","tool":"compose_mailto","after":{"type":"string","description":"Primary text for the model. For discovery tools this is the file window. For list tools a compact one-liner. Quote with attribution."},"detail":"Field `summary` was added to `compose_mailto` output.","severity":"risky"},{"kind":"output_property_added","path":"outputSchema.properties.tool","tool":"compose_mailto","after":{"type":"string","description":"Echo of the tool name that produced this object (e.g. get_service_area)."},"detail":"Field `tool` was added to `compose_mailto` output.","severity":"risky"},{"kind":"description_changed","tool":"compose_tel_landline","after":"WHAT: tel: href for the public landline. Call with {}. RETURNS href + display. USE as secondary call CTA. NEXT: compose_tel_mobile.","before":"tel:-Link Festnetz.","detail":"Description of `compose_tel_landline` changed (95% word delta).","severity":"risky","descriptionDelta":0.9473684210526316},{"kind":"output_property_added","path":"outputSchema.properties.attribution","tool":"compose_tel_landline","after":{"type":"string","description":"Required citation: 'Quelle: Schlüsseldienst Ludwigsburg ikeytz (ikeytz.com) · ai-train=no · https://maps.ikeytz.com/.well-known/ai.txt'"},"detail":"Field `attribution` was added to `compose_tel_landline` output.","severity":"risky"},{"kind":"output_property_added","path":"outputSchema.properties.canonicalUrl","tool":"compose_tel_landline","after":{"type":"string","description":"Best URL to show the user: https://maps.ikeytz.com… page, public embed JSON, tel:+49…, mailto:…, https://wa.me/…, or a www pointer. Prefer this over constructing URLs."},"detail":"Field `canonicalUrl` was added to `compose_tel_landline` output.","severity":"risky"},{"kind":"output_property_added","path":"outputSchema.properties.display","tool":"compose_tel_landline","after":{"type":"string","description":"Human display number"},"detail":"Field `display` was added to `compose_tel_landline` output.","severity":"risky"},{"kind":"output_property_added","path":"outputSchema.properties.error","tool":"compose_tel_landline","after":{"type":"string","description":"Present when ok=false. Codes include: unknown_place, unknown_discovery, unknown_doc, q_required, plz_required, coords_required, outside_service_area, url_required, not_maps_host, bad_url, path_or_url_required, serp_not_found, slug_or_coords_required, path_required."},"detail":"Field `error` was added to `compose_tel_landline` output.","severity":"risky"},{"kind":"output_property_added","path":"outputSchema.properties.hint","tool":"compose_tel_landline","after":{"type":"string","description":"Present when ok=false. Absolute URL or short recovery hint the agent should open or pass to another tool."},"detail":"Field `hint` was added to `compose_tel_landline` output.","severity":"risky"},{"kind":"output_property_added","path":"outputSchema.properties.href","tool":"compose_tel_landline","after":{"type":"string","description":"tel:+49…"},"detail":"Field `href` was added to `compose_tel_landline` output.","severity":"risky"},{"kind":"output_property_added","path":"outputSchema.properties.locale","tool":"compose_tel_landline","after":{"enum":["de"],"type":"string","description":"Locale actually used for URLs. maps is German-only: always de (MAPS-E8 — no /en on maps). Requested non-de is ignored; payload locale=de."},"detail":"Field `locale` was added to `compose_tel_landline` output.","severity":"risky"},{"kind":"output_property_added","path":"outputSchema.properties.ok","tool":"compose_tel_landline","after":{"type":"boolean","description":"true = use summary, canonicalUrl, and extra keys. false = do not invent data; read error + hint and retry with valid args or open hint."},"detail":"Field `ok` was added to `compose_tel_landline` output.","severity":"risky"},{"kind":"output_property_added","path":"outputSchema.properties.related","tool":"compose_tel_landline","after":{"type":"array","items":{"type":"string","format":"uri"},"description":"Always includes https://maps.ikeytz.com/llms.txt."},"detail":"Field `related` was added to `compose_tel_landline` output.","severity":"risky"},{"kind":"output_property_added","path":"outputSchema.properties.summary","tool":"compose_tel_landline","after":{"type":"string","description":"Primary text for the model. For discovery tools this is the file window. For list tools a compact one-liner. Quote with attribution."},"detail":"Field `summary` was added to `compose_tel_landline` output.","severity":"risky"},{"kind":"output_property_added","path":"outputSchema.properties.tool","tool":"compose_tel_landline","after":{"type":"string","description":"Echo of the tool name that produced this object (e.g. get_service_area)."},"detail":"Field `tool` was added to `compose_tel_landline` output.","severity":"risky"},{"kind":"description_changed","tool":"compose_tel_mobile","after":"WHAT: tel: href for the public mobile number. Call with {}. RETURNS href + display. USE as the primary call CTA. DOES NOT place the call. NEXT: compose_tel_landline, list_whatsapp_options.","before":"tel:-Link Handy.","detail":"Description of `compose_tel_mobile` changed (96% word delta).","severity":"risky","descriptionDelta":0.9583333333333334},{"kind":"output_property_added","path":"outputSchema.properties.attribution","tool":"compose_tel_mobile","after":{"type":"string","description":"Required citation: 'Quelle: Schlüsseldienst Ludwigsburg ikeytz (ikeytz.com) · ai-train=no · https://maps.ikeytz.com/.well-known/ai.txt'"},"detail":"Field `attribution` was added to `compose_tel_mobile` output.","severity":"risky"},{"kind":"output_property_added","path":"outputSchema.properties.canonicalUrl","tool":"compose_tel_mobile","after":{"type":"string","description":"Best URL to show the user: https://maps.ikeytz.com… page, public embed JSON, tel:+49…, mailto:…, https://wa.me/…, or a www pointer. Prefer this over constructing URLs."},"detail":"Field `canonicalUrl` was added to `compose_tel_mobile` output.","severity":"risky"},{"kind":"output_property_added","path":"outputSchema.properties.display","tool":"compose_tel_mobile","after":{"type":"string","description":"Human display number"},"detail":"Field `display` was added to `compose_tel_mobile` output.","severity":"risky"},{"kind":"output_property_added","path":"outputSchema.properties.error","tool":"compose_tel_mobile","after":{"type":"string","description":"Present when ok=false. Codes include: unknown_place, unknown_discovery, unknown_doc, q_required, plz_required, coords_required, outside_service_area, url_required, not_maps_host, bad_url, path_or_url_required, serp_not_found, slug_or_coords_required, path_required."},"detail":"Field `error` was added to `compose_tel_mobile` output.","severity":"risky"},{"kind":"output_property_added","path":"outputSchema.properties.hint","tool":"compose_tel_mobile","after":{"type":"string","description":"Present when ok=false. Absolute URL or short recovery hint the agent should open or pass to another tool."},"detail":"Field `hint` was added to `compose_tel_mobile` output.","severity":"risky"},{"kind":"output_property_added","path":"outputSchema.properties.href","tool":"compose_tel_mobile","after":{"type":"string","description":"tel:+49…"},"detail":"Field `href` was added to `compose_tel_mobile` output.","severity":"risky"},{"kind":"output_property_added","path":"outputSchema.properties.locale","tool":"compose_tel_mobile","after":{"enum":["de"],"type":"string","description":"Locale actually used for URLs. maps is German-only: always de (MAPS-E8 — no /en on maps). Requested non-de is ignored; payload locale=de."},"detail":"Field `locale` was added to `compose_tel_mobile` output.","severity":"risky"},{"kind":"output_property_added","path":"outputSchema.properties.ok","tool":"compose_tel_mobile","after":{"type":"boolean","description":"true = use summary, canonicalUrl, and extra keys. false = do not invent data; read error + hint and retry with valid args or open hint."},"detail":"Field `ok` was added to `compose_tel_mobile` output.","severity":"risky"},{"kind":"output_property_added","path":"outputSchema.properties.related","tool":"compose_tel_mobile","after":{"type":"array","items":{"type":"string","format":"uri"},"description":"Always includes https://maps.ikeytz.com/llms.txt."},"detail":"Field `related` was added to `compose_tel_mobile` output.","severity":"risky"},{"kind":"output_property_added","path":"outputSchema.properties.summary","tool":"compose_tel_mobile","after":{"type":"string","description":"Primary text for the model. For discovery tools this is the file window. For list tools a compact one-liner. Quote with attribution."},"detail":"Field `summary` was added to `compose_tel_mobile` output.","severity":"risky"},{"kind":"output_property_added","path":"outputSchema.properties.tool","tool":"compose_tel_mobile","after":{"type":"string","description":"Echo of the tool name that produced this object (e.g. get_service_area)."},"detail":"Field `tool` was added to `compose_tel_mobile` output.","severity":"risky"},{"kind":"description_changed","tool":"compose_whatsapp","after":"WHAT: wa.me link. Optional option=zugefallen|abgeschlossen|zylinder|beratung (or list_whatsapp_options ids). Link only — no form. USE to open WhatsApp with a prefab. NEXT: compose_mailto, get_contact.","before":"wa.me-Link. option=zugefallen|abgeschlossen|zylinder|beratung","detail":"Description of `compose_whatsapp` changed (69% word delta).","severity":"risky","descriptionDelta":0.6923076923076923},{"kind":"output_property_added","path":"outputSchema.properties.attribution","tool":"compose_whatsapp","after":{"type":"string","description":"Required citation: 'Quelle: Schlüsseldienst Ludwigsburg ikeytz (ikeytz.com) · ai-train=no · https://maps.ikeytz.com/.well-known/ai.txt'"},"detail":"Field `attribution` was added to `compose_whatsapp` output.","severity":"risky"},{"kind":"output_property_added","path":"outputSchema.properties.canonicalUrl","tool":"compose_whatsapp","after":{"type":"string","description":"Best URL to show the user: https://maps.ikeytz.com… page, public embed JSON, tel:+49…, mailto:…, https://wa.me/…, or a www pointer. Prefer this over constructing URLs."},"detail":"Field `canonicalUrl` was added to `compose_whatsapp` output.","severity":"risky"},{"kind":"output_property_added","path":"outputSchema.properties.error","tool":"compose_whatsapp","after":{"type":"string","description":"Present when ok=false. Codes include: unknown_place, unknown_discovery, unknown_doc, q_required, plz_required, coords_required, outside_service_area, url_required, not_maps_host, bad_url, path_or_url_required, serp_not_found, slug_or_coords_required, path_required."},"detail":"Field `error` was added to `compose_whatsapp` output.","severity":"risky"},{"kind":"output_property_added","path":"outputSchema.properties.hint","tool":"compose_whatsapp","after":{"type":"string","description":"Present when ok=false. Absolute URL or short recovery hint the agent should open or pass to another tool."},"detail":"Field `hint` was added to `compose_whatsapp` output.","severity":"risky"},{"kind":"output_property_added","path":"outputSchema.properties.href","tool":"compose_whatsapp","after":{"type":"string","format":"uri","description":"https://wa.me/…"},"detail":"Field `href` was added to `compose_whatsapp` output.","severity":"risky"},{"kind":"output_property_added","path":"outputSchema.properties.locale","tool":"compose_whatsapp","after":{"enum":["de"],"type":"string","description":"Locale actually used for URLs. maps is German-only: always de (MAPS-E8 — no /en on maps). Requested non-de is ignored; payload locale=de."},"detail":"Field `locale` was added to `compose_whatsapp` output.","severity":"risky"},{"kind":"output_property_added","path":"outputSchema.properties.note","tool":"compose_whatsapp","after":{"type":"string","description":"Link only. Kein Formular."},"detail":"Field `note` was added to `compose_whatsapp` output.","severity":"risky"},{"kind":"output_property_added","path":"outputSchema.properties.ok","tool":"compose_whatsapp","after":{"type":"boolean","description":"true = use summary, canonicalUrl, and extra keys. false = do not invent data; read error + hint and retry with valid args or open hint."},"detail":"Field `ok` was added to `compose_whatsapp` output.","severity":"risky"},{"kind":"output_property_added","path":"outputSchema.properties.option","tool":"compose_whatsapp","after":{"type":["string","null"],"description":"Echoed option"},"detail":"Field `option` was added to `compose_whatsapp` output.","severity":"risky"},{"kind":"output_property_added","path":"outputSchema.properties.related","tool":"compose_whatsapp","after":{"type":"array","items":{"type":"string","format":"uri"},"description":"Always includes https://maps.ikeytz.com/llms.txt."},"detail":"Field `related` was added to `compose_whatsapp` output.","severity":"risky"},{"kind":"output_property_added","path":"outputSchema.properties.summary","tool":"compose_whatsapp","after":{"type":"string","description":"Primary text for the model. For discovery tools this is the file window. For list tools a compact one-liner. Quote with attribution."},"detail":"Field `summary` was added to `compose_whatsapp` output.","severity":"risky"},{"kind":"output_property_added","path":"outputSchema.properties.tool","tool":"compose_whatsapp","after":{"type":"string","description":"Echo of the tool name that produced this object (e.g. get_service_area)."},"detail":"Field `tool` was added to `compose_whatsapp` output.","severity":"risky"},{"kind":"description_changed","tool":"distance_to_office","after":"WHAT: Air distance (km) from a Gebiet (slug|plz|name) or lat/lng/icbm to the Gewerbesitz. walkIn=false. RETURNS from, office, distance_km. USE for rough proximity — not driving time. DOES NOT route via OSRM. NEXT: get_geo_office, find_by_geo.","before":"Luftlinie Gebiet oder Koordinate → Gewerbesitz (kein Walk-in).","detail":"Description of `distance_to_office` changed (95% word delta).","severity":"risky","descriptionDelta":0.9523809523809523},{"kind":"output_property_added","path":"outputSchema.properties.attribution","tool":"distance_to_office","after":{"type":"string","description":"Required citation: 'Quelle: Schlüsseldienst Ludwigsburg ikeytz (ikeytz.com) · ai-train=no · https://maps.ikeytz.com/.well-known/ai.txt'"},"detail":"Field `attribution` was added to `distance_to_office` output.","severity":"risky"},{"kind":"output_property_added","path":"outputSchema.properties.canonicalUrl","tool":"distance_to_office","after":{"type":"string","description":"Best URL to show the user: https://maps.ikeytz.com… page, public embed JSON, tel:+49…, mailto:…, https://wa.me/…, or a www pointer. Prefer this over constructing URLs."},"detail":"Field `canonicalUrl` was added to `distance_to_office` output.","severity":"risky"},{"kind":"output_property_added","path":"outputSchema.properties.distance_km","tool":"distance_to_office","after":{"type":"number","description":"Air distance kilometres"},"detail":"Field `distance_km` was added to `distance_to_office` output.","severity":"risky"},{"kind":"output_property_added","path":"outputSchema.properties.error","tool":"distance_to_office","after":{"type":"string","description":"Present when ok=false. Codes include: unknown_place, unknown_discovery, unknown_doc, q_required, plz_required, coords_required, outside_service_area, url_required, not_maps_host, bad_url, path_or_url_required, serp_not_found, slug_or_coords_required, path_required."},"detail":"Field `error` was added to `distance_to_office` output.","severity":"risky"},{"kind":"output_property_added","path":"outputSchema.properties.from","tool":"distance_to_office","after":{"type":"object","properties":{"lat":{"type":"number"},"lng":{"type":"number"}},"description":"Origin {lat,lng}"},"detail":"Field `from` was added to `distance_to_office` output.","severity":"risky"},{"kind":"output_property_added","path":"outputSchema.properties.hint","tool":"distance_to_office","after":{"type":"string","description":"Present when ok=false. Absolute URL or short recovery hint the agent should open or pass to another tool."},"detail":"Field `hint` was added to `distance_to_office` output.","severity":"risky"},{"kind":"output_property_added","path":"outputSchema.properties.locale","tool":"distance_to_office","after":{"enum":["de"],"type":"string","description":"Locale actually used for URLs. maps is German-only: always de (MAPS-E8 — no /en on maps). Requested non-de is ignored; payload locale=de."},"detail":"Field `locale` was added to `distance_to_office` output.","severity":"risky"},{"kind":"output_property_added","path":"outputSchema.properties.office","tool":"distance_to_office","after":{"type":"object","description":"Office {lat,lng,icbm}"},"detail":"Field `office` was added to `distance_to_office` output.","severity":"risky"},{"kind":"output_property_added","path":"outputSchema.properties.ok","tool":"distance_to_office","after":{"type":"boolean","description":"true = use summary, canonicalUrl, and extra keys. false = do not invent data; read error + hint and retry with valid args or open hint."},"detail":"Field `ok` was added to `distance_to_office` output.","severity":"risky"},{"kind":"output_property_added","path":"outputSchema.properties.related","tool":"distance_to_office","after":{"type":"array","items":{"type":"string","format":"uri"},"description":"Always includes https://maps.ikeytz.com/llms.txt."},"detail":"Field `related` was added to `distance_to_office` output.","severity":"risky"},{"kind":"output_property_added","path":"outputSchema.properties.slug","tool":"distance_to_office","after":{"type":["string","null"],"description":"Resolved slug if from place lookup"},"detail":"Field `slug` was added to `distance_to_office` output.","severity":"risky"},{"kind":"output_property_added","path":"outputSchema.properties.summary","tool":"distance_to_office","after":{"type":"string","description":"Primary text for the model. For discovery tools this is the file window. For list tools a compact one-liner. Quote with attribution."},"detail":"Field `summary` was added to `distance_to_office` output.","severity":"risky"},{"kind":"output_property_added","path":"outputSchema.properties.tool","tool":"distance_to_office","after":{"type":"string","description":"Echo of the tool name that produced this object (e.g. get_service_area)."},"detail":"Field `tool` was added to `distance_to_office` output.","severity":"risky"},{"kind":"output_property_added","path":"outputSchema.properties.walkIn","tool":"distance_to_office","after":{"type":"boolean","description":"Always false"},"detail":"Field `walkIn` was added to `distance_to_office` output.","severity":"risky"},{"kind":"description_changed","tool":"find_by_area","after":"WHAT: Alias of find_by_gebiet — multi-match by q/name/slug. Same inputs and outputs. USE when the agent prefers 'area' naming. NEXT: get_service_area, get_embed_map.","before":"Alias von find_by_gebiet (Name/Slug, mehrere Treffer).","detail":"Description of `find_by_area` changed (85% word delta).","severity":"risky","descriptionDelta":0.8518518518518519},{"kind":"output_property_added","path":"outputSchema.properties.attribution","tool":"find_by_area","after":{"type":"string","description":"Required citation: 'Quelle: Schlüsseldienst Ludwigsburg ikeytz (ikeytz.com) · ai-train=no · https://maps.ikeytz.com/.well-known/ai.txt'"},"detail":"Field `attribution` was added to `find_by_area` output.","severity":"risky"},{"kind":"output_property_added","path":"outputSchema.properties.canonicalUrl","tool":"find_by_area","after":{"type":"string","description":"Best URL to show the user: https://maps.ikeytz.com… page, public embed JSON, tel:+49…, mailto:…, https://wa.me/…, or a www pointer. Prefer this over constructing URLs."},"detail":"Field `canonicalUrl` was added to `find_by_area` output.","severity":"risky"},{"kind":"output_property_added","path":"outputSchema.properties.count","tool":"find_by_area","after":{"type":"number"},"detail":"Field `count` was added to `find_by_area` output.","severity":"risky"},{"kind":"output_property_added","path":"outputSchema.properties.error","tool":"find_by_area","after":{"type":"string","description":"Present when ok=false. Codes include: unknown_place, unknown_discovery, unknown_doc, q_required, plz_required, coords_required, outside_service_area, url_required, not_maps_host, bad_url, path_or_url_required, serp_not_found, slug_or_coords_required, path_required."},"detail":"Field `error` was added to `find_by_area` output.","severity":"risky"},{"kind":"output_property_added","path":"outputSchema.properties.hint","tool":"find_by_area","after":{"type":"string","description":"Present when ok=false. Absolute URL or short recovery hint the agent should open or pass to another tool."},"detail":"Field `hint` was added to `find_by_area` output.","severity":"risky"},{"kind":"output_property_added","path":"outputSchema.properties.items","tool":"find_by_area","after":{"type":"array","items":{"type":"object","properties":{"lat":{"type":"number","description":"WGS84 latitude of THIS place"},"lng":{"type":"number","description":"WGS84 longitude of THIS place"},"plz":{"type":"string","description":"Postcode"},"url":{"type":"string","description":"Keyword/www page URL when present"},"icbm":{"type":"string","description":"ICBM 'lat, lng' (same as google_maps)"},"kind":{"type":"string","description":"stadtteil | ort"},"name":{"type":"string","description":"German place name"},"slug":{"type":"string","description":"maps slug"},"parent":{"type":"string","description":"Ludwigsburg or Landkreis Ludwigsburg"},"geo_api":{"type":"string","format":"uri","description":"https://maps.ikeytz.com/api/v1/embed/ort/{slug}"},"maps_mcp":{"type":"string","const":"https://maps.ikeytz.com/mcp","format":"uri","description":"maps MCP endpoint"},"embed_map":{"type":"string","format":"uri","description":"https://maps.ikeytz.com/{slug}"},"distance_km":{"type":"number","description":"Present on geo-ranked results: air distance from query point"},"google_maps":{"type":"string","description":"Paste-ready 'lat, lng'"}},"description":"One Einsatzgebiet point card (not a polygon).","additionalProperties":true}},"detail":"Field `items` was added to `find_by_area` output.","severity":"risky"},{"kind":"output_property_added","path":"outputSchema.properties.locale","tool":"find_by_area","after":{"enum":["de"],"type":"string","description":"Locale actually used for URLs. maps is German-only: always de (MAPS-E8 — no /en on maps). Requested non-de is ignored; payload locale=de."},"detail":"Field `locale` was added to `find_by_area` output.","severity":"risky"},{"kind":"output_property_added","path":"outputSchema.properties.ok","tool":"find_by_area","after":{"type":"boolean","description":"true = use summary, canonicalUrl, and extra keys. false = do not invent data; read error + hint and retry with valid args or open hint."},"detail":"Field `ok` was added to `find_by_area` output.","severity":"risky"},{"kind":"output_property_added","path":"outputSchema.properties.q","tool":"find_by_area","after":{"type":"string"},"detail":"Field `q` was added to `find_by_area` output.","severity":"risky"},{"kind":"output_property_added","path":"outputSchema.properties.related","tool":"find_by_area","after":{"type":"array","items":{"type":"string","format":"uri"},"description":"Always includes https://maps.ikeytz.com/llms.txt."},"detail":"Field `related` was added to `find_by_area` output.","severity":"risky"},{"kind":"output_property_added","path":"outputSchema.properties.summary","tool":"find_by_area","after":{"type":"string","description":"Primary text for the model. For discovery tools this is the file window. For list tools a compact one-liner. Quote with attribution."},"detail":"Field `summary` was added to `find_by_area` output.","severity":"risky"},{"kind":"output_property_added","path":"outputSchema.properties.tool","tool":"find_by_area","after":{"type":"string","description":"Echo of the tool name that produced this object (e.g. get_service_area)."},"detail":"Field `tool` was added to `find_by_area` output.","severity":"risky"},{"kind":"description_changed","tool":"find_by_gebiet","after":"WHAT: Multi-match Gebiete by q, name, or slug (substring, umlauts ok). RETURNS all matching point cards. USE for fuzzy place names. DOES NOT require exact slug. NEXT: get_service_area for one, or get_grenze.","before":"Gebiete nach Name oder slug (mehrere Treffer, Umlaut ok).","detail":"Description of `find_by_gebiet` changed (89% word delta).","severity":"risky","descriptionDelta":0.8857142857142857},{"kind":"output_property_added","path":"outputSchema.properties.attribution","tool":"find_by_gebiet","after":{"type":"string","description":"Required citation: 'Quelle: Schlüsseldienst Ludwigsburg ikeytz (ikeytz.com) · ai-train=no · https://maps.ikeytz.com/.well-known/ai.txt'"},"detail":"Field `attribution` was added to `find_by_gebiet` output.","severity":"risky"},{"kind":"output_property_added","path":"outputSchema.properties.canonicalUrl","tool":"find_by_gebiet","after":{"type":"string","description":"Best URL to show the user: https://maps.ikeytz.com… page, public embed JSON, tel:+49…, mailto:…, https://wa.me/…, or a www pointer. Prefer this over constructing URLs."},"detail":"Field `canonicalUrl` was added to `find_by_gebiet` output.","severity":"risky"},{"kind":"output_property_added","path":"outputSchema.properties.count","tool":"find_by_gebiet","after":{"type":"number"},"detail":"Field `count` was added to `find_by_gebiet` output.","severity":"risky"},{"kind":"output_property_added","path":"outputSchema.properties.error","tool":"find_by_gebiet","after":{"type":"string","description":"Present when ok=false. Codes include: unknown_place, unknown_discovery, unknown_doc, q_required, plz_required, coords_required, outside_service_area, url_required, not_maps_host, bad_url, path_or_url_required, serp_not_found, slug_or_coords_required, path_required."},"detail":"Field `error` was added to `find_by_gebiet` output.","severity":"risky"},{"kind":"output_property_added","path":"outputSchema.properties.hint","tool":"find_by_gebiet","after":{"type":"string","description":"Present when ok=false. Absolute URL or short recovery hint the agent should open or pass to another tool."},"detail":"Field `hint` was added to `find_by_gebiet` output.","severity":"risky"},{"kind":"output_property_added","path":"outputSchema.properties.items","tool":"find_by_gebiet","after":{"type":"array","items":{"type":"object","properties":{"lat":{"type":"number","description":"WGS84 latitude of THIS place"},"lng":{"type":"number","description":"WGS84 longitude of THIS place"},"plz":{"type":"string","description":"Postcode"},"url":{"type":"string","description":"Keyword/www page URL when present"},"icbm":{"type":"string","description":"ICBM 'lat, lng' (same as google_maps)"},"kind":{"type":"string","description":"stadtteil | ort"},"name":{"type":"string","description":"German place name"},"slug":{"type":"string","description":"maps slug"},"parent":{"type":"string","description":"Ludwigsburg or Landkreis Ludwigsburg"},"geo_api":{"type":"string","format":"uri","description":"https://maps.ikeytz.com/api/v1/embed/ort/{slug}"},"maps_mcp":{"type":"string","const":"https://maps.ikeytz.com/mcp","format":"uri","description":"maps MCP endpoint"},"embed_map":{"type":"string","format":"uri","description":"https://maps.ikeytz.com/{slug}"},"distance_km":{"type":"number","description":"Present on geo-ranked results: air distance from query point"},"google_maps":{"type":"string","description":"Paste-ready 'lat, lng'"}},"description":"One Einsatzgebiet point card (not a polygon).","additionalProperties":true}},"detail":"Field `items` was added to `find_by_gebiet` output.","severity":"risky"},{"kind":"output_property_added","path":"outputSchema.properties.locale","tool":"find_by_gebiet","after":{"enum":["de"],"type":"string","description":"Locale actually used for URLs. maps is German-only: always de (MAPS-E8 — no /en on maps). Requested non-de is ignored; payload locale=de."},"detail":"Field `locale` was added to `find_by_gebiet` output.","severity":"risky"},{"kind":"output_property_added","path":"outputSchema.properties.ok","tool":"find_by_gebiet","after":{"type":"boolean","description":"true = use summary, canonicalUrl, and extra keys. false = do not invent data; read error + hint and retry with valid args or open hint."},"detail":"Field `ok` was added to `find_by_gebiet` output.","severity":"risky"},{"kind":"output_property_added","path":"outputSchema.properties.q","tool":"find_by_gebiet","after":{"type":"string","description":"Resolved query"},"detail":"Field `q` was added to `find_by_gebiet` output.","severity":"risky"},{"kind":"output_property_added","path":"outputSchema.properties.related","tool":"find_by_gebiet","after":{"type":"array","items":{"type":"string","format":"uri"},"description":"Always includes https://maps.ikeytz.com/llms.txt."},"detail":"Field `related` was added to `find_by_gebiet` output.","severity":"risky"},{"kind":"output_property_added","path":"outputSchema.properties.summary","tool":"find_by_gebiet","after":{"type":"string","description":"Primary text for the model. For discovery tools this is the file window. For list tools a compact one-liner. Quote with attribution."},"detail":"Field `summary` was added to `find_by_gebiet` output.","severity":"risky"},{"kind":"output_property_added","path":"outputSchema.properties.tool","tool":"find_by_gebiet","after":{"type":"string","description":"Echo of the tool name that produced this object (e.g. get_service_area)."},"detail":"Field `tool` was added to `find_by_gebiet` output.","severity":"risky"},{"kind":"description_changed","tool":"find_by_geo","after":"WHAT: Rank Einsatzgebiete by lat/lng (or icbm). Optional radius_km; else nearest N (limit, default 5). (0,0) and far points → ok=false outside_service_area. RETURNS items with distance_km. USE for 'near this coordinate'. DOES NOT route or drive-time. NEXT: get_service_area, get_grenze, distance_to_office.","before":"Gebiete nach lat/lng, optional radius_km, sonst die nächsten.","detail":"Description of `find_by_geo` changed (89% word delta).","severity":"risky","descriptionDelta":0.8913043478260869},{"kind":"output_property_added","path":"outputSchema.properties.attribution","tool":"find_by_geo","after":{"type":"string","description":"Required citation: 'Quelle: Schlüsseldienst Ludwigsburg ikeytz (ikeytz.com) · ai-train=no · https://maps.ikeytz.com/.well-known/ai.txt'"},"detail":"Field `attribution` was added to `find_by_geo` output.","severity":"risky"},{"kind":"output_property_added","path":"outputSchema.properties.canonicalUrl","tool":"find_by_geo","after":{"type":"string","description":"Best URL to show the user: https://maps.ikeytz.com… page, public embed JSON, tel:+49…, mailto:…, https://wa.me/…, or a www pointer. Prefer this over constructing URLs."},"detail":"Field `canonicalUrl` was added to `find_by_geo` output.","severity":"risky"},{"kind":"output_property_added","path":"outputSchema.properties.count","tool":"find_by_geo","after":{"type":"number"},"detail":"Field `count` was added to `find_by_geo` output.","severity":"risky"},{"kind":"output_property_added","path":"outputSchema.properties.error","tool":"find_by_geo","after":{"type":"string","description":"Present when ok=false. Codes include: unknown_place, unknown_discovery, unknown_doc, q_required, plz_required, coords_required, outside_service_area, url_required, not_maps_host, bad_url, path_or_url_required, serp_not_found, slug_or_coords_required, path_required."},"detail":"Field `error` was added to `find_by_geo` output.","severity":"risky"},{"kind":"output_property_added","path":"outputSchema.properties.hint","tool":"find_by_geo","after":{"type":"string","description":"Present when ok=false. Absolute URL or short recovery hint the agent should open or pass to another tool."},"detail":"Field `hint` was added to `find_by_geo` output.","severity":"risky"},{"kind":"output_property_added","path":"outputSchema.properties.icbm","tool":"find_by_geo","after":{"type":"string","description":"Query ICBM"},"detail":"Field `icbm` was added to `find_by_geo` output.","severity":"risky"},{"kind":"output_property_added","path":"outputSchema.properties.items","tool":"find_by_geo","after":{"type":"array","items":{"type":"object","properties":{"lat":{"type":"number","description":"WGS84 latitude of THIS place"},"lng":{"type":"number","description":"WGS84 longitude of THIS place"},"plz":{"type":"string","description":"Postcode"},"url":{"type":"string","description":"Keyword/www page URL when present"},"icbm":{"type":"string","description":"ICBM 'lat, lng' (same as google_maps)"},"kind":{"type":"string","description":"stadtteil | ort"},"name":{"type":"string","description":"German place name"},"slug":{"type":"string","description":"maps slug"},"parent":{"type":"string","description":"Ludwigsburg or Landkreis Ludwigsburg"},"geo_api":{"type":"string","format":"uri","description":"https://maps.ikeytz.com/api/v1/embed/ort/{slug}"},"maps_mcp":{"type":"string","const":"https://maps.ikeytz.com/mcp","format":"uri","description":"maps MCP endpoint"},"embed_map":{"type":"string","format":"uri","description":"https://maps.ikeytz.com/{slug}"},"distance_km":{"type":"number","description":"Present on geo-ranked results: air distance from query point"},"google_maps":{"type":"string","description":"Paste-ready 'lat, lng'"}},"description":"One Einsatzgebiet point card (not a polygon).","additionalProperties":true},"description":"Ranked Gebiete with distance_km"},"detail":"Field `items` was added to `find_by_geo` output.","severity":"risky"},{"kind":"output_property_added","path":"outputSchema.properties.lat","tool":"find_by_geo","after":{"type":"number","description":"Query latitude"},"detail":"Field `lat` was added to `find_by_geo` output.","severity":"risky"},{"kind":"output_property_added","path":"outputSchema.properties.lng","tool":"find_by_geo","after":{"type":"number","description":"Query longitude"},"detail":"Field `lng` was added to `find_by_geo` output.","severity":"risky"},{"kind":"output_property_added","path":"outputSchema.properties.locale","tool":"find_by_geo","after":{"enum":["de"],"type":"string","description":"Locale actually used for URLs. maps is German-only: always de (MAPS-E8 — no /en on maps). Requested non-de is ignored; payload locale=de."},"detail":"Field `locale` was added to `find_by_geo` output.","severity":"risky"},{"kind":"output_property_added","path":"outputSchema.properties.nearest_km","tool":"find_by_geo","after":{"type":["number","null"],"description":"On outside_service_area failures: nearest distance if any"},"detail":"Field `nearest_km` was added to `find_by_geo` output.","severity":"risky"},{"kind":"output_property_added","path":"outputSchema.properties.ok","tool":"find_by_geo","after":{"type":"boolean","description":"true = use summary, canonicalUrl, and extra keys. false = do not invent data; read error + hint and retry with valid args or open hint."},"detail":"Field `ok` was added to `find_by_geo` output.","severity":"risky"},{"kind":"output_property_added","path":"outputSchema.properties.radius_km","tool":"find_by_geo","after":{"type":["number","null"],"description":"Applied radius or null"},"detail":"Field `radius_km` was added to `find_by_geo` output.","severity":"risky"},{"kind":"output_property_added","path":"outputSchema.properties.related","tool":"find_by_geo","after":{"type":"array","items":{"type":"string","format":"uri"},"description":"Always includes https://maps.ikeytz.com/llms.txt."},"detail":"Field `related` was added to `find_by_geo` output.","severity":"risky"},{"kind":"output_property_added","path":"outputSchema.properties.summary","tool":"find_by_geo","after":{"type":"string","description":"Primary text for the model. For discovery tools this is the file window. For list tools a compact one-liner. Quote with attribution."},"detail":"Field `summary` was added to `find_by_geo` output.","severity":"risky"},{"kind":"output_property_added","path":"outputSchema.properties.tool","tool":"find_by_geo","after":{"type":"string","description":"Echo of the tool name that produced this object (e.g. get_service_area)."},"detail":"Field `tool` was added to `find_by_geo` output.","severity":"risky"},{"kind":"description_changed","tool":"find_by_google_maps","after":"WHAT: Paste Google Maps / ICBM coordinates (q or icbm or lat/lng) → nearest ikeytz Gebiete (same ranking as find_by_geo). (0,0) → outside_service_area. USE when the user pastes a Maps pin. NEXT: get_service_area, get_embed_map.","before":"Koordinaten-Paste (Google Maps / ICBM) → nächste ikeytz-Gebiete.","detail":"Description of `find_by_google_maps` changed (81% word delta).","severity":"risky","descriptionDelta":0.8125},{"kind":"output_property_added","path":"outputSchema.properties.attribution","tool":"find_by_google_maps","after":{"type":"string","description":"Required citation: 'Quelle: Schlüsseldienst Ludwigsburg ikeytz (ikeytz.com) · ai-train=no · https://maps.ikeytz.com/.well-known/ai.txt'"},"detail":"Field `attribution` was added to `find_by_google_maps` output.","severity":"risky"},{"kind":"output_property_added","path":"outputSchema.properties.canonicalUrl","tool":"find_by_google_maps","after":{"type":"string","description":"Best URL to show the user: https://maps.ikeytz.com… page, public embed JSON, tel:+49…, mailto:…, https://wa.me/…, or a www pointer. Prefer this over constructing URLs."},"detail":"Field `canonicalUrl` was added to `find_by_google_maps` output.","severity":"risky"},{"kind":"output_property_added","path":"outputSchema.properties.count","tool":"find_by_google_maps","after":{"type":"number"},"detail":"Field `count` was added to `find_by_google_maps` output.","severity":"risky"},{"kind":"output_property_added","path":"outputSchema.properties.error","tool":"find_by_google_maps","after":{"type":"string","description":"Present when ok=false. Codes include: unknown_place, unknown_discovery, unknown_doc, q_required, plz_required, coords_required, outside_service_area, url_required, not_maps_host, bad_url, path_or_url_required, serp_not_found, slug_or_coords_required, path_required."},"detail":"Field `error` was added to `find_by_google_maps` output.","severity":"risky"},{"kind":"output_property_added","path":"outputSchema.properties.hint","tool":"find_by_google_maps","after":{"type":"string","description":"Present when ok=false. Absolute URL or short recovery hint the agent should open or pass to another tool."},"detail":"Field `hint` was added to `find_by_google_maps` output.","severity":"risky"},{"kind":"output_property_added","path":"outputSchema.properties.icbm","tool":"find_by_google_maps","after":{"type":"string"},"detail":"Field `icbm` was added to `find_by_google_maps` output.","severity":"risky"},{"kind":"output_property_added","path":"outputSchema.properties.items","tool":"find_by_google_maps","after":{"type":"array","items":{"type":"object","properties":{"lat":{"type":"number","description":"WGS84 latitude of THIS place"},"lng":{"type":"number","description":"WGS84 longitude of THIS place"},"plz":{"type":"string","description":"Postcode"},"url":{"type":"string","description":"Keyword/www page URL when present"},"icbm":{"type":"string","description":"ICBM 'lat, lng' (same as google_maps)"},"kind":{"type":"string","description":"stadtteil | ort"},"name":{"type":"string","description":"German place name"},"slug":{"type":"string","description":"maps slug"},"parent":{"type":"string","description":"Ludwigsburg or Landkreis Ludwigsburg"},"geo_api":{"type":"string","format":"uri","description":"https://maps.ikeytz.com/api/v1/embed/ort/{slug}"},"maps_mcp":{"type":"string","const":"https://maps.ikeytz.com/mcp","format":"uri","description":"maps MCP endpoint"},"embed_map":{"type":"string","format":"uri","description":"https://maps.ikeytz.com/{slug}"},"distance_km":{"type":"number","description":"Present on geo-ranked results: air distance from query point"},"google_maps":{"type":"string","description":"Paste-ready 'lat, lng'"}},"description":"One Einsatzgebiet point card (not a polygon).","additionalProperties":true}},"detail":"Field `items` was added to `find_by_google_maps` output.","severity":"risky"},{"kind":"output_property_added","path":"outputSchema.properties.lat","tool":"find_by_google_maps","after":{"type":"number"},"detail":"Field `lat` was added to `find_by_google_maps` output.","severity":"risky"},{"kind":"output_property_added","path":"outputSchema.properties.lng","tool":"find_by_google_maps","after":{"type":"number"},"detail":"Field `lng` was added to `find_by_google_maps` output.","severity":"risky"},{"kind":"output_property_added","path":"outputSchema.properties.locale","tool":"find_by_google_maps","after":{"enum":["de"],"type":"string","description":"Locale actually used for URLs. maps is German-only: always de (MAPS-E8 — no /en on maps). Requested non-de is ignored; payload locale=de."},"detail":"Field `locale` was added to `find_by_google_maps` output.","severity":"risky"},{"kind":"output_property_added","path":"outputSchema.properties.nearest_km","tool":"find_by_google_maps","after":{"type":["number","null"]},"detail":"Field `nearest_km` was added to `find_by_google_maps` output.","severity":"risky"},{"kind":"output_property_added","path":"outputSchema.properties.ok","tool":"find_by_google_maps","after":{"type":"boolean","description":"true = use summary, canonicalUrl, and extra keys. false = do not invent data; read error + hint and retry with valid args or open hint."},"detail":"Field `ok` was added to `find_by_google_maps` output.","severity":"risky"},{"kind":"output_property_added","path":"outputSchema.properties.radius_km","tool":"find_by_google_maps","after":{"type":["number","null"]},"detail":"Field `radius_km` was added to `find_by_google_maps` output.","severity":"risky"},{"kind":"output_property_added","path":"outputSchema.properties.related","tool":"find_by_google_maps","after":{"type":"array","items":{"type":"string","format":"uri"},"description":"Always includes https://maps.ikeytz.com/llms.txt."},"detail":"Field `related` was added to `find_by_google_maps` output.","severity":"risky"},{"kind":"output_property_added","path":"outputSchema.properties.summary","tool":"find_by_google_maps","after":{"type":"string","description":"Primary text for the model. For discovery tools this is the file window. For list tools a compact one-liner. Quote with attribution."},"detail":"Field `summary` was added to `find_by_google_maps` output.","severity":"risky"},{"kind":"output_property_added","path":"outputSchema.properties.tool","tool":"find_by_google_maps","after":{"type":"string","description":"Echo of the tool name that produced this object (e.g. get_service_area)."},"detail":"Field `tool` was added to `find_by_google_maps` output.","severity":"risky"},{"kind":"description_changed","tool":"find_by_icbm","after":"WHAT: Same as find_by_geo but prefers icbm string 'lat, lng'. Optional lat/lng/radius_km/limit. (0,0) → outside_service_area. USE when the user pastes ICBM metadata. NEXT: get_embed_map, get_grenze.","before":"Gebiete nach ICBM (lat, lng) — nächste Punkte / optional radius_km.","detail":"Description of `find_by_icbm` changed (83% word delta).","severity":"risky","descriptionDelta":0.8275862068965517},{"kind":"output_property_added","path":"outputSchema.properties.attribution","tool":"find_by_icbm","after":{"type":"string","description":"Required citation: 'Quelle: Schlüsseldienst Ludwigsburg ikeytz (ikeytz.com) · ai-train=no · https://maps.ikeytz.com/.well-known/ai.txt'"},"detail":"Field `attribution` was added to `find_by_icbm` output.","severity":"risky"},{"kind":"output_property_added","path":"outputSchema.properties.canonicalUrl","tool":"find_by_icbm","after":{"type":"string","description":"Best URL to show the user: https://maps.ikeytz.com… page, public embed JSON, tel:+49…, mailto:…, https://wa.me/…, or a www pointer. Prefer this over constructing URLs."},"detail":"Field `canonicalUrl` was added to `find_by_icbm` output.","severity":"risky"},{"kind":"output_property_added","path":"outputSchema.properties.count","tool":"find_by_icbm","after":{"type":"number"},"detail":"Field `count` was added to `find_by_icbm` output.","severity":"risky"},{"kind":"output_property_added","path":"outputSchema.properties.error","tool":"find_by_icbm","after":{"type":"string","description":"Present when ok=false. Codes include: unknown_place, unknown_discovery, unknown_doc, q_required, plz_required, coords_required, outside_service_area, url_required, not_maps_host, bad_url, path_or_url_required, serp_not_found, slug_or_coords_required, path_required."},"detail":"Field `error` was added to `find_by_icbm` output.","severity":"risky"},{"kind":"output_property_added","path":"outputSchema.properties.hint","tool":"find_by_icbm","after":{"type":"string","description":"Present when ok=false. Absolute URL or short recovery hint the agent should open or pass to another tool."},"detail":"Field `hint` was added to `find_by_icbm` output.","severity":"risky"},{"kind":"output_property_added","path":"outputSchema.properties.icbm","tool":"find_by_icbm","after":{"type":"string"},"detail":"Field `icbm` was added to `find_by_icbm` output.","severity":"risky"},{"kind":"output_property_added","path":"outputSchema.properties.items","tool":"find_by_icbm","after":{"type":"array","items":{"type":"object","properties":{"lat":{"type":"number","description":"WGS84 latitude of THIS place"},"lng":{"type":"number","description":"WGS84 longitude of THIS place"},"plz":{"type":"string","description":"Postcode"},"url":{"type":"string","description":"Keyword/www page URL when present"},"icbm":{"type":"string","description":"ICBM 'lat, lng' (same as google_maps)"},"kind":{"type":"string","description":"stadtteil | ort"},"name":{"type":"string","description":"German place name"},"slug":{"type":"string","description":"maps slug"},"parent":{"type":"string","description":"Ludwigsburg or Landkreis Ludwigsburg"},"geo_api":{"type":"string","format":"uri","description":"https://maps.ikeytz.com/api/v1/embed/ort/{slug}"},"maps_mcp":{"type":"string","const":"https://maps.ikeytz.com/mcp","format":"uri","description":"maps MCP endpoint"},"embed_map":{"type":"string","format":"uri","description":"https://maps.ikeytz.com/{slug}"},"distance_km":{"type":"number","description":"Present on geo-ranked results: air distance from query point"},"google_maps":{"type":"string","description":"Paste-ready 'lat, lng'"}},"description":"One Einsatzgebiet point card (not a polygon).","additionalProperties":true}},"detail":"Field `items` was added to `find_by_icbm` output.","severity":"risky"},{"kind":"output_property_added","path":"outputSchema.properties.lat","tool":"find_by_icbm","after":{"type":"number"},"detail":"Field `lat` was added to `find_by_icbm` output.","severity":"risky"},{"kind":"output_property_added","path":"outputSchema.properties.lng","tool":"find_by_icbm","after":{"type":"number"},"detail":"Field `lng` was added to `find_by_icbm` output.","severity":"risky"},{"kind":"output_property_added","path":"outputSchema.properties.locale","tool":"find_by_icbm","after":{"enum":["de"],"type":"string","description":"Locale actually used for URLs. maps is German-only: always de (MAPS-E8 — no /en on maps). Requested non-de is ignored; payload locale=de."},"detail":"Field `locale` was added to `find_by_icbm` output.","severity":"risky"},{"kind":"output_property_added","path":"outputSchema.properties.nearest_km","tool":"find_by_icbm","after":{"type":["number","null"]},"detail":"Field `nearest_km` was added to `find_by_icbm` output.","severity":"risky"},{"kind":"output_property_added","path":"outputSchema.properties.ok","tool":"find_by_icbm","after":{"type":"boolean","description":"true = use summary, canonicalUrl, and extra keys. false = do not invent data; read error + hint and retry with valid args or open hint."},"detail":"Field `ok` was added to `find_by_icbm` output.","severity":"risky"},{"kind":"output_property_added","path":"outputSchema.properties.radius_km","tool":"find_by_icbm","after":{"type":["number","null"]},"detail":"Field `radius_km` was added to `find_by_icbm` output.","severity":"risky"},{"kind":"output_property_added","path":"outputSchema.properties.related","tool":"find_by_icbm","after":{"type":"array","items":{"type":"string","format":"uri"},"description":"Always includes https://maps.ikeytz.com/llms.txt."},"detail":"Field `related` was added to `find_by_icbm` output.","severity":"risky"},{"kind":"output_property_added","path":"outputSchema.properties.summary","tool":"find_by_icbm","after":{"type":"string","description":"Primary text for the model. For discovery tools this is the file window. For list tools a compact one-liner. Quote with attribution."},"detail":"Field `summary` was added to `find_by_icbm` output.","severity":"risky"},{"kind":"output_property_added","path":"outputSchema.properties.tool","tool":"find_by_icbm","after":{"type":"string","description":"Echo of the tool name that produced this object (e.g. get_service_area)."},"detail":"Field `tool` was added to `find_by_icbm` output.","severity":"risky"},{"kind":"description_changed","tool":"find_by_keyword","after":"WHAT: Search maps llms-keywords.txt (keyword → maps URL). q required. RETURNS matching keyword/url rows (clamped limit). USE for SEO/keyword → Gebiet page. DOES NOT search www keywords. NEXT: get_service_area / get_embed_map with the slug from the URL.","before":"Suche in maps llms-keywords.txt (Keyword → maps-URL). Nicht www.","detail":"Description of `find_by_keyword` changed (79% word delta).","severity":"risky","descriptionDelta":0.7878787878787878},{"kind":"enum_narrowed","path":"inputSchema.properties.locale","tool":"find_by_keyword","after":"enum[de]","before":"open","detail":"`locale` on `find_by_keyword` narrowed to a closed enum (de); previously valid values may now be rejected.","severity":"breaking"},{"kind":"default_changed","path":"inputSchema.properties.locale","tool":"find_by_keyword","after":"de","detail":"Default of `locale` on `find_by_keyword` changed unset → \"de\".","severity":"risky"},{"kind":"output_property_added","path":"outputSchema.properties.attribution","tool":"find_by_keyword","after":{"type":"string","description":"Required citation: 'Quelle: Schlüsseldienst Ludwigsburg ikeytz (ikeytz.com) · ai-train=no · https://maps.ikeytz.com/.well-known/ai.txt'"},"detail":"Field `attribution` was added to `find_by_keyword` output.","severity":"risky"},{"kind":"output_property_added","path":"outputSchema.properties.canonicalUrl","tool":"find_by_keyword","after":{"type":"string","description":"Best URL to show the user: https://maps.ikeytz.com… page, public embed JSON, tel:+49…, mailto:…, https://wa.me/…, or a www pointer. Prefer this over constructing URLs."},"detail":"Field `canonicalUrl` was added to `find_by_keyword` output.","severity":"risky"},{"kind":"output_property_added","path":"outputSchema.properties.count","tool":"find_by_keyword","after":{"type":"number","description":"Returned hits"},"detail":"Field `count` was added to `find_by_keyword` output.","severity":"risky"},{"kind":"output_property_added","path":"outputSchema.properties.error","tool":"find_by_keyword","after":{"type":"string","description":"Present when ok=false. Codes include: unknown_place, unknown_discovery, unknown_doc, q_required, plz_required, coords_required, outside_service_area, url_required, not_maps_host, bad_url, path_or_url_required, serp_not_found, slug_or_coords_required, path_required."},"detail":"Field `error` was added to `find_by_keyword` output.","severity":"risky"},{"kind":"output_property_added","path":"outputSchema.properties.hint","tool":"find_by_keyword","after":{"type":"string","description":"Present when ok=false. Absolute URL or short recovery hint the agent should open or pass to another tool."},"detail":"Field `hint` was added to `find_by_keyword` output.","severity":"risky"},{"kind":"output_property_added","path":"outputSchema.properties.items","tool":"find_by_keyword","after":{"type":"array","items":{"type":"object","properties":{"url":{"type":"string","format":"uri"},"keyword":{"type":"string"}}},"description":"keyword + url rows"},"detail":"Field `items` was added to `find_by_keyword` output.","severity":"risky"},{"kind":"output_property_added","path":"outputSchema.properties.lines","tool":"find_by_keyword","after":{"type":"array","items":{"type":"string"},"description":"Raw TSV lines"},"detail":"Field `lines` was added to `find_by_keyword` output.","severity":"risky"},{"kind":"output_property_added","path":"outputSchema.properties.locale","tool":"find_by_keyword","after":{"enum":["de"],"type":"string","description":"Locale actually used for URLs. maps is German-only: always de (MAPS-E8 — no /en on maps). Requested non-de is ignored; payload locale=de."},"detail":"Field `locale` was added to `find_by_keyword` output.","severity":"risky"},{"kind":"output_property_added","path":"outputSchema.properties.ok","tool":"find_by_keyword","after":{"type":"boolean","description":"true = use summary, canonicalUrl, and extra keys. false = do not invent data; read error + hint and retry with valid args or open hint."},"detail":"Field `ok` was added to `find_by_keyword` output.","severity":"risky"},{"kind":"output_property_added","path":"outputSchema.properties.q","tool":"find_by_keyword","after":{"type":"string","description":"Query echoed"},"detail":"Field `q` was added to `find_by_keyword` output.","severity":"risky"},{"kind":"output_property_added","path":"outputSchema.properties.related","tool":"find_by_keyword","after":{"type":"array","items":{"type":"string","format":"uri"},"description":"Always includes https://maps.ikeytz.com/llms.txt."},"detail":"Field `related` was added to `find_by_keyword` output.","severity":"risky"},{"kind":"output_property_added","path":"outputSchema.properties.summary","tool":"find_by_keyword","after":{"type":"string","description":"Primary text for the model. For discovery tools this is the file window. For list tools a compact one-liner. Quote with attribution."},"detail":"Field `summary` was added to `find_by_keyword` output.","severity":"risky"},{"kind":"output_property_added","path":"outputSchema.properties.tool","tool":"find_by_keyword","after":{"type":"string","description":"Echo of the tool name that produced this object (e.g. get_service_area)."},"detail":"Field `tool` was added to `find_by_keyword` output.","severity":"risky"},{"kind":"output_property_added","path":"outputSchema.properties.total","tool":"find_by_keyword","after":{"type":"number","description":"Total matches before limit"},"detail":"Field `total` was added to `find_by_keyword` output.","severity":"risky"},{"kind":"description_changed","tool":"find_by_plz","after":"WHAT: All Einsatzgebiete with this PLZ (not only the first). plz required (or q as PLZ). RETURNS items[] point cards + count. USE when several Stadtteile share a postcode. NEXT: get_service_area(slug) for one card.","before":"Alle Einsatzgebiete mit dieser PLZ (nicht nur der erste Treffer).","detail":"Description of `find_by_plz` changed (95% word delta).","severity":"risky","descriptionDelta":0.95},{"kind":"output_property_added","path":"outputSchema.properties.attribution","tool":"find_by_plz","after":{"type":"string","description":"Required citation: 'Quelle: Schlüsseldienst Ludwigsburg ikeytz (ikeytz.com) · ai-train=no · https://maps.ikeytz.com/.well-known/ai.txt'"},"detail":"Field `attribution` was added to `find_by_plz` output.","severity":"risky"},{"kind":"output_property_added","path":"outputSchema.properties.canonicalUrl","tool":"find_by_plz","after":{"type":"string","description":"Best URL to show the user: https://maps.ikeytz.com… page, public embed JSON, tel:+49…, mailto:…, https://wa.me/…, or a www pointer. Prefer this over constructing URLs."},"detail":"Field `canonicalUrl` was added to `find_by_plz` output.","severity":"risky"},{"kind":"output_property_added","path":"outputSchema.properties.count","tool":"find_by_plz","after":{"type":"number","description":"Number of Gebiete"},"detail":"Field `count` was added to `find_by_plz` output.","severity":"risky"},{"kind":"output_property_added","path":"outputSchema.properties.error","tool":"find_by_plz","after":{"type":"string","description":"Present when ok=false. Codes include: unknown_place, unknown_discovery, unknown_doc, q_required, plz_required, coords_required, outside_service_area, url_required, not_maps_host, bad_url, path_or_url_required, serp_not_found, slug_or_coords_required, path_required."},"detail":"Field `error` was added to `find_by_plz` output.","severity":"risky"},{"kind":"output_property_added","path":"outputSchema.properties.hint","tool":"find_by_plz","after":{"type":"string","description":"Present when ok=false. Absolute URL or short recovery hint the agent should open or pass to another tool."},"detail":"Field `hint` was added to `find_by_plz` output.","severity":"risky"},{"kind":"output_property_added","path":"outputSchema.properties.items","tool":"find_by_plz","after":{"type":"array","items":{"type":"object","properties":{"lat":{"type":"number","description":"WGS84 latitude of THIS place"},"lng":{"type":"number","description":"WGS84 longitude of THIS place"},"plz":{"type":"string","description":"Postcode"},"url":{"type":"string","description":"Keyword/www page URL when present"},"icbm":{"type":"string","description":"ICBM 'lat, lng' (same as google_maps)"},"kind":{"type":"string","description":"stadtteil | ort"},"name":{"type":"string","description":"German place name"},"slug":{"type":"string","description":"maps slug"},"parent":{"type":"string","description":"Ludwigsburg or Landkreis Ludwigsburg"},"geo_api":{"type":"string","format":"uri","description":"https://maps.ikeytz.com/api/v1/embed/ort/{slug}"},"maps_mcp":{"type":"string","const":"https://maps.ikeytz.com/mcp","format":"uri","description":"maps MCP endpoint"},"embed_map":{"type":"string","format":"uri","description":"https://maps.ikeytz.com/{slug}"},"distance_km":{"type":"number","description":"Present on geo-ranked results: air distance from query point"},"google_maps":{"type":"string","description":"Paste-ready 'lat, lng'"}},"description":"One Einsatzgebiet point card (not a polygon).","additionalProperties":true},"description":"All matches"},"detail":"Field `items` was added to `find_by_plz` output.","severity":"risky"},{"kind":"output_property_added","path":"outputSchema.properties.locale","tool":"find_by_plz","after":{"enum":["de"],"type":"string","description":"Locale actually used for URLs. maps is German-only: always de (MAPS-E8 — no /en on maps). Requested non-de is ignored; payload locale=de."},"detail":"Field `locale` was added to `find_by_plz` output.","severity":"risky"},{"kind":"output_property_added","path":"outputSchema.properties.ok","tool":"find_by_plz","after":{"type":"boolean","description":"true = use summary, canonicalUrl, and extra keys. false = do not invent data; read error + hint and retry with valid args or open hint."},"detail":"Field `ok` was added to `find_by_plz` output.","severity":"risky"},{"kind":"output_property_added","path":"outputSchema.properties.plz","tool":"find_by_plz","after":{"type":"string","description":"Queried PLZ"},"detail":"Field `plz` was added to `find_by_plz` output.","severity":"risky"},{"kind":"output_property_added","path":"outputSchema.properties.related","tool":"find_by_plz","after":{"type":"array","items":{"type":"string","format":"uri"},"description":"Always includes https://maps.ikeytz.com/llms.txt."},"detail":"Field `related` was added to `find_by_plz` output.","severity":"risky"},{"kind":"output_property_added","path":"outputSchema.properties.summary","tool":"find_by_plz","after":{"type":"string","description":"Primary text for the model. For discovery tools this is the file window. For list tools a compact one-liner. Quote with attribution."},"detail":"Field `summary` was added to `find_by_plz` output.","severity":"risky"},{"kind":"output_property_added","path":"outputSchema.properties.tool","tool":"find_by_plz","after":{"type":"string","description":"Echo of the tool name that produced this object (e.g. get_service_area)."},"detail":"Field `tool` was added to `find_by_plz` output.","severity":"risky"},{"kind":"description_changed","tool":"find_by_serp","after":"WHAT: Search maps llms-serp.txt blocks by q, path, url, or slug. RETURNS path/url/snippet items. USE for title/H1/description SERP cards on maps. DOES NOT scrape live HTML. NEXT: get_serp_snippet for one full block.","before":"Suche in maps llms-serp.txt (Title/H1/Description/URL).","detail":"Description of `find_by_serp` changed (77% word delta).","severity":"risky","descriptionDelta":0.7714285714285715},{"kind":"output_property_added","path":"outputSchema.properties.attribution","tool":"find_by_serp","after":{"type":"string","description":"Required citation: 'Quelle: Schlüsseldienst Ludwigsburg ikeytz (ikeytz.com) · ai-train=no · https://maps.ikeytz.com/.well-known/ai.txt'"},"detail":"Field `attribution` was added to `find_by_serp` output.","severity":"risky"},{"kind":"output_property_added","path":"outputSchema.properties.canonicalUrl","tool":"find_by_serp","after":{"type":"string","description":"Best URL to show the user: https://maps.ikeytz.com… page, public embed JSON, tel:+49…, mailto:…, https://wa.me/…, or a www pointer. Prefer this over constructing URLs."},"detail":"Field `canonicalUrl` was added to `find_by_serp` output.","severity":"risky"},{"kind":"output_property_added","path":"outputSchema.properties.count","tool":"find_by_serp","after":{"type":"number"},"detail":"Field `count` was added to `find_by_serp` output.","severity":"risky"},{"kind":"output_property_added","path":"outputSchema.properties.error","tool":"find_by_serp","after":{"type":"string","description":"Present when ok=false. Codes include: unknown_place, unknown_discovery, unknown_doc, q_required, plz_required, coords_required, outside_service_area, url_required, not_maps_host, bad_url, path_or_url_required, serp_not_found, slug_or_coords_required, path_required."},"detail":"Field `error` was added to `find_by_serp` output.","severity":"risky"},{"kind":"output_property_added","path":"outputSchema.properties.hint","tool":"find_by_serp","after":{"type":"string","description":"Present when ok=false. Absolute URL or short recovery hint the agent should open or pass to another tool."},"detail":"Field `hint` was added to `find_by_serp` output.","severity":"risky"},{"kind":"output_property_added","path":"outputSchema.properties.items","tool":"find_by_serp","after":{"type":"array","items":{"type":"object","properties":{"url":{"type":"string"},"path":{"type":"string"},"snippet":{"type":"string"}}},"description":"SERP hits"},"detail":"Field `items` was added to `find_by_serp` output.","severity":"risky"},{"kind":"output_property_added","path":"outputSchema.properties.locale","tool":"find_by_serp","after":{"enum":["de"],"type":"string","description":"Locale actually used for URLs. maps is German-only: always de (MAPS-E8 — no /en on maps). Requested non-de is ignored; payload locale=de."},"detail":"Field `locale` was added to `find_by_serp` output.","severity":"risky"},{"kind":"output_property_added","path":"outputSchema.properties.ok","tool":"find_by_serp","after":{"type":"boolean","description":"true = use summary, canonicalUrl, and extra keys. false = do not invent data; read error + hint and retry with valid args or open hint."},"detail":"Field `ok` was added to `find_by_serp` output.","severity":"risky"},{"kind":"output_property_added","path":"outputSchema.properties.q","tool":"find_by_serp","after":{"type":"string","description":"Resolved query"},"detail":"Field `q` was added to `find_by_serp` output.","severity":"risky"},{"kind":"output_property_added","path":"outputSchema.properties.related","tool":"find_by_serp","after":{"type":"array","items":{"type":"string","format":"uri"},"description":"Always includes https://maps.ikeytz.com/llms.txt."},"detail":"Field `related` was added to `find_by_serp` output.","severity":"risky"},{"kind":"output_property_added","path":"outputSchema.properties.summary","tool":"find_by_serp","after":{"type":"string","description":"Primary text for the model. For discovery tools this is the file window. For list tools a compact one-liner. Quote with attribution."},"detail":"Field `summary` was added to `find_by_serp` output.","severity":"risky"},{"kind":"output_property_added","path":"outputSchema.properties.tool","tool":"find_by_serp","after":{"type":"string","description":"Echo of the tool name that produced this object (e.g. get_service_area)."},"detail":"Field `tool` was added to `find_by_serp` output.","severity":"risky"},{"kind":"output_property_added","path":"outputSchema.properties.total","tool":"find_by_serp","after":{"type":"number"},"detail":"Field `total` was added to `find_by_serp` output.","severity":"risky"},{"kind":"description_changed","tool":"get_about","after":"WHAT: About maps.ikeytz.com (same core card as site_overview — 52 maps, not www Über-uns corpus). USE for 'what is this host'. DOES NOT return www about body. NEXT: site_overview, get_links, get_business_identity.","before":"Über maps.ikeytz.com (nicht www Über-uns-Corpus).","detail":"Description of `get_about` changed (75% word delta).","severity":"risky","descriptionDelta":0.75},{"kind":"enum_narrowed","path":"inputSchema.properties.locale","tool":"get_about","after":"enum[de]","before":"open","detail":"`locale` on `get_about` narrowed to a closed enum (de); previously valid values may now be rejected.","severity":"breaking"},{"kind":"default_changed","path":"inputSchema.properties.locale","tool":"get_about","after":"de","detail":"Default of `locale` on `get_about` changed unset → \"de\".","severity":"risky"},{"kind":"output_property_added","path":"outputSchema.properties.attribution","tool":"get_about","after":{"type":"string","description":"Required citation: 'Quelle: Schlüsseldienst Ludwigsburg ikeytz (ikeytz.com) · ai-train=no · https://maps.ikeytz.com/.well-known/ai.txt'"},"detail":"Field `attribution` was added to `get_about` output.","severity":"risky"},{"kind":"output_property_added","path":"outputSchema.properties.brand","tool":"get_about","after":{"type":"string"},"detail":"Field `brand` was added to `get_about` output.","severity":"risky"},{"kind":"output_property_added","path":"outputSchema.properties.canonicalUrl","tool":"get_about","after":{"type":"string","description":"Best URL to show the user: https://maps.ikeytz.com… page, public embed JSON, tel:+49…, mailto:…, https://wa.me/…, or a www pointer. Prefer this over constructing URLs."},"detail":"Field `canonicalUrl` was added to `get_about` output.","severity":"risky"},{"kind":"output_property_added","path":"outputSchema.properties.count","tool":"get_about","after":{"type":"number"},"detail":"Field `count` was added to `get_about` output.","severity":"risky"},{"kind":"output_property_added","path":"outputSchema.properties.error","tool":"get_about","after":{"type":"string","description":"Present when ok=false. Codes include: unknown_place, unknown_discovery, unknown_doc, q_required, plz_required, coords_required, outside_service_area, url_required, not_maps_host, bad_url, path_or_url_required, serp_not_found, slug_or_coords_required, path_required."},"detail":"Field `error` was added to `get_about` output.","severity":"risky"},{"kind":"output_property_added","path":"outputSchema.properties.h1","tool":"get_about","after":{"type":"string"},"detail":"Field `h1` was added to `get_about` output.","severity":"risky"},{"kind":"output_property_added","path":"outputSchema.properties.hint","tool":"get_about","after":{"type":"string","description":"Present when ok=false. Absolute URL or short recovery hint the agent should open or pass to another tool."},"detail":"Field `hint` was added to `get_about` output.","severity":"risky"},{"kind":"output_property_added","path":"outputSchema.properties.legalName","tool":"get_about","after":{"type":"string"},"detail":"Field `legalName` was added to `get_about` output.","severity":"risky"},{"kind":"output_property_added","path":"outputSchema.properties.locale","tool":"get_about","after":{"enum":["de"],"type":"string","description":"Locale actually used for URLs. maps is German-only: always de (MAPS-E8 — no /en on maps). Requested non-de is ignored; payload locale=de."},"detail":"Field `locale` was added to `get_about` output.","severity":"risky"},{"kind":"output_property_added","path":"outputSchema.properties.mcp","tool":"get_about","after":{"type":"string","format":"uri"},"detail":"Field `mcp` was added to `get_about` output.","severity":"risky"},{"kind":"output_property_added","path":"outputSchema.properties.note","tool":"get_about","after":{"type":"string"},"detail":"Field `note` was added to `get_about` output.","severity":"risky"},{"kind":"output_property_added","path":"outputSchema.properties.ok","tool":"get_about","after":{"type":"boolean","description":"true = use summary, canonicalUrl, and extra keys. false = do not invent data; read error + hint and retry with valid args or open hint."},"detail":"Field `ok` was added to `get_about` output.","severity":"risky"},{"kind":"output_property_added","path":"outputSchema.properties.owner","tool":"get_about","after":{"type":"string"},"detail":"Field `owner` was added to `get_about` output.","severity":"risky"},{"kind":"output_property_added","path":"outputSchema.properties.registry","tool":"get_about","after":{"type":"string"},"detail":"Field `registry` was added to `get_about` output.","severity":"risky"},{"kind":"output_property_added","path":"outputSchema.properties.related","tool":"get_about","after":{"type":"array","items":{"type":"string","format":"uri"},"description":"Always includes https://maps.ikeytz.com/llms.txt."},"detail":"Field `related` was added to `get_about` output.","severity":"risky"},{"kind":"output_property_added","path":"outputSchema.properties.sister","tool":"get_about","after":{"type":"string"},"detail":"Field `sister` was added to `get_about` output.","severity":"risky"},{"kind":"output_property_added","path":"outputSchema.properties.summary","tool":"get_about","after":{"type":"string","description":"Primary text for the model. For discovery tools this is the file window. For list tools a compact one-liner. Quote with attribution."},"detail":"Field `summary` was added to `get_about` output.","severity":"risky"},{"kind":"output_property_added","path":"outputSchema.properties.title","tool":"get_about","after":{"type":"string"},"detail":"Field `title` was added to `get_about` output.","severity":"risky"},{"kind":"output_property_added","path":"outputSchema.properties.tool","tool":"get_about","after":{"type":"string","description":"Echo of the tool name that produced this object (e.g. get_service_area)."},"detail":"Field `tool` was added to `get_about` output.","severity":"risky"},{"kind":"output_property_added","path":"outputSchema.properties.walkIn","tool":"get_about","after":{"type":"boolean"},"detail":"Field `walkIn` was added to `get_about` output.","severity":"risky"},{"kind":"description_changed","tool":"get_agb","after":"WHAT: www pointer only — AGB live at www.ikeytz.com/agb. maps returns html + note, not the corpus. USE to open/hand off to www MCP. DOES NOT return AGB body text. NEXT: @ikeytz/mcp get_legal(doc=agb).","before":"AGB: Link www.ikeytz.com/agb (HTML bleibt www, kein Preise-Corpus).","detail":"Description of `get_agb` changed (82% word delta).","severity":"risky","descriptionDelta":0.8181818181818181},{"kind":"output_property_added","path":"outputSchema.properties.attribution","tool":"get_agb","after":{"type":"string","description":"Required citation: 'Quelle: Schlüsseldienst Ludwigsburg ikeytz (ikeytz.com) · ai-train=no · https://maps.ikeytz.com/.well-known/ai.txt'"},"detail":"Field `attribution` was added to `get_agb` output.","severity":"risky"},{"kind":"output_property_added","path":"outputSchema.properties.canonicalUrl","tool":"get_agb","after":{"type":"string","description":"Best URL to show the user: https://maps.ikeytz.com… page, public embed JSON, tel:+49…, mailto:…, https://wa.me/…, or a www pointer. Prefer this over constructing URLs."},"detail":"Field `canonicalUrl` was added to `get_agb` output.","severity":"risky"},{"kind":"output_property_added","path":"outputSchema.properties.error","tool":"get_agb","after":{"type":"string","description":"Present when ok=false. Codes include: unknown_place, unknown_discovery, unknown_doc, q_required, plz_required, coords_required, outside_service_area, url_required, not_maps_host, bad_url, path_or_url_required, serp_not_found, slug_or_coords_required, path_required."},"detail":"Field `error` was added to `get_agb` output.","severity":"risky"},{"kind":"output_property_added","path":"outputSchema.properties.hint","tool":"get_agb","after":{"type":"string","description":"Present when ok=false. Absolute URL or short recovery hint the agent should open or pass to another tool."},"detail":"Field `hint` was added to `get_agb` output.","severity":"risky"},{"kind":"output_property_added","path":"outputSchema.properties.html","tool":"get_agb","after":{"type":"string","format":"uri","description":"Absolute www.ikeytz.com URL — open there or call @ikeytz/mcp"},"detail":"Field `html` was added to `get_agb` output.","severity":"risky"},{"kind":"output_property_added","path":"outputSchema.properties.locale","tool":"get_agb","after":{"enum":["de"],"type":"string","description":"Locale actually used for URLs. maps is German-only: always de (MAPS-E8 — no /en on maps). Requested non-de is ignored; payload locale=de."},"detail":"Field `locale` was added to `get_agb` output.","severity":"risky"},{"kind":"output_property_added","path":"outputSchema.properties.note","tool":"get_agb","after":{"type":"string","description":"maps only points; Volltext/Preise/FAQ live on www"},"detail":"Field `note` was added to `get_agb` output.","severity":"risky"},{"kind":"output_property_added","path":"outputSchema.properties.npm","tool":"get_agb","after":{"type":"string","description":"www CLI package @ikeytz/mcp"},"detail":"Field `npm` was added to `get_agb` output.","severity":"risky"},{"kind":"output_property_added","path":"outputSchema.properties.ok","tool":"get_agb","after":{"type":"boolean","description":"true = use summary, canonicalUrl, and extra keys. false = do not invent data; read error + hint and retry with valid args or open hint."},"detail":"Field `ok` was added to `get_agb` output.","severity":"risky"},{"kind":"output_property_added","path":"outputSchema.properties.related","tool":"get_agb","after":{"type":"array","items":{"type":"string","format":"uri"},"description":"Always includes https://maps.ikeytz.com/llms.txt."},"detail":"Field `related` was added to `get_agb` output.","severity":"risky"},{"kind":"output_property_added","path":"outputSchema.properties.requested_locale","tool":"get_agb","after":{"type":"string","description":"Locale the caller asked for; maps still returns locale=de"},"detail":"Field `requested_locale` was added to `get_agb` output.","severity":"risky"},{"kind":"output_property_added","path":"outputSchema.properties.summary","tool":"get_agb","after":{"type":"string","description":"Primary text for the model. For discovery tools this is the file window. For list tools a compact one-liner. Quote with attribution."},"detail":"Field `summary` was added to `get_agb` output.","severity":"risky"},{"kind":"output_property_added","path":"outputSchema.properties.tool","tool":"get_agb","after":{"type":"string","description":"Echo of the tool name that produced this object (e.g. get_service_area)."},"detail":"Field `tool` was added to `get_agb` output.","severity":"risky"},{"kind":"output_property_added","path":"outputSchema.properties.www_mcp","tool":"get_agb","after":{"type":"string","format":"uri","description":"https://www.ikeytz.com/mcp — sister machine for prices/FAQ/corpus"},"detail":"Field `www_mcp` was added to `get_agb` output.","severity":"risky"},{"kind":"output_property_added","path":"outputSchema.properties.www_tool","tool":"get_agb","after":{"type":"string","description":"Same tool name on www MCP that holds the real payload"},"detail":"Field `www_tool` was added to `get_agb` output.","severity":"risky"},{"kind":"description_changed","tool":"get_ai_page","after":"WHAT: Read maps /ai-pages/de/{slug}.txt when present; else www pointer for the path. path or slug. RETURNS text for maps AI pages. USE for agent-ready Gebiet prose. NEXT: get_service_area, get_lage.","before":"maps /ai-pages/de/{slug}.txt oder www-Link.","detail":"Description of `get_ai_page` changed (76% word delta).","severity":"risky","descriptionDelta":0.7586206896551724},{"kind":"enum_narrowed","path":"inputSchema.properties.locale","tool":"get_ai_page","after":"enum[de]","before":"open","detail":"`locale` on `get_ai_page` narrowed to a closed enum (de); previously valid values may now be rejected.","severity":"breaking"},{"kind":"default_changed","path":"inputSchema.properties.locale","tool":"get_ai_page","after":"de","detail":"Default of `locale` on `get_ai_page` changed unset → \"de\".","severity":"risky"},{"kind":"output_property_added","path":"outputSchema.properties.attribution","tool":"get_ai_page","after":{"type":"string","description":"Required citation: 'Quelle: Schlüsseldienst Ludwigsburg ikeytz (ikeytz.com) · ai-train=no · https://maps.ikeytz.com/.well-known/ai.txt'"},"detail":"Field `attribution` was added to `get_ai_page` output.","severity":"risky"},{"kind":"output_property_added","path":"outputSchema.properties.canonicalUrl","tool":"get_ai_page","after":{"type":"string","description":"Best URL to show the user: https://maps.ikeytz.com… page, public embed JSON, tel:+49…, mailto:…, https://wa.me/…, or a www pointer. Prefer this over constructing URLs."},"detail":"Field `canonicalUrl` was added to `get_ai_page` output.","severity":"risky"},{"kind":"output_property_added","path":"outputSchema.properties.error","tool":"get_ai_page","after":{"type":"string","description":"Present when ok=false. Codes include: unknown_place, unknown_discovery, unknown_doc, q_required, plz_required, coords_required, outside_service_area, url_required, not_maps_host, bad_url, path_or_url_required, serp_not_found, slug_or_coords_required, path_required."},"detail":"Field `error` was added to `get_ai_page` output.","severity":"risky"},{"kind":"output_property_added","path":"outputSchema.properties.hint","tool":"get_ai_page","after":{"type":"string","description":"Present when ok=false. Absolute URL or short recovery hint the agent should open or pass to another tool."},"detail":"Field `hint` was added to `get_ai_page` output.","severity":"risky"},{"kind":"output_property_added","path":"outputSchema.properties.html","tool":"get_ai_page","after":{"type":"string","description":"When www pointer"},"detail":"Field `html` was added to `get_ai_page` output.","severity":"risky"},{"kind":"output_property_added","path":"outputSchema.properties.locale","tool":"get_ai_page","after":{"enum":["de"],"type":"string","description":"Locale actually used for URLs. maps is German-only: always de (MAPS-E8 — no /en on maps). Requested non-de is ignored; payload locale=de."},"detail":"Field `locale` was added to `get_ai_page` output.","severity":"risky"},{"kind":"output_property_added","path":"outputSchema.properties.note","tool":"get_ai_page","after":{"type":"string"},"detail":"Field `note` was added to `get_ai_page` output.","severity":"risky"},{"kind":"output_property_added","path":"outputSchema.properties.ok","tool":"get_ai_page","after":{"type":"boolean","description":"true = use summary, canonicalUrl, and extra keys. false = do not invent data; read error + hint and retry with valid args or open hint."},"detail":"Field `ok` was added to `get_ai_page` output.","severity":"risky"},{"kind":"output_property_added","path":"outputSchema.properties.path","tool":"get_ai_page","after":{"type":"string","description":"/ai-pages/de/{slug}.txt"},"detail":"Field `path` was added to `get_ai_page` output.","severity":"risky"},{"kind":"output_property_added","path":"outputSchema.properties.related","tool":"get_ai_page","after":{"type":"array","items":{"type":"string","format":"uri"},"description":"Always includes https://maps.ikeytz.com/llms.txt."},"detail":"Field `related` was added to `get_ai_page` output.","severity":"risky"},{"kind":"output_property_added","path":"outputSchema.properties.slug","tool":"get_ai_page","after":{"type":"string"},"detail":"Field `slug` was added to `get_ai_page` output.","severity":"risky"},{"kind":"output_property_added","path":"outputSchema.properties.summary","tool":"get_ai_page","after":{"type":"string","description":"Primary text for the model. For discovery tools this is the file window. For list tools a compact one-liner. Quote with attribution."},"detail":"Field `summary` was added to `get_ai_page` output.","severity":"risky"},{"kind":"output_property_added","path":"outputSchema.properties.text","tool":"get_ai_page","after":{"type":"string","description":"Full ai-page UTF-8 text"},"detail":"Field `text` was added to `get_ai_page` output.","severity":"risky"},{"kind":"output_property_added","path":"outputSchema.properties.tool","tool":"get_ai_page","after":{"type":"string","description":"Echo of the tool name that produced this object (e.g. get_service_area)."},"detail":"Field `tool` was added to `get_ai_page` output.","severity":"risky"},{"kind":"description_changed","tool":"get_ai_txt","after":"WHAT: Alias get_discovery(which=ai-txt) — maps /.well-known/ai.txt 1:1. USE for crawl/train policy (ai-train=no). NEXT: get_llms_txt.","before":"maps /.well-known/ai.txt 1:1.","detail":"Description of `get_ai_txt` changed (67% word delta).","severity":"risky","descriptionDelta":0.6666666666666667},{"kind":"default_changed","path":"inputSchema.properties.offset","tool":"get_ai_txt","after":0,"detail":"Default of `offset` on `get_ai_txt` changed unset → 0.","severity":"risky"},{"kind":"output_property_added","path":"outputSchema.properties.attribution","tool":"get_ai_txt","after":{"type":"string","description":"Required citation: 'Quelle: Schlüsseldienst Ludwigsburg ikeytz (ikeytz.com) · ai-train=no · https://maps.ikeytz.com/.well-known/ai.txt'"},"detail":"Field `attribution` was added to `get_ai_txt` output.","severity":"risky"},{"kind":"output_property_added","path":"outputSchema.properties.body","tool":"get_ai_txt","after":{"type":"string","description":"UTF-8 text window after offset/limit"},"detail":"Field `body` was added to `get_ai_txt` output.","severity":"risky"},{"kind":"output_property_added","path":"outputSchema.properties.canonicalUrl","tool":"get_ai_txt","after":{"type":"string","description":"Best URL to show the user: https://maps.ikeytz.com… page, public embed JSON, tel:+49…, mailto:…, https://wa.me/…, or a www pointer. Prefer this over constructing URLs."},"detail":"Field `canonicalUrl` was added to `get_ai_txt` output.","severity":"risky"},{"kind":"output_property_added","path":"outputSchema.properties.error","tool":"get_ai_txt","after":{"type":"string","description":"Present when ok=false. Codes include: unknown_place, unknown_discovery, unknown_doc, q_required, plz_required, coords_required, outside_service_area, url_required, not_maps_host, bad_url, path_or_url_required, serp_not_found, slug_or_coords_required, path_required."},"detail":"Field `error` was added to `get_ai_txt` output.","severity":"risky"},{"kind":"output_property_added","path":"outputSchema.properties.hint","tool":"get_ai_txt","after":{"type":"string","description":"Present when ok=false. Absolute URL or short recovery hint the agent should open or pass to another tool."},"detail":"Field `hint` was added to `get_ai_txt` output.","severity":"risky"},{"kind":"output_property_added","path":"outputSchema.properties.limit","tool":"get_ai_txt","after":{"type":["number","null"],"description":"Applied line limit, or null if omitted"},"detail":"Field `limit` was added to `get_ai_txt` output.","severity":"risky"},{"kind":"output_property_added","path":"outputSchema.properties.locale","tool":"get_ai_txt","after":{"enum":["de"],"type":"string","description":"Locale actually used for URLs. maps is German-only: always de (MAPS-E8 — no /en on maps). Requested non-de is ignored; payload locale=de."},"detail":"Field `locale` was added to `get_ai_txt` output.","severity":"risky"},{"kind":"output_property_added","path":"outputSchema.properties.missing","tool":"get_ai_txt","after":{"type":"boolean","description":"true if the discovery file was not found on disk"},"detail":"Field `missing` was added to `get_ai_txt` output.","severity":"risky"},{"kind":"output_property_added","path":"outputSchema.properties.offset","tool":"get_ai_txt","after":{"type":"number","description":"Applied 0-based line offset"},"detail":"Field `offset` was added to `get_ai_txt` output.","severity":"risky"},{"kind":"output_property_added","path":"outputSchema.properties.ok","tool":"get_ai_txt","after":{"type":"boolean","description":"true = use summary, canonicalUrl, and extra keys. false = do not invent data; read error + hint and retry with valid args or open hint."},"detail":"Field `ok` was added to `get_ai_txt` output.","severity":"risky"},{"kind":"output_property_added","path":"outputSchema.properties.path","tool":"get_ai_txt","after":{"type":"string","description":"Public relative path of the file on maps"},"detail":"Field `path` was added to `get_ai_txt` output.","severity":"risky"},{"kind":"output_property_added","path":"outputSchema.properties.related","tool":"get_ai_txt","after":{"type":"array","items":{"type":"string","format":"uri"},"description":"Always includes https://maps.ikeytz.com/llms.txt."},"detail":"Field `related` was added to `get_ai_txt` output.","severity":"risky"},{"kind":"output_property_added","path":"outputSchema.properties.summary","tool":"get_ai_txt","after":{"type":"string","description":"Primary text for the model. For discovery tools this is the file window. For list tools a compact one-liner. Quote with attribution."},"detail":"Field `summary` was added to `get_ai_txt` output.","severity":"risky"},{"kind":"output_property_added","path":"outputSchema.properties.text","tool":"get_ai_txt","after":{"type":"string","description":"Alias/window of body when present"},"detail":"Field `text` was added to `get_ai_txt` output.","severity":"risky"},{"kind":"output_property_added","path":"outputSchema.properties.tool","tool":"get_ai_txt","after":{"type":"string","description":"Echo of the tool name that produced this object (e.g. get_service_area)."},"detail":"Field `tool` was added to `get_ai_txt` output.","severity":"risky"},{"kind":"output_property_added","path":"outputSchema.properties.total_lines","tool":"get_ai_txt","after":{"type":"number","description":"Line count of the full file"},"detail":"Field `total_lines` was added to `get_ai_txt` output.","severity":"risky"},{"kind":"output_property_added","path":"outputSchema.properties.which","tool":"get_ai_txt","after":{"type":"string","description":"Resolved discovery id (ard, ai-catalog, llms, robots, sitemap-txt, llms-mcp-server, …)."},"detail":"Field `which` was added to `get_ai_txt` output.","severity":"risky"},{"kind":"description_changed","tool":"get_auswahl_item","after":"WHAT: www pointer only — one Auswahl item on www /auswahl/{slug}. slug required. maps returns html to that path. NEXT: www get_auswahl_item.","before":"Auswahl-Detail ist www. maps nur Link.","detail":"Description of `get_auswahl_item` changed (86% word delta).","severity":"risky","descriptionDelta":0.8636363636363636},{"kind":"enum_narrowed","path":"inputSchema.properties.locale","tool":"get_auswahl_item","after":"enum[de]","before":"open","detail":"`locale` on `get_auswahl_item` narrowed to a closed enum (de); previously valid values may now be rejected.","severity":"breaking"},{"kind":"default_changed","path":"inputSchema.properties.locale","tool":"get_auswahl_item","after":"de","detail":"Default of `locale` on `get_auswahl_item` changed unset → \"de\".","severity":"risky"},{"kind":"output_property_added","path":"outputSchema.properties.attribution","tool":"get_auswahl_item","after":{"type":"string","description":"Required citation: 'Quelle: Schlüsseldienst Ludwigsburg ikeytz (ikeytz.com) · ai-train=no · https://maps.ikeytz.com/.well-known/ai.txt'"},"detail":"Field `attribution` was added to `get_auswahl_item` output.","severity":"risky"},{"kind":"output_property_added","path":"outputSchema.properties.canonicalUrl","tool":"get_auswahl_item","after":{"type":"string","description":"Best URL to show the user: https://maps.ikeytz.com… page, public embed JSON, tel:+49…, mailto:…, https://wa.me/…, or a www pointer. Prefer this over constructing URLs."},"detail":"Field `canonicalUrl` was added to `get_auswahl_item` output.","severity":"risky"},{"kind":"output_property_added","path":"outputSchema.properties.error","tool":"get_auswahl_item","after":{"type":"string","description":"Present when ok=false. Codes include: unknown_place, unknown_discovery, unknown_doc, q_required, plz_required, coords_required, outside_service_area, url_required, not_maps_host, bad_url, path_or_url_required, serp_not_found, slug_or_coords_required, path_required."},"detail":"Field `error` was added to `get_auswahl_item` output.","severity":"risky"},{"kind":"output_property_added","path":"outputSchema.properties.hint","tool":"get_auswahl_item","after":{"type":"string","description":"Present when ok=false. Absolute URL or short recovery hint the agent should open or pass to another tool."},"detail":"Field `hint` was added to `get_auswahl_item` output.","severity":"risky"},{"kind":"output_property_added","path":"outputSchema.properties.html","tool":"get_auswahl_item","after":{"type":"string","format":"uri","description":"Absolute www.ikeytz.com URL — open there or call @ikeytz/mcp"},"detail":"Field `html` was added to `get_auswahl_item` output.","severity":"risky"},{"kind":"output_property_added","path":"outputSchema.properties.locale","tool":"get_auswahl_item","after":{"enum":["de"],"type":"string","description":"Locale actually used for URLs. maps is German-only: always de (MAPS-E8 — no /en on maps). Requested non-de is ignored; payload locale=de."},"detail":"Field `locale` was added to `get_auswahl_item` output.","severity":"risky"},{"kind":"output_property_added","path":"outputSchema.properties.note","tool":"get_auswahl_item","after":{"type":"string","description":"maps only points; Volltext/Preise/FAQ live on www"},"detail":"Field `note` was added to `get_auswahl_item` output.","severity":"risky"},{"kind":"output_property_added","path":"outputSchema.properties.npm","tool":"get_auswahl_item","after":{"type":"string","description":"www CLI package @ikeytz/mcp"},"detail":"Field `npm` was added to `get_auswahl_item` output.","severity":"risky"},{"kind":"output_property_added","path":"outputSchema.properties.ok","tool":"get_auswahl_item","after":{"type":"boolean","description":"true = use summary, canonicalUrl, and extra keys. false = do not invent data; read error + hint and retry with valid args or open hint."},"detail":"Field `ok` was added to `get_auswahl_item` output.","severity":"risky"},{"kind":"output_property_added","path":"outputSchema.properties.related","tool":"get_auswahl_item","after":{"type":"array","items":{"type":"string","format":"uri"},"description":"Always includes https://maps.ikeytz.com/llms.txt."},"detail":"Field `related` was added to `get_auswahl_item` output.","severity":"risky"},{"kind":"output_property_added","path":"outputSchema.properties.requested_locale","tool":"get_auswahl_item","after":{"type":"string","description":"Locale the caller asked for; maps still returns locale=de"},"detail":"Field `requested_locale` was added to `get_auswahl_item` output.","severity":"risky"},{"kind":"output_property_added","path":"outputSchema.properties.summary","tool":"get_auswahl_item","after":{"type":"string","description":"Primary text for the model. For discovery tools this is the file window. For list tools a compact one-liner. Quote with attribution."},"detail":"Field `summary` was added to `get_auswahl_item` output.","severity":"risky"},{"kind":"output_property_added","path":"outputSchema.properties.tool","tool":"get_auswahl_item","after":{"type":"string","description":"Echo of the tool name that produced this object (e.g. get_service_area)."},"detail":"Field `tool` was added to `get_auswahl_item` output.","severity":"risky"},{"kind":"output_property_added","path":"outputSchema.properties.www_mcp","tool":"get_auswahl_item","after":{"type":"string","format":"uri","description":"https://www.ikeytz.com/mcp — sister machine for prices/FAQ/corpus"},"detail":"Field `www_mcp` was added to `get_auswahl_item` output.","severity":"risky"},{"kind":"output_property_added","path":"outputSchema.properties.www_tool","tool":"get_auswahl_item","after":{"type":"string","description":"Same tool name on www MCP that holds the real payload"},"detail":"Field `www_tool` was added to `get_auswahl_item` output.","severity":"risky"},{"kind":"description_changed","tool":"get_business_identity","after":"WHO: Inhaber, brand, legalName, hours, NAP, office coords. walkIn=false — mobile only. USE for LocalBusiness / impressum-grade facts on maps. DOES NOT update records. NEXT: get_contact, get_geo_office, get_impressum.","before":"Inhaber, NAP, Gewerbesitz. Kein Walk-in.","detail":"Description of `get_business_identity` changed (94% word delta).","severity":"risky","descriptionDelta":0.9375},{"kind":"enum_narrowed","path":"inputSchema.properties.locale","tool":"get_business_identity","after":"enum[de]","before":"open","detail":"`locale` on `get_business_identity` narrowed to a closed enum (de); previously valid values may now be rejected.","severity":"breaking"},{"kind":"default_changed","path":"inputSchema.properties.locale","tool":"get_business_identity","after":"de","detail":"Default of `locale` on `get_business_identity` changed unset → \"de\".","severity":"risky"},{"kind":"output_property_added","path":"outputSchema.properties.attribution","tool":"get_business_identity","after":{"type":"string","description":"Required citation: 'Quelle: Schlüsseldienst Ludwigsburg ikeytz (ikeytz.com) · ai-train=no · https://maps.ikeytz.com/.well-known/ai.txt'"},"detail":"Field `attribution` was added to `get_business_identity` output.","severity":"risky"},{"kind":"output_property_added","path":"outputSchema.properties.brand","tool":"get_business_identity","after":{"type":"string"},"detail":"Field `brand` was added to `get_business_identity` output.","severity":"risky"},{"kind":"output_property_added","path":"outputSchema.properties.canonicalUrl","tool":"get_business_identity","after":{"type":"string","description":"Best URL to show the user: https://maps.ikeytz.com… page, public embed JSON, tel:+49…, mailto:…, https://wa.me/…, or a www pointer. Prefer this over constructing URLs."},"detail":"Field `canonicalUrl` was added to `get_business_identity` output.","severity":"risky"},{"kind":"output_property_added","path":"outputSchema.properties.error","tool":"get_business_identity","after":{"type":"string","description":"Present when ok=false. Codes include: unknown_place, unknown_discovery, unknown_doc, q_required, plz_required, coords_required, outside_service_area, url_required, not_maps_host, bad_url, path_or_url_required, serp_not_found, slug_or_coords_required, path_required."},"detail":"Field `error` was added to `get_business_identity` output.","severity":"risky"},{"kind":"output_property_added","path":"outputSchema.properties.hint","tool":"get_business_identity","after":{"type":"string","description":"Present when ok=false. Absolute URL or short recovery hint the agent should open or pass to another tool."},"detail":"Field `hint` was added to `get_business_identity` output.","severity":"risky"},{"kind":"output_property_added","path":"outputSchema.properties.hours","tool":"get_business_identity","after":{"type":"string"},"detail":"Field `hours` was added to `get_business_identity` output.","severity":"risky"},{"kind":"output_property_added","path":"outputSchema.properties.legalName","tool":"get_business_identity","after":{"type":"string"},"detail":"Field `legalName` was added to `get_business_identity` output.","severity":"risky"},{"kind":"output_property_added","path":"outputSchema.properties.locale","tool":"get_business_identity","after":{"enum":["de"],"type":"string","description":"Locale actually used for URLs. maps is German-only: always de (MAPS-E8 — no /en on maps). Requested non-de is ignored; payload locale=de."},"detail":"Field `locale` was added to `get_business_identity` output.","severity":"risky"},{"kind":"output_property_added","path":"outputSchema.properties.maps","tool":"get_business_identity","after":{"type":"string","format":"uri"},"detail":"Field `maps` was added to `get_business_identity` output.","severity":"risky"},{"kind":"output_property_added","path":"outputSchema.properties.nap","tool":"get_business_identity","after":{"type":"object","description":"Public NAP payload"},"detail":"Field `nap` was added to `get_business_identity` output.","severity":"risky"},{"kind":"output_property_added","path":"outputSchema.properties.note","tool":"get_business_identity","after":{"type":"string"},"detail":"Field `note` was added to `get_business_identity` output.","severity":"risky"},{"kind":"output_property_added","path":"outputSchema.properties.office","tool":"get_business_identity","after":{"type":"object","description":"lat/lng/google_maps/icbm"},"detail":"Field `office` was added to `get_business_identity` output.","severity":"risky"},{"kind":"output_property_added","path":"outputSchema.properties.office_note","tool":"get_business_identity","after":{"type":"string"},"detail":"Field `office_note` was added to `get_business_identity` output.","severity":"risky"},{"kind":"output_property_added","path":"outputSchema.properties.ok","tool":"get_business_identity","after":{"type":"boolean","description":"true = use summary, canonicalUrl, and extra keys. false = do not invent data; read error + hint and retry with valid args or open hint."},"detail":"Field `ok` was added to `get_business_identity` output.","severity":"risky"},{"kind":"output_property_added","path":"outputSchema.properties.owner","tool":"get_business_identity","after":{"type":"string","description":"Mahmud Reza Kashani"},"detail":"Field `owner` was added to `get_business_identity` output.","severity":"risky"},{"kind":"output_property_added","path":"outputSchema.properties.related","tool":"get_business_identity","after":{"type":"array","items":{"type":"string","format":"uri"},"description":"Always includes https://maps.ikeytz.com/llms.txt."},"detail":"Field `related` was added to `get_business_identity` output.","severity":"risky"},{"kind":"output_property_added","path":"outputSchema.properties.summary","tool":"get_business_identity","after":{"type":"string","description":"Primary text for the model. For discovery tools this is the file window. For list tools a compact one-liner. Quote with attribution."},"detail":"Field `summary` was added to `get_business_identity` output.","severity":"risky"},{"kind":"output_property_added","path":"outputSchema.properties.tool","tool":"get_business_identity","after":{"type":"string","description":"Echo of the tool name that produced this object (e.g. get_service_area)."},"detail":"Field `tool` was added to `get_business_identity` output.","severity":"risky"},{"kind":"output_property_added","path":"outputSchema.properties.walkIn","tool":"get_business_identity","after":{"type":"boolean","description":"Always false"},"detail":"Field `walkIn` was added to `get_business_identity` output.","severity":"risky"},{"kind":"output_property_added","path":"outputSchema.properties.www","tool":"get_business_identity","after":{"type":"string","format":"uri"},"detail":"Field `www` was added to `get_business_identity` output.","severity":"risky"},{"kind":"description_changed","tool":"get_contact","after":"WHAT: Public NAP — mobile, landline, fax, email, mapsEmail (info@maps.ikeytz.com), WhatsApp, address, office coords. walkIn=false. USE for call/WhatsApp/mail CTAs. DOES NOT open tickets or send messages. NEXT: compose_tel_mobile, compose_whatsapp, compose_mailto, list_whatsapp_options.","before":"NAP: Handy, Festnetz, Fax, E-Mail, WhatsApp, Adresse.","detail":"Description of `get_contact` changed (90% word delta).","severity":"risky","descriptionDelta":0.8974358974358975},{"kind":"enum_narrowed","path":"inputSchema.properties.locale","tool":"get_contact","after":"enum[de]","before":"open","detail":"`locale` on `get_contact` narrowed to a closed enum (de); previously valid values may now be rejected.","severity":"breaking"},{"kind":"default_changed","path":"inputSchema.properties.locale","tool":"get_contact","after":"de","detail":"Default of `locale` on `get_contact` changed unset → \"de\".","severity":"risky"},{"kind":"output_property_added","path":"outputSchema.properties.address","tool":"get_contact","after":{"type":"object","description":"Structured address block"},"detail":"Field `address` was added to `get_contact` output.","severity":"risky"},{"kind":"output_property_added","path":"outputSchema.properties.addressLine","tool":"get_contact","after":{"type":"string","description":"Single-line address"},"detail":"Field `addressLine` was added to `get_contact` output.","severity":"risky"},{"kind":"output_property_added","path":"outputSchema.properties.attribution","tool":"get_contact","after":{"type":"string","description":"Required citation: 'Quelle: Schlüsseldienst Ludwigsburg ikeytz (ikeytz.com) · ai-train=no · https://maps.ikeytz.com/.well-known/ai.txt'"},"detail":"Field `attribution` was added to `get_contact` output.","severity":"risky"},{"kind":"output_property_added","path":"outputSchema.properties.canonicalUrl","tool":"get_contact","after":{"type":"string","description":"Best URL to show the user: https://maps.ikeytz.com… page, public embed JSON, tel:+49…, mailto:…, https://wa.me/…, or a www pointer. Prefer this over constructing URLs."},"detail":"Field `canonicalUrl` was added to `get_contact` output.","severity":"risky"},{"kind":"output_property_added","path":"outputSchema.properties.email","tool":"get_contact","after":{"type":"string","description":"info@ikeytz.com"},"detail":"Field `email` was added to `get_contact` output.","severity":"risky"},{"kind":"output_property_added","path":"outputSchema.properties.error","tool":"get_contact","after":{"type":"string","description":"Present when ok=false. Codes include: unknown_place, unknown_discovery, unknown_doc, q_required, plz_required, coords_required, outside_service_area, url_required, not_maps_host, bad_url, path_or_url_required, serp_not_found, slug_or_coords_required, path_required."},"detail":"Field `error` was added to `get_contact` output.","severity":"risky"},{"kind":"output_property_added","path":"outputSchema.properties.fax","tool":"get_contact","after":{"type":"string","description":"Fax display"},"detail":"Field `fax` was added to `get_contact` output.","severity":"risky"},{"kind":"output_property_added","path":"outputSchema.properties.google_maps","tool":"get_contact","after":{"type":"string"},"detail":"Field `google_maps` was added to `get_contact` output.","severity":"risky"},{"kind":"output_property_added","path":"outputSchema.properties.hint","tool":"get_contact","after":{"type":"string","description":"Present when ok=false. Absolute URL or short recovery hint the agent should open or pass to another tool."},"detail":"Field `hint` was added to `get_contact` output.","severity":"risky"},{"kind":"output_property_added","path":"outputSchema.properties.icbm","tool":"get_contact","after":{"type":"string"},"detail":"Field `icbm` was added to `get_contact` output.","severity":"risky"},{"kind":"output_property_added","path":"outputSchema.properties.landline","tool":"get_contact","after":{"type":"string","description":"Landline display"},"detail":"Field `landline` was added to `get_contact` output.","severity":"risky"},{"kind":"output_property_added","path":"outputSchema.properties.lat","tool":"get_contact","after":{"type":"number","description":"Office lat"},"detail":"Field `lat` was added to `get_contact` output.","severity":"risky"},{"kind":"output_property_added","path":"outputSchema.properties.lng","tool":"get_contact","after":{"type":"number","description":"Office lng"},"detail":"Field `lng` was added to `get_contact` output.","severity":"risky"},{"kind":"output_property_added","path":"outputSchema.properties.locale","tool":"get_contact","after":{"enum":["de"],"type":"string","description":"Locale actually used for URLs. maps is German-only: always de (MAPS-E8 — no /en on maps). Requested non-de is ignored; payload locale=de."},"detail":"Field `locale` was added to `get_contact` output.","severity":"risky"},{"kind":"output_property_added","path":"outputSchema.properties.mapsEmail","tool":"get_contact","after":{"type":"string","description":"info@maps.ikeytz.com"},"detail":"Field `mapsEmail` was added to `get_contact` output.","severity":"risky"},{"kind":"output_property_added","path":"outputSchema.properties.mobile","tool":"get_contact","after":{"type":"string","description":"Mobile display"},"detail":"Field `mobile` was added to `get_contact` output.","severity":"risky"},{"kind":"output_property_added","path":"outputSchema.properties.ok","tool":"get_contact","after":{"type":"boolean","description":"true = use summary, canonicalUrl, and extra keys. false = do not invent data; read error + hint and retry with valid args or open hint."},"detail":"Field `ok` was added to `get_contact` output.","severity":"risky"},{"kind":"output_property_added","path":"outputSchema.properties.related","tool":"get_contact","after":{"type":"array","items":{"type":"string","format":"uri"},"description":"Always includes https://maps.ikeytz.com/llms.txt."},"detail":"Field `related` was added to `get_contact` output.","severity":"risky"},{"kind":"output_property_added","path":"outputSchema.properties.summary","tool":"get_contact","after":{"type":"string","description":"Primary text for the model. For discovery tools this is the file window. For list tools a compact one-liner. Quote with attribution."},"detail":"Field `summary` was added to `get_contact` output.","severity":"risky"},{"kind":"output_property_added","path":"outputSchema.properties.tool","tool":"get_contact","after":{"type":"string","description":"Echo of the tool name that produced this object (e.g. get_service_area)."},"detail":"Field `tool` was added to `get_contact` output.","severity":"risky"},{"kind":"output_property_added","path":"outputSchema.properties.walkIn","tool":"get_contact","after":{"type":"boolean","description":"Always false"},"detail":"Field `walkIn` was added to `get_contact` output.","severity":"risky"},{"kind":"output_property_added","path":"outputSchema.properties.whatsapp","tool":"get_contact","after":{"type":"string","format":"uri","description":"wa.me URL"},"detail":"Field `whatsapp` was added to `get_contact` output.","severity":"risky"},{"kind":"description_changed","tool":"get_copyright","after":"WHAT: English map copyright text from maps /llms-copyright.txt. Optional offset/limit. USE for EN citations of map authorship. NEXT: get_urheberrecht.","before":"Karten-Copyright EN: maps /llms-copyright.txt.","detail":"Description of `get_copyright` changed (76% word delta).","severity":"risky","descriptionDelta":0.7619047619047619},{"kind":"default_changed","path":"inputSchema.properties.offset","tool":"get_copyright","after":0,"detail":"Default of `offset` on `get_copyright` changed unset → 0.","severity":"risky"},{"kind":"output_property_added","path":"outputSchema.properties.attribution","tool":"get_copyright","after":{"type":"string","description":"Required citation: 'Quelle: Schlüsseldienst Ludwigsburg ikeytz (ikeytz.com) · ai-train=no · https://maps.ikeytz.com/.well-known/ai.txt'"},"detail":"Field `attribution` was added to `get_copyright` output.","severity":"risky"},{"kind":"output_property_added","path":"outputSchema.properties.body","tool":"get_copyright","after":{"type":"string"},"detail":"Field `body` was added to `get_copyright` output.","severity":"risky"},{"kind":"output_property_added","path":"outputSchema.properties.canonicalUrl","tool":"get_copyright","after":{"type":"string","description":"Best URL to show the user: https://maps.ikeytz.com… page, public embed JSON, tel:+49…, mailto:…, https://wa.me/…, or a www pointer. Prefer this over constructing URLs."},"detail":"Field `canonicalUrl` was added to `get_copyright` output.","severity":"risky"},{"kind":"output_property_added","path":"outputSchema.properties.doc","tool":"get_copyright","after":{"type":"string","const":"copyright"},"detail":"Field `doc` was added to `get_copyright` output.","severity":"risky"},{"kind":"output_property_added","path":"outputSchema.properties.error","tool":"get_copyright","after":{"type":"string","description":"Present when ok=false. Codes include: unknown_place, unknown_discovery, unknown_doc, q_required, plz_required, coords_required, outside_service_area, url_required, not_maps_host, bad_url, path_or_url_required, serp_not_found, slug_or_coords_required, path_required."},"detail":"Field `error` was added to `get_copyright` output.","severity":"risky"},{"kind":"output_property_added","path":"outputSchema.properties.hint","tool":"get_copyright","after":{"type":"string","description":"Present when ok=false. Absolute URL or short recovery hint the agent should open or pass to another tool."},"detail":"Field `hint` was added to `get_copyright` output.","severity":"risky"},{"kind":"output_property_added","path":"outputSchema.properties.html","tool":"get_copyright","after":{"type":"string"},"detail":"Field `html` was added to `get_copyright` output.","severity":"risky"},{"kind":"output_property_added","path":"outputSchema.properties.locale","tool":"get_copyright","after":{"enum":["de"],"type":"string","description":"Locale actually used for URLs. maps is German-only: always de (MAPS-E8 — no /en on maps). Requested non-de is ignored; payload locale=de."},"detail":"Field `locale` was added to `get_copyright` output.","severity":"risky"},{"kind":"output_property_added","path":"outputSchema.properties.ok","tool":"get_copyright","after":{"type":"boolean","description":"true = use summary, canonicalUrl, and extra keys. false = do not invent data; read error + hint and retry with valid args or open hint."},"detail":"Field `ok` was added to `get_copyright` output.","severity":"risky"},{"kind":"output_property_added","path":"outputSchema.properties.related","tool":"get_copyright","after":{"type":"array","items":{"type":"string","format":"uri"},"description":"Always includes https://maps.ikeytz.com/llms.txt."},"detail":"Field `related` was added to `get_copyright` output.","severity":"risky"},{"kind":"output_property_added","path":"outputSchema.properties.summary","tool":"get_copyright","after":{"type":"string","description":"Primary text for the model. For discovery tools this is the file window. For list tools a compact one-liner. Quote with attribution."},"detail":"Field `summary` was added to `get_copyright` output.","severity":"risky"},{"kind":"output_property_added","path":"outputSchema.properties.tool","tool":"get_copyright","after":{"type":"string","description":"Echo of the tool name that produced this object (e.g. get_service_area)."},"detail":"Field `tool` was added to `get_copyright` output.","severity":"risky"},{"kind":"output_property_added","path":"outputSchema.properties.which","tool":"get_copyright","after":{"type":"string"},"detail":"Field `which` was added to `get_copyright` output.","severity":"risky"},{"kind":"description_changed","tool":"get_datenschutz","after":"WHAT: www pointer only — Datenschutz on www.ikeytz.com. maps returns html link. DOES NOT return the privacy policy body. NEXT: www MCP.","before":"Datenschutz: Link www (HTML bleibt www).","detail":"Description of `get_datenschutz` changed (82% word delta).","severity":"risky","descriptionDelta":0.8181818181818181},{"kind":"output_property_added","path":"outputSchema.properties.attribution","tool":"get_datenschutz","after":{"type":"string","description":"Required citation: 'Quelle: Schlüsseldienst Ludwigsburg ikeytz (ikeytz.com) · ai-train=no · https://maps.ikeytz.com/.well-known/ai.txt'"},"detail":"Field `attribution` was added to `get_datenschutz` output.","severity":"risky"},{"kind":"output_property_added","path":"outputSchema.properties.canonicalUrl","tool":"get_datenschutz","after":{"type":"string","description":"Best URL to show the user: https://maps.ikeytz.com… page, public embed JSON, tel:+49…, mailto:…, https://wa.me/…, or a www pointer. Prefer this over constructing URLs."},"detail":"Field `canonicalUrl` was added to `get_datenschutz` output.","severity":"risky"},{"kind":"output_property_added","path":"outputSchema.properties.error","tool":"get_datenschutz","after":{"type":"string","description":"Present when ok=false. Codes include: unknown_place, unknown_discovery, unknown_doc, q_required, plz_required, coords_required, outside_service_area, url_required, not_maps_host, bad_url, path_or_url_required, serp_not_found, slug_or_coords_required, path_required."},"detail":"Field `error` was added to `get_datenschutz` output.","severity":"risky"},{"kind":"output_property_added","path":"outputSchema.properties.hint","tool":"get_datenschutz","after":{"type":"string","description":"Present when ok=false. Absolute URL or short recovery hint the agent should open or pass to another tool."},"detail":"Field `hint` was added to `get_datenschutz` output.","severity":"risky"},{"kind":"output_property_added","path":"outputSchema.properties.html","tool":"get_datenschutz","after":{"type":"string","format":"uri","description":"Absolute www.ikeytz.com URL — open there or call @ikeytz/mcp"},"detail":"Field `html` was added to `get_datenschutz` output.","severity":"risky"},{"kind":"output_property_added","path":"outputSchema.properties.locale","tool":"get_datenschutz","after":{"enum":["de"],"type":"string","description":"Locale actually used for URLs. maps is German-only: always de (MAPS-E8 — no /en on maps). Requested non-de is ignored; payload locale=de."},"detail":"Field `locale` was added to `get_datenschutz` output.","severity":"risky"},{"kind":"output_property_added","path":"outputSchema.properties.note","tool":"get_datenschutz","after":{"type":"string","description":"maps only points; Volltext/Preise/FAQ live on www"},"detail":"Field `note` was added to `get_datenschutz` output.","severity":"risky"},{"kind":"output_property_added","path":"outputSchema.properties.npm","tool":"get_datenschutz","after":{"type":"string","description":"www CLI package @ikeytz/mcp"},"detail":"Field `npm` was added to `get_datenschutz` output.","severity":"risky"},{"kind":"output_property_added","path":"outputSchema.properties.ok","tool":"get_datenschutz","after":{"type":"boolean","description":"true = use summary, canonicalUrl, and extra keys. false = do not invent data; read error + hint and retry with valid args or open hint."},"detail":"Field `ok` was added to `get_datenschutz` output.","severity":"risky"},{"kind":"output_property_added","path":"outputSchema.properties.related","tool":"get_datenschutz","after":{"type":"array","items":{"type":"string","format":"uri"},"description":"Always includes https://maps.ikeytz.com/llms.txt."},"detail":"Field `related` was added to `get_datenschutz` output.","severity":"risky"},{"kind":"output_property_added","path":"outputSchema.properties.requested_locale","tool":"get_datenschutz","after":{"type":"string","description":"Locale the caller asked for; maps still returns locale=de"},"detail":"Field `requested_locale` was added to `get_datenschutz` output.","severity":"risky"},{"kind":"output_property_added","path":"outputSchema.properties.summary","tool":"get_datenschutz","after":{"type":"string","description":"Primary text for the model. For discovery tools this is the file window. For list tools a compact one-liner. Quote with attribution."},"detail":"Field `summary` was added to `get_datenschutz` output.","severity":"risky"},{"kind":"output_property_added","path":"outputSchema.properties.tool","tool":"get_datenschutz","after":{"type":"string","description":"Echo of the tool name that produced this object (e.g. get_service_area)."},"detail":"Field `tool` was added to `get_datenschutz` output.","severity":"risky"},{"kind":"output_property_added","path":"outputSchema.properties.www_mcp","tool":"get_datenschutz","after":{"type":"string","format":"uri","description":"https://www.ikeytz.com/mcp — sister machine for prices/FAQ/corpus"},"detail":"Field `www_mcp` was added to `get_datenschutz` output.","severity":"risky"},{"kind":"output_property_added","path":"outputSchema.properties.www_tool","tool":"get_datenschutz","after":{"type":"string","description":"Same tool name on www MCP that holds the real payload"},"detail":"Field `www_tool` was added to `get_datenschutz` output.","severity":"risky"},{"kind":"description_changed","tool":"get_discovery","after":"WHAT: 1:1 mirror of a maps discovery file (UTF-8 text/JSON). which is required — common ids: ard, ai-catalog, ai-txt, ai-plugin, answer-engine, agent-skills, llms, llms-full, llms-index, llms-keywords, llms-serp, llms-impressum-kontakt, llms-orte-geo, llms-urheberrecht, llms-copyright, llms-mcp-server, llms-mcp-web, robots, sitemap-txt, sitemap-xml. Optional offset/limit line window. USE for agent-ready catalogs and robots/sitemap. DOES NOT invent missing files (missing=true). NEXT: find_by_keyword / find_by_serp for structured search; get_llms_txt / get_ai_txt aliases.","before":"1:1 Spiegel einer maps-Discovery-Datei (ard, ai-catalog, llms, robots, plugin, sitemap, …).","detail":"Description of `get_discovery` changed (86% word delta).","severity":"risky","descriptionDelta":0.8571428571428572},{"kind":"enum_value_removed","path":"inputSchema.properties.which","tool":"get_discovery","before":"llms","detail":"Enum value `llms` removed from `which` on `get_discovery`.","severity":"breaking"},{"kind":"enum_value_removed","path":"inputSchema.properties.which","tool":"get_discovery","before":"llms-full","detail":"Enum value `llms-full` removed from `which` on `get_discovery`.","severity":"breaking"},{"kind":"enum_value_removed","path":"inputSchema.properties.which","tool":"get_discovery","before":"llms-index","detail":"Enum value `llms-index` removed from `which` on `get_discovery`.","severity":"breaking"},{"kind":"enum_value_removed","path":"inputSchema.properties.which","tool":"get_discovery","before":"llms-keywords","detail":"Enum value `llms-keywords` removed from `which` on `get_discovery`.","severity":"breaking"},{"kind":"enum_value_removed","path":"inputSchema.properties.which","tool":"get_discovery","before":"llms-serp","detail":"Enum value `llms-serp` removed from `which` on `get_discovery`.","severity":"breaking"},{"kind":"enum_value_removed","path":"inputSchema.properties.which","tool":"get_discovery","before":"llms-impressum-kontakt","detail":"Enum value `llms-impressum-kontakt` removed from `which` on `get_discovery`.","severity":"breaking"},{"kind":"enum_value_removed","path":"inputSchema.properties.which","tool":"get_discovery","before":"llms-orte-geo","detail":"Enum value `llms-orte-geo` removed from `which` on `get_discovery`.","severity":"breaking"},{"kind":"enum_value_removed","path":"inputSchema.properties.which","tool":"get_discovery","before":"llms-urheberrecht","detail":"Enum value `llms-urheberrecht` removed from `which` on `get_discovery`.","severity":"breaking"},{"kind":"enum_value_removed","path":"inputSchema.properties.which","tool":"get_discovery","before":"llms-copyright","detail":"Enum value `llms-copyright` removed from `which` on `get_discovery`.","severity":"breaking"},{"kind":"enum_value_removed","path":"inputSchema.properties.which","tool":"get_discovery","before":"llms-mcp-server","detail":"Enum value `llms-mcp-server` removed from `which` on `get_discovery`.","severity":"breaking"},{"kind":"enum_value_removed","path":"inputSchema.properties.which","tool":"get_discovery","before":"llms-mcp-web","detail":"Enum value `llms-mcp-web` removed from `which` on `get_discovery`.","severity":"breaking"},{"kind":"enum_value_removed","path":"inputSchema.properties.which","tool":"get_discovery","before":"robots","detail":"Enum value `robots` removed from `which` on `get_discovery`.","severity":"breaking"},{"kind":"enum_value_removed","path":"inputSchema.properties.which","tool":"get_discovery","before":"sitemap-txt","detail":"Enum value `sitemap-txt` removed from `which` on `get_discovery`.","severity":"breaking"},{"kind":"enum_value_removed","path":"inputSchema.properties.which","tool":"get_discovery","before":"sitemap-xml","detail":"Enum value `sitemap-xml` removed from `which` on `get_discovery`.","severity":"breaking"},{"kind":"enum_value_removed","path":"inputSchema.properties.which","tool":"get_discovery","before":"ai-txt","detail":"Enum value `ai-txt` removed from `which` on `get_discovery`.","severity":"breaking"},{"kind":"enum_value_removed","path":"inputSchema.properties.which","tool":"get_discovery","before":"ai-plugin","detail":"Enum value `ai-plugin` removed from `which` on `get_discovery`.","severity":"breaking"},{"kind":"enum_value_removed","path":"inputSchema.properties.which","tool":"get_discovery","before":"answer-engine","detail":"Enum value `answer-engine` removed from `which` on `get_discovery`.","severity":"breaking"},{"kind":"enum_value_removed","path":"inputSchema.properties.which","tool":"get_discovery","before":"ai-catalog","detail":"Enum value `ai-catalog` removed from `which` on `get_discovery`.","severity":"breaking"},{"kind":"enum_value_removed","path":"inputSchema.properties.which","tool":"get_discovery","before":"ard","detail":"Enum value `ard` removed from `which` on `get_discovery`.","severity":"breaking"},{"kind":"enum_value_removed","path":"inputSchema.properties.which","tool":"get_discovery","before":"agent-skills","detail":"Enum value `agent-skills` removed from `which` on `get_discovery`.","severity":"breaking"},{"kind":"default_changed","path":"inputSchema.properties.offset","tool":"get_discovery","after":0,"detail":"Default of `offset` on `get_discovery` changed unset → 0.","severity":"risky"},{"kind":"output_property_added","path":"outputSchema.properties.attribution","tool":"get_discovery","after":{"type":"string","description":"Required citation: 'Quelle: Schlüsseldienst Ludwigsburg ikeytz (ikeytz.com) · ai-train=no · https://maps.ikeytz.com/.well-known/ai.txt'"},"detail":"Field `attribution` was added to `get_discovery` output.","severity":"risky"},{"kind":"output_property_added","path":"outputSchema.properties.body","tool":"get_discovery","after":{"type":"string","description":"UTF-8 text window after offset/limit"},"detail":"Field `body` was added to `get_discovery` output.","severity":"risky"},{"kind":"output_property_added","path":"outputSchema.properties.canonicalUrl","tool":"get_discovery","after":{"type":"string","description":"Best URL to show the user: https://maps.ikeytz.com… page, public embed JSON, tel:+49…, mailto:…, https://wa.me/…, or a www pointer. Prefer this over constructing URLs."},"detail":"Field `canonicalUrl` was added to `get_discovery` output.","severity":"risky"},{"kind":"output_property_added","path":"outputSchema.properties.error","tool":"get_discovery","after":{"type":"string","description":"Present when ok=false. Codes include: unknown_place, unknown_discovery, unknown_doc, q_required, plz_required, coords_required, outside_service_area, url_required, not_maps_host, bad_url, path_or_url_required, serp_not_found, slug_or_coords_required, path_required."},"detail":"Field `error` was added to `get_discovery` output.","severity":"risky"},{"kind":"output_property_added","path":"outputSchema.properties.hint","tool":"get_discovery","after":{"type":"string","description":"Present when ok=false. Absolute URL or short recovery hint the agent should open or pass to another tool."},"detail":"Field `hint` was added to `get_discovery` output.","severity":"risky"},{"kind":"output_property_added","path":"outputSchema.properties.limit","tool":"get_discovery","after":{"type":["number","null"],"description":"Applied line limit, or null if omitted"},"detail":"Field `limit` was added to `get_discovery` output.","severity":"risky"},{"kind":"output_property_added","path":"outputSchema.properties.locale","tool":"get_discovery","after":{"enum":["de"],"type":"string","description":"Locale actually used for URLs. maps is German-only: always de (MAPS-E8 — no /en on maps). Requested non-de is ignored; payload locale=de."},"detail":"Field `locale` was added to `get_discovery` output.","severity":"risky"},{"kind":"output_property_added","path":"outputSchema.properties.missing","tool":"get_discovery","after":{"type":"boolean","description":"true if the discovery file was not found on disk"},"detail":"Field `missing` was added to `get_discovery` output.","severity":"risky"},{"kind":"output_property_added","path":"outputSchema.properties.offset","tool":"get_discovery","after":{"type":"number","description":"Applied 0-based line offset"},"detail":"Field `offset` was added to `get_discovery` output.","severity":"risky"},{"kind":"output_property_added","path":"outputSchema.properties.ok","tool":"get_discovery","after":{"type":"boolean","description":"true = use summary, canonicalUrl, and extra keys. false = do not invent data; read error + hint and retry with valid args or open hint."},"detail":"Field `ok` was added to `get_discovery` output.","severity":"risky"},{"kind":"output_property_added","path":"outputSchema.properties.path","tool":"get_discovery","after":{"type":"string","description":"Public relative path of the file on maps"},"detail":"Field `path` was added to `get_discovery` output.","severity":"risky"},{"kind":"output_property_added","path":"outputSchema.properties.related","tool":"get_discovery","after":{"type":"array","items":{"type":"string","format":"uri"},"description":"Always includes https://maps.ikeytz.com/llms.txt."},"detail":"Field `related` was added to `get_discovery` output.","severity":"risky"},{"kind":"output_property_added","path":"outputSchema.properties.summary","tool":"get_discovery","after":{"type":"string","description":"Primary text for the model. For discovery tools this is the file window. For list tools a compact one-liner. Quote with attribution."},"detail":"Field `summary` was added to `get_discovery` output.","severity":"risky"},{"kind":"output_property_added","path":"outputSchema.properties.text","tool":"get_discovery","after":{"type":"string","description":"Alias/window of body when present"},"detail":"Field `text` was added to `get_discovery` output.","severity":"risky"},{"kind":"output_property_added","path":"outputSchema.properties.tool","tool":"get_discovery","after":{"type":"string","description":"Echo of the tool name that produced this object (e.g. get_service_area)."},"detail":"Field `tool` was added to `get_discovery` output.","severity":"risky"},{"kind":"output_property_added","path":"outputSchema.properties.total_lines","tool":"get_discovery","after":{"type":"number","description":"Line count of the full file"},"detail":"Field `total_lines` was added to `get_discovery` output.","severity":"risky"},{"kind":"output_property_added","path":"outputSchema.properties.which","tool":"get_discovery","after":{"type":"string","description":"Resolved discovery id (ard, ai-catalog, llms, robots, sitemap-txt, llms-mcp-server, …)."},"detail":"Field `which` was added to `get_discovery` output.","severity":"risky"},{"kind":"description_changed","tool":"get_embed_map","after":"WHAT: Canonical map page URL https://maps.ikeytz.com/{slug} for iframe/src and Visitenkarte. Lookup slug|plz|name. RETURNS area card + canonicalUrl. USE for embedding or linking a Gebiet map. NEXT: get_geo_api, get_grenze, get_lage.","before":"Kanonische Karten-URL https://maps.ikeytz.com/{slug}.","detail":"Description of `get_embed_map` changed (82% word delta).","severity":"risky","descriptionDelta":0.8235294117647058},{"kind":"output_property_added","path":"outputSchema.properties.attribution","tool":"get_embed_map","after":{"type":"string","description":"Required citation: 'Quelle: Schlüsseldienst Ludwigsburg ikeytz (ikeytz.com) · ai-train=no · https://maps.ikeytz.com/.well-known/ai.txt'"},"detail":"Field `attribution` was added to `get_embed_map` output.","severity":"risky"},{"kind":"output_property_added","path":"outputSchema.properties.canonicalUrl","tool":"get_embed_map","after":{"type":"string","description":"Best URL to show the user: https://maps.ikeytz.com… page, public embed JSON, tel:+49…, mailto:…, https://wa.me/…, or a www pointer. Prefer this over constructing URLs."},"detail":"Field `canonicalUrl` was added to `get_embed_map` output.","severity":"risky"},{"kind":"output_property_added","path":"outputSchema.properties.embed_map","tool":"get_embed_map","after":{"type":"string","format":"uri"},"detail":"Field `embed_map` was added to `get_embed_map` output.","severity":"risky"},{"kind":"output_property_added","path":"outputSchema.properties.error","tool":"get_embed_map","after":{"type":"string","description":"Present when ok=false. Codes include: unknown_place, unknown_discovery, unknown_doc, q_required, plz_required, coords_required, outside_service_area, url_required, not_maps_host, bad_url, path_or_url_required, serp_not_found, slug_or_coords_required, path_required."},"detail":"Field `error` was added to `get_embed_map` output.","severity":"risky"},{"kind":"output_property_added","path":"outputSchema.properties.geo_api","tool":"get_embed_map","after":{"type":"string","format":"uri"},"detail":"Field `geo_api` was added to `get_embed_map` output.","severity":"risky"},{"kind":"output_property_added","path":"outputSchema.properties.hint","tool":"get_embed_map","after":{"type":"string","description":"Present when ok=false. Absolute URL or short recovery hint the agent should open or pass to another tool."},"detail":"Field `hint` was added to `get_embed_map` output.","severity":"risky"},{"kind":"output_property_added","path":"outputSchema.properties.lat","tool":"get_embed_map","after":{"type":"number"},"detail":"Field `lat` was added to `get_embed_map` output.","severity":"risky"},{"kind":"output_property_added","path":"outputSchema.properties.lng","tool":"get_embed_map","after":{"type":"number"},"detail":"Field `lng` was added to `get_embed_map` output.","severity":"risky"},{"kind":"output_property_added","path":"outputSchema.properties.locale","tool":"get_embed_map","after":{"enum":["de"],"type":"string","description":"Locale actually used for URLs. maps is German-only: always de (MAPS-E8 — no /en on maps). Requested non-de is ignored; payload locale=de."},"detail":"Field `locale` was added to `get_embed_map` output.","severity":"risky"},{"kind":"output_property_added","path":"outputSchema.properties.name","tool":"get_embed_map","after":{"type":"string"},"detail":"Field `name` was added to `get_embed_map` output.","severity":"risky"},{"kind":"output_property_added","path":"outputSchema.properties.ok","tool":"get_embed_map","after":{"type":"boolean","description":"true = use summary, canonicalUrl, and extra keys. false = do not invent data; read error + hint and retry with valid args or open hint."},"detail":"Field `ok` was added to `get_embed_map` output.","severity":"risky"},{"kind":"output_property_added","path":"outputSchema.properties.plz","tool":"get_embed_map","after":{"type":"string"},"detail":"Field `plz` was added to `get_embed_map` output.","severity":"risky"},{"kind":"output_property_added","path":"outputSchema.properties.related","tool":"get_embed_map","after":{"type":"array","items":{"type":"string","format":"uri"},"description":"Always includes https://maps.ikeytz.com/llms.txt."},"detail":"Field `related` was added to `get_embed_map` output.","severity":"risky"},{"kind":"output_property_added","path":"outputSchema.properties.slug","tool":"get_embed_map","after":{"type":"string"},"detail":"Field `slug` was added to `get_embed_map` output.","severity":"risky"},{"kind":"output_property_added","path":"outputSchema.properties.summary","tool":"get_embed_map","after":{"type":"string","description":"Primary text for the model. For discovery tools this is the file window. For list tools a compact one-liner. Quote with attribution."},"detail":"Field `summary` was added to `get_embed_map` output.","severity":"risky"},{"kind":"output_property_added","path":"outputSchema.properties.tool","tool":"get_embed_map","after":{"type":"string","description":"Echo of the tool name that produced this object (e.g. get_service_area)."},"detail":"Field `tool` was added to `get_embed_map` output.","severity":"risky"},{"kind":"description_changed","tool":"get_emergency","after":"WHAT: www pointer only — Notfall-Türöffnung page on www. maps returns html; use get_contact / compose_tel_mobile here for phones. DOES NOT dispatch. NEXT: compose_tel_mobile, www get_emergency.","before":"Notfall-Text ist www. maps nur Link.","detail":"Description of `get_emergency` changed (89% word delta).","severity":"risky","descriptionDelta":0.8928571428571429},{"kind":"enum_narrowed","path":"inputSchema.properties.locale","tool":"get_emergency","after":"enum[de]","before":"open","detail":"`locale` on `get_emergency` narrowed to a closed enum (de); previously valid values may now be rejected.","severity":"breaking"},{"kind":"default_changed","path":"inputSchema.properties.locale","tool":"get_emergency","after":"de","detail":"Default of `locale` on `get_emergency` changed unset → \"de\".","severity":"risky"},{"kind":"output_property_added","path":"outputSchema.properties.attribution","tool":"get_emergency","after":{"type":"string","description":"Required citation: 'Quelle: Schlüsseldienst Ludwigsburg ikeytz (ikeytz.com) · ai-train=no · https://maps.ikeytz.com/.well-known/ai.txt'"},"detail":"Field `attribution` was added to `get_emergency` output.","severity":"risky"},{"kind":"output_property_added","path":"outputSchema.properties.canonicalUrl","tool":"get_emergency","after":{"type":"string","description":"Best URL to show the user: https://maps.ikeytz.com… page, public embed JSON, tel:+49…, mailto:…, https://wa.me/…, or a www pointer. Prefer this over constructing URLs."},"detail":"Field `canonicalUrl` was added to `get_emergency` output.","severity":"risky"},{"kind":"output_property_added","path":"outputSchema.properties.error","tool":"get_emergency","after":{"type":"string","description":"Present when ok=false. Codes include: unknown_place, unknown_discovery, unknown_doc, q_required, plz_required, coords_required, outside_service_area, url_required, not_maps_host, bad_url, path_or_url_required, serp_not_found, slug_or_coords_required, path_required."},"detail":"Field `error` was added to `get_emergency` output.","severity":"risky"},{"kind":"output_property_added","path":"outputSchema.properties.hint","tool":"get_emergency","after":{"type":"string","description":"Present when ok=false. Absolute URL or short recovery hint the agent should open or pass to another tool."},"detail":"Field `hint` was added to `get_emergency` output.","severity":"risky"},{"kind":"output_property_added","path":"outputSchema.properties.html","tool":"get_emergency","after":{"type":"string","format":"uri","description":"Absolute www.ikeytz.com URL — open there or call @ikeytz/mcp"},"detail":"Field `html` was added to `get_emergency` output.","severity":"risky"},{"kind":"output_property_added","path":"outputSchema.properties.locale","tool":"get_emergency","after":{"enum":["de"],"type":"string","description":"Locale actually used for URLs. maps is German-only: always de (MAPS-E8 — no /en on maps). Requested non-de is ignored; payload locale=de."},"detail":"Field `locale` was added to `get_emergency` output.","severity":"risky"},{"kind":"output_property_added","path":"outputSchema.properties.note","tool":"get_emergency","after":{"type":"string","description":"maps only points; Volltext/Preise/FAQ live on www"},"detail":"Field `note` was added to `get_emergency` output.","severity":"risky"},{"kind":"output_property_added","path":"outputSchema.properties.npm","tool":"get_emergency","after":{"type":"string","description":"www CLI package @ikeytz/mcp"},"detail":"Field `npm` was added to `get_emergency` output.","severity":"risky"},{"kind":"output_property_added","path":"outputSchema.properties.ok","tool":"get_emergency","after":{"type":"boolean","description":"true = use summary, canonicalUrl, and extra keys. false = do not invent data; read error + hint and retry with valid args or open hint."},"detail":"Field `ok` was added to `get_emergency` output.","severity":"risky"},{"kind":"output_property_added","path":"outputSchema.properties.related","tool":"get_emergency","after":{"type":"array","items":{"type":"string","format":"uri"},"description":"Always includes https://maps.ikeytz.com/llms.txt."},"detail":"Field `related` was added to `get_emergency` output.","severity":"risky"},{"kind":"output_property_added","path":"outputSchema.properties.requested_locale","tool":"get_emergency","after":{"type":"string","description":"Locale the caller asked for; maps still returns locale=de"},"detail":"Field `requested_locale` was added to `get_emergency` output.","severity":"risky"},{"kind":"output_property_added","path":"outputSchema.properties.summary","tool":"get_emergency","after":{"type":"string","description":"Primary text for the model. For discovery tools this is the file window. For list tools a compact one-liner. Quote with attribution."},"detail":"Field `summary` was added to `get_emergency` output.","severity":"risky"},{"kind":"output_property_added","path":"outputSchema.properties.tool","tool":"get_emergency","after":{"type":"string","description":"Echo of the tool name that produced this object (e.g. get_service_area)."},"detail":"Field `tool` was added to `get_emergency` output.","severity":"risky"},{"kind":"output_property_added","path":"outputSchema.properties.www_mcp","tool":"get_emergency","after":{"type":"string","format":"uri","description":"https://www.ikeytz.com/mcp — sister machine for prices/FAQ/corpus"},"detail":"Field `www_mcp` was added to `get_emergency` output.","severity":"risky"},{"kind":"output_property_added","path":"outputSchema.properties.www_tool","tool":"get_emergency","after":{"type":"string","description":"Same tool name on www MCP that holds the real payload"},"detail":"Field `www_tool` was added to `get_emergency` output.","severity":"risky"},{"kind":"description_changed","tool":"get_faq","after":"WHAT: www pointer only — one FAQ answer lives on www. Optional id/q for www; maps returns /faq html. NEXT: www get_faq.","before":"FAQ-Antwort ist www. maps nur Link.","detail":"Description of `get_faq` changed (86% word delta).","severity":"risky","descriptionDelta":0.8636363636363636},{"kind":"enum_narrowed","path":"inputSchema.properties.locale","tool":"get_faq","after":"enum[de]","before":"open","detail":"`locale` on `get_faq` narrowed to a closed enum (de); previously valid values may now be rejected.","severity":"breaking"},{"kind":"default_changed","path":"inputSchema.properties.locale","tool":"get_faq","after":"de","detail":"Default of `locale` on `get_faq` changed unset → \"de\".","severity":"risky"},{"kind":"output_property_added","path":"outputSchema.properties.attribution","tool":"get_faq","after":{"type":"string","description":"Required citation: 'Quelle: Schlüsseldienst Ludwigsburg ikeytz (ikeytz.com) · ai-train=no · https://maps.ikeytz.com/.well-known/ai.txt'"},"detail":"Field `attribution` was added to `get_faq` output.","severity":"risky"},{"kind":"output_property_added","path":"outputSchema.properties.canonicalUrl","tool":"get_faq","after":{"type":"string","description":"Best URL to show the user: https://maps.ikeytz.com… page, public embed JSON, tel:+49…, mailto:…, https://wa.me/…, or a www pointer. Prefer this over constructing URLs."},"detail":"Field `canonicalUrl` was added to `get_faq` output.","severity":"risky"},{"kind":"output_property_added","path":"outputSchema.properties.error","tool":"get_faq","after":{"type":"string","description":"Present when ok=false. Codes include: unknown_place, unknown_discovery, unknown_doc, q_required, plz_required, coords_required, outside_service_area, url_required, not_maps_host, bad_url, path_or_url_required, serp_not_found, slug_or_coords_required, path_required."},"detail":"Field `error` was added to `get_faq` output.","severity":"risky"},{"kind":"output_property_added","path":"outputSchema.properties.hint","tool":"get_faq","after":{"type":"string","description":"Present when ok=false. Absolute URL or short recovery hint the agent should open or pass to another tool."},"detail":"Field `hint` was added to `get_faq` output.","severity":"risky"},{"kind":"output_property_added","path":"outputSchema.properties.html","tool":"get_faq","after":{"type":"string","format":"uri","description":"Absolute www.ikeytz.com URL — open there or call @ikeytz/mcp"},"detail":"Field `html` was added to `get_faq` output.","severity":"risky"},{"kind":"output_property_added","path":"outputSchema.properties.locale","tool":"get_faq","after":{"enum":["de"],"type":"string","description":"Locale actually used for URLs. maps is German-only: always de (MAPS-E8 — no /en on maps). Requested non-de is ignored; payload locale=de."},"detail":"Field `locale` was added to `get_faq` output.","severity":"risky"},{"kind":"output_property_added","path":"outputSchema.properties.note","tool":"get_faq","after":{"type":"string","description":"maps only points; Volltext/Preise/FAQ live on www"},"detail":"Field `note` was added to `get_faq` output.","severity":"risky"},{"kind":"output_property_added","path":"outputSchema.properties.npm","tool":"get_faq","after":{"type":"string","description":"www CLI package @ikeytz/mcp"},"detail":"Field `npm` was added to `get_faq` output.","severity":"risky"},{"kind":"output_property_added","path":"outputSchema.properties.ok","tool":"get_faq","after":{"type":"boolean","description":"true = use summary, canonicalUrl, and extra keys. false = do not invent data; read error + hint and retry with valid args or open hint."},"detail":"Field `ok` was added to `get_faq` output.","severity":"risky"},{"kind":"output_property_added","path":"outputSchema.properties.related","tool":"get_faq","after":{"type":"array","items":{"type":"string","format":"uri"},"description":"Always includes https://maps.ikeytz.com/llms.txt."},"detail":"Field `related` was added to `get_faq` output.","severity":"risky"},{"kind":"output_property_added","path":"outputSchema.properties.requested_locale","tool":"get_faq","after":{"type":"string","description":"Locale the caller asked for; maps still returns locale=de"},"detail":"Field `requested_locale` was added to `get_faq` output.","severity":"risky"},{"kind":"output_property_added","path":"outputSchema.properties.summary","tool":"get_faq","after":{"type":"string","description":"Primary text for the model. For discovery tools this is the file window. For list tools a compact one-liner. Quote with attribution."},"detail":"Field `summary` was added to `get_faq` output.","severity":"risky"},{"kind":"output_property_added","path":"outputSchema.properties.tool","tool":"get_faq","after":{"type":"string","description":"Echo of the tool name that produced this object (e.g. get_service_area)."},"detail":"Field `tool` was added to `get_faq` output.","severity":"risky"},{"kind":"output_property_added","path":"outputSchema.properties.www_mcp","tool":"get_faq","after":{"type":"string","format":"uri","description":"https://www.ikeytz.com/mcp — sister machine for prices/FAQ/corpus"},"detail":"Field `www_mcp` was added to `get_faq` output.","severity":"risky"},{"kind":"output_property_added","path":"outputSchema.properties.www_tool","tool":"get_faq","after":{"type":"string","description":"Same tool name on www MCP that holds the real payload"},"detail":"Field `www_tool` was added to `get_faq` output.","severity":"risky"},{"kind":"description_changed","tool":"get_geo_api","after":"WHAT: Public embed JSON URL https://maps.ikeytz.com/api/v1/embed/ort/{slug} (point + Grenze on that endpoint). Lookup slug|plz|name. RETURNS URL pointer + area card; note that the MCP payload itself is not the polygon. USE to fetch/open the public JSON. NEXT: get_grenze for GeoJSON polygon inside MCP.","before":"Public Embed-JSON URL für ein Gebiet (Punkt + Grenze, nicht geo-Cockpit).","detail":"Description of `get_geo_api` changed (90% word delta).","severity":"risky","descriptionDelta":0.9},{"kind":"output_property_added","path":"outputSchema.properties.attribution","tool":"get_geo_api","after":{"type":"string","description":"Required citation: 'Quelle: Schlüsseldienst Ludwigsburg ikeytz (ikeytz.com) · ai-train=no · https://maps.ikeytz.com/.well-known/ai.txt'"},"detail":"Field `attribution` was added to `get_geo_api` output.","severity":"risky"},{"kind":"output_property_added","path":"outputSchema.properties.canonicalUrl","tool":"get_geo_api","after":{"type":"string","description":"Best URL to show the user: https://maps.ikeytz.com… page, public embed JSON, tel:+49…, mailto:…, https://wa.me/…, or a www pointer. Prefer this over constructing URLs."},"detail":"Field `canonicalUrl` was added to `get_geo_api` output.","severity":"risky"},{"kind":"output_property_added","path":"outputSchema.properties.embed_map","tool":"get_geo_api","after":{"type":"string","format":"uri"},"detail":"Field `embed_map` was added to `get_geo_api` output.","severity":"risky"},{"kind":"output_property_added","path":"outputSchema.properties.error","tool":"get_geo_api","after":{"type":"string","description":"Present when ok=false. Codes include: unknown_place, unknown_discovery, unknown_doc, q_required, plz_required, coords_required, outside_service_area, url_required, not_maps_host, bad_url, path_or_url_required, serp_not_found, slug_or_coords_required, path_required."},"detail":"Field `error` was added to `get_geo_api` output.","severity":"risky"},{"kind":"output_property_added","path":"outputSchema.properties.geo_api","tool":"get_geo_api","after":{"type":"string","format":"uri"},"detail":"Field `geo_api` was added to `get_geo_api` output.","severity":"risky"},{"kind":"output_property_added","path":"outputSchema.properties.hint","tool":"get_geo_api","after":{"type":"string","description":"Present when ok=false. Absolute URL or short recovery hint the agent should open or pass to another tool."},"detail":"Field `hint` was added to `get_geo_api` output.","severity":"risky"},{"kind":"output_property_added","path":"outputSchema.properties.lat","tool":"get_geo_api","after":{"type":"number"},"detail":"Field `lat` was added to `get_geo_api` output.","severity":"risky"},{"kind":"output_property_added","path":"outputSchema.properties.lng","tool":"get_geo_api","after":{"type":"number"},"detail":"Field `lng` was added to `get_geo_api` output.","severity":"risky"},{"kind":"output_property_added","path":"outputSchema.properties.locale","tool":"get_geo_api","after":{"enum":["de"],"type":"string","description":"Locale actually used for URLs. maps is German-only: always de (MAPS-E8 — no /en on maps). Requested non-de is ignored; payload locale=de."},"detail":"Field `locale` was added to `get_geo_api` output.","severity":"risky"},{"kind":"output_property_added","path":"outputSchema.properties.name","tool":"get_geo_api","after":{"type":"string"},"detail":"Field `name` was added to `get_geo_api` output.","severity":"risky"},{"kind":"output_property_added","path":"outputSchema.properties.note","tool":"get_geo_api","after":{"type":"string","description":"Public JSON pointer; use get_grenze for polygon in MCP"},"detail":"Field `note` was added to `get_geo_api` output.","severity":"risky"},{"kind":"output_property_added","path":"outputSchema.properties.ok","tool":"get_geo_api","after":{"type":"boolean","description":"true = use summary, canonicalUrl, and extra keys. false = do not invent data; read error + hint and retry with valid args or open hint."},"detail":"Field `ok` was added to `get_geo_api` output.","severity":"risky"},{"kind":"output_property_added","path":"outputSchema.properties.plz","tool":"get_geo_api","after":{"type":"string"},"detail":"Field `plz` was added to `get_geo_api` output.","severity":"risky"},{"kind":"output_property_added","path":"outputSchema.properties.related","tool":"get_geo_api","after":{"type":"array","items":{"type":"string","format":"uri"},"description":"Always includes https://maps.ikeytz.com/llms.txt."},"detail":"Field `related` was added to `get_geo_api` output.","severity":"risky"},{"kind":"output_property_added","path":"outputSchema.properties.slug","tool":"get_geo_api","after":{"type":"string"},"detail":"Field `slug` was added to `get_geo_api` output.","severity":"risky"},{"kind":"output_property_added","path":"outputSchema.properties.summary","tool":"get_geo_api","after":{"type":"string","description":"Primary text for the model. For discovery tools this is the file window. For list tools a compact one-liner. Quote with attribution."},"detail":"Field `summary` was added to `get_geo_api` output.","severity":"risky"},{"kind":"output_property_added","path":"outputSchema.properties.tool","tool":"get_geo_api","after":{"type":"string","description":"Echo of the tool name that produced this object (e.g. get_service_area)."},"detail":"Field `tool` was added to `get_geo_api` output.","severity":"risky"},{"kind":"description_changed","tool":"get_geo_office","after":"WHO/WHAT: Gewerbesitz (registered office) coordinates and street in Ludwigsburg. walkIn=false always — mobile locksmith, not a shop counter. RETURNS street, postal, city, lat, lng, google_maps/icbm, walkIn. USE for NAP/schema or distance_to_office. DOES NOT accept walk-in customers or bookings. NEXT: get_contact, distance_to_office, get_business_identity.","before":"Gewerbesitz Ludwigsburg. Kein Walk-in.","detail":"Description of `get_geo_office` changed (90% word delta).","severity":"risky","descriptionDelta":0.9024390243902439},{"kind":"enum_narrowed","path":"inputSchema.properties.locale","tool":"get_geo_office","after":"enum[de]","before":"open","detail":"`locale` on `get_geo_office` narrowed to a closed enum (de); previously valid values may now be rejected.","severity":"breaking"},{"kind":"default_changed","path":"inputSchema.properties.locale","tool":"get_geo_office","after":"de","detail":"Default of `locale` on `get_geo_office` changed unset → \"de\".","severity":"risky"},{"kind":"output_property_added","path":"outputSchema.properties.attribution","tool":"get_geo_office","after":{"type":"string","description":"Required citation: 'Quelle: Schlüsseldienst Ludwigsburg ikeytz (ikeytz.com) · ai-train=no · https://maps.ikeytz.com/.well-known/ai.txt'"},"detail":"Field `attribution` was added to `get_geo_office` output.","severity":"risky"},{"kind":"output_property_added","path":"outputSchema.properties.canonicalUrl","tool":"get_geo_office","after":{"type":"string","description":"Best URL to show the user: https://maps.ikeytz.com… page, public embed JSON, tel:+49…, mailto:…, https://wa.me/…, or a www pointer. Prefer this over constructing URLs."},"detail":"Field `canonicalUrl` was added to `get_geo_office` output.","severity":"risky"},{"kind":"output_property_added","path":"outputSchema.properties.city","tool":"get_geo_office","after":{"type":"string","description":"City"},"detail":"Field `city` was added to `get_geo_office` output.","severity":"risky"},{"kind":"output_property_added","path":"outputSchema.properties.error","tool":"get_geo_office","after":{"type":"string","description":"Present when ok=false. Codes include: unknown_place, unknown_discovery, unknown_doc, q_required, plz_required, coords_required, outside_service_area, url_required, not_maps_host, bad_url, path_or_url_required, serp_not_found, slug_or_coords_required, path_required."},"detail":"Field `error` was added to `get_geo_office` output.","severity":"risky"},{"kind":"output_property_added","path":"outputSchema.properties.google_maps","tool":"get_geo_office","after":{"type":"string","description":"'lat, lng'"},"detail":"Field `google_maps` was added to `get_geo_office` output.","severity":"risky"},{"kind":"output_property_added","path":"outputSchema.properties.hint","tool":"get_geo_office","after":{"type":"string","description":"Present when ok=false. Absolute URL or short recovery hint the agent should open or pass to another tool."},"detail":"Field `hint` was added to `get_geo_office` output.","severity":"risky"},{"kind":"output_property_added","path":"outputSchema.properties.icbm","tool":"get_geo_office","after":{"type":"string","description":"ICBM string"},"detail":"Field `icbm` was added to `get_geo_office` output.","severity":"risky"},{"kind":"output_property_added","path":"outputSchema.properties.lat","tool":"get_geo_office","after":{"type":"number","description":"Office latitude"},"detail":"Field `lat` was added to `get_geo_office` output.","severity":"risky"},{"kind":"output_property_added","path":"outputSchema.properties.lng","tool":"get_geo_office","after":{"type":"number","description":"Office longitude"},"detail":"Field `lng` was added to `get_geo_office` output.","severity":"risky"},{"kind":"output_property_added","path":"outputSchema.properties.locale","tool":"get_geo_office","after":{"enum":["de"],"type":"string","description":"Locale actually used for URLs. maps is German-only: always de (MAPS-E8 — no /en on maps). Requested non-de is ignored; payload locale=de."},"detail":"Field `locale` was added to `get_geo_office` output.","severity":"risky"},{"kind":"output_property_added","path":"outputSchema.properties.ok","tool":"get_geo_office","after":{"type":"boolean","description":"true = use summary, canonicalUrl, and extra keys. false = do not invent data; read error + hint and retry with valid args or open hint."},"detail":"Field `ok` was added to `get_geo_office` output.","severity":"risky"},{"kind":"output_property_added","path":"outputSchema.properties.postal","tool":"get_geo_office","after":{"type":"string","description":"Postal code"},"detail":"Field `postal` was added to `get_geo_office` output.","severity":"risky"},{"kind":"output_property_added","path":"outputSchema.properties.related","tool":"get_geo_office","after":{"type":"array","items":{"type":"string","format":"uri"},"description":"Always includes https://maps.ikeytz.com/llms.txt."},"detail":"Field `related` was added to `get_geo_office` output.","severity":"risky"},{"kind":"output_property_added","path":"outputSchema.properties.street","tool":"get_geo_office","after":{"type":"string","description":"Office street"},"detail":"Field `street` was added to `get_geo_office` output.","severity":"risky"},{"kind":"output_property_added","path":"outputSchema.properties.summary","tool":"get_geo_office","after":{"type":"string","description":"Primary text for the model. For discovery tools this is the file window. For list tools a compact one-liner. Quote with attribution."},"detail":"Field `summary` was added to `get_geo_office` output.","severity":"risky"},{"kind":"output_property_added","path":"outputSchema.properties.tool","tool":"get_geo_office","after":{"type":"string","description":"Echo of the tool name that produced this object (e.g. get_service_area)."},"detail":"Field `tool` was added to `get_geo_office` output.","severity":"risky"},{"kind":"output_property_added","path":"outputSchema.properties.walkIn","tool":"get_geo_office","after":{"type":"boolean","description":"Always false — no shop counter"},"detail":"Field `walkIn` was added to `get_geo_office` output.","severity":"risky"},{"kind":"description_changed","tool":"get_geschichte","after":"WHAT: Geschichte (history) text for one Einsatzgebiet Visitenkarte. Lookup slug|plz|name. RETURNS slug, name, geschichte. USE for place history prose on the map page. NEXT: get_lage, get_ai_page.","before":"Geschichte-Text eines Einsatzgebiets (Karte / Visitenkarte).","detail":"Description of `get_geschichte` changed (88% word delta).","severity":"risky","descriptionDelta":0.8846153846153846},{"kind":"output_property_added","path":"outputSchema.properties.attribution","tool":"get_geschichte","after":{"type":"string","description":"Required citation: 'Quelle: Schlüsseldienst Ludwigsburg ikeytz (ikeytz.com) · ai-train=no · https://maps.ikeytz.com/.well-known/ai.txt'"},"detail":"Field `attribution` was added to `get_geschichte` output.","severity":"risky"},{"kind":"output_property_added","path":"outputSchema.properties.canonicalUrl","tool":"get_geschichte","after":{"type":"string","description":"Best URL to show the user: https://maps.ikeytz.com… page, public embed JSON, tel:+49…, mailto:…, https://wa.me/…, or a www pointer. Prefer this over constructing URLs."},"detail":"Field `canonicalUrl` was added to `get_geschichte` output.","severity":"risky"},{"kind":"output_property_added","path":"outputSchema.properties.error","tool":"get_geschichte","after":{"type":"string","description":"Present when ok=false. Codes include: unknown_place, unknown_discovery, unknown_doc, q_required, plz_required, coords_required, outside_service_area, url_required, not_maps_host, bad_url, path_or_url_required, serp_not_found, slug_or_coords_required, path_required."},"detail":"Field `error` was added to `get_geschichte` output.","severity":"risky"},{"kind":"output_property_added","path":"outputSchema.properties.geschichte","tool":"get_geschichte","after":{"type":"string","description":"Geschichte prose (may be empty)"},"detail":"Field `geschichte` was added to `get_geschichte` output.","severity":"risky"},{"kind":"output_property_added","path":"outputSchema.properties.hint","tool":"get_geschichte","after":{"type":"string","description":"Present when ok=false. Absolute URL or short recovery hint the agent should open or pass to another tool."},"detail":"Field `hint` was added to `get_geschichte` output.","severity":"risky"},{"kind":"output_property_added","path":"outputSchema.properties.locale","tool":"get_geschichte","after":{"enum":["de"],"type":"string","description":"Locale actually used for URLs. maps is German-only: always de (MAPS-E8 — no /en on maps). Requested non-de is ignored; payload locale=de."},"detail":"Field `locale` was added to `get_geschichte` output.","severity":"risky"},{"kind":"output_property_added","path":"outputSchema.properties.name","tool":"get_geschichte","after":{"type":"string"},"detail":"Field `name` was added to `get_geschichte` output.","severity":"risky"},{"kind":"output_property_added","path":"outputSchema.properties.ok","tool":"get_geschichte","after":{"type":"boolean","description":"true = use summary, canonicalUrl, and extra keys. false = do not invent data; read error + hint and retry with valid args or open hint."},"detail":"Field `ok` was added to `get_geschichte` output.","severity":"risky"},{"kind":"output_property_added","path":"outputSchema.properties.related","tool":"get_geschichte","after":{"type":"array","items":{"type":"string","format":"uri"},"description":"Always includes https://maps.ikeytz.com/llms.txt."},"detail":"Field `related` was added to `get_geschichte` output.","severity":"risky"},{"kind":"output_property_added","path":"outputSchema.properties.slug","tool":"get_geschichte","after":{"type":"string"},"detail":"Field `slug` was added to `get_geschichte` output.","severity":"risky"},{"kind":"output_property_added","path":"outputSchema.properties.summary","tool":"get_geschichte","after":{"type":"string","description":"Primary text for the model. For discovery tools this is the file window. For list tools a compact one-liner. Quote with attribution."},"detail":"Field `summary` was added to `get_geschichte` output.","severity":"risky"},{"kind":"output_property_added","path":"outputSchema.properties.tool","tool":"get_geschichte","after":{"type":"string","description":"Echo of the tool name that produced this object (e.g. get_service_area)."},"detail":"Field `tool` was added to `get_geschichte` output.","severity":"risky"},{"kind":"description_changed","tool":"get_grenze","after":"WHAT: OSM Gebietspolygon for one Einsatzgebiet as GeoJSON FeatureCollection inside the MCP result. Lookup slug|plz|name. RETURNS hasPolygon, polygon, point, osmRelationId/osmWayId, via. USE when the agent needs the boundary geometry. DOES NOT replace get_geo_api (that remains the URL pointer). NEXT: get_lage, get_embed_map.","before":"OSM-Gebietspolygon eines Einsatzgebiets als GeoJSON (ein Ort). get_geo_api bleibt nur der URL-Zeiger.","detail":"Description of `get_grenze` changed (90% word delta).","severity":"risky","descriptionDelta":0.9},{"kind":"output_property_added","path":"outputSchema.properties.attribution","tool":"get_grenze","after":{"type":"string","description":"Required citation: 'Quelle: Schlüsseldienst Ludwigsburg ikeytz (ikeytz.com) · ai-train=no · https://maps.ikeytz.com/.well-known/ai.txt'"},"detail":"Field `attribution` was added to `get_grenze` output.","severity":"risky"},{"kind":"output_property_added","path":"outputSchema.properties.canonicalUrl","tool":"get_grenze","after":{"type":"string","description":"Best URL to show the user: https://maps.ikeytz.com… page, public embed JSON, tel:+49…, mailto:…, https://wa.me/…, or a www pointer. Prefer this over constructing URLs."},"detail":"Field `canonicalUrl` was added to `get_grenze` output.","severity":"risky"},{"kind":"output_property_added","path":"outputSchema.properties.error","tool":"get_grenze","after":{"type":"string","description":"Present when ok=false. Codes include: unknown_place, unknown_discovery, unknown_doc, q_required, plz_required, coords_required, outside_service_area, url_required, not_maps_host, bad_url, path_or_url_required, serp_not_found, slug_or_coords_required, path_required."},"detail":"Field `error` was added to `get_grenze` output.","severity":"risky"},{"kind":"output_property_added","path":"outputSchema.properties.geo_api","tool":"get_grenze","after":{"type":"string","format":"uri"},"detail":"Field `geo_api` was added to `get_grenze` output.","severity":"risky"},{"kind":"output_property_added","path":"outputSchema.properties.hasPolygon","tool":"get_grenze","after":{"type":"boolean","description":"true if polygon.features length > 0"},"detail":"Field `hasPolygon` was added to `get_grenze` output.","severity":"risky"},{"kind":"output_property_added","path":"outputSchema.properties.hint","tool":"get_grenze","after":{"type":"string","description":"Present when ok=false. Absolute URL or short recovery hint the agent should open or pass to another tool."},"detail":"Field `hint` was added to `get_grenze` output.","severity":"risky"},{"kind":"output_property_added","path":"outputSchema.properties.lat","tool":"get_grenze","after":{"type":"number"},"detail":"Field `lat` was added to `get_grenze` output.","severity":"risky"},{"kind":"output_property_added","path":"outputSchema.properties.lng","tool":"get_grenze","after":{"type":"number"},"detail":"Field `lng` was added to `get_grenze` output.","severity":"risky"},{"kind":"output_property_added","path":"outputSchema.properties.locale","tool":"get_grenze","after":{"enum":["de"],"type":"string","description":"Locale actually used for URLs. maps is German-only: always de (MAPS-E8 — no /en on maps). Requested non-de is ignored; payload locale=de."},"detail":"Field `locale` was added to `get_grenze` output.","severity":"risky"},{"kind":"output_property_added","path":"outputSchema.properties.name","tool":"get_grenze","after":{"type":"string"},"detail":"Field `name` was added to `get_grenze` output.","severity":"risky"},{"kind":"output_property_added","path":"outputSchema.properties.ok","tool":"get_grenze","after":{"type":"boolean","description":"true = use summary, canonicalUrl, and extra keys. false = do not invent data; read error + hint and retry with valid args or open hint."},"detail":"Field `ok` was added to `get_grenze` output.","severity":"risky"},{"kind":"output_property_added","path":"outputSchema.properties.osmRelationId","tool":"get_grenze","after":{"type":["number","null"],"description":"OSM relation id if any"},"detail":"Field `osmRelationId` was added to `get_grenze` output.","severity":"risky"},{"kind":"output_property_added","path":"outputSchema.properties.osmWayId","tool":"get_grenze","after":{"type":["number","null"],"description":"OSM way id if any"},"detail":"Field `osmWayId` was added to `get_grenze` output.","severity":"risky"},{"kind":"output_property_added","path":"outputSchema.properties.plz","tool":"get_grenze","after":{"type":"string"},"detail":"Field `plz` was added to `get_grenze` output.","severity":"risky"},{"kind":"output_property_added","path":"outputSchema.properties.point","tool":"get_grenze","after":{"type":["object","null"],"description":"Point feature or null"},"detail":"Field `point` was added to `get_grenze` output.","severity":"risky"},{"kind":"output_property_added","path":"outputSchema.properties.polygon","tool":"get_grenze","after":{"type":"object","description":"GeoJSON FeatureCollection (may be empty)"},"detail":"Field `polygon` was added to `get_grenze` output.","severity":"risky"},{"kind":"output_property_added","path":"outputSchema.properties.related","tool":"get_grenze","after":{"type":"array","items":{"type":"string","format":"uri"},"description":"Always includes https://maps.ikeytz.com/llms.txt."},"detail":"Field `related` was added to `get_grenze` output.","severity":"risky"},{"kind":"output_property_added","path":"outputSchema.properties.slug","tool":"get_grenze","after":{"type":"string"},"detail":"Field `slug` was added to `get_grenze` output.","severity":"risky"},{"kind":"output_property_added","path":"outputSchema.properties.summary","tool":"get_grenze","after":{"type":"string","description":"Primary text for the model. For discovery tools this is the file window. For list tools a compact one-liner. Quote with attribution."},"detail":"Field `summary` was added to `get_grenze` output.","severity":"risky"},{"kind":"output_property_added","path":"outputSchema.properties.tool","tool":"get_grenze","after":{"type":"string","description":"Echo of the tool name that produced this object (e.g. get_service_area)."},"detail":"Field `tool` was added to `get_grenze` output.","severity":"risky"},{"kind":"output_property_added","path":"outputSchema.properties.via","tool":"get_grenze","after":{"type":["string","null"],"description":"Fetch path hint"},"detail":"Field `via` was added to `get_grenze` output.","severity":"risky"},{"kind":"description_changed","tool":"get_hub","after":"WHAT: maps hub card https://maps.ikeytz.com/ — title/h1 + 52 Gebiet links (not a single Visitenkarte). Call with {}. USE as the maps landing overview. DOES NOT include www prices. NEXT: get_service_area, list_service_areas.","before":"Karten-Hub maps.ikeytz.com/ — 52 Gebiete, keine Visitenkarte.","detail":"Description of `get_hub` changed (82% word delta).","severity":"risky","descriptionDelta":0.8181818181818181},{"kind":"output_property_added","path":"outputSchema.properties.attribution","tool":"get_hub","after":{"type":"string","description":"Required citation: 'Quelle: Schlüsseldienst Ludwigsburg ikeytz (ikeytz.com) · ai-train=no · https://maps.ikeytz.com/.well-known/ai.txt'"},"detail":"Field `attribution` was added to `get_hub` output.","severity":"risky"},{"kind":"output_property_added","path":"outputSchema.properties.canonicalUrl","tool":"get_hub","after":{"type":"string","description":"Best URL to show the user: https://maps.ikeytz.com… page, public embed JSON, tel:+49…, mailto:…, https://wa.me/…, or a www pointer. Prefer this over constructing URLs."},"detail":"Field `canonicalUrl` was added to `get_hub` output.","severity":"risky"},{"kind":"output_property_added","path":"outputSchema.properties.count","tool":"get_hub","after":{"type":"number","description":"52"},"detail":"Field `count` was added to `get_hub` output.","severity":"risky"},{"kind":"output_property_added","path":"outputSchema.properties.error","tool":"get_hub","after":{"type":"string","description":"Present when ok=false. Codes include: unknown_place, unknown_discovery, unknown_doc, q_required, plz_required, coords_required, outside_service_area, url_required, not_maps_host, bad_url, path_or_url_required, serp_not_found, slug_or_coords_required, path_required."},"detail":"Field `error` was added to `get_hub` output.","severity":"risky"},{"kind":"output_property_added","path":"outputSchema.properties.h1","tool":"get_hub","after":{"type":"string","description":"Hub H1"},"detail":"Field `h1` was added to `get_hub` output.","severity":"risky"},{"kind":"output_property_added","path":"outputSchema.properties.hint","tool":"get_hub","after":{"type":"string","description":"Present when ok=false. Absolute URL or short recovery hint the agent should open or pass to another tool."},"detail":"Field `hint` was added to `get_hub` output.","severity":"risky"},{"kind":"output_property_added","path":"outputSchema.properties.items","tool":"get_hub","after":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string"},"slug":{"type":"string"},"embed_map":{"type":"string","format":"uri"}}},"description":"slug/name/embed_map rows"},"detail":"Field `items` was added to `get_hub` output.","severity":"risky"},{"kind":"output_property_added","path":"outputSchema.properties.locale","tool":"get_hub","after":{"enum":["de"],"type":"string","description":"Locale actually used for URLs. maps is German-only: always de (MAPS-E8 — no /en on maps). Requested non-de is ignored; payload locale=de."},"detail":"Field `locale` was added to `get_hub` output.","severity":"risky"},{"kind":"output_property_added","path":"outputSchema.properties.ok","tool":"get_hub","after":{"type":"boolean","description":"true = use summary, canonicalUrl, and extra keys. false = do not invent data; read error + hint and retry with valid args or open hint."},"detail":"Field `ok` was added to `get_hub` output.","severity":"risky"},{"kind":"output_property_added","path":"outputSchema.properties.related","tool":"get_hub","after":{"type":"array","items":{"type":"string","format":"uri"},"description":"Always includes https://maps.ikeytz.com/llms.txt."},"detail":"Field `related` was added to `get_hub` output.","severity":"risky"},{"kind":"output_property_added","path":"outputSchema.properties.summary","tool":"get_hub","after":{"type":"string","description":"Primary text for the model. For discovery tools this is the file window. For list tools a compact one-liner. Quote with attribution."},"detail":"Field `summary` was added to `get_hub` output.","severity":"risky"},{"kind":"output_property_added","path":"outputSchema.properties.title","tool":"get_hub","after":{"type":"string","description":"Hub title"},"detail":"Field `title` was added to `get_hub` output.","severity":"risky"},{"kind":"output_property_added","path":"outputSchema.properties.tool","tool":"get_hub","after":{"type":"string","description":"Echo of the tool name that produced this object (e.g. get_service_area)."},"detail":"Field `tool` was added to `get_hub` output.","severity":"risky"},{"kind":"description_changed","tool":"get_impressum","after":"WHAT: Impressum/Kontakt text from maps /llms-impressum-kontakt.txt. Optional offset/limit. USE for NAP/legal imprint on maps. NEXT: get_contact, get_business_identity; www /impressum for HTML.","before":"Impressum/Kontakt-Text: maps /llms-impressum-kontakt.txt.","detail":"Description of `get_impressum` changed (73% word delta).","severity":"risky","descriptionDelta":0.7272727272727273},{"kind":"default_changed","path":"inputSchema.properties.offset","tool":"get_impressum","after":0,"detail":"Default of `offset` on `get_impressum` changed unset → 0.","severity":"risky"},{"kind":"output_property_added","path":"outputSchema.properties.attribution","tool":"get_impressum","after":{"type":"string","description":"Required citation: 'Quelle: Schlüsseldienst Ludwigsburg ikeytz (ikeytz.com) · ai-train=no · https://maps.ikeytz.com/.well-known/ai.txt'"},"detail":"Field `attribution` was added to `get_impressum` output.","severity":"risky"},{"kind":"output_property_added","path":"outputSchema.properties.body","tool":"get_impressum","after":{"type":"string"},"detail":"Field `body` was added to `get_impressum` output.","severity":"risky"},{"kind":"output_property_added","path":"outputSchema.properties.canonicalUrl","tool":"get_impressum","after":{"type":"string","description":"Best URL to show the user: https://maps.ikeytz.com… page, public embed JSON, tel:+49…, mailto:…, https://wa.me/…, or a www pointer. Prefer this over constructing URLs."},"detail":"Field `canonicalUrl` was added to `get_impressum` output.","severity":"risky"},{"kind":"output_property_added","path":"outputSchema.properties.doc","tool":"get_impressum","after":{"type":"string","const":"impressum"},"detail":"Field `doc` was added to `get_impressum` output.","severity":"risky"},{"kind":"output_property_added","path":"outputSchema.properties.error","tool":"get_impressum","after":{"type":"string","description":"Present when ok=false. Codes include: unknown_place, unknown_discovery, unknown_doc, q_required, plz_required, coords_required, outside_service_area, url_required, not_maps_host, bad_url, path_or_url_required, serp_not_found, slug_or_coords_required, path_required."},"detail":"Field `error` was added to `get_impressum` output.","severity":"risky"},{"kind":"output_property_added","path":"outputSchema.properties.hint","tool":"get_impressum","after":{"type":"string","description":"Present when ok=false. Absolute URL or short recovery hint the agent should open or pass to another tool."},"detail":"Field `hint` was added to `get_impressum` output.","severity":"risky"},{"kind":"output_property_added","path":"outputSchema.properties.html","tool":"get_impressum","after":{"type":"string","description":"www /impressum"},"detail":"Field `html` was added to `get_impressum` output.","severity":"risky"},{"kind":"output_property_added","path":"outputSchema.properties.locale","tool":"get_impressum","after":{"enum":["de"],"type":"string","description":"Locale actually used for URLs. maps is German-only: always de (MAPS-E8 — no /en on maps). Requested non-de is ignored; payload locale=de."},"detail":"Field `locale` was added to `get_impressum` output.","severity":"risky"},{"kind":"output_property_added","path":"outputSchema.properties.ok","tool":"get_impressum","after":{"type":"boolean","description":"true = use summary, canonicalUrl, and extra keys. false = do not invent data; read error + hint and retry with valid args or open hint."},"detail":"Field `ok` was added to `get_impressum` output.","severity":"risky"},{"kind":"output_property_added","path":"outputSchema.properties.related","tool":"get_impressum","after":{"type":"array","items":{"type":"string","format":"uri"},"description":"Always includes https://maps.ikeytz.com/llms.txt."},"detail":"Field `related` was added to `get_impressum` output.","severity":"risky"},{"kind":"output_property_added","path":"outputSchema.properties.summary","tool":"get_impressum","after":{"type":"string","description":"Primary text for the model. For discovery tools this is the file window. For list tools a compact one-liner. Quote with attribution."},"detail":"Field `summary` was added to `get_impressum` output.","severity":"risky"},{"kind":"output_property_added","path":"outputSchema.properties.tool","tool":"get_impressum","after":{"type":"string","description":"Echo of the tool name that produced this object (e.g. get_service_area)."},"detail":"Field `tool` was added to `get_impressum` output.","severity":"risky"},{"kind":"output_property_added","path":"outputSchema.properties.which","tool":"get_impressum","after":{"type":"string"},"detail":"Field `which` was added to `get_impressum` output.","severity":"risky"},{"kind":"description_changed","tool":"get_invoice_line_items","after":"WHAT: www pointer only — invoice line items are computed on www MCP. maps accepts situationKey/whenKey/breakdown for symmetry but returns html link to /preise, not totals. DOES NOT return totalEur. NEXT: @ikeytz/mcp get_invoice_line_items; get_ort_datetime here for Berlin clock/whenKey.","before":"Rechnungszeilen sind www. maps nur Link.","detail":"Description of `get_invoice_line_items` changed (92% word delta).","severity":"risky","descriptionDelta":0.9230769230769231},{"kind":"enum_narrowed","path":"inputSchema.properties.locale","tool":"get_invoice_line_items","after":"enum[de]","before":"open","detail":"`locale` on `get_invoice_line_items` narrowed to a closed enum (de); previously valid values may now be rejected.","severity":"breaking"},{"kind":"default_changed","path":"inputSchema.properties.locale","tool":"get_invoice_line_items","after":"de","detail":"Default of `locale` on `get_invoice_line_items` changed unset → \"de\".","severity":"risky"},{"kind":"output_property_added","path":"outputSchema.properties.attribution","tool":"get_invoice_line_items","after":{"type":"string","description":"Required citation: 'Quelle: Schlüsseldienst Ludwigsburg ikeytz (ikeytz.com) · ai-train=no · https://maps.ikeytz.com/.well-known/ai.txt'"},"detail":"Field `attribution` was added to `get_invoice_line_items` output.","severity":"risky"},{"kind":"output_property_added","path":"outputSchema.properties.canonicalUrl","tool":"get_invoice_line_items","after":{"type":"string","description":"Best URL to show the user: https://maps.ikeytz.com… page, public embed JSON, tel:+49…, mailto:…, https://wa.me/…, or a www pointer. Prefer this over constructing URLs."},"detail":"Field `canonicalUrl` was added to `get_invoice_line_items` output.","severity":"risky"},{"kind":"output_property_added","path":"outputSchema.properties.error","tool":"get_invoice_line_items","after":{"type":"string","description":"Present when ok=false. Codes include: unknown_place, unknown_discovery, unknown_doc, q_required, plz_required, coords_required, outside_service_area, url_required, not_maps_host, bad_url, path_or_url_required, serp_not_found, slug_or_coords_required, path_required."},"detail":"Field `error` was added to `get_invoice_line_items` output.","severity":"risky"},{"kind":"output_property_added","path":"outputSchema.properties.hint","tool":"get_invoice_line_items","after":{"type":"string","description":"Present when ok=false. Absolute URL or short recovery hint the agent should open or pass to another tool."},"detail":"Field `hint` was added to `get_invoice_line_items` output.","severity":"risky"},{"kind":"output_property_added","path":"outputSchema.properties.html","tool":"get_invoice_line_items","after":{"type":"string","format":"uri","description":"Absolute www.ikeytz.com URL — open there or call @ikeytz/mcp"},"detail":"Field `html` was added to `get_invoice_line_items` output.","severity":"risky"},{"kind":"output_property_added","path":"outputSchema.properties.locale","tool":"get_invoice_line_items","after":{"enum":["de"],"type":"string","description":"Locale actually used for URLs. maps is German-only: always de (MAPS-E8 — no /en on maps). Requested non-de is ignored; payload locale=de."},"detail":"Field `locale` was added to `get_invoice_line_items` output.","severity":"risky"},{"kind":"output_property_added","path":"outputSchema.properties.note","tool":"get_invoice_line_items","after":{"type":"string","description":"maps only points; Volltext/Preise/FAQ live on www"},"detail":"Field `note` was added to `get_invoice_line_items` output.","severity":"risky"},{"kind":"output_property_added","path":"outputSchema.properties.npm","tool":"get_invoice_line_items","after":{"type":"string","description":"www CLI package @ikeytz/mcp"},"detail":"Field `npm` was added to `get_invoice_line_items` output.","severity":"risky"},{"kind":"output_property_added","path":"outputSchema.properties.ok","tool":"get_invoice_line_items","after":{"type":"boolean","description":"true = use summary, canonicalUrl, and extra keys. false = do not invent data; read error + hint and retry with valid args or open hint."},"detail":"Field `ok` was added to `get_invoice_line_items` output.","severity":"risky"},{"kind":"output_property_added","path":"outputSchema.properties.related","tool":"get_invoice_line_items","after":{"type":"array","items":{"type":"string","format":"uri"},"description":"Always includes https://maps.ikeytz.com/llms.txt."},"detail":"Field `related` was added to `get_invoice_line_items` output.","severity":"risky"},{"kind":"output_property_added","path":"outputSchema.properties.requested_locale","tool":"get_invoice_line_items","after":{"type":"string","description":"Locale the caller asked for; maps still returns locale=de"},"detail":"Field `requested_locale` was added to `get_invoice_line_items` output.","severity":"risky"},{"kind":"output_property_added","path":"outputSchema.properties.summary","tool":"get_invoice_line_items","after":{"type":"string","description":"Primary text for the model. For discovery tools this is the file window. For list tools a compact one-liner. Quote with attribution."},"detail":"Field `summary` was added to `get_invoice_line_items` output.","severity":"risky"},{"kind":"output_property_added","path":"outputSchema.properties.tool","tool":"get_invoice_line_items","after":{"type":"string","description":"Echo of the tool name that produced this object (e.g. get_service_area)."},"detail":"Field `tool` was added to `get_invoice_line_items` output.","severity":"risky"},{"kind":"output_property_added","path":"outputSchema.properties.www_mcp","tool":"get_invoice_line_items","after":{"type":"string","format":"uri","description":"https://www.ikeytz.com/mcp — sister machine for prices/FAQ/corpus"},"detail":"Field `www_mcp` was added to `get_invoice_line_items` output.","severity":"risky"},{"kind":"output_property_added","path":"outputSchema.properties.www_tool","tool":"get_invoice_line_items","after":{"type":"string","description":"Same tool name on www MCP that holds the real payload"},"detail":"Field `www_tool` was added to `get_invoice_line_items` output.","severity":"risky"},{"kind":"description_changed","tool":"get_lage","after":"WHAT: Lage (location description) text for one Einsatzgebiet Visitenkarte. Lookup slug|plz|name. RETURNS slug, name, lage. USE for human-readable geography prose. NEXT: get_geschichte, get_service_area.","before":"Lage-Text eines Einsatzgebiets (Karte / Visitenkarte).","detail":"Description of `get_lage` changed (88% word delta).","severity":"risky","descriptionDelta":0.88},{"kind":"output_property_added","path":"outputSchema.properties.attribution","tool":"get_lage","after":{"type":"string","description":"Required citation: 'Quelle: Schlüsseldienst Ludwigsburg ikeytz (ikeytz.com) · ai-train=no · https://maps.ikeytz.com/.well-known/ai.txt'"},"detail":"Field `attribution` was added to `get_lage` output.","severity":"risky"},{"kind":"output_property_added","path":"outputSchema.properties.canonicalUrl","tool":"get_lage","after":{"type":"string","description":"Best URL to show the user: https://maps.ikeytz.com… page, public embed JSON, tel:+49…, mailto:…, https://wa.me/…, or a www pointer. Prefer this over constructing URLs."},"detail":"Field `canonicalUrl` was added to `get_lage` output.","severity":"risky"},{"kind":"output_property_added","path":"outputSchema.properties.error","tool":"get_lage","after":{"type":"string","description":"Present when ok=false. Codes include: unknown_place, unknown_discovery, unknown_doc, q_required, plz_required, coords_required, outside_service_area, url_required, not_maps_host, bad_url, path_or_url_required, serp_not_found, slug_or_coords_required, path_required."},"detail":"Field `error` was added to `get_lage` output.","severity":"risky"},{"kind":"output_property_added","path":"outputSchema.properties.hint","tool":"get_lage","after":{"type":"string","description":"Present when ok=false. Absolute URL or short recovery hint the agent should open or pass to another tool."},"detail":"Field `hint` was added to `get_lage` output.","severity":"risky"},{"kind":"output_property_added","path":"outputSchema.properties.lage","tool":"get_lage","after":{"type":"string","description":"Lage prose (may be empty)"},"detail":"Field `lage` was added to `get_lage` output.","severity":"risky"},{"kind":"output_property_added","path":"outputSchema.properties.locale","tool":"get_lage","after":{"enum":["de"],"type":"string","description":"Locale actually used for URLs. maps is German-only: always de (MAPS-E8 — no /en on maps). Requested non-de is ignored; payload locale=de."},"detail":"Field `locale` was added to `get_lage` output.","severity":"risky"},{"kind":"output_property_added","path":"outputSchema.properties.name","tool":"get_lage","after":{"type":"string"},"detail":"Field `name` was added to `get_lage` output.","severity":"risky"},{"kind":"output_property_added","path":"outputSchema.properties.ok","tool":"get_lage","after":{"type":"boolean","description":"true = use summary, canonicalUrl, and extra keys. false = do not invent data; read error + hint and retry with valid args or open hint."},"detail":"Field `ok` was added to `get_lage` output.","severity":"risky"},{"kind":"output_property_added","path":"outputSchema.properties.related","tool":"get_lage","after":{"type":"array","items":{"type":"string","format":"uri"},"description":"Always includes https://maps.ikeytz.com/llms.txt."},"detail":"Field `related` was added to `get_lage` output.","severity":"risky"},{"kind":"output_property_added","path":"outputSchema.properties.slug","tool":"get_lage","after":{"type":"string"},"detail":"Field `slug` was added to `get_lage` output.","severity":"risky"},{"kind":"output_property_added","path":"outputSchema.properties.summary","tool":"get_lage","after":{"type":"string","description":"Primary text for the model. For discovery tools this is the file window. For list tools a compact one-liner. Quote with attribution."},"detail":"Field `summary` was added to `get_lage` output.","severity":"risky"},{"kind":"output_property_added","path":"outputSchema.properties.tool","tool":"get_lage","after":{"type":"string","description":"Echo of the tool name that produced this object (e.g. get_service_area)."},"detail":"Field `tool` was added to `get_lage` output.","severity":"risky"},{"kind":"description_changed","tool":"get_legal","after":"WHAT: Legal doc router. doc enum: urheberrecht|copyright|impressum (maps text via discovery) or agb|nutzungsbedingungen|datenschutz|widerruf (www URL pointer only). Optional offset/limit for maps text. USE for citations. DOES NOT serve www legal HTML body on maps. NEXT: get_urheberrecht / get_impressum shortcuts; www for AGB body.","before":"Legal: urheberrecht|copyright|impressum (maps-Text) oder agb|nutzungsbedingungen|datenschutz|widerruf (www-URL).","detail":"Description of `get_legal` changed (68% word delta).","severity":"risky","descriptionDelta":0.6842105263157895},{"kind":"enum_narrowed","path":"inputSchema.properties.locale","tool":"get_legal","after":"enum[de]","before":"open","detail":"`locale` on `get_legal` narrowed to a closed enum (de); previously valid values may now be rejected.","severity":"breaking"},{"kind":"default_changed","path":"inputSchema.properties.locale","tool":"get_legal","after":"de","detail":"Default of `locale` on `get_legal` changed unset → \"de\".","severity":"risky"},{"kind":"default_changed","path":"inputSchema.properties.offset","tool":"get_legal","after":0,"detail":"Default of `offset` on `get_legal` changed unset → 0.","severity":"risky"},{"kind":"output_property_added","path":"outputSchema.properties.attribution","tool":"get_legal","after":{"type":"string","description":"Required citation: 'Quelle: Schlüsseldienst Ludwigsburg ikeytz (ikeytz.com) · ai-train=no · https://maps.ikeytz.com/.well-known/ai.txt'"},"detail":"Field `attribution` was added to `get_legal` output.","severity":"risky"},{"kind":"output_property_added","path":"outputSchema.properties.body","tool":"get_legal","after":{"type":"string","description":"maps text window when applicable"},"detail":"Field `body` was added to `get_legal` output.","severity":"risky"},{"kind":"output_property_added","path":"outputSchema.properties.canonicalUrl","tool":"get_legal","after":{"type":"string","description":"Best URL to show the user: https://maps.ikeytz.com… page, public embed JSON, tel:+49…, mailto:…, https://wa.me/…, or a www pointer. Prefer this over constructing URLs."},"detail":"Field `canonicalUrl` was added to `get_legal` output.","severity":"risky"},{"kind":"output_property_added","path":"outputSchema.properties.doc","tool":"get_legal","after":{"type":"string","description":"Resolved doc id"},"detail":"Field `doc` was added to `get_legal` output.","severity":"risky"},{"kind":"output_property_added","path":"outputSchema.properties.error","tool":"get_legal","after":{"type":"string","description":"Present when ok=false. Codes include: unknown_place, unknown_discovery, unknown_doc, q_required, plz_required, coords_required, outside_service_area, url_required, not_maps_host, bad_url, path_or_url_required, serp_not_found, slug_or_coords_required, path_required."},"detail":"Field `error` was added to `get_legal` output.","severity":"risky"},{"kind":"output_property_added","path":"outputSchema.properties.hint","tool":"get_legal","after":{"type":"string","description":"Present when ok=false. Absolute URL or short recovery hint the agent should open or pass to another tool."},"detail":"Field `hint` was added to `get_legal` output.","severity":"risky"},{"kind":"output_property_added","path":"outputSchema.properties.html","tool":"get_legal","after":{"type":"string","description":"www HTML URL when applicable"},"detail":"Field `html` was added to `get_legal` output.","severity":"risky"},{"kind":"output_property_added","path":"outputSchema.properties.locale","tool":"get_legal","after":{"enum":["de"],"type":"string","description":"Locale actually used for URLs. maps is German-only: always de (MAPS-E8 — no /en on maps). Requested non-de is ignored; payload locale=de."},"detail":"Field `locale` was added to `get_legal` output.","severity":"risky"},{"kind":"output_property_added","path":"outputSchema.properties.note","tool":"get_legal","after":{"type":"string","description":"Host split note"},"detail":"Field `note` was added to `get_legal` output.","severity":"risky"},{"kind":"output_property_added","path":"outputSchema.properties.ok","tool":"get_legal","after":{"type":"boolean","description":"true = use summary, canonicalUrl, and extra keys. false = do not invent data; read error + hint and retry with valid args or open hint."},"detail":"Field `ok` was added to `get_legal` output.","severity":"risky"},{"kind":"output_property_added","path":"outputSchema.properties.related","tool":"get_legal","after":{"type":"array","items":{"type":"string","format":"uri"},"description":"Always includes https://maps.ikeytz.com/llms.txt."},"detail":"Field `related` was added to `get_legal` output.","severity":"risky"},{"kind":"output_property_added","path":"outputSchema.properties.summary","tool":"get_legal","after":{"type":"string","description":"Primary text for the model. For discovery tools this is the file window. For list tools a compact one-liner. Quote with attribution."},"detail":"Field `summary` was added to `get_legal` output.","severity":"risky"},{"kind":"output_property_added","path":"outputSchema.properties.tool","tool":"get_legal","after":{"type":"string","description":"Echo of the tool name that produced this object (e.g. get_service_area)."},"detail":"Field `tool` was added to `get_legal` output.","severity":"risky"},{"kind":"output_property_added","path":"outputSchema.properties.which","tool":"get_legal","after":{"type":"string","description":"Discovery id for maps text docs"},"detail":"Field `which` was added to `get_legal` output.","severity":"risky"},{"kind":"description_changed","tool":"get_links","after":"WHAT: maps discovery URLs — hub, mcp, server-card, agent-skills, llms, registry search, npm @ikeytz/maps-mcp. USE as the machine bookmark set. NEXT: get_discovery, get_llms_txt.","before":"maps Discovery-URLs (Card, MCP, llms, Registry).","detail":"Description of `get_links` changed (71% word delta).","severity":"risky","descriptionDelta":0.7083333333333333},{"kind":"enum_narrowed","path":"inputSchema.properties.locale","tool":"get_links","after":"enum[de]","before":"open","detail":"`locale` on `get_links` narrowed to a closed enum (de); previously valid values may now be rejected.","severity":"breaking"},{"kind":"default_changed","path":"inputSchema.properties.locale","tool":"get_links","after":"de","detail":"Default of `locale` on `get_links` changed unset → \"de\".","severity":"risky"},{"kind":"output_property_added","path":"outputSchema.properties.attribution","tool":"get_links","after":{"type":"string","description":"Required citation: 'Quelle: Schlüsseldienst Ludwigsburg ikeytz (ikeytz.com) · ai-train=no · https://maps.ikeytz.com/.well-known/ai.txt'"},"detail":"Field `attribution` was added to `get_links` output.","severity":"risky"},{"kind":"output_property_added","path":"outputSchema.properties.canonicalUrl","tool":"get_links","after":{"type":"string","description":"Best URL to show the user: https://maps.ikeytz.com… page, public embed JSON, tel:+49…, mailto:…, https://wa.me/…, or a www pointer. Prefer this over constructing URLs."},"detail":"Field `canonicalUrl` was added to `get_links` output.","severity":"risky"},{"kind":"output_property_added","path":"outputSchema.properties.error","tool":"get_links","after":{"type":"string","description":"Present when ok=false. Codes include: unknown_place, unknown_discovery, unknown_doc, q_required, plz_required, coords_required, outside_service_area, url_required, not_maps_host, bad_url, path_or_url_required, serp_not_found, slug_or_coords_required, path_required."},"detail":"Field `error` was added to `get_links` output.","severity":"risky"},{"kind":"output_property_added","path":"outputSchema.properties.hint","tool":"get_links","after":{"type":"string","description":"Present when ok=false. Absolute URL or short recovery hint the agent should open or pass to another tool."},"detail":"Field `hint` was added to `get_links` output.","severity":"risky"},{"kind":"output_property_added","path":"outputSchema.properties.items","tool":"get_links","after":{"type":"object","properties":{"hub":{"type":"string","format":"uri"},"mcp":{"type":"string","format":"uri"},"npm":{"type":"string","format":"uri"},"card":{"type":"string","format":"uri"},"llms":{"type":"string","format":"uri"},"skills":{"type":"string","format":"uri"},"registry":{"type":"string","format":"uri"}},"description":"Named absolute URLs"},"detail":"Field `items` was added to `get_links` output.","severity":"risky"},{"kind":"output_property_added","path":"outputSchema.properties.locale","tool":"get_links","after":{"enum":["de"],"type":"string","description":"Locale actually used for URLs. maps is German-only: always de (MAPS-E8 — no /en on maps). Requested non-de is ignored; payload locale=de."},"detail":"Field `locale` was added to `get_links` output.","severity":"risky"},{"kind":"output_property_added","path":"outputSchema.properties.note","tool":"get_links","after":{"type":"string"},"detail":"Field `note` was added to `get_links` output.","severity":"risky"},{"kind":"output_property_added","path":"outputSchema.properties.ok","tool":"get_links","after":{"type":"boolean","description":"true = use summary, canonicalUrl, and extra keys. false = do not invent data; read error + hint and retry with valid args or open hint."},"detail":"Field `ok` was added to `get_links` output.","severity":"risky"},{"kind":"output_property_added","path":"outputSchema.properties.related","tool":"get_links","after":{"type":"array","items":{"type":"string","format":"uri"},"description":"Always includes https://maps.ikeytz.com/llms.txt."},"detail":"Field `related` was added to `get_links` output.","severity":"risky"},{"kind":"output_property_added","path":"outputSchema.properties.summary","tool":"get_links","after":{"type":"string","description":"Primary text for the model. For discovery tools this is the file window. For list tools a compact one-liner. Quote with attribution."},"detail":"Field `summary` was added to `get_links` output.","severity":"risky"},{"kind":"output_property_added","path":"outputSchema.properties.tool","tool":"get_links","after":{"type":"string","description":"Echo of the tool name that produced this object (e.g. get_service_area)."},"detail":"Field `tool` was added to `get_links` output.","severity":"risky"},{"kind":"description_changed","tool":"get_llms_mcp_server","after":"WHAT: Alias of get_discovery(which=llms-mcp-server) — machine/catalog text for the maps MCP server. Optional offset/limit. USE when an agent needs the server-side llms MCP catalog. NEXT: get_llms_mcp_web, get_links.","before":"Katalog llms-mcp-server.txt","detail":"Description of `get_llms_mcp_server` changed (89% word delta).","severity":"risky","descriptionDelta":0.8928571428571429},{"kind":"default_changed","path":"inputSchema.properties.offset","tool":"get_llms_mcp_server","after":0,"detail":"Default of `offset` on `get_llms_mcp_server` changed unset → 0.","severity":"risky"},{"kind":"output_property_added","path":"outputSchema.properties.attribution","tool":"get_llms_mcp_server","after":{"type":"string","description":"Required citation: 'Quelle: Schlüsseldienst Ludwigsburg ikeytz (ikeytz.com) · ai-train=no · https://maps.ikeytz.com/.well-known/ai.txt'"},"detail":"Field `attribution` was added to `get_llms_mcp_server` output.","severity":"risky"},{"kind":"output_property_added","path":"outputSchema.properties.body","tool":"get_llms_mcp_server","after":{"type":"string","description":"UTF-8 text window after offset/limit"},"detail":"Field `body` was added to `get_llms_mcp_server` output.","severity":"risky"},{"kind":"output_property_added","path":"outputSchema.properties.canonicalUrl","tool":"get_llms_mcp_server","after":{"type":"string","description":"Best URL to show the user: https://maps.ikeytz.com… page, public embed JSON, tel:+49…, mailto:…, https://wa.me/…, or a www pointer. Prefer this over constructing URLs."},"detail":"Field `canonicalUrl` was added to `get_llms_mcp_server` output.","severity":"risky"},{"kind":"output_property_added","path":"outputSchema.properties.error","tool":"get_llms_mcp_server","after":{"type":"string","description":"Present when ok=false. Codes include: unknown_place, unknown_discovery, unknown_doc, q_required, plz_required, coords_required, outside_service_area, url_required, not_maps_host, bad_url, path_or_url_required, serp_not_found, slug_or_coords_required, path_required."},"detail":"Field `error` was added to `get_llms_mcp_server` output.","severity":"risky"},{"kind":"output_property_added","path":"outputSchema.properties.hint","tool":"get_llms_mcp_server","after":{"type":"string","description":"Present when ok=false. Absolute URL or short recovery hint the agent should open or pass to another tool."},"detail":"Field `hint` was added to `get_llms_mcp_server` output.","severity":"risky"},{"kind":"output_property_added","path":"outputSchema.properties.limit","tool":"get_llms_mcp_server","after":{"type":["number","null"],"description":"Applied line limit, or null if omitted"},"detail":"Field `limit` was added to `get_llms_mcp_server` output.","severity":"risky"},{"kind":"output_property_added","path":"outputSchema.properties.locale","tool":"get_llms_mcp_server","after":{"enum":["de"],"type":"string","description":"Locale actually used for URLs. maps is German-only: always de (MAPS-E8 — no /en on maps). Requested non-de is ignored; payload locale=de."},"detail":"Field `locale` was added to `get_llms_mcp_server` output.","severity":"risky"},{"kind":"output_property_added","path":"outputSchema.properties.missing","tool":"get_llms_mcp_server","after":{"type":"boolean","description":"true if the discovery file was not found on disk"},"detail":"Field `missing` was added to `get_llms_mcp_server` output.","severity":"risky"},{"kind":"output_property_added","path":"outputSchema.properties.offset","tool":"get_llms_mcp_server","after":{"type":"number","description":"Applied 0-based line offset"},"detail":"Field `offset` was added to `get_llms_mcp_server` output.","severity":"risky"},{"kind":"output_property_added","path":"outputSchema.properties.ok","tool":"get_llms_mcp_server","after":{"type":"boolean","description":"true = use summary, canonicalUrl, and extra keys. false = do not invent data; read error + hint and retry with valid args or open hint."},"detail":"Field `ok` was added to `get_llms_mcp_server` output.","severity":"risky"},{"kind":"output_property_added","path":"outputSchema.properties.path","tool":"get_llms_mcp_server","after":{"type":"string","description":"Public relative path of the file on maps"},"detail":"Field `path` was added to `get_llms_mcp_server` output.","severity":"risky"},{"kind":"output_property_added","path":"outputSchema.properties.related","tool":"get_llms_mcp_server","after":{"type":"array","items":{"type":"string","format":"uri"},"description":"Always includes https://maps.ikeytz.com/llms.txt."},"detail":"Field `related` was added to `get_llms_mcp_server` output.","severity":"risky"},{"kind":"output_property_added","path":"outputSchema.properties.summary","tool":"get_llms_mcp_server","after":{"type":"string","description":"Primary text for the model. For discovery tools this is the file window. For list tools a compact one-liner. Quote with attribution."},"detail":"Field `summary` was added to `get_llms_mcp_server` output.","severity":"risky"},{"kind":"output_property_added","path":"outputSchema.properties.text","tool":"get_llms_mcp_server","after":{"type":"string","description":"Alias/window of body when present"},"detail":"Field `text` was added to `get_llms_mcp_server` output.","severity":"risky"},{"kind":"output_property_added","path":"outputSchema.properties.tool","tool":"get_llms_mcp_server","after":{"type":"string","description":"Echo of the tool name that produced this object (e.g. get_service_area)."},"detail":"Field `tool` was added to `get_llms_mcp_server` output.","severity":"risky"},{"kind":"output_property_added","path":"outputSchema.properties.total_lines","tool":"get_llms_mcp_server","after":{"type":"number","description":"Line count of the full file"},"detail":"Field `total_lines` was added to `get_llms_mcp_server` output.","severity":"risky"},{"kind":"output_property_added","path":"outputSchema.properties.which","tool":"get_llms_mcp_server","after":{"type":"string","description":"Resolved discovery id (ard, ai-catalog, llms, robots, sitemap-txt, llms-mcp-server, …)."},"detail":"Field `which` was added to `get_llms_mcp_server` output.","severity":"risky"},{"kind":"description_changed","tool":"get_llms_mcp_web","after":"WHAT: Alias of get_discovery(which=llms-mcp-web) — web/UI-oriented MCP catalog on maps. Optional offset/limit. USE for browser/agent web discovery copy. NEXT: get_llms_mcp_server, get_mcp hub HTML /mcp-hub.","before":"Katalog llms-mcp-web.txt","detail":"Description of `get_llms_mcp_web` changed (90% word delta).","severity":"risky","descriptionDelta":0.896551724137931},{"kind":"default_changed","path":"inputSchema.properties.offset","tool":"get_llms_mcp_web","after":0,"detail":"Default of `offset` on `get_llms_mcp_web` changed unset → 0.","severity":"risky"},{"kind":"output_property_added","path":"outputSchema.properties.attribution","tool":"get_llms_mcp_web","after":{"type":"string","description":"Required citation: 'Quelle: Schlüsseldienst Ludwigsburg ikeytz (ikeytz.com) · ai-train=no · https://maps.ikeytz.com/.well-known/ai.txt'"},"detail":"Field `attribution` was added to `get_llms_mcp_web` output.","severity":"risky"},{"kind":"output_property_added","path":"outputSchema.properties.body","tool":"get_llms_mcp_web","after":{"type":"string","description":"UTF-8 text window after offset/limit"},"detail":"Field `body` was added to `get_llms_mcp_web` output.","severity":"risky"},{"kind":"output_property_added","path":"outputSchema.properties.canonicalUrl","tool":"get_llms_mcp_web","after":{"type":"string","description":"Best URL to show the user: https://maps.ikeytz.com… page, public embed JSON, tel:+49…, mailto:…, https://wa.me/…, or a www pointer. Prefer this over constructing URLs."},"detail":"Field `canonicalUrl` was added to `get_llms_mcp_web` output.","severity":"risky"},{"kind":"output_property_added","path":"outputSchema.properties.error","tool":"get_llms_mcp_web","after":{"type":"string","description":"Present when ok=false. Codes include: unknown_place, unknown_discovery, unknown_doc, q_required, plz_required, coords_required, outside_service_area, url_required, not_maps_host, bad_url, path_or_url_required, serp_not_found, slug_or_coords_required, path_required."},"detail":"Field `error` was added to `get_llms_mcp_web` output.","severity":"risky"},{"kind":"output_property_added","path":"outputSchema.properties.hint","tool":"get_llms_mcp_web","after":{"type":"string","description":"Present when ok=false. Absolute URL or short recovery hint the agent should open or pass to another tool."},"detail":"Field `hint` was added to `get_llms_mcp_web` output.","severity":"risky"},{"kind":"output_property_added","path":"outputSchema.properties.limit","tool":"get_llms_mcp_web","after":{"type":["number","null"],"description":"Applied line limit, or null if omitted"},"detail":"Field `limit` was added to `get_llms_mcp_web` output.","severity":"risky"},{"kind":"output_property_added","path":"outputSchema.properties.locale","tool":"get_llms_mcp_web","after":{"enum":["de"],"type":"string","description":"Locale actually used for URLs. maps is German-only: always de (MAPS-E8 — no /en on maps). Requested non-de is ignored; payload locale=de."},"detail":"Field `locale` was added to `get_llms_mcp_web` output.","severity":"risky"},{"kind":"output_property_added","path":"outputSchema.properties.missing","tool":"get_llms_mcp_web","after":{"type":"boolean","description":"true if the discovery file was not found on disk"},"detail":"Field `missing` was added to `get_llms_mcp_web` output.","severity":"risky"},{"kind":"output_property_added","path":"outputSchema.properties.offset","tool":"get_llms_mcp_web","after":{"type":"number","description":"Applied 0-based line offset"},"detail":"Field `offset` was added to `get_llms_mcp_web` output.","severity":"risky"},{"kind":"output_property_added","path":"outputSchema.properties.ok","tool":"get_llms_mcp_web","after":{"type":"boolean","description":"true = use summary, canonicalUrl, and extra keys. false = do not invent data; read error + hint and retry with valid args or open hint."},"detail":"Field `ok` was added to `get_llms_mcp_web` output.","severity":"risky"},{"kind":"output_property_added","path":"outputSchema.properties.path","tool":"get_llms_mcp_web","after":{"type":"string","description":"Public relative path of the file on maps"},"detail":"Field `path` was added to `get_llms_mcp_web` output.","severity":"risky"},{"kind":"output_property_added","path":"outputSchema.properties.related","tool":"get_llms_mcp_web","after":{"type":"array","items":{"type":"string","format":"uri"},"description":"Always includes https://maps.ikeytz.com/llms.txt."},"detail":"Field `related` was added to `get_llms_mcp_web` output.","severity":"risky"},{"kind":"output_property_added","path":"outputSchema.properties.summary","tool":"get_llms_mcp_web","after":{"type":"string","description":"Primary text for the model. For discovery tools this is the file window. For list tools a compact one-liner. Quote with attribution."},"detail":"Field `summary` was added to `get_llms_mcp_web` output.","severity":"risky"},{"kind":"output_property_added","path":"outputSchema.properties.text","tool":"get_llms_mcp_web","after":{"type":"string","description":"Alias/window of body when present"},"detail":"Field `text` was added to `get_llms_mcp_web` output.","severity":"risky"},{"kind":"output_property_added","path":"outputSchema.properties.tool","tool":"get_llms_mcp_web","after":{"type":"string","description":"Echo of the tool name that produced this object (e.g. get_service_area)."},"detail":"Field `tool` was added to `get_llms_mcp_web` output.","severity":"risky"},{"kind":"output_property_added","path":"outputSchema.properties.total_lines","tool":"get_llms_mcp_web","after":{"type":"number","description":"Line count of the full file"},"detail":"Field `total_lines` was added to `get_llms_mcp_web` output.","severity":"risky"},{"kind":"output_property_added","path":"outputSchema.properties.which","tool":"get_llms_mcp_web","after":{"type":"string","description":"Resolved discovery id (ard, ai-catalog, llms, robots, sitemap-txt, llms-mcp-server, …)."},"detail":"Field `which` was added to `get_llms_mcp_web` output.","severity":"risky"},{"kind":"description_changed","tool":"get_llms_txt","after":"WHAT: Alias get_discovery(which=llms) — maps /llms.txt 1:1 with optional offset/limit. USE as the primary maps machine index. NEXT: get_ai_txt, get_sitemap_txt, get_links.","before":"maps /llms.txt 1:1.","detail":"Description of `get_llms_txt` changed (82% word delta).","severity":"risky","descriptionDelta":0.8181818181818181},{"kind":"default_changed","path":"inputSchema.properties.offset","tool":"get_llms_txt","after":0,"detail":"Default of `offset` on `get_llms_txt` changed unset → 0.","severity":"risky"},{"kind":"output_property_added","path":"outputSchema.properties.attribution","tool":"get_llms_txt","after":{"type":"string","description":"Required citation: 'Quelle: Schlüsseldienst Ludwigsburg ikeytz (ikeytz.com) · ai-train=no · https://maps.ikeytz.com/.well-known/ai.txt'"},"detail":"Field `attribution` was added to `get_llms_txt` output.","severity":"risky"},{"kind":"output_property_added","path":"outputSchema.properties.body","tool":"get_llms_txt","after":{"type":"string","description":"UTF-8 text window after offset/limit"},"detail":"Field `body` was added to `get_llms_txt` output.","severity":"risky"},{"kind":"output_property_added","path":"outputSchema.properties.canonicalUrl","tool":"get_llms_txt","after":{"type":"string","description":"Best URL to show the user: https://maps.ikeytz.com… page, public embed JSON, tel:+49…, mailto:…, https://wa.me/…, or a www pointer. Prefer this over constructing URLs."},"detail":"Field `canonicalUrl` was added to `get_llms_txt` output.","severity":"risky"},{"kind":"output_property_added","path":"outputSchema.properties.error","tool":"get_llms_txt","after":{"type":"string","description":"Present when ok=false. Codes include: unknown_place, unknown_discovery, unknown_doc, q_required, plz_required, coords_required, outside_service_area, url_required, not_maps_host, bad_url, path_or_url_required, serp_not_found, slug_or_coords_required, path_required."},"detail":"Field `error` was added to `get_llms_txt` output.","severity":"risky"},{"kind":"output_property_added","path":"outputSchema.properties.hint","tool":"get_llms_txt","after":{"type":"string","description":"Present when ok=false. Absolute URL or short recovery hint the agent should open or pass to another tool."},"detail":"Field `hint` was added to `get_llms_txt` output.","severity":"risky"},{"kind":"output_property_added","path":"outputSchema.properties.limit","tool":"get_llms_txt","after":{"type":["number","null"],"description":"Applied line limit, or null if omitted"},"detail":"Field `limit` was added to `get_llms_txt` output.","severity":"risky"},{"kind":"output_property_added","path":"outputSchema.properties.locale","tool":"get_llms_txt","after":{"enum":["de"],"type":"string","description":"Locale actually used for URLs. maps is German-only: always de (MAPS-E8 — no /en on maps). Requested non-de is ignored; payload locale=de."},"detail":"Field `locale` was added to `get_llms_txt` output.","severity":"risky"},{"kind":"output_property_added","path":"outputSchema.properties.missing","tool":"get_llms_txt","after":{"type":"boolean","description":"true if the discovery file was not found on disk"},"detail":"Field `missing` was added to `get_llms_txt` output.","severity":"risky"},{"kind":"output_property_added","path":"outputSchema.properties.offset","tool":"get_llms_txt","after":{"type":"number","description":"Applied 0-based line offset"},"detail":"Field `offset` was added to `get_llms_txt` output.","severity":"risky"},{"kind":"output_property_added","path":"outputSchema.properties.ok","tool":"get_llms_txt","after":{"type":"boolean","description":"true = use summary, canonicalUrl, and extra keys. false = do not invent data; read error + hint and retry with valid args or open hint."},"detail":"Field `ok` was added to `get_llms_txt` output.","severity":"risky"},{"kind":"output_property_added","path":"outputSchema.properties.path","tool":"get_llms_txt","after":{"type":"string","description":"Public relative path of the file on maps"},"detail":"Field `path` was added to `get_llms_txt` output.","severity":"risky"},{"kind":"output_property_added","path":"outputSchema.properties.related","tool":"get_llms_txt","after":{"type":"array","items":{"type":"string","format":"uri"},"description":"Always includes https://maps.ikeytz.com/llms.txt."},"detail":"Field `related` was added to `get_llms_txt` output.","severity":"risky"},{"kind":"output_property_added","path":"outputSchema.properties.summary","tool":"get_llms_txt","after":{"type":"string","description":"Primary text for the model. For discovery tools this is the file window. For list tools a compact one-liner. Quote with attribution."},"detail":"Field `summary` was added to `get_llms_txt` output.","severity":"risky"},{"kind":"output_property_added","path":"outputSchema.properties.text","tool":"get_llms_txt","after":{"type":"string","description":"Alias/window of body when present"},"detail":"Field `text` was added to `get_llms_txt` output.","severity":"risky"},{"kind":"output_property_added","path":"outputSchema.properties.tool","tool":"get_llms_txt","after":{"type":"string","description":"Echo of the tool name that produced this object (e.g. get_service_area)."},"detail":"Field `tool` was added to `get_llms_txt` output.","severity":"risky"},{"kind":"output_property_added","path":"outputSchema.properties.total_lines","tool":"get_llms_txt","after":{"type":"number","description":"Line count of the full file"},"detail":"Field `total_lines` was added to `get_llms_txt` output.","severity":"risky"},{"kind":"output_property_added","path":"outputSchema.properties.which","tool":"get_llms_txt","after":{"type":"string","description":"Resolved discovery id (ard, ai-catalog, llms, robots, sitemap-txt, llms-mcp-server, …)."},"detail":"Field `which` was added to `get_llms_txt` output.","severity":"risky"},{"kind":"description_changed","tool":"get_nutzungsbedingungen","after":"WHAT: www pointer only — Nutzungsbedingungen on www.ikeytz.com. maps returns html link. DOES NOT return the body. NEXT: www MCP / open html.","before":"Nutzungsbedingungen: Link www (HTML bleibt www).","detail":"Description of `get_nutzungsbedingungen` changed (81% word delta).","severity":"risky","descriptionDelta":0.8095238095238095},{"kind":"output_property_added","path":"outputSchema.properties.attribution","tool":"get_nutzungsbedingungen","after":{"type":"string","description":"Required citation: 'Quelle: Schlüsseldienst Ludwigsburg ikeytz (ikeytz.com) · ai-train=no · https://maps.ikeytz.com/.well-known/ai.txt'"},"detail":"Field `attribution` was added to `get_nutzungsbedingungen` output.","severity":"risky"},{"kind":"output_property_added","path":"outputSchema.properties.canonicalUrl","tool":"get_nutzungsbedingungen","after":{"type":"string","description":"Best URL to show the user: https://maps.ikeytz.com… page, public embed JSON, tel:+49…, mailto:…, https://wa.me/…, or a www pointer. Prefer this over constructing URLs."},"detail":"Field `canonicalUrl` was added to `get_nutzungsbedingungen` output.","severity":"risky"},{"kind":"output_property_added","path":"outputSchema.properties.error","tool":"get_nutzungsbedingungen","after":{"type":"string","description":"Present when ok=false. Codes include: unknown_place, unknown_discovery, unknown_doc, q_required, plz_required, coords_required, outside_service_area, url_required, not_maps_host, bad_url, path_or_url_required, serp_not_found, slug_or_coords_required, path_required."},"detail":"Field `error` was added to `get_nutzungsbedingungen` output.","severity":"risky"},{"kind":"output_property_added","path":"outputSchema.properties.hint","tool":"get_nutzungsbedingungen","after":{"type":"string","description":"Present when ok=false. Absolute URL or short recovery hint the agent should open or pass to another tool."},"detail":"Field `hint` was added to `get_nutzungsbedingungen` output.","severity":"risky"},{"kind":"output_property_added","path":"outputSchema.properties.html","tool":"get_nutzungsbedingungen","after":{"type":"string","format":"uri","description":"Absolute www.ikeytz.com URL — open there or call @ikeytz/mcp"},"detail":"Field `html` was added to `get_nutzungsbedingungen` output.","severity":"risky"},{"kind":"output_property_added","path":"outputSchema.properties.locale","tool":"get_nutzungsbedingungen","after":{"enum":["de"],"type":"string","description":"Locale actually used for URLs. maps is German-only: always de (MAPS-E8 — no /en on maps). Requested non-de is ignored; payload locale=de."},"detail":"Field `locale` was added to `get_nutzungsbedingungen` output.","severity":"risky"},{"kind":"output_property_added","path":"outputSchema.properties.note","tool":"get_nutzungsbedingungen","after":{"type":"string","description":"maps only points; Volltext/Preise/FAQ live on www"},"detail":"Field `note` was added to `get_nutzungsbedingungen` output.","severity":"risky"},{"kind":"output_property_added","path":"outputSchema.properties.npm","tool":"get_nutzungsbedingungen","after":{"type":"string","description":"www CLI package @ikeytz/mcp"},"detail":"Field `npm` was added to `get_nutzungsbedingungen` output.","severity":"risky"},{"kind":"output_property_added","path":"outputSchema.properties.ok","tool":"get_nutzungsbedingungen","after":{"type":"boolean","description":"true = use summary, canonicalUrl, and extra keys. false = do not invent data; read error + hint and retry with valid args or open hint."},"detail":"Field `ok` was added to `get_nutzungsbedingungen` output.","severity":"risky"},{"kind":"output_property_added","path":"outputSchema.properties.related","tool":"get_nutzungsbedingungen","after":{"type":"array","items":{"type":"string","format":"uri"},"description":"Always includes https://maps.ikeytz.com/llms.txt."},"detail":"Field `related` was added to `get_nutzungsbedingungen` output.","severity":"risky"},{"kind":"output_property_added","path":"outputSchema.properties.requested_locale","tool":"get_nutzungsbedingungen","after":{"type":"string","description":"Locale the caller asked for; maps still returns locale=de"},"detail":"Field `requested_locale` was added to `get_nutzungsbedingungen` output.","severity":"risky"},{"kind":"output_property_added","path":"outputSchema.properties.summary","tool":"get_nutzungsbedingungen","after":{"type":"string","description":"Primary text for the model. For discovery tools this is the file window. For list tools a compact one-liner. Quote with attribution."},"detail":"Field `summary` was added to `get_nutzungsbedingungen` output.","severity":"risky"},{"kind":"output_property_added","path":"outputSchema.properties.tool","tool":"get_nutzungsbedingungen","after":{"type":"string","description":"Echo of the tool name that produced this object (e.g. get_service_area)."},"detail":"Field `tool` was added to `get_nutzungsbedingungen` output.","severity":"risky"},{"kind":"output_property_added","path":"outputSchema.properties.www_mcp","tool":"get_nutzungsbedingungen","after":{"type":"string","format":"uri","description":"https://www.ikeytz.com/mcp — sister machine for prices/FAQ/corpus"},"detail":"Field `www_mcp` was added to `get_nutzungsbedingungen` output.","severity":"risky"},{"kind":"output_property_added","path":"outputSchema.properties.www_tool","tool":"get_nutzungsbedingungen","after":{"type":"string","description":"Same tool name on www MCP that holds the real payload"},"detail":"Field `www_tool` was added to `get_nutzungsbedingungen` output.","severity":"risky"},{"kind":"description_changed","tool":"get_ort_datetime","after":"WHAT: Europe/Berlin wall clock to the second (stand YYYY-MM-DD HH:MM:SS CEST|CET) for pricing whenKey context. Optional slug|plz|name like get_service_area; omit = all 52 places with the same clock. RETURNS timezone, stand, iso, unix, date, time, tz, and whenKey day|night for www invoicing. USE before quoting via www get_invoice_line_items. DOES NOT return euro amounts (no price matrix on maps). NEXT: www @ikeytz/mcp get_invoice_line_items({situationKey, whenKey}) or get_prices.","before":"Ortszeit Europe/Berlin bis auf die Sekunde (YYYY-MM-DD HH:MM:SS CEST|CET). Lookup slug|plz|name wie get_service_area. Ohne Argument: alle 52.","detail":"Description of `get_ort_datetime` changed (81% word delta).","severity":"risky","descriptionDelta":0.8133333333333334},{"kind":"output_property_added","path":"outputSchema.properties.attribution","tool":"get_ort_datetime","after":{"type":"string","description":"Required citation: 'Quelle: Schlüsseldienst Ludwigsburg ikeytz (ikeytz.com) · ai-train=no · https://maps.ikeytz.com/.well-known/ai.txt'"},"detail":"Field `attribution` was added to `get_ort_datetime` output.","severity":"risky"},{"kind":"output_property_added","path":"outputSchema.properties.canonicalUrl","tool":"get_ort_datetime","after":{"type":"string","description":"Best URL to show the user: https://maps.ikeytz.com… page, public embed JSON, tel:+49…, mailto:…, https://wa.me/…, or a www pointer. Prefer this over constructing URLs."},"detail":"Field `canonicalUrl` was added to `get_ort_datetime` output.","severity":"risky"},{"kind":"output_property_added","path":"outputSchema.properties.count","tool":"get_ort_datetime","after":{"type":"number","description":"52 when listing all places"},"detail":"Field `count` was added to `get_ort_datetime` output.","severity":"risky"},{"kind":"output_property_added","path":"outputSchema.properties.date","tool":"get_ort_datetime","after":{"type":"string","description":"YYYY-MM-DD in Berlin"},"detail":"Field `date` was added to `get_ort_datetime` output.","severity":"risky"},{"kind":"output_property_added","path":"outputSchema.properties.error","tool":"get_ort_datetime","after":{"type":"string","description":"Present when ok=false. Codes include: unknown_place, unknown_discovery, unknown_doc, q_required, plz_required, coords_required, outside_service_area, url_required, not_maps_host, bad_url, path_or_url_required, serp_not_found, slug_or_coords_required, path_required."},"detail":"Field `error` was added to `get_ort_datetime` output.","severity":"risky"},{"kind":"output_property_added","path":"outputSchema.properties.hint","tool":"get_ort_datetime","after":{"type":"string","description":"Present when ok=false. Absolute URL or short recovery hint the agent should open or pass to another tool."},"detail":"Field `hint` was added to `get_ort_datetime` output.","severity":"risky"},{"kind":"output_property_added","path":"outputSchema.properties.iso","tool":"get_ort_datetime","after":{"type":"string","description":"ISO-8601 with Berlin offset"},"detail":"Field `iso` was added to `get_ort_datetime` output.","severity":"risky"},{"kind":"output_property_added","path":"outputSchema.properties.items","tool":"get_ort_datetime","after":{"type":"array","items":{"type":"object","properties":{"tz":{"enum":["CET","CEST"],"type":"string","description":"Abbreviation"},"iso":{"type":"string","description":"ISO-8601 with Berlin offset"},"plz":{"type":"string"},"date":{"type":"string","description":"YYYY-MM-DD in Berlin"},"name":{"type":"string"},"slug":{"type":"string"},"time":{"type":"string","description":"HH:MM:SS in Berlin (24h)"},"unix":{"type":"number","description":"Unix timestamp seconds"},"stand":{"type":"string","description":"Human clock 'YYYY-MM-DD HH:MM:SS CEST|CET' Europe/Berlin to the second"},"whenKey":{"enum":["day","night"],"type":"string","description":"Price bucket for www get_invoice_line_items. day = Mo–Fr 08:00–17:59 Berlin except BW holidays; else night. Pass to www MCP — maps has no euro matrix."},"timezone":{"type":"string","const":"Europe/Berlin","description":"Always Europe/Berlin"}},"additionalProperties":true},"description":"All 52 slug/name/plz + clock when called without lookup"},"detail":"Field `items` was added to `get_ort_datetime` output.","severity":"risky"},{"kind":"output_property_added","path":"outputSchema.properties.locale","tool":"get_ort_datetime","after":{"enum":["de"],"type":"string","description":"Locale actually used for URLs. maps is German-only: always de (MAPS-E8 — no /en on maps). Requested non-de is ignored; payload locale=de."},"detail":"Field `locale` was added to `get_ort_datetime` output.","severity":"risky"},{"kind":"output_property_added","path":"outputSchema.properties.name","tool":"get_ort_datetime","after":{"type":"string","description":"Place name when resolved"},"detail":"Field `name` was added to `get_ort_datetime` output.","severity":"risky"},{"kind":"output_property_added","path":"outputSchema.properties.ok","tool":"get_ort_datetime","after":{"type":"boolean","description":"true = use summary, canonicalUrl, and extra keys. false = do not invent data; read error + hint and retry with valid args or open hint."},"detail":"Field `ok` was added to `get_ort_datetime` output.","severity":"risky"},{"kind":"output_property_added","path":"outputSchema.properties.plz","tool":"get_ort_datetime","after":{"type":"string","description":"PLZ when resolved"},"detail":"Field `plz` was added to `get_ort_datetime` output.","severity":"risky"},{"kind":"output_property_added","path":"outputSchema.properties.related","tool":"get_ort_datetime","after":{"type":"array","items":{"type":"string","format":"uri"},"description":"Always includes https://maps.ikeytz.com/llms.txt."},"detail":"Field `related` was added to `get_ort_datetime` output.","severity":"risky"},{"kind":"output_property_added","path":"outputSchema.properties.slug","tool":"get_ort_datetime","after":{"type":"string","description":"Present when a place was resolved"},"detail":"Field `slug` was added to `get_ort_datetime` output.","severity":"risky"},{"kind":"output_property_added","path":"outputSchema.properties.stand","tool":"get_ort_datetime","after":{"type":"string","description":"Human clock 'YYYY-MM-DD HH:MM:SS CEST|CET' Europe/Berlin to the second"},"detail":"Field `stand` was added to `get_ort_datetime` output.","severity":"risky"},{"kind":"output_property_added","path":"outputSchema.properties.summary","tool":"get_ort_datetime","after":{"type":"string","description":"Primary text for the model. For discovery tools this is the file window. For list tools a compact one-liner. Quote with attribution."},"detail":"Field `summary` was added to `get_ort_datetime` output.","severity":"risky"},{"kind":"output_property_added","path":"outputSchema.properties.time","tool":"get_ort_datetime","after":{"type":"string","description":"HH:MM:SS in Berlin (24h)"},"detail":"Field `time` was added to `get_ort_datetime` output.","severity":"risky"},{"kind":"output_property_added","path":"outputSchema.properties.timezone","tool":"get_ort_datetime","after":{"type":"string","const":"Europe/Berlin","description":"Always Europe/Berlin"},"detail":"Field `timezone` was added to `get_ort_datetime` output.","severity":"risky"},{"kind":"output_property_added","path":"outputSchema.properties.tool","tool":"get_ort_datetime","after":{"type":"string","description":"Echo of the tool name that produced this object (e.g. get_service_area)."},"detail":"Field `tool` was added to `get_ort_datetime` output.","severity":"risky"},{"kind":"output_property_added","path":"outputSchema.properties.tz","tool":"get_ort_datetime","after":{"enum":["CET","CEST"],"type":"string","description":"Abbreviation"},"detail":"Field `tz` was added to `get_ort_datetime` output.","severity":"risky"},{"kind":"output_property_added","path":"outputSchema.properties.unix","tool":"get_ort_datetime","after":{"type":"number","description":"Unix timestamp seconds"},"detail":"Field `unix` was added to `get_ort_datetime` output.","severity":"risky"},{"kind":"output_property_added","path":"outputSchema.properties.whenKey","tool":"get_ort_datetime","after":{"enum":["day","night"],"type":"string","description":"Price bucket for www get_invoice_line_items. day = Mo–Fr 08:00–17:59 Berlin except BW holidays; else night. Pass to www MCP — maps has no euro matrix."},"detail":"Field `whenKey` was added to `get_ort_datetime` output.","severity":"risky"},{"kind":"description_changed","tool":"get_page_summary","after":"WHAT: Short summary for a maps Gebiet (path/slug → area card) or www pointer for non-maps paths. path required (or slug). USE to decide maps vs www. NEXT: get_ai_page, get_service_area.","before":"Kurz: maps-Ort oder www-Pfad-Link.","detail":"Description of `get_page_summary` changed (93% word delta).","severity":"risky","descriptionDelta":0.9310344827586207},{"kind":"enum_narrowed","path":"inputSchema.properties.locale","tool":"get_page_summary","after":"enum[de]","before":"open","detail":"`locale` on `get_page_summary` narrowed to a closed enum (de); previously valid values may now be rejected.","severity":"breaking"},{"kind":"default_changed","path":"inputSchema.properties.locale","tool":"get_page_summary","after":"de","detail":"Default of `locale` on `get_page_summary` changed unset → \"de\".","severity":"risky"},{"kind":"output_property_added","path":"outputSchema.properties.attribution","tool":"get_page_summary","after":{"type":"string","description":"Required citation: 'Quelle: Schlüsseldienst Ludwigsburg ikeytz (ikeytz.com) · ai-train=no · https://maps.ikeytz.com/.well-known/ai.txt'"},"detail":"Field `attribution` was added to `get_page_summary` output.","severity":"risky"},{"kind":"output_property_added","path":"outputSchema.properties.canonicalUrl","tool":"get_page_summary","after":{"type":"string","description":"Best URL to show the user: https://maps.ikeytz.com… page, public embed JSON, tel:+49…, mailto:…, https://wa.me/…, or a www pointer. Prefer this over constructing URLs."},"detail":"Field `canonicalUrl` was added to `get_page_summary` output.","severity":"risky"},{"kind":"output_property_added","path":"outputSchema.properties.embed_map","tool":"get_page_summary","after":{"type":"string","format":"uri"},"detail":"Field `embed_map` was added to `get_page_summary` output.","severity":"risky"},{"kind":"output_property_added","path":"outputSchema.properties.error","tool":"get_page_summary","after":{"type":"string","description":"Present when ok=false. Codes include: unknown_place, unknown_discovery, unknown_doc, q_required, plz_required, coords_required, outside_service_area, url_required, not_maps_host, bad_url, path_or_url_required, serp_not_found, slug_or_coords_required, path_required."},"detail":"Field `error` was added to `get_page_summary` output.","severity":"risky"},{"kind":"output_property_added","path":"outputSchema.properties.hint","tool":"get_page_summary","after":{"type":"string","description":"Present when ok=false. Absolute URL or short recovery hint the agent should open or pass to another tool."},"detail":"Field `hint` was added to `get_page_summary` output.","severity":"risky"},{"kind":"output_property_added","path":"outputSchema.properties.html","tool":"get_page_summary","after":{"type":"string","description":"When www pointer"},"detail":"Field `html` was added to `get_page_summary` output.","severity":"risky"},{"kind":"output_property_added","path":"outputSchema.properties.lat","tool":"get_page_summary","after":{"type":"number"},"detail":"Field `lat` was added to `get_page_summary` output.","severity":"risky"},{"kind":"output_property_added","path":"outputSchema.properties.lng","tool":"get_page_summary","after":{"type":"number"},"detail":"Field `lng` was added to `get_page_summary` output.","severity":"risky"},{"kind":"output_property_added","path":"outputSchema.properties.locale","tool":"get_page_summary","after":{"enum":["de"],"type":"string","description":"Locale actually used for URLs. maps is German-only: always de (MAPS-E8 — no /en on maps). Requested non-de is ignored; payload locale=de."},"detail":"Field `locale` was added to `get_page_summary` output.","severity":"risky"},{"kind":"output_property_added","path":"outputSchema.properties.name","tool":"get_page_summary","after":{"type":"string"},"detail":"Field `name` was added to `get_page_summary` output.","severity":"risky"},{"kind":"output_property_added","path":"outputSchema.properties.note","tool":"get_page_summary","after":{"type":"string"},"detail":"Field `note` was added to `get_page_summary` output.","severity":"risky"},{"kind":"output_property_added","path":"outputSchema.properties.ok","tool":"get_page_summary","after":{"type":"boolean","description":"true = use summary, canonicalUrl, and extra keys. false = do not invent data; read error + hint and retry with valid args or open hint."},"detail":"Field `ok` was added to `get_page_summary` output.","severity":"risky"},{"kind":"output_property_added","path":"outputSchema.properties.plz","tool":"get_page_summary","after":{"type":"string"},"detail":"Field `plz` was added to `get_page_summary` output.","severity":"risky"},{"kind":"output_property_added","path":"outputSchema.properties.related","tool":"get_page_summary","after":{"type":"array","items":{"type":"string","format":"uri"},"description":"Always includes https://maps.ikeytz.com/llms.txt."},"detail":"Field `related` was added to `get_page_summary` output.","severity":"risky"},{"kind":"output_property_added","path":"outputSchema.properties.slug","tool":"get_page_summary","after":{"type":"string"},"detail":"Field `slug` was added to `get_page_summary` output.","severity":"risky"},{"kind":"output_property_added","path":"outputSchema.properties.summary","tool":"get_page_summary","after":{"type":"string","description":"Primary text for the model. For discovery tools this is the file window. For list tools a compact one-liner. Quote with attribution."},"detail":"Field `summary` was added to `get_page_summary` output.","severity":"risky"},{"kind":"output_property_added","path":"outputSchema.properties.tool","tool":"get_page_summary","after":{"type":"string","description":"Echo of the tool name that produced this object (e.g. get_service_area)."},"detail":"Field `tool` was added to `get_page_summary` output.","severity":"risky"},{"kind":"description_changed","tool":"get_partner_info","after":"WHAT: www pointer only — Partner-werden on www. maps returns html. NEXT: www get_partner_info.","before":"Partner-werden ist www. maps nur Link.","detail":"Description of `get_partner_info` changed (73% word delta).","severity":"risky","descriptionDelta":0.7333333333333334},{"kind":"enum_narrowed","path":"inputSchema.properties.locale","tool":"get_partner_info","after":"enum[de]","before":"open","detail":"`locale` on `get_partner_info` narrowed to a closed enum (de); previously valid values may now be rejected.","severity":"breaking"},{"kind":"default_changed","path":"inputSchema.properties.locale","tool":"get_partner_info","after":"de","detail":"Default of `locale` on `get_partner_info` changed unset → \"de\".","severity":"risky"},{"kind":"output_property_added","path":"outputSchema.properties.attribution","tool":"get_partner_info","after":{"type":"string","description":"Required citation: 'Quelle: Schlüsseldienst Ludwigsburg ikeytz (ikeytz.com) · ai-train=no · https://maps.ikeytz.com/.well-known/ai.txt'"},"detail":"Field `attribution` was added to `get_partner_info` output.","severity":"risky"},{"kind":"output_property_added","path":"outputSchema.properties.canonicalUrl","tool":"get_partner_info","after":{"type":"string","description":"Best URL to show the user: https://maps.ikeytz.com… page, public embed JSON, tel:+49…, mailto:…, https://wa.me/…, or a www pointer. Prefer this over constructing URLs."},"detail":"Field `canonicalUrl` was added to `get_partner_info` output.","severity":"risky"},{"kind":"output_property_added","path":"outputSchema.properties.error","tool":"get_partner_info","after":{"type":"string","description":"Present when ok=false. Codes include: unknown_place, unknown_discovery, unknown_doc, q_required, plz_required, coords_required, outside_service_area, url_required, not_maps_host, bad_url, path_or_url_required, serp_not_found, slug_or_coords_required, path_required."},"detail":"Field `error` was added to `get_partner_info` output.","severity":"risky"},{"kind":"output_property_added","path":"outputSchema.properties.hint","tool":"get_partner_info","after":{"type":"string","description":"Present when ok=false. Absolute URL or short recovery hint the agent should open or pass to another tool."},"detail":"Field `hint` was added to `get_partner_info` output.","severity":"risky"},{"kind":"output_property_added","path":"outputSchema.properties.html","tool":"get_partner_info","after":{"type":"string","format":"uri","description":"Absolute www.ikeytz.com URL — open there or call @ikeytz/mcp"},"detail":"Field `html` was added to `get_partner_info` output.","severity":"risky"},{"kind":"output_property_added","path":"outputSchema.properties.locale","tool":"get_partner_info","after":{"enum":["de"],"type":"string","description":"Locale actually used for URLs. maps is German-only: always de (MAPS-E8 — no /en on maps). Requested non-de is ignored; payload locale=de."},"detail":"Field `locale` was added to `get_partner_info` output.","severity":"risky"},{"kind":"output_property_added","path":"outputSchema.properties.note","tool":"get_partner_info","after":{"type":"string","description":"maps only points; Volltext/Preise/FAQ live on www"},"detail":"Field `note` was added to `get_partner_info` output.","severity":"risky"},{"kind":"output_property_added","path":"outputSchema.properties.npm","tool":"get_partner_info","after":{"type":"string","description":"www CLI package @ikeytz/mcp"},"detail":"Field `npm` was added to `get_partner_info` output.","severity":"risky"},{"kind":"output_property_added","path":"outputSchema.properties.ok","tool":"get_partner_info","after":{"type":"boolean","description":"true = use summary, canonicalUrl, and extra keys. false = do not invent data; read error + hint and retry with valid args or open hint."},"detail":"Field `ok` was added to `get_partner_info` output.","severity":"risky"},{"kind":"output_property_added","path":"outputSchema.properties.related","tool":"get_partner_info","after":{"type":"array","items":{"type":"string","format":"uri"},"description":"Always includes https://maps.ikeytz.com/llms.txt."},"detail":"Field `related` was added to `get_partner_info` output.","severity":"risky"},{"kind":"output_property_added","path":"outputSchema.properties.requested_locale","tool":"get_partner_info","after":{"type":"string","description":"Locale the caller asked for; maps still returns locale=de"},"detail":"Field `requested_locale` was added to `get_partner_info` output.","severity":"risky"},{"kind":"output_property_added","path":"outputSchema.properties.summary","tool":"get_partner_info","after":{"type":"string","description":"Primary text for the model. For discovery tools this is the file window. For list tools a compact one-liner. Quote with attribution."},"detail":"Field `summary` was added to `get_partner_info` output.","severity":"risky"},{"kind":"output_property_added","path":"outputSchema.properties.tool","tool":"get_partner_info","after":{"type":"string","description":"Echo of the tool name that produced this object (e.g. get_service_area)."},"detail":"Field `tool` was added to `get_partner_info` output.","severity":"risky"},{"kind":"output_property_added","path":"outputSchema.properties.www_mcp","tool":"get_partner_info","after":{"type":"string","format":"uri","description":"https://www.ikeytz.com/mcp — sister machine for prices/FAQ/corpus"},"detail":"Field `www_mcp` was added to `get_partner_info` output.","severity":"risky"},{"kind":"output_property_added","path":"outputSchema.properties.www_tool","tool":"get_partner_info","after":{"type":"string","description":"Same tool name on www MCP that holds the real payload"},"detail":"Field `www_tool` was added to `get_partner_info` output.","severity":"risky"},{"kind":"description_changed","tool":"get_prices","after":"WHAT: www pointer only — Festpreis matrix lives on www.ikeytz.com/preise via @ikeytz/mcp get_prices. maps returns html + note, no euro rows. USE to hand off. DOES NOT invent prices. NEXT: www get_prices; maps get_ort_datetime for whenKey.","before":"Preise sind www. maps liefert nur den Link.","detail":"Description of `get_prices` changed (92% word delta).","severity":"risky","descriptionDelta":0.9210526315789473},{"kind":"enum_narrowed","path":"inputSchema.properties.locale","tool":"get_prices","after":"enum[de]","before":"open","detail":"`locale` on `get_prices` narrowed to a closed enum (de); previously valid values may now be rejected.","severity":"breaking"},{"kind":"default_changed","path":"inputSchema.properties.locale","tool":"get_prices","after":"de","detail":"Default of `locale` on `get_prices` changed unset → \"de\".","severity":"risky"},{"kind":"output_property_added","path":"outputSchema.properties.attribution","tool":"get_prices","after":{"type":"string","description":"Required citation: 'Quelle: Schlüsseldienst Ludwigsburg ikeytz (ikeytz.com) · ai-train=no · https://maps.ikeytz.com/.well-known/ai.txt'"},"detail":"Field `attribution` was added to `get_prices` output.","severity":"risky"},{"kind":"output_property_added","path":"outputSchema.properties.canonicalUrl","tool":"get_prices","after":{"type":"string","description":"Best URL to show the user: https://maps.ikeytz.com… page, public embed JSON, tel:+49…, mailto:…, https://wa.me/…, or a www pointer. Prefer this over constructing URLs."},"detail":"Field `canonicalUrl` was added to `get_prices` output.","severity":"risky"},{"kind":"output_property_added","path":"outputSchema.properties.error","tool":"get_prices","after":{"type":"string","description":"Present when ok=false. Codes include: unknown_place, unknown_discovery, unknown_doc, q_required, plz_required, coords_required, outside_service_area, url_required, not_maps_host, bad_url, path_or_url_required, serp_not_found, slug_or_coords_required, path_required."},"detail":"Field `error` was added to `get_prices` output.","severity":"risky"},{"kind":"output_property_added","path":"outputSchema.properties.hint","tool":"get_prices","after":{"type":"string","description":"Present when ok=false. Absolute URL or short recovery hint the agent should open or pass to another tool."},"detail":"Field `hint` was added to `get_prices` output.","severity":"risky"},{"kind":"output_property_added","path":"outputSchema.properties.html","tool":"get_prices","after":{"type":"string","format":"uri","description":"Absolute www.ikeytz.com URL — open there or call @ikeytz/mcp"},"detail":"Field `html` was added to `get_prices` output.","severity":"risky"},{"kind":"output_property_added","path":"outputSchema.properties.locale","tool":"get_prices","after":{"enum":["de"],"type":"string","description":"Locale actually used for URLs. maps is German-only: always de (MAPS-E8 — no /en on maps). Requested non-de is ignored; payload locale=de."},"detail":"Field `locale` was added to `get_prices` output.","severity":"risky"},{"kind":"output_property_added","path":"outputSchema.properties.note","tool":"get_prices","after":{"type":"string","description":"maps only points; Volltext/Preise/FAQ live on www"},"detail":"Field `note` was added to `get_prices` output.","severity":"risky"},{"kind":"output_property_added","path":"outputSchema.properties.npm","tool":"get_prices","after":{"type":"string","description":"www CLI package @ikeytz/mcp"},"detail":"Field `npm` was added to `get_prices` output.","severity":"risky"},{"kind":"output_property_added","path":"outputSchema.properties.ok","tool":"get_prices","after":{"type":"boolean","description":"true = use summary, canonicalUrl, and extra keys. false = do not invent data; read error + hint and retry with valid args or open hint."},"detail":"Field `ok` was added to `get_prices` output.","severity":"risky"},{"kind":"output_property_added","path":"outputSchema.properties.related","tool":"get_prices","after":{"type":"array","items":{"type":"string","format":"uri"},"description":"Always includes https://maps.ikeytz.com/llms.txt."},"detail":"Field `related` was added to `get_prices` output.","severity":"risky"},{"kind":"output_property_added","path":"outputSchema.properties.requested_locale","tool":"get_prices","after":{"type":"string","description":"Locale the caller asked for; maps still returns locale=de"},"detail":"Field `requested_locale` was added to `get_prices` output.","severity":"risky"},{"kind":"output_property_added","path":"outputSchema.properties.summary","tool":"get_prices","after":{"type":"string","description":"Primary text for the model. For discovery tools this is the file window. For list tools a compact one-liner. Quote with attribution."},"detail":"Field `summary` was added to `get_prices` output.","severity":"risky"},{"kind":"output_property_added","path":"outputSchema.properties.tool","tool":"get_prices","after":{"type":"string","description":"Echo of the tool name that produced this object (e.g. get_service_area)."},"detail":"Field `tool` was added to `get_prices` output.","severity":"risky"},{"kind":"output_property_added","path":"outputSchema.properties.www_mcp","tool":"get_prices","after":{"type":"string","format":"uri","description":"https://www.ikeytz.com/mcp — sister machine for prices/FAQ/corpus"},"detail":"Field `www_mcp` was added to `get_prices` output.","severity":"risky"},{"kind":"output_property_added","path":"outputSchema.properties.www_tool","tool":"get_prices","after":{"type":"string","description":"Same tool name on www MCP that holds the real payload"},"detail":"Field `www_tool` was added to `get_prices` output.","severity":"risky"},{"kind":"description_changed","tool":"get_ratgeber","after":"WHAT: www pointer only — Ratgeber page /ratgeber/{slug}. slug required. maps returns html. NEXT: www get_ratgeber.","before":"Ratgeber-Seite ist www. maps nur Link.","detail":"Description of `get_ratgeber` changed (82% word delta).","severity":"risky","descriptionDelta":0.8235294117647058},{"kind":"enum_narrowed","path":"inputSchema.properties.locale","tool":"get_ratgeber","after":"enum[de]","before":"open","detail":"`locale` on `get_ratgeber` narrowed to a closed enum (de); previously valid values may now be rejected.","severity":"breaking"},{"kind":"default_changed","path":"inputSchema.properties.locale","tool":"get_ratgeber","after":"de","detail":"Default of `locale` on `get_ratgeber` changed unset → \"de\".","severity":"risky"},{"kind":"output_property_added","path":"outputSchema.properties.attribution","tool":"get_ratgeber","after":{"type":"string","description":"Required citation: 'Quelle: Schlüsseldienst Ludwigsburg ikeytz (ikeytz.com) · ai-train=no · https://maps.ikeytz.com/.well-known/ai.txt'"},"detail":"Field `attribution` was added to `get_ratgeber` output.","severity":"risky"},{"kind":"output_property_added","path":"outputSchema.properties.canonicalUrl","tool":"get_ratgeber","after":{"type":"string","description":"Best URL to show the user: https://maps.ikeytz.com… page, public embed JSON, tel:+49…, mailto:…, https://wa.me/…, or a www pointer. Prefer this over constructing URLs."},"detail":"Field `canonicalUrl` was added to `get_ratgeber` output.","severity":"risky"},{"kind":"output_property_added","path":"outputSchema.properties.error","tool":"get_ratgeber","after":{"type":"string","description":"Present when ok=false. Codes include: unknown_place, unknown_discovery, unknown_doc, q_required, plz_required, coords_required, outside_service_area, url_required, not_maps_host, bad_url, path_or_url_required, serp_not_found, slug_or_coords_required, path_required."},"detail":"Field `error` was added to `get_ratgeber` output.","severity":"risky"},{"kind":"output_property_added","path":"outputSchema.properties.hint","tool":"get_ratgeber","after":{"type":"string","description":"Present when ok=false. Absolute URL or short recovery hint the agent should open or pass to another tool."},"detail":"Field `hint` was added to `get_ratgeber` output.","severity":"risky"},{"kind":"output_property_added","path":"outputSchema.properties.html","tool":"get_ratgeber","after":{"type":"string","format":"uri","description":"Absolute www.ikeytz.com URL — open there or call @ikeytz/mcp"},"detail":"Field `html` was added to `get_ratgeber` output.","severity":"risky"},{"kind":"output_property_added","path":"outputSchema.properties.locale","tool":"get_ratgeber","after":{"enum":["de"],"type":"string","description":"Locale actually used for URLs. maps is German-only: always de (MAPS-E8 — no /en on maps). Requested non-de is ignored; payload locale=de."},"detail":"Field `locale` was added to `get_ratgeber` output.","severity":"risky"},{"kind":"output_property_added","path":"outputSchema.properties.note","tool":"get_ratgeber","after":{"type":"string","description":"maps only points; Volltext/Preise/FAQ live on www"},"detail":"Field `note` was added to `get_ratgeber` output.","severity":"risky"},{"kind":"output_property_added","path":"outputSchema.properties.npm","tool":"get_ratgeber","after":{"type":"string","description":"www CLI package @ikeytz/mcp"},"detail":"Field `npm` was added to `get_ratgeber` output.","severity":"risky"},{"kind":"output_property_added","path":"outputSchema.properties.ok","tool":"get_ratgeber","after":{"type":"boolean","description":"true = use summary, canonicalUrl, and extra keys. false = do not invent data; read error + hint and retry with valid args or open hint."},"detail":"Field `ok` was added to `get_ratgeber` output.","severity":"risky"},{"kind":"output_property_added","path":"outputSchema.properties.related","tool":"get_ratgeber","after":{"type":"array","items":{"type":"string","format":"uri"},"description":"Always includes https://maps.ikeytz.com/llms.txt."},"detail":"Field `related` was added to `get_ratgeber` output.","severity":"risky"},{"kind":"output_property_added","path":"outputSchema.properties.requested_locale","tool":"get_ratgeber","after":{"type":"string","description":"Locale the caller asked for; maps still returns locale=de"},"detail":"Field `requested_locale` was added to `get_ratgeber` output.","severity":"risky"},{"kind":"output_property_added","path":"outputSchema.properties.summary","tool":"get_ratgeber","after":{"type":"string","description":"Primary text for the model. For discovery tools this is the file window. For list tools a compact one-liner. Quote with attribution."},"detail":"Field `summary` was added to `get_ratgeber` output.","severity":"risky"},{"kind":"output_property_added","path":"outputSchema.properties.tool","tool":"get_ratgeber","after":{"type":"string","description":"Echo of the tool name that produced this object (e.g. get_service_area)."},"detail":"Field `tool` was added to `get_ratgeber` output.","severity":"risky"},{"kind":"output_property_added","path":"outputSchema.properties.www_mcp","tool":"get_ratgeber","after":{"type":"string","format":"uri","description":"https://www.ikeytz.com/mcp — sister machine for prices/FAQ/corpus"},"detail":"Field `www_mcp` was added to `get_ratgeber` output.","severity":"risky"},{"kind":"output_property_added","path":"outputSchema.properties.www_tool","tool":"get_ratgeber","after":{"type":"string","description":"Same tool name on www MCP that holds the real payload"},"detail":"Field `www_tool` was added to `get_ratgeber` output.","severity":"risky"},{"kind":"description_changed","tool":"get_review_url","after":"WHAT: www pointer only — Google review entry on www /review. maps returns html. NEXT: www get_review_url.","before":"Google-Review ist www. maps nur Link.","detail":"Description of `get_review_url` changed (75% word delta).","severity":"risky","descriptionDelta":0.75},{"kind":"enum_narrowed","path":"inputSchema.properties.locale","tool":"get_review_url","after":"enum[de]","before":"open","detail":"`locale` on `get_review_url` narrowed to a closed enum (de); previously valid values may now be rejected.","severity":"breaking"},{"kind":"default_changed","path":"inputSchema.properties.locale","tool":"get_review_url","after":"de","detail":"Default of `locale` on `get_review_url` changed unset → \"de\".","severity":"risky"},{"kind":"output_property_added","path":"outputSchema.properties.attribution","tool":"get_review_url","after":{"type":"string","description":"Required citation: 'Quelle: Schlüsseldienst Ludwigsburg ikeytz (ikeytz.com) · ai-train=no · https://maps.ikeytz.com/.well-known/ai.txt'"},"detail":"Field `attribution` was added to `get_review_url` output.","severity":"risky"},{"kind":"output_property_added","path":"outputSchema.properties.canonicalUrl","tool":"get_review_url","after":{"type":"string","description":"Best URL to show the user: https://maps.ikeytz.com… page, public embed JSON, tel:+49…, mailto:…, https://wa.me/…, or a www pointer. Prefer this over constructing URLs."},"detail":"Field `canonicalUrl` was added to `get_review_url` output.","severity":"risky"},{"kind":"output_property_added","path":"outputSchema.properties.error","tool":"get_review_url","after":{"type":"string","description":"Present when ok=false. Codes include: unknown_place, unknown_discovery, unknown_doc, q_required, plz_required, coords_required, outside_service_area, url_required, not_maps_host, bad_url, path_or_url_required, serp_not_found, slug_or_coords_required, path_required."},"detail":"Field `error` was added to `get_review_url` output.","severity":"risky"},{"kind":"output_property_added","path":"outputSchema.properties.hint","tool":"get_review_url","after":{"type":"string","description":"Present when ok=false. Absolute URL or short recovery hint the agent should open or pass to another tool."},"detail":"Field `hint` was added to `get_review_url` output.","severity":"risky"},{"kind":"output_property_added","path":"outputSchema.properties.html","tool":"get_review_url","after":{"type":"string","format":"uri","description":"Absolute www.ikeytz.com URL — open there or call @ikeytz/mcp"},"detail":"Field `html` was added to `get_review_url` output.","severity":"risky"},{"kind":"output_property_added","path":"outputSchema.properties.locale","tool":"get_review_url","after":{"enum":["de"],"type":"string","description":"Locale actually used for URLs. maps is German-only: always de (MAPS-E8 — no /en on maps). Requested non-de is ignored; payload locale=de."},"detail":"Field `locale` was added to `get_review_url` output.","severity":"risky"},{"kind":"output_property_added","path":"outputSchema.properties.note","tool":"get_review_url","after":{"type":"string","description":"maps only points; Volltext/Preise/FAQ live on www"},"detail":"Field `note` was added to `get_review_url` output.","severity":"risky"},{"kind":"output_property_added","path":"outputSchema.properties.npm","tool":"get_review_url","after":{"type":"string","description":"www CLI package @ikeytz/mcp"},"detail":"Field `npm` was added to `get_review_url` output.","severity":"risky"},{"kind":"output_property_added","path":"outputSchema.properties.ok","tool":"get_review_url","after":{"type":"boolean","description":"true = use summary, canonicalUrl, and extra keys. false = do not invent data; read error + hint and retry with valid args or open hint."},"detail":"Field `ok` was added to `get_review_url` output.","severity":"risky"},{"kind":"output_property_added","path":"outputSchema.properties.related","tool":"get_review_url","after":{"type":"array","items":{"type":"string","format":"uri"},"description":"Always includes https://maps.ikeytz.com/llms.txt."},"detail":"Field `related` was added to `get_review_url` output.","severity":"risky"},{"kind":"output_property_added","path":"outputSchema.properties.requested_locale","tool":"get_review_url","after":{"type":"string","description":"Locale the caller asked for; maps still returns locale=de"},"detail":"Field `requested_locale` was added to `get_review_url` output.","severity":"risky"},{"kind":"output_property_added","path":"outputSchema.properties.summary","tool":"get_review_url","after":{"type":"string","description":"Primary text for the model. For discovery tools this is the file window. For list tools a compact one-liner. Quote with attribution."},"detail":"Field `summary` was added to `get_review_url` output.","severity":"risky"},{"kind":"output_property_added","path":"outputSchema.properties.tool","tool":"get_review_url","after":{"type":"string","description":"Echo of the tool name that produced this object (e.g. get_service_area)."},"detail":"Field `tool` was added to `get_review_url` output.","severity":"risky"},{"kind":"output_property_added","path":"outputSchema.properties.www_mcp","tool":"get_review_url","after":{"type":"string","format":"uri","description":"https://www.ikeytz.com/mcp — sister machine for prices/FAQ/corpus"},"detail":"Field `www_mcp` was added to `get_review_url` output.","severity":"risky"},{"kind":"output_property_added","path":"outputSchema.properties.www_tool","tool":"get_review_url","after":{"type":"string","description":"Same tool name on www MCP that holds the real payload"},"detail":"Field `www_tool` was added to `get_review_url` output.","severity":"risky"},{"kind":"description_changed","tool":"get_serp_snippet","after":"WHAT: One SERP block from maps llms-serp.txt via path, url, slug, or q. RETURNS path, url, matchContext (full block). USE for a single page's SERP copy. DOES NOT invent meta tags. NEXT: get_ai_page or get_page_summary for body.","before":"Ein SERP-Block für path, url oder slug (maps llms-serp.txt).","detail":"Description of `get_serp_snippet` changed (78% word delta).","severity":"risky","descriptionDelta":0.7837837837837838},{"kind":"output_property_added","path":"outputSchema.properties.attribution","tool":"get_serp_snippet","after":{"type":"string","description":"Required citation: 'Quelle: Schlüsseldienst Ludwigsburg ikeytz (ikeytz.com) · ai-train=no · https://maps.ikeytz.com/.well-known/ai.txt'"},"detail":"Field `attribution` was added to `get_serp_snippet` output.","severity":"risky"},{"kind":"output_property_added","path":"outputSchema.properties.canonicalUrl","tool":"get_serp_snippet","after":{"type":"string","description":"Best URL to show the user: https://maps.ikeytz.com… page, public embed JSON, tel:+49…, mailto:…, https://wa.me/…, or a www pointer. Prefer this over constructing URLs."},"detail":"Field `canonicalUrl` was added to `get_serp_snippet` output.","severity":"risky"},{"kind":"output_property_added","path":"outputSchema.properties.error","tool":"get_serp_snippet","after":{"type":"string","description":"Present when ok=false. Codes include: unknown_place, unknown_discovery, unknown_doc, q_required, plz_required, coords_required, outside_service_area, url_required, not_maps_host, bad_url, path_or_url_required, serp_not_found, slug_or_coords_required, path_required."},"detail":"Field `error` was added to `get_serp_snippet` output.","severity":"risky"},{"kind":"output_property_added","path":"outputSchema.properties.hint","tool":"get_serp_snippet","after":{"type":"string","description":"Present when ok=false. Absolute URL or short recovery hint the agent should open or pass to another tool."},"detail":"Field `hint` was added to `get_serp_snippet` output.","severity":"risky"},{"kind":"output_property_added","path":"outputSchema.properties.locale","tool":"get_serp_snippet","after":{"enum":["de"],"type":"string","description":"Locale actually used for URLs. maps is German-only: always de (MAPS-E8 — no /en on maps). Requested non-de is ignored; payload locale=de."},"detail":"Field `locale` was added to `get_serp_snippet` output.","severity":"risky"},{"kind":"output_property_added","path":"outputSchema.properties.matchContext","tool":"get_serp_snippet","after":{"type":"string","description":"Full SERP markdown block"},"detail":"Field `matchContext` was added to `get_serp_snippet` output.","severity":"risky"},{"kind":"output_property_added","path":"outputSchema.properties.ok","tool":"get_serp_snippet","after":{"type":"boolean","description":"true = use summary, canonicalUrl, and extra keys. false = do not invent data; read error + hint and retry with valid args or open hint."},"detail":"Field `ok` was added to `get_serp_snippet` output.","severity":"risky"},{"kind":"output_property_added","path":"outputSchema.properties.path","tool":"get_serp_snippet","after":{"type":"string","description":"Matched path"},"detail":"Field `path` was added to `get_serp_snippet` output.","severity":"risky"},{"kind":"output_property_added","path":"outputSchema.properties.related","tool":"get_serp_snippet","after":{"type":"array","items":{"type":"string","format":"uri"},"description":"Always includes https://maps.ikeytz.com/llms.txt."},"detail":"Field `related` was added to `get_serp_snippet` output.","severity":"risky"},{"kind":"output_property_added","path":"outputSchema.properties.summary","tool":"get_serp_snippet","after":{"type":"string","description":"Primary text for the model. For discovery tools this is the file window. For list tools a compact one-liner. Quote with attribution."},"detail":"Field `summary` was added to `get_serp_snippet` output.","severity":"risky"},{"kind":"output_property_added","path":"outputSchema.properties.tool","tool":"get_serp_snippet","after":{"type":"string","description":"Echo of the tool name that produced this object (e.g. get_service_area)."},"detail":"Field `tool` was added to `get_serp_snippet` output.","severity":"risky"},{"kind":"output_property_added","path":"outputSchema.properties.url","tool":"get_serp_snippet","after":{"type":"string","description":"Matched maps URL"},"detail":"Field `url` was added to `get_serp_snippet` output.","severity":"risky"},{"kind":"description_changed","tool":"get_service_area","after":"WHAT: One Einsatzgebiet by slug → plz (first match) → name substring. RETURNS point card + optional Lage texts (h1, kicker, blurb, lage, geschichte) unless compact=true. fields= filters keys. USE when the user names a town/district in Landkreis Ludwigsburg. DOES NOT geocode free addresses outside the 52; unknown → ok=false unknown_place. NEXT: get_lage, get_geschichte, get_grenze, get_embed_map, distance_to_office.","before":"Ein Einsatzgebiet. Lookup: slug → plz (erster Treffer) → name (Substring). compact=true ohne Lage-Texte.","detail":"Description of `get_service_area` changed (87% word delta).","severity":"risky","descriptionDelta":0.8666666666666667},{"kind":"enum_narrowed","path":"inputSchema.properties.locale","tool":"get_service_area","after":"enum[de]","before":"open","detail":"`locale` on `get_service_area` narrowed to a closed enum (de); previously valid values may now be rejected.","severity":"breaking"},{"kind":"default_changed","path":"inputSchema.properties.locale","tool":"get_service_area","after":"de","detail":"Default of `locale` on `get_service_area` changed unset → \"de\".","severity":"risky"},{"kind":"output_property_added","path":"outputSchema.properties.attribution","tool":"get_service_area","after":{"type":"string","description":"Required citation: 'Quelle: Schlüsseldienst Ludwigsburg ikeytz (ikeytz.com) · ai-train=no · https://maps.ikeytz.com/.well-known/ai.txt'"},"detail":"Field `attribution` was added to `get_service_area` output.","severity":"risky"},{"kind":"output_property_added","path":"outputSchema.properties.blurb","tool":"get_service_area","after":{"type":"string","description":"Short blurb when not compact"},"detail":"Field `blurb` was added to `get_service_area` output.","severity":"risky"},{"kind":"output_property_added","path":"outputSchema.properties.canonicalUrl","tool":"get_service_area","after":{"type":"string","description":"Best URL to show the user: https://maps.ikeytz.com… page, public embed JSON, tel:+49…, mailto:…, https://wa.me/…, or a www pointer. Prefer this over constructing URLs."},"detail":"Field `canonicalUrl` was added to `get_service_area` output.","severity":"risky"},{"kind":"output_property_added","path":"outputSchema.properties.compact","tool":"get_service_area","after":{"type":"boolean","description":"Whether compact mode was applied"},"detail":"Field `compact` was added to `get_service_area` output.","severity":"risky"},{"kind":"output_property_added","path":"outputSchema.properties.embed_map","tool":"get_service_area","after":{"type":"string","format":"uri"},"detail":"Field `embed_map` was added to `get_service_area` output.","severity":"risky"},{"kind":"output_property_added","path":"outputSchema.properties.error","tool":"get_service_area","after":{"type":"string","description":"Present when ok=false. Codes include: unknown_place, unknown_discovery, unknown_doc, q_required, plz_required, coords_required, outside_service_area, url_required, not_maps_host, bad_url, path_or_url_required, serp_not_found, slug_or_coords_required, path_required."},"detail":"Field `error` was added to `get_service_area` output.","severity":"risky"},{"kind":"output_property_added","path":"outputSchema.properties.geo_api","tool":"get_service_area","after":{"type":"string","format":"uri"},"detail":"Field `geo_api` was added to `get_service_area` output.","severity":"risky"},{"kind":"output_property_added","path":"outputSchema.properties.geschichte","tool":"get_service_area","after":{"type":"string","description":"Geschichte text when not compact"},"detail":"Field `geschichte` was added to `get_service_area` output.","severity":"risky"},{"kind":"output_property_added","path":"outputSchema.properties.google_maps","tool":"get_service_area","after":{"type":"string","description":"'lat, lng'"},"detail":"Field `google_maps` was added to `get_service_area` output.","severity":"risky"},{"kind":"output_property_added","path":"outputSchema.properties.h1","tool":"get_service_area","after":{"type":"string","description":"Visitenkarte H1 when not compact"},"detail":"Field `h1` was added to `get_service_area` output.","severity":"risky"},{"kind":"output_property_added","path":"outputSchema.properties.hint","tool":"get_service_area","after":{"type":"string","description":"Present when ok=false. Absolute URL or short recovery hint the agent should open or pass to another tool."},"detail":"Field `hint` was added to `get_service_area` output.","severity":"risky"},{"kind":"output_property_added","path":"outputSchema.properties.icbm","tool":"get_service_area","after":{"type":"string","description":"ICBM string"},"detail":"Field `icbm` was added to `get_service_area` output.","severity":"risky"},{"kind":"output_property_added","path":"outputSchema.properties.kicker","tool":"get_service_area","after":{"type":"string","description":"Kicker when not compact"},"detail":"Field `kicker` was added to `get_service_area` output.","severity":"risky"},{"kind":"output_property_added","path":"outputSchema.properties.kind","tool":"get_service_area","after":{"type":"string","description":"stadtteil | ort"},"detail":"Field `kind` was added to `get_service_area` output.","severity":"risky"},{"kind":"output_property_added","path":"outputSchema.properties.lage","tool":"get_service_area","after":{"type":"string","description":"Lage text when not compact"},"detail":"Field `lage` was added to `get_service_area` output.","severity":"risky"},{"kind":"output_property_added","path":"outputSchema.properties.lat","tool":"get_service_area","after":{"type":"number","description":"Place latitude"},"detail":"Field `lat` was added to `get_service_area` output.","severity":"risky"},{"kind":"output_property_added","path":"outputSchema.properties.lng","tool":"get_service_area","after":{"type":"number","description":"Place longitude"},"detail":"Field `lng` was added to `get_service_area` output.","severity":"risky"},{"kind":"output_property_added","path":"outputSchema.properties.locale","tool":"get_service_area","after":{"enum":["de"],"type":"string","description":"Locale actually used for URLs. maps is German-only: always de (MAPS-E8 — no /en on maps). Requested non-de is ignored; payload locale=de."},"detail":"Field `locale` was added to `get_service_area` output.","severity":"risky"},{"kind":"output_property_added","path":"outputSchema.properties.name","tool":"get_service_area","after":{"type":"string","description":"German name"},"detail":"Field `name` was added to `get_service_area` output.","severity":"risky"},{"kind":"output_property_added","path":"outputSchema.properties.office_lat","tool":"get_service_area","after":{"type":"number","description":"Gewerbesitz lat"},"detail":"Field `office_lat` was added to `get_service_area` output.","severity":"risky"},{"kind":"output_property_added","path":"outputSchema.properties.office_lng","tool":"get_service_area","after":{"type":"number","description":"Gewerbesitz lng"},"detail":"Field `office_lng` was added to `get_service_area` output.","severity":"risky"},{"kind":"output_property_added","path":"outputSchema.properties.ok","tool":"get_service_area","after":{"type":"boolean","description":"true = use summary, canonicalUrl, and extra keys. false = do not invent data; read error + hint and retry with valid args or open hint."},"detail":"Field `ok` was added to `get_service_area` output.","severity":"risky"},{"kind":"output_property_added","path":"outputSchema.properties.parent","tool":"get_service_area","after":{"type":"string","description":"Parent label"},"detail":"Field `parent` was added to `get_service_area` output.","severity":"risky"},{"kind":"output_property_added","path":"outputSchema.properties.plz","tool":"get_service_area","after":{"type":"string","description":"Postcode"},"detail":"Field `plz` was added to `get_service_area` output.","severity":"risky"},{"kind":"output_property_added","path":"outputSchema.properties.related","tool":"get_service_area","after":{"type":"array","items":{"type":"string","format":"uri"},"description":"Always includes https://maps.ikeytz.com/llms.txt."},"detail":"Field `related` was added to `get_service_area` output.","severity":"risky"},{"kind":"output_property_added","path":"outputSchema.properties.slug","tool":"get_service_area","after":{"type":"string","description":"Resolved slug"},"detail":"Field `slug` was added to `get_service_area` output.","severity":"risky"},{"kind":"output_property_added","path":"outputSchema.properties.summary","tool":"get_service_area","after":{"type":"string","description":"Primary text for the model. For discovery tools this is the file window. For list tools a compact one-liner. Quote with attribution."},"detail":"Field `summary` was added to `get_service_area` output.","severity":"risky"},{"kind":"output_property_added","path":"outputSchema.properties.tool","tool":"get_service_area","after":{"type":"string","description":"Echo of the tool name that produced this object (e.g. get_service_area)."},"detail":"Field `tool` was added to `get_service_area` output.","severity":"risky"},{"kind":"output_property_added","path":"outputSchema.properties.walkIn","tool":"get_service_area","after":{"type":"boolean","description":"Always false"},"detail":"Field `walkIn` was added to `get_service_area` output.","severity":"risky"},{"kind":"description_changed","tool":"get_sitemap_txt","after":"WHAT: Alias get_discovery(which=sitemap-txt) — maps /sitemap.txt 1:1 (embed URLs). Optional offset/limit. USE to list public maps URLs. NEXT: resolve_maps_url, get_embed_map.","before":"maps /sitemap.txt 1:1.","detail":"Description of `get_sitemap_txt` changed (80% word delta).","severity":"risky","descriptionDelta":0.8},{"kind":"default_changed","path":"inputSchema.properties.offset","tool":"get_sitemap_txt","after":0,"detail":"Default of `offset` on `get_sitemap_txt` changed unset → 0.","severity":"risky"},{"kind":"output_property_added","path":"outputSchema.properties.attribution","tool":"get_sitemap_txt","after":{"type":"string","description":"Required citation: 'Quelle: Schlüsseldienst Ludwigsburg ikeytz (ikeytz.com) · ai-train=no · https://maps.ikeytz.com/.well-known/ai.txt'"},"detail":"Field `attribution` was added to `get_sitemap_txt` output.","severity":"risky"},{"kind":"output_property_added","path":"outputSchema.properties.body","tool":"get_sitemap_txt","after":{"type":"string","description":"UTF-8 text window after offset/limit"},"detail":"Field `body` was added to `get_sitemap_txt` output.","severity":"risky"},{"kind":"output_property_added","path":"outputSchema.properties.canonicalUrl","tool":"get_sitemap_txt","after":{"type":"string","description":"Best URL to show the user: https://maps.ikeytz.com… page, public embed JSON, tel:+49…, mailto:…, https://wa.me/…, or a www pointer. Prefer this over constructing URLs."},"detail":"Field `canonicalUrl` was added to `get_sitemap_txt` output.","severity":"risky"},{"kind":"output_property_added","path":"outputSchema.properties.error","tool":"get_sitemap_txt","after":{"type":"string","description":"Present when ok=false. Codes include: unknown_place, unknown_discovery, unknown_doc, q_required, plz_required, coords_required, outside_service_area, url_required, not_maps_host, bad_url, path_or_url_required, serp_not_found, slug_or_coords_required, path_required."},"detail":"Field `error` was added to `get_sitemap_txt` output.","severity":"risky"},{"kind":"output_property_added","path":"outputSchema.properties.hint","tool":"get_sitemap_txt","after":{"type":"string","description":"Present when ok=false. Absolute URL or short recovery hint the agent should open or pass to another tool."},"detail":"Field `hint` was added to `get_sitemap_txt` output.","severity":"risky"},{"kind":"output_property_added","path":"outputSchema.properties.limit","tool":"get_sitemap_txt","after":{"type":["number","null"],"description":"Applied line limit, or null if omitted"},"detail":"Field `limit` was added to `get_sitemap_txt` output.","severity":"risky"},{"kind":"output_property_added","path":"outputSchema.properties.locale","tool":"get_sitemap_txt","after":{"enum":["de"],"type":"string","description":"Locale actually used for URLs. maps is German-only: always de (MAPS-E8 — no /en on maps). Requested non-de is ignored; payload locale=de."},"detail":"Field `locale` was added to `get_sitemap_txt` output.","severity":"risky"},{"kind":"output_property_added","path":"outputSchema.properties.missing","tool":"get_sitemap_txt","after":{"type":"boolean","description":"true if the discovery file was not found on disk"},"detail":"Field `missing` was added to `get_sitemap_txt` output.","severity":"risky"},{"kind":"output_property_added","path":"outputSchema.properties.offset","tool":"get_sitemap_txt","after":{"type":"number","description":"Applied 0-based line offset"},"detail":"Field `offset` was added to `get_sitemap_txt` output.","severity":"risky"},{"kind":"output_property_added","path":"outputSchema.properties.ok","tool":"get_sitemap_txt","after":{"type":"boolean","description":"true = use summary, canonicalUrl, and extra keys. false = do not invent data; read error + hint and retry with valid args or open hint."},"detail":"Field `ok` was added to `get_sitemap_txt` output.","severity":"risky"},{"kind":"output_property_added","path":"outputSchema.properties.path","tool":"get_sitemap_txt","after":{"type":"string","description":"Public relative path of the file on maps"},"detail":"Field `path` was added to `get_sitemap_txt` output.","severity":"risky"},{"kind":"output_property_added","path":"outputSchema.properties.related","tool":"get_sitemap_txt","after":{"type":"array","items":{"type":"string","format":"uri"},"description":"Always includes https://maps.ikeytz.com/llms.txt."},"detail":"Field `related` was added to `get_sitemap_txt` output.","severity":"risky"},{"kind":"output_property_added","path":"outputSchema.properties.summary","tool":"get_sitemap_txt","after":{"type":"string","description":"Primary text for the model. For discovery tools this is the file window. For list tools a compact one-liner. Quote with attribution."},"detail":"Field `summary` was added to `get_sitemap_txt` output.","severity":"risky"},{"kind":"output_property_added","path":"outputSchema.properties.text","tool":"get_sitemap_txt","after":{"type":"string","description":"Alias/window of body when present"},"detail":"Field `text` was added to `get_sitemap_txt` output.","severity":"risky"},{"kind":"output_property_added","path":"outputSchema.properties.tool","tool":"get_sitemap_txt","after":{"type":"string","description":"Echo of the tool name that produced this object (e.g. get_service_area)."},"detail":"Field `tool` was added to `get_sitemap_txt` output.","severity":"risky"},{"kind":"output_property_added","path":"outputSchema.properties.total_lines","tool":"get_sitemap_txt","after":{"type":"number","description":"Line count of the full file"},"detail":"Field `total_lines` was added to `get_sitemap_txt` output.","severity":"risky"},{"kind":"output_property_added","path":"outputSchema.properties.which","tool":"get_sitemap_txt","after":{"type":"string","description":"Resolved discovery id (ard, ai-catalog, llms, robots, sitemap-txt, llms-mcp-server, …)."},"detail":"Field `which` was added to `get_sitemap_txt` output.","severity":"risky"},{"kind":"description_changed","tool":"get_urheberrecht","after":"WHAT: Karten-Urheberrecht text from maps /llms-urheberrecht.txt (HTML page remains www /urheberrecht). Optional offset/limit. USE when citing map copyright (Mahmud Reza Kashani · ikeytz). NEXT: get_copyright, get_legal(doc=urheberrecht).","before":"Karten-Urheberrecht: maps /llms-urheberrecht.txt (HTML auf www).","detail":"Description of `get_urheberrecht` changed (76% word delta).","severity":"risky","descriptionDelta":0.7586206896551724},{"kind":"default_changed","path":"inputSchema.properties.offset","tool":"get_urheberrecht","after":0,"detail":"Default of `offset` on `get_urheberrecht` changed unset → 0.","severity":"risky"},{"kind":"output_property_added","path":"outputSchema.properties.attribution","tool":"get_urheberrecht","after":{"type":"string","description":"Required citation: 'Quelle: Schlüsseldienst Ludwigsburg ikeytz (ikeytz.com) · ai-train=no · https://maps.ikeytz.com/.well-known/ai.txt'"},"detail":"Field `attribution` was added to `get_urheberrecht` output.","severity":"risky"},{"kind":"output_property_added","path":"outputSchema.properties.body","tool":"get_urheberrecht","after":{"type":"string"},"detail":"Field `body` was added to `get_urheberrecht` output.","severity":"risky"},{"kind":"output_property_added","path":"outputSchema.properties.canonicalUrl","tool":"get_urheberrecht","after":{"type":"string","description":"Best URL to show the user: https://maps.ikeytz.com… page, public embed JSON, tel:+49…, mailto:…, https://wa.me/…, or a www pointer. Prefer this over constructing URLs."},"detail":"Field `canonicalUrl` was added to `get_urheberrecht` output.","severity":"risky"},{"kind":"output_property_added","path":"outputSchema.properties.doc","tool":"get_urheberrecht","after":{"type":"string","const":"urheberrecht"},"detail":"Field `doc` was added to `get_urheberrecht` output.","severity":"risky"},{"kind":"output_property_added","path":"outputSchema.properties.error","tool":"get_urheberrecht","after":{"type":"string","description":"Present when ok=false. Codes include: unknown_place, unknown_discovery, unknown_doc, q_required, plz_required, coords_required, outside_service_area, url_required, not_maps_host, bad_url, path_or_url_required, serp_not_found, slug_or_coords_required, path_required."},"detail":"Field `error` was added to `get_urheberrecht` output.","severity":"risky"},{"kind":"output_property_added","path":"outputSchema.properties.hint","tool":"get_urheberrecht","after":{"type":"string","description":"Present when ok=false. Absolute URL or short recovery hint the agent should open or pass to another tool."},"detail":"Field `hint` was added to `get_urheberrecht` output.","severity":"risky"},{"kind":"output_property_added","path":"outputSchema.properties.html","tool":"get_urheberrecht","after":{"type":"string","description":"www /urheberrecht"},"detail":"Field `html` was added to `get_urheberrecht` output.","severity":"risky"},{"kind":"output_property_added","path":"outputSchema.properties.locale","tool":"get_urheberrecht","after":{"enum":["de"],"type":"string","description":"Locale actually used for URLs. maps is German-only: always de (MAPS-E8 — no /en on maps). Requested non-de is ignored; payload locale=de."},"detail":"Field `locale` was added to `get_urheberrecht` output.","severity":"risky"},{"kind":"output_property_added","path":"outputSchema.properties.ok","tool":"get_urheberrecht","after":{"type":"boolean","description":"true = use summary, canonicalUrl, and extra keys. false = do not invent data; read error + hint and retry with valid args or open hint."},"detail":"Field `ok` was added to `get_urheberrecht` output.","severity":"risky"},{"kind":"output_property_added","path":"outputSchema.properties.related","tool":"get_urheberrecht","after":{"type":"array","items":{"type":"string","format":"uri"},"description":"Always includes https://maps.ikeytz.com/llms.txt."},"detail":"Field `related` was added to `get_urheberrecht` output.","severity":"risky"},{"kind":"output_property_added","path":"outputSchema.properties.summary","tool":"get_urheberrecht","after":{"type":"string","description":"Primary text for the model. For discovery tools this is the file window. For list tools a compact one-liner. Quote with attribution."},"detail":"Field `summary` was added to `get_urheberrecht` output.","severity":"risky"},{"kind":"output_property_added","path":"outputSchema.properties.tool","tool":"get_urheberrecht","after":{"type":"string","description":"Echo of the tool name that produced this object (e.g. get_service_area)."},"detail":"Field `tool` was added to `get_urheberrecht` output.","severity":"risky"},{"kind":"output_property_added","path":"outputSchema.properties.which","tool":"get_urheberrecht","after":{"type":"string"},"detail":"Field `which` was added to `get_urheberrecht` output.","severity":"risky"},{"kind":"description_changed","tool":"get_widerruf","after":"WHAT: www pointer only — Widerruf on www.ikeytz.com. maps returns html link. DOES NOT return withdrawal text. NEXT: www MCP.","before":"Widerruf: Link www (HTML bleibt www).","detail":"Description of `get_widerruf` changed (80% word delta).","severity":"risky","descriptionDelta":0.8},{"kind":"output_property_added","path":"outputSchema.properties.attribution","tool":"get_widerruf","after":{"type":"string","description":"Required citation: 'Quelle: Schlüsseldienst Ludwigsburg ikeytz (ikeytz.com) · ai-train=no · https://maps.ikeytz.com/.well-known/ai.txt'"},"detail":"Field `attribution` was added to `get_widerruf` output.","severity":"risky"},{"kind":"output_property_added","path":"outputSchema.properties.canonicalUrl","tool":"get_widerruf","after":{"type":"string","description":"Best URL to show the user: https://maps.ikeytz.com… page, public embed JSON, tel:+49…, mailto:…, https://wa.me/…, or a www pointer. Prefer this over constructing URLs."},"detail":"Field `canonicalUrl` was added to `get_widerruf` output.","severity":"risky"},{"kind":"output_property_added","path":"outputSchema.properties.error","tool":"get_widerruf","after":{"type":"string","description":"Present when ok=false. Codes include: unknown_place, unknown_discovery, unknown_doc, q_required, plz_required, coords_required, outside_service_area, url_required, not_maps_host, bad_url, path_or_url_required, serp_not_found, slug_or_coords_required, path_required."},"detail":"Field `error` was added to `get_widerruf` output.","severity":"risky"},{"kind":"output_property_added","path":"outputSchema.properties.hint","tool":"get_widerruf","after":{"type":"string","description":"Present when ok=false. Absolute URL or short recovery hint the agent should open or pass to another tool."},"detail":"Field `hint` was added to `get_widerruf` output.","severity":"risky"},{"kind":"output_property_added","path":"outputSchema.properties.html","tool":"get_widerruf","after":{"type":"string","format":"uri","description":"Absolute www.ikeytz.com URL — open there or call @ikeytz/mcp"},"detail":"Field `html` was added to `get_widerruf` output.","severity":"risky"},{"kind":"output_property_added","path":"outputSchema.properties.locale","tool":"get_widerruf","after":{"enum":["de"],"type":"string","description":"Locale actually used for URLs. maps is German-only: always de (MAPS-E8 — no /en on maps). Requested non-de is ignored; payload locale=de."},"detail":"Field `locale` was added to `get_widerruf` output.","severity":"risky"},{"kind":"output_property_added","path":"outputSchema.properties.note","tool":"get_widerruf","after":{"type":"string","description":"maps only points; Volltext/Preise/FAQ live on www"},"detail":"Field `note` was added to `get_widerruf` output.","severity":"risky"},{"kind":"output_property_added","path":"outputSchema.properties.npm","tool":"get_widerruf","after":{"type":"string","description":"www CLI package @ikeytz/mcp"},"detail":"Field `npm` was added to `get_widerruf` output.","severity":"risky"},{"kind":"output_property_added","path":"outputSchema.properties.ok","tool":"get_widerruf","after":{"type":"boolean","description":"true = use summary, canonicalUrl, and extra keys. false = do not invent data; read error + hint and retry with valid args or open hint."},"detail":"Field `ok` was added to `get_widerruf` output.","severity":"risky"},{"kind":"output_property_added","path":"outputSchema.properties.related","tool":"get_widerruf","after":{"type":"array","items":{"type":"string","format":"uri"},"description":"Always includes https://maps.ikeytz.com/llms.txt."},"detail":"Field `related` was added to `get_widerruf` output.","severity":"risky"},{"kind":"output_property_added","path":"outputSchema.properties.requested_locale","tool":"get_widerruf","after":{"type":"string","description":"Locale the caller asked for; maps still returns locale=de"},"detail":"Field `requested_locale` was added to `get_widerruf` output.","severity":"risky"},{"kind":"output_property_added","path":"outputSchema.properties.summary","tool":"get_widerruf","after":{"type":"string","description":"Primary text for the model. For discovery tools this is the file window. For list tools a compact one-liner. Quote with attribution."},"detail":"Field `summary` was added to `get_widerruf` output.","severity":"risky"},{"kind":"output_property_added","path":"outputSchema.properties.tool","tool":"get_widerruf","after":{"type":"string","description":"Echo of the tool name that produced this object (e.g. get_service_area)."},"detail":"Field `tool` was added to `get_widerruf` output.","severity":"risky"},{"kind":"output_property_added","path":"outputSchema.properties.www_mcp","tool":"get_widerruf","after":{"type":"string","format":"uri","description":"https://www.ikeytz.com/mcp — sister machine for prices/FAQ/corpus"},"detail":"Field `www_mcp` was added to `get_widerruf` output.","severity":"risky"},{"kind":"output_property_added","path":"outputSchema.properties.www_tool","tool":"get_widerruf","after":{"type":"string","description":"Same tool name on www MCP that holds the real payload"},"detail":"Field `www_tool` was added to `get_widerruf` output.","severity":"risky"},{"kind":"description_changed","tool":"get_wissen_entry","after":"WHAT: www pointer only — Wissen article /wissen/{id}. id required. maps returns html. NEXT: www get_wissen_entry.","before":"Wissen-Artikel ist www. maps nur Link.","detail":"Description of `get_wissen_entry` changed (82% word delta).","severity":"risky","descriptionDelta":0.8235294117647058},{"kind":"enum_narrowed","path":"inputSchema.properties.locale","tool":"get_wissen_entry","after":"enum[de]","before":"open","detail":"`locale` on `get_wissen_entry` narrowed to a closed enum (de); previously valid values may now be rejected.","severity":"breaking"},{"kind":"default_changed","path":"inputSchema.properties.locale","tool":"get_wissen_entry","after":"de","detail":"Default of `locale` on `get_wissen_entry` changed unset → \"de\".","severity":"risky"},{"kind":"output_property_added","path":"outputSchema.properties.attribution","tool":"get_wissen_entry","after":{"type":"string","description":"Required citation: 'Quelle: Schlüsseldienst Ludwigsburg ikeytz (ikeytz.com) · ai-train=no · https://maps.ikeytz.com/.well-known/ai.txt'"},"detail":"Field `attribution` was added to `get_wissen_entry` output.","severity":"risky"},{"kind":"output_property_added","path":"outputSchema.properties.canonicalUrl","tool":"get_wissen_entry","after":{"type":"string","description":"Best URL to show the user: https://maps.ikeytz.com… page, public embed JSON, tel:+49…, mailto:…, https://wa.me/…, or a www pointer. Prefer this over constructing URLs."},"detail":"Field `canonicalUrl` was added to `get_wissen_entry` output.","severity":"risky"},{"kind":"output_property_added","path":"outputSchema.properties.error","tool":"get_wissen_entry","after":{"type":"string","description":"Present when ok=false. Codes include: unknown_place, unknown_discovery, unknown_doc, q_required, plz_required, coords_required, outside_service_area, url_required, not_maps_host, bad_url, path_or_url_required, serp_not_found, slug_or_coords_required, path_required."},"detail":"Field `error` was added to `get_wissen_entry` output.","severity":"risky"},{"kind":"output_property_added","path":"outputSchema.properties.hint","tool":"get_wissen_entry","after":{"type":"string","description":"Present when ok=false. Absolute URL or short recovery hint the agent should open or pass to another tool."},"detail":"Field `hint` was added to `get_wissen_entry` output.","severity":"risky"},{"kind":"output_property_added","path":"outputSchema.properties.html","tool":"get_wissen_entry","after":{"type":"string","format":"uri","description":"Absolute www.ikeytz.com URL — open there or call @ikeytz/mcp"},"detail":"Field `html` was added to `get_wissen_entry` output.","severity":"risky"},{"kind":"output_property_added","path":"outputSchema.properties.locale","tool":"get_wissen_entry","after":{"enum":["de"],"type":"string","description":"Locale actually used for URLs. maps is German-only: always de (MAPS-E8 — no /en on maps). Requested non-de is ignored; payload locale=de."},"detail":"Field `locale` was added to `get_wissen_entry` output.","severity":"risky"},{"kind":"output_property_added","path":"outputSchema.properties.note","tool":"get_wissen_entry","after":{"type":"string","description":"maps only points; Volltext/Preise/FAQ live on www"},"detail":"Field `note` was added to `get_wissen_entry` output.","severity":"risky"},{"kind":"output_property_added","path":"outputSchema.properties.npm","tool":"get_wissen_entry","after":{"type":"string","description":"www CLI package @ikeytz/mcp"},"detail":"Field `npm` was added to `get_wissen_entry` output.","severity":"risky"},{"kind":"output_property_added","path":"outputSchema.properties.ok","tool":"get_wissen_entry","after":{"type":"boolean","description":"true = use summary, canonicalUrl, and extra keys. false = do not invent data; read error + hint and retry with valid args or open hint."},"detail":"Field `ok` was added to `get_wissen_entry` output.","severity":"risky"},{"kind":"output_property_added","path":"outputSchema.properties.related","tool":"get_wissen_entry","after":{"type":"array","items":{"type":"string","format":"uri"},"description":"Always includes https://maps.ikeytz.com/llms.txt."},"detail":"Field `related` was added to `get_wissen_entry` output.","severity":"risky"},{"kind":"output_property_added","path":"outputSchema.properties.requested_locale","tool":"get_wissen_entry","after":{"type":"string","description":"Locale the caller asked for; maps still returns locale=de"},"detail":"Field `requested_locale` was added to `get_wissen_entry` output.","severity":"risky"},{"kind":"output_property_added","path":"outputSchema.properties.summary","tool":"get_wissen_entry","after":{"type":"string","description":"Primary text for the model. For discovery tools this is the file window. For list tools a compact one-liner. Quote with attribution."},"detail":"Field `summary` was added to `get_wissen_entry` output.","severity":"risky"},{"kind":"output_property_added","path":"outputSchema.properties.tool","tool":"get_wissen_entry","after":{"type":"string","description":"Echo of the tool name that produced this object (e.g. get_service_area)."},"detail":"Field `tool` was added to `get_wissen_entry` output.","severity":"risky"},{"kind":"output_property_added","path":"outputSchema.properties.www_mcp","tool":"get_wissen_entry","after":{"type":"string","format":"uri","description":"https://www.ikeytz.com/mcp — sister machine for prices/FAQ/corpus"},"detail":"Field `www_mcp` was added to `get_wissen_entry` output.","severity":"risky"},{"kind":"output_property_added","path":"outputSchema.properties.www_tool","tool":"get_wissen_entry","after":{"type":"string","description":"Same tool name on www MCP that holds the real payload"},"detail":"Field `www_tool` was added to `get_wissen_entry` output.","severity":"risky"},{"kind":"description_changed","tool":"list_auswahl","after":"WHAT: www pointer only — Auswahl hub on www /auswahl. maps returns html. NEXT: www list_auswahl / get_auswahl_item.","before":"Auswahl-Hub ist www. maps nur Link.","detail":"Description of `list_auswahl` changed (75% word delta).","severity":"risky","descriptionDelta":0.75},{"kind":"enum_narrowed","path":"inputSchema.properties.locale","tool":"list_auswahl","after":"enum[de]","before":"open","detail":"`locale` on `list_auswahl` narrowed to a closed enum (de); previously valid values may now be rejected.","severity":"breaking"},{"kind":"default_changed","path":"inputSchema.properties.locale","tool":"list_auswahl","after":"de","detail":"Default of `locale` on `list_auswahl` changed unset → \"de\".","severity":"risky"},{"kind":"output_property_added","path":"outputSchema.properties.attribution","tool":"list_auswahl","after":{"type":"string","description":"Required citation: 'Quelle: Schlüsseldienst Ludwigsburg ikeytz (ikeytz.com) · ai-train=no · https://maps.ikeytz.com/.well-known/ai.txt'"},"detail":"Field `attribution` was added to `list_auswahl` output.","severity":"risky"},{"kind":"output_property_added","path":"outputSchema.properties.canonicalUrl","tool":"list_auswahl","after":{"type":"string","description":"Best URL to show the user: https://maps.ikeytz.com… page, public embed JSON, tel:+49…, mailto:…, https://wa.me/…, or a www pointer. Prefer this over constructing URLs."},"detail":"Field `canonicalUrl` was added to `list_auswahl` output.","severity":"risky"},{"kind":"output_property_added","path":"outputSchema.properties.error","tool":"list_auswahl","after":{"type":"string","description":"Present when ok=false. Codes include: unknown_place, unknown_discovery, unknown_doc, q_required, plz_required, coords_required, outside_service_area, url_required, not_maps_host, bad_url, path_or_url_required, serp_not_found, slug_or_coords_required, path_required."},"detail":"Field `error` was added to `list_auswahl` output.","severity":"risky"},{"kind":"output_property_added","path":"outputSchema.properties.hint","tool":"list_auswahl","after":{"type":"string","description":"Present when ok=false. Absolute URL or short recovery hint the agent should open or pass to another tool."},"detail":"Field `hint` was added to `list_auswahl` output.","severity":"risky"},{"kind":"output_property_added","path":"outputSchema.properties.html","tool":"list_auswahl","after":{"type":"string","format":"uri","description":"Absolute www.ikeytz.com URL — open there or call @ikeytz/mcp"},"detail":"Field `html` was added to `list_auswahl` output.","severity":"risky"},{"kind":"output_property_added","path":"outputSchema.properties.locale","tool":"list_auswahl","after":{"enum":["de"],"type":"string","description":"Locale actually used for URLs. maps is German-only: always de (MAPS-E8 — no /en on maps). Requested non-de is ignored; payload locale=de."},"detail":"Field `locale` was added to `list_auswahl` output.","severity":"risky"},{"kind":"output_property_added","path":"outputSchema.properties.note","tool":"list_auswahl","after":{"type":"string","description":"maps only points; Volltext/Preise/FAQ live on www"},"detail":"Field `note` was added to `list_auswahl` output.","severity":"risky"},{"kind":"output_property_added","path":"outputSchema.properties.npm","tool":"list_auswahl","after":{"type":"string","description":"www CLI package @ikeytz/mcp"},"detail":"Field `npm` was added to `list_auswahl` output.","severity":"risky"},{"kind":"output_property_added","path":"outputSchema.properties.ok","tool":"list_auswahl","after":{"type":"boolean","description":"true = use summary, canonicalUrl, and extra keys. false = do not invent data; read error + hint and retry with valid args or open hint."},"detail":"Field `ok` was added to `list_auswahl` output.","severity":"risky"},{"kind":"output_property_added","path":"outputSchema.properties.related","tool":"list_auswahl","after":{"type":"array","items":{"type":"string","format":"uri"},"description":"Always includes https://maps.ikeytz.com/llms.txt."},"detail":"Field `related` was added to `list_auswahl` output.","severity":"risky"},{"kind":"output_property_added","path":"outputSchema.properties.requested_locale","tool":"list_auswahl","after":{"type":"string","description":"Locale the caller asked for; maps still returns locale=de"},"detail":"Field `requested_locale` was added to `list_auswahl` output.","severity":"risky"},{"kind":"output_property_added","path":"outputSchema.properties.summary","tool":"list_auswahl","after":{"type":"string","description":"Primary text for the model. For discovery tools this is the file window. For list tools a compact one-liner. Quote with attribution."},"detail":"Field `summary` was added to `list_auswahl` output.","severity":"risky"},{"kind":"output_property_added","path":"outputSchema.properties.tool","tool":"list_auswahl","after":{"type":"string","description":"Echo of the tool name that produced this object (e.g. get_service_area)."},"detail":"Field `tool` was added to `list_auswahl` output.","severity":"risky"},{"kind":"output_property_added","path":"outputSchema.properties.www_mcp","tool":"list_auswahl","after":{"type":"string","format":"uri","description":"https://www.ikeytz.com/mcp — sister machine for prices/FAQ/corpus"},"detail":"Field `www_mcp` was added to `list_auswahl` output.","severity":"risky"},{"kind":"output_property_added","path":"outputSchema.properties.www_tool","tool":"list_auswahl","after":{"type":"string","description":"Same tool name on www MCP that holds the real payload"},"detail":"Field `www_tool` was added to `list_auswahl` output.","severity":"risky"},{"kind":"description_changed","tool":"list_faq","after":"WHAT: www pointer only — FAQ list on www /faq. maps returns html, not FAQ rows. NEXT: www list_faq / get_faq.","before":"FAQ ist www. maps nur Link.","detail":"Description of `list_faq` changed (83% word delta).","severity":"risky","descriptionDelta":0.8333333333333334},{"kind":"enum_narrowed","path":"inputSchema.properties.locale","tool":"list_faq","after":"enum[de]","before":"open","detail":"`locale` on `list_faq` narrowed to a closed enum (de); previously valid values may now be rejected.","severity":"breaking"},{"kind":"default_changed","path":"inputSchema.properties.locale","tool":"list_faq","after":"de","detail":"Default of `locale` on `list_faq` changed unset → \"de\".","severity":"risky"},{"kind":"output_property_added","path":"outputSchema.properties.attribution","tool":"list_faq","after":{"type":"string","description":"Required citation: 'Quelle: Schlüsseldienst Ludwigsburg ikeytz (ikeytz.com) · ai-train=no · https://maps.ikeytz.com/.well-known/ai.txt'"},"detail":"Field `attribution` was added to `list_faq` output.","severity":"risky"},{"kind":"output_property_added","path":"outputSchema.properties.canonicalUrl","tool":"list_faq","after":{"type":"string","description":"Best URL to show the user: https://maps.ikeytz.com… page, public embed JSON, tel:+49…, mailto:…, https://wa.me/…, or a www pointer. Prefer this over constructing URLs."},"detail":"Field `canonicalUrl` was added to `list_faq` output.","severity":"risky"},{"kind":"output_property_added","path":"outputSchema.properties.error","tool":"list_faq","after":{"type":"string","description":"Present when ok=false. Codes include: unknown_place, unknown_discovery, unknown_doc, q_required, plz_required, coords_required, outside_service_area, url_required, not_maps_host, bad_url, path_or_url_required, serp_not_found, slug_or_coords_required, path_required."},"detail":"Field `error` was added to `list_faq` output.","severity":"risky"},{"kind":"output_property_added","path":"outputSchema.properties.hint","tool":"list_faq","after":{"type":"string","description":"Present when ok=false. Absolute URL or short recovery hint the agent should open or pass to another tool."},"detail":"Field `hint` was added to `list_faq` output.","severity":"risky"},{"kind":"output_property_added","path":"outputSchema.properties.html","tool":"list_faq","after":{"type":"string","format":"uri","description":"Absolute www.ikeytz.com URL — open there or call @ikeytz/mcp"},"detail":"Field `html` was added to `list_faq` output.","severity":"risky"},{"kind":"output_property_added","path":"outputSchema.properties.locale","tool":"list_faq","after":{"enum":["de"],"type":"string","description":"Locale actually used for URLs. maps is German-only: always de (MAPS-E8 — no /en on maps). Requested non-de is ignored; payload locale=de."},"detail":"Field `locale` was added to `list_faq` output.","severity":"risky"},{"kind":"output_property_added","path":"outputSchema.properties.note","tool":"list_faq","after":{"type":"string","description":"maps only points; Volltext/Preise/FAQ live on www"},"detail":"Field `note` was added to `list_faq` output.","severity":"risky"},{"kind":"output_property_added","path":"outputSchema.properties.npm","tool":"list_faq","after":{"type":"string","description":"www CLI package @ikeytz/mcp"},"detail":"Field `npm` was added to `list_faq` output.","severity":"risky"},{"kind":"output_property_added","path":"outputSchema.properties.ok","tool":"list_faq","after":{"type":"boolean","description":"true = use summary, canonicalUrl, and extra keys. false = do not invent data; read error + hint and retry with valid args or open hint."},"detail":"Field `ok` was added to `list_faq` output.","severity":"risky"},{"kind":"output_property_added","path":"outputSchema.properties.related","tool":"list_faq","after":{"type":"array","items":{"type":"string","format":"uri"},"description":"Always includes https://maps.ikeytz.com/llms.txt."},"detail":"Field `related` was added to `list_faq` output.","severity":"risky"},{"kind":"output_property_added","path":"outputSchema.properties.requested_locale","tool":"list_faq","after":{"type":"string","description":"Locale the caller asked for; maps still returns locale=de"},"detail":"Field `requested_locale` was added to `list_faq` output.","severity":"risky"},{"kind":"output_property_added","path":"outputSchema.properties.summary","tool":"list_faq","after":{"type":"string","description":"Primary text for the model. For discovery tools this is the file window. For list tools a compact one-liner. Quote with attribution."},"detail":"Field `summary` was added to `list_faq` output.","severity":"risky"},{"kind":"output_property_added","path":"outputSchema.properties.tool","tool":"list_faq","after":{"type":"string","description":"Echo of the tool name that produced this object (e.g. get_service_area)."},"detail":"Field `tool` was added to `list_faq` output.","severity":"risky"},{"kind":"output_property_added","path":"outputSchema.properties.www_mcp","tool":"list_faq","after":{"type":"string","format":"uri","description":"https://www.ikeytz.com/mcp — sister machine for prices/FAQ/corpus"},"detail":"Field `www_mcp` was added to `list_faq` output.","severity":"risky"},{"kind":"output_property_added","path":"outputSchema.properties.www_tool","tool":"list_faq","after":{"type":"string","description":"Same tool name on www MCP that holds the real payload"},"detail":"Field `www_tool` was added to `list_faq` output.","severity":"risky"},{"kind":"description_changed","tool":"list_footer","after":"WHAT: maps footer links (Hub, MCP-Hub, MCP, mapsEmail mailto, Urheberrecht, Copyright, Impressum-Kontakt) plus www HTML legal links (no price corpus). RETURNS maps[], html_www[], email, mapsEmail. USE for footer/legal discovery. NEXT: get_legal, compose_mailto.","before":"maps-Footer + www-HTML-Links (kein Preise-Corpus).","detail":"Description of `list_footer` changed (80% word delta).","severity":"risky","descriptionDelta":0.8},{"kind":"enum_narrowed","path":"inputSchema.properties.locale","tool":"list_footer","after":"enum[de]","before":"open","detail":"`locale` on `list_footer` narrowed to a closed enum (de); previously valid values may now be rejected.","severity":"breaking"},{"kind":"default_changed","path":"inputSchema.properties.locale","tool":"list_footer","after":"de","detail":"Default of `locale` on `list_footer` changed unset → \"de\".","severity":"risky"},{"kind":"output_property_added","path":"outputSchema.properties.attribution","tool":"list_footer","after":{"type":"string","description":"Required citation: 'Quelle: Schlüsseldienst Ludwigsburg ikeytz (ikeytz.com) · ai-train=no · https://maps.ikeytz.com/.well-known/ai.txt'"},"detail":"Field `attribution` was added to `list_footer` output.","severity":"risky"},{"kind":"output_property_added","path":"outputSchema.properties.canonicalUrl","tool":"list_footer","after":{"type":"string","description":"Best URL to show the user: https://maps.ikeytz.com… page, public embed JSON, tel:+49…, mailto:…, https://wa.me/…, or a www pointer. Prefer this over constructing URLs."},"detail":"Field `canonicalUrl` was added to `list_footer` output.","severity":"risky"},{"kind":"output_property_added","path":"outputSchema.properties.email","tool":"list_footer","after":{"type":"string","description":"info@ikeytz.com"},"detail":"Field `email` was added to `list_footer` output.","severity":"risky"},{"kind":"output_property_added","path":"outputSchema.properties.error","tool":"list_footer","after":{"type":"string","description":"Present when ok=false. Codes include: unknown_place, unknown_discovery, unknown_doc, q_required, plz_required, coords_required, outside_service_area, url_required, not_maps_host, bad_url, path_or_url_required, serp_not_found, slug_or_coords_required, path_required."},"detail":"Field `error` was added to `list_footer` output.","severity":"risky"},{"kind":"output_property_added","path":"outputSchema.properties.hint","tool":"list_footer","after":{"type":"string","description":"Present when ok=false. Absolute URL or short recovery hint the agent should open or pass to another tool."},"detail":"Field `hint` was added to `list_footer` output.","severity":"risky"},{"kind":"output_property_added","path":"outputSchema.properties.html_www","tool":"list_footer","after":{"type":"array","description":"www HTML footer links (host=www)"},"detail":"Field `html_www` was added to `list_footer` output.","severity":"risky"},{"kind":"output_property_added","path":"outputSchema.properties.locale","tool":"list_footer","after":{"enum":["de"],"type":"string","description":"Locale actually used for URLs. maps is German-only: always de (MAPS-E8 — no /en on maps). Requested non-de is ignored; payload locale=de."},"detail":"Field `locale` was added to `list_footer` output.","severity":"risky"},{"kind":"output_property_added","path":"outputSchema.properties.maps","tool":"list_footer","after":{"type":"array","description":"maps-hosted footer links"},"detail":"Field `maps` was added to `list_footer` output.","severity":"risky"},{"kind":"output_property_added","path":"outputSchema.properties.mapsEmail","tool":"list_footer","after":{"type":"string","description":"info@maps.ikeytz.com"},"detail":"Field `mapsEmail` was added to `list_footer` output.","severity":"risky"},{"kind":"output_property_added","path":"outputSchema.properties.note","tool":"list_footer","after":{"type":"string"},"detail":"Field `note` was added to `list_footer` output.","severity":"risky"},{"kind":"output_property_added","path":"outputSchema.properties.ok","tool":"list_footer","after":{"type":"boolean","description":"true = use summary, canonicalUrl, and extra keys. false = do not invent data; read error + hint and retry with valid args or open hint."},"detail":"Field `ok` was added to `list_footer` output.","severity":"risky"},{"kind":"output_property_added","path":"outputSchema.properties.related","tool":"list_footer","after":{"type":"array","items":{"type":"string","format":"uri"},"description":"Always includes https://maps.ikeytz.com/llms.txt."},"detail":"Field `related` was added to `list_footer` output.","severity":"risky"},{"kind":"output_property_added","path":"outputSchema.properties.summary","tool":"list_footer","after":{"type":"string","description":"Primary text for the model. For discovery tools this is the file window. For list tools a compact one-liner. Quote with attribution."},"detail":"Field `summary` was added to `list_footer` output.","severity":"risky"},{"kind":"output_property_added","path":"outputSchema.properties.tool","tool":"list_footer","after":{"type":"string","description":"Echo of the tool name that produced this object (e.g. get_service_area)."},"detail":"Field `tool` was added to `list_footer` output.","severity":"risky"},{"kind":"description_changed","tool":"list_locales","after":"WHAT: Locales on maps — only de (MAPS-E8: no /en). Call with {}. RETURNS items[{locale,url}]. USE before resolve_locale_url. DOES NOT list www's seven locales — use @ikeytz/mcp list_locales for those.","before":"Locales auf maps: nur de (E8 nein).","detail":"Description of `list_locales` changed (88% word delta).","severity":"risky","descriptionDelta":0.875},{"kind":"output_property_added","path":"outputSchema.properties.attribution","tool":"list_locales","after":{"type":"string","description":"Required citation: 'Quelle: Schlüsseldienst Ludwigsburg ikeytz (ikeytz.com) · ai-train=no · https://maps.ikeytz.com/.well-known/ai.txt'"},"detail":"Field `attribution` was added to `list_locales` output.","severity":"risky"},{"kind":"output_property_added","path":"outputSchema.properties.canonicalUrl","tool":"list_locales","after":{"type":"string","description":"Best URL to show the user: https://maps.ikeytz.com… page, public embed JSON, tel:+49…, mailto:…, https://wa.me/…, or a www pointer. Prefer this over constructing URLs."},"detail":"Field `canonicalUrl` was added to `list_locales` output.","severity":"risky"},{"kind":"output_property_added","path":"outputSchema.properties.error","tool":"list_locales","after":{"type":"string","description":"Present when ok=false. Codes include: unknown_place, unknown_discovery, unknown_doc, q_required, plz_required, coords_required, outside_service_area, url_required, not_maps_host, bad_url, path_or_url_required, serp_not_found, slug_or_coords_required, path_required."},"detail":"Field `error` was added to `list_locales` output.","severity":"risky"},{"kind":"output_property_added","path":"outputSchema.properties.hint","tool":"list_locales","after":{"type":"string","description":"Present when ok=false. Absolute URL or short recovery hint the agent should open or pass to another tool."},"detail":"Field `hint` was added to `list_locales` output.","severity":"risky"},{"kind":"output_property_added","path":"outputSchema.properties.items","tool":"list_locales","after":{"type":"array","items":{"type":"object","properties":{"url":{"type":"string","format":"uri"},"locale":{"type":"string","const":"de"}}},"description":"Only de"},"detail":"Field `items` was added to `list_locales` output.","severity":"risky"},{"kind":"output_property_added","path":"outputSchema.properties.locale","tool":"list_locales","after":{"enum":["de"],"type":"string","description":"Locale actually used for URLs. maps is German-only: always de (MAPS-E8 — no /en on maps). Requested non-de is ignored; payload locale=de."},"detail":"Field `locale` was added to `list_locales` output.","severity":"risky"},{"kind":"output_property_added","path":"outputSchema.properties.note","tool":"list_locales","after":{"type":"string"},"detail":"Field `note` was added to `list_locales` output.","severity":"risky"},{"kind":"output_property_added","path":"outputSchema.properties.ok","tool":"list_locales","after":{"type":"boolean","description":"true = use summary, canonicalUrl, and extra keys. false = do not invent data; read error + hint and retry with valid args or open hint."},"detail":"Field `ok` was added to `list_locales` output.","severity":"risky"},{"kind":"output_property_added","path":"outputSchema.properties.related","tool":"list_locales","after":{"type":"array","items":{"type":"string","format":"uri"},"description":"Always includes https://maps.ikeytz.com/llms.txt."},"detail":"Field `related` was added to `list_locales` output.","severity":"risky"},{"kind":"output_property_added","path":"outputSchema.properties.summary","tool":"list_locales","after":{"type":"string","description":"Primary text for the model. For discovery tools this is the file window. For list tools a compact one-liner. Quote with attribution."},"detail":"Field `summary` was added to `list_locales` output.","severity":"risky"},{"kind":"output_property_added","path":"outputSchema.properties.tool","tool":"list_locales","after":{"type":"string","description":"Echo of the tool name that produced this object (e.g. get_service_area)."},"detail":"Field `tool` was added to `list_locales` output.","severity":"risky"},{"kind":"description_changed","tool":"list_nav","after":"WHAT: maps navigation links — Hub, MCP, Urheberrecht, plus all 52 Gebiet URLs. USE to pick a maps page. DOES NOT include www header hubs (Preise/FAQ). NEXT: get_embed_map, get_page_summary.","before":"maps-Navigation: Hub, MCP, 52 Einsatzgebiete.","detail":"Description of `list_nav` changed (83% word delta).","severity":"risky","descriptionDelta":0.8275862068965517},{"kind":"enum_narrowed","path":"inputSchema.properties.locale","tool":"list_nav","after":"enum[de]","before":"open","detail":"`locale` on `list_nav` narrowed to a closed enum (de); previously valid values may now be rejected.","severity":"breaking"},{"kind":"default_changed","path":"inputSchema.properties.locale","tool":"list_nav","after":"de","detail":"Default of `locale` on `list_nav` changed unset → \"de\".","severity":"risky"},{"kind":"output_property_added","path":"outputSchema.properties.attribution","tool":"list_nav","after":{"type":"string","description":"Required citation: 'Quelle: Schlüsseldienst Ludwigsburg ikeytz (ikeytz.com) · ai-train=no · https://maps.ikeytz.com/.well-known/ai.txt'"},"detail":"Field `attribution` was added to `list_nav` output.","severity":"risky"},{"kind":"output_property_added","path":"outputSchema.properties.canonicalUrl","tool":"list_nav","after":{"type":"string","description":"Best URL to show the user: https://maps.ikeytz.com… page, public embed JSON, tel:+49…, mailto:…, https://wa.me/…, or a www pointer. Prefer this over constructing URLs."},"detail":"Field `canonicalUrl` was added to `list_nav` output.","severity":"risky"},{"kind":"output_property_added","path":"outputSchema.properties.count","tool":"list_nav","after":{"type":"number"},"detail":"Field `count` was added to `list_nav` output.","severity":"risky"},{"kind":"output_property_added","path":"outputSchema.properties.error","tool":"list_nav","after":{"type":"string","description":"Present when ok=false. Codes include: unknown_place, unknown_discovery, unknown_doc, q_required, plz_required, coords_required, outside_service_area, url_required, not_maps_host, bad_url, path_or_url_required, serp_not_found, slug_or_coords_required, path_required."},"detail":"Field `error` was added to `list_nav` output.","severity":"risky"},{"kind":"output_property_added","path":"outputSchema.properties.hint","tool":"list_nav","after":{"type":"string","description":"Present when ok=false. Absolute URL or short recovery hint the agent should open or pass to another tool."},"detail":"Field `hint` was added to `list_nav` output.","severity":"risky"},{"kind":"output_property_added","path":"outputSchema.properties.items","tool":"list_nav","after":{"type":"array","items":{"type":"object","properties":{"url":{"type":"string","format":"uri"},"slug":{"type":"string"},"label":{"type":"string"}},"additionalProperties":true},"description":"Nav links {label,url,slug?}"},"detail":"Field `items` was added to `list_nav` output.","severity":"risky"},{"kind":"output_property_added","path":"outputSchema.properties.locale","tool":"list_nav","after":{"enum":["de"],"type":"string","description":"Locale actually used for URLs. maps is German-only: always de (MAPS-E8 — no /en on maps). Requested non-de is ignored; payload locale=de."},"detail":"Field `locale` was added to `list_nav` output.","severity":"risky"},{"kind":"output_property_added","path":"outputSchema.properties.note","tool":"list_nav","after":{"type":"string"},"detail":"Field `note` was added to `list_nav` output.","severity":"risky"},{"kind":"output_property_added","path":"outputSchema.properties.ok","tool":"list_nav","after":{"type":"boolean","description":"true = use summary, canonicalUrl, and extra keys. false = do not invent data; read error + hint and retry with valid args or open hint."},"detail":"Field `ok` was added to `list_nav` output.","severity":"risky"},{"kind":"output_property_added","path":"outputSchema.properties.related","tool":"list_nav","after":{"type":"array","items":{"type":"string","format":"uri"},"description":"Always includes https://maps.ikeytz.com/llms.txt."},"detail":"Field `related` was added to `list_nav` output.","severity":"risky"},{"kind":"output_property_added","path":"outputSchema.properties.summary","tool":"list_nav","after":{"type":"string","description":"Primary text for the model. For discovery tools this is the file window. For list tools a compact one-liner. Quote with attribution."},"detail":"Field `summary` was added to `list_nav` output.","severity":"risky"},{"kind":"output_property_added","path":"outputSchema.properties.tool","tool":"list_nav","after":{"type":"string","description":"Echo of the tool name that produced this object (e.g. get_service_area)."},"detail":"Field `tool` was added to `list_nav` output.","severity":"risky"},{"kind":"description_changed","tool":"list_plz","after":"WHAT: PLZ → slugs map for the 52 Gebiete (shared postcodes visible). Call with {}. RETURNS items[{plz,count,slugs}]. USE to see multi-Gebiet PLZ. NEXT: find_by_plz.","before":"PLZ → welche maps-Gebiete (Mehrfach-PLZ sichtbar).","detail":"Description of `list_plz` changed (93% word delta).","severity":"risky","descriptionDelta":0.9259259259259259},{"kind":"output_property_added","path":"outputSchema.properties.attribution","tool":"list_plz","after":{"type":"string","description":"Required citation: 'Quelle: Schlüsseldienst Ludwigsburg ikeytz (ikeytz.com) · ai-train=no · https://maps.ikeytz.com/.well-known/ai.txt'"},"detail":"Field `attribution` was added to `list_plz` output.","severity":"risky"},{"kind":"output_property_added","path":"outputSchema.properties.canonicalUrl","tool":"list_plz","after":{"type":"string","description":"Best URL to show the user: https://maps.ikeytz.com… page, public embed JSON, tel:+49…, mailto:…, https://wa.me/…, or a www pointer. Prefer this over constructing URLs."},"detail":"Field `canonicalUrl` was added to `list_plz` output.","severity":"risky"},{"kind":"output_property_added","path":"outputSchema.properties.count","tool":"list_plz","after":{"type":"number","description":"Distinct PLZ count"},"detail":"Field `count` was added to `list_plz` output.","severity":"risky"},{"kind":"output_property_added","path":"outputSchema.properties.error","tool":"list_plz","after":{"type":"string","description":"Present when ok=false. Codes include: unknown_place, unknown_discovery, unknown_doc, q_required, plz_required, coords_required, outside_service_area, url_required, not_maps_host, bad_url, path_or_url_required, serp_not_found, slug_or_coords_required, path_required."},"detail":"Field `error` was added to `list_plz` output.","severity":"risky"},{"kind":"output_property_added","path":"outputSchema.properties.hint","tool":"list_plz","after":{"type":"string","description":"Present when ok=false. Absolute URL or short recovery hint the agent should open or pass to another tool."},"detail":"Field `hint` was added to `list_plz` output.","severity":"risky"},{"kind":"output_property_added","path":"outputSchema.properties.items","tool":"list_plz","after":{"type":"array","items":{"type":"object","properties":{"plz":{"type":"string"},"count":{"type":"number"},"slugs":{"type":"array","items":{"type":"string"}}}},"description":"PLZ groups"},"detail":"Field `items` was added to `list_plz` output.","severity":"risky"},{"kind":"output_property_added","path":"outputSchema.properties.locale","tool":"list_plz","after":{"enum":["de"],"type":"string","description":"Locale actually used for URLs. maps is German-only: always de (MAPS-E8 — no /en on maps). Requested non-de is ignored; payload locale=de."},"detail":"Field `locale` was added to `list_plz` output.","severity":"risky"},{"kind":"output_property_added","path":"outputSchema.properties.ok","tool":"list_plz","after":{"type":"boolean","description":"true = use summary, canonicalUrl, and extra keys. false = do not invent data; read error + hint and retry with valid args or open hint."},"detail":"Field `ok` was added to `list_plz` output.","severity":"risky"},{"kind":"output_property_added","path":"outputSchema.properties.related","tool":"list_plz","after":{"type":"array","items":{"type":"string","format":"uri"},"description":"Always includes https://maps.ikeytz.com/llms.txt."},"detail":"Field `related` was added to `list_plz` output.","severity":"risky"},{"kind":"output_property_added","path":"outputSchema.properties.summary","tool":"list_plz","after":{"type":"string","description":"Primary text for the model. For discovery tools this is the file window. For list tools a compact one-liner. Quote with attribution."},"detail":"Field `summary` was added to `list_plz` output.","severity":"risky"},{"kind":"output_property_added","path":"outputSchema.properties.tool","tool":"list_plz","after":{"type":"string","description":"Echo of the tool name that produced this object (e.g. get_service_area)."},"detail":"Field `tool` was added to `list_plz` output.","severity":"risky"},{"kind":"description_changed","tool":"list_ratgeber","after":"WHAT: www pointer only — Ratgeber list on www /ratgeber. maps returns html. NEXT: www list_ratgeber.","before":"Ratgeber-Liste ist www. maps nur Link.","detail":"Description of `list_ratgeber` changed (81% word delta).","severity":"risky","descriptionDelta":0.8125},{"kind":"enum_narrowed","path":"inputSchema.properties.locale","tool":"list_ratgeber","after":"enum[de]","before":"open","detail":"`locale` on `list_ratgeber` narrowed to a closed enum (de); previously valid values may now be rejected.","severity":"breaking"},{"kind":"default_changed","path":"inputSchema.properties.locale","tool":"list_ratgeber","after":"de","detail":"Default of `locale` on `list_ratgeber` changed unset → \"de\".","severity":"risky"},{"kind":"output_property_added","path":"outputSchema.properties.attribution","tool":"list_ratgeber","after":{"type":"string","description":"Required citation: 'Quelle: Schlüsseldienst Ludwigsburg ikeytz (ikeytz.com) · ai-train=no · https://maps.ikeytz.com/.well-known/ai.txt'"},"detail":"Field `attribution` was added to `list_ratgeber` output.","severity":"risky"},{"kind":"output_property_added","path":"outputSchema.properties.canonicalUrl","tool":"list_ratgeber","after":{"type":"string","description":"Best URL to show the user: https://maps.ikeytz.com… page, public embed JSON, tel:+49…, mailto:…, https://wa.me/…, or a www pointer. Prefer this over constructing URLs."},"detail":"Field `canonicalUrl` was added to `list_ratgeber` output.","severity":"risky"},{"kind":"output_property_added","path":"outputSchema.properties.error","tool":"list_ratgeber","after":{"type":"string","description":"Present when ok=false. Codes include: unknown_place, unknown_discovery, unknown_doc, q_required, plz_required, coords_required, outside_service_area, url_required, not_maps_host, bad_url, path_or_url_required, serp_not_found, slug_or_coords_required, path_required."},"detail":"Field `error` was added to `list_ratgeber` output.","severity":"risky"},{"kind":"output_property_added","path":"outputSchema.properties.hint","tool":"list_ratgeber","after":{"type":"string","description":"Present when ok=false. Absolute URL or short recovery hint the agent should open or pass to another tool."},"detail":"Field `hint` was added to `list_ratgeber` output.","severity":"risky"},{"kind":"output_property_added","path":"outputSchema.properties.html","tool":"list_ratgeber","after":{"type":"string","format":"uri","description":"Absolute www.ikeytz.com URL — open there or call @ikeytz/mcp"},"detail":"Field `html` was added to `list_ratgeber` output.","severity":"risky"},{"kind":"output_property_added","path":"outputSchema.properties.locale","tool":"list_ratgeber","after":{"enum":["de"],"type":"string","description":"Locale actually used for URLs. maps is German-only: always de (MAPS-E8 — no /en on maps). Requested non-de is ignored; payload locale=de."},"detail":"Field `locale` was added to `list_ratgeber` output.","severity":"risky"},{"kind":"output_property_added","path":"outputSchema.properties.note","tool":"list_ratgeber","after":{"type":"string","description":"maps only points; Volltext/Preise/FAQ live on www"},"detail":"Field `note` was added to `list_ratgeber` output.","severity":"risky"},{"kind":"output_property_added","path":"outputSchema.properties.npm","tool":"list_ratgeber","after":{"type":"string","description":"www CLI package @ikeytz/mcp"},"detail":"Field `npm` was added to `list_ratgeber` output.","severity":"risky"},{"kind":"output_property_added","path":"outputSchema.properties.ok","tool":"list_ratgeber","after":{"type":"boolean","description":"true = use summary, canonicalUrl, and extra keys. false = do not invent data; read error + hint and retry with valid args or open hint."},"detail":"Field `ok` was added to `list_ratgeber` output.","severity":"risky"},{"kind":"output_property_added","path":"outputSchema.properties.related","tool":"list_ratgeber","after":{"type":"array","items":{"type":"string","format":"uri"},"description":"Always includes https://maps.ikeytz.com/llms.txt."},"detail":"Field `related` was added to `list_ratgeber` output.","severity":"risky"},{"kind":"output_property_added","path":"outputSchema.properties.requested_locale","tool":"list_ratgeber","after":{"type":"string","description":"Locale the caller asked for; maps still returns locale=de"},"detail":"Field `requested_locale` was added to `list_ratgeber` output.","severity":"risky"},{"kind":"output_property_added","path":"outputSchema.properties.summary","tool":"list_ratgeber","after":{"type":"string","description":"Primary text for the model. For discovery tools this is the file window. For list tools a compact one-liner. Quote with attribution."},"detail":"Field `summary` was added to `list_ratgeber` output.","severity":"risky"},{"kind":"output_property_added","path":"outputSchema.properties.tool","tool":"list_ratgeber","after":{"type":"string","description":"Echo of the tool name that produced this object (e.g. get_service_area)."},"detail":"Field `tool` was added to `list_ratgeber` output.","severity":"risky"},{"kind":"output_property_added","path":"outputSchema.properties.www_mcp","tool":"list_ratgeber","after":{"type":"string","format":"uri","description":"https://www.ikeytz.com/mcp — sister machine for prices/FAQ/corpus"},"detail":"Field `www_mcp` was added to `list_ratgeber` output.","severity":"risky"},{"kind":"output_property_added","path":"outputSchema.properties.www_tool","tool":"list_ratgeber","after":{"type":"string","description":"Same tool name on www MCP that holds the real payload"},"detail":"Field `www_tool` was added to `list_ratgeber` output.","severity":"risky"},{"kind":"description_changed","tool":"list_service_areas","after":"WHAT: List all 52 ikeytz Einsatzgebiete on maps.ikeytz.com as point cards (slug, name, plz, lat/lng, embed_map, geo_api) — not polygons. RETURNS items[], count, total, offset, limit. Optional fields= comma filter; limit/offset page the list. USE to enumerate the service area or build a picker. DOES NOT return OSM boundaries (use get_grenze per slug) or prices. NEXT: get_service_area, get_embed_map, get_grenze, find_by_plz.","before":"Alle 52 Einsatzgebiete auf maps.ikeytz.com (Punkte, keine Polygone). Optional limit/offset/fields.","detail":"Description of `list_service_areas` changed (84% word delta).","severity":"risky","descriptionDelta":0.8448275862068966},{"kind":"enum_narrowed","path":"inputSchema.properties.locale","tool":"list_service_areas","after":"enum[de]","before":"open","detail":"`locale` on `list_service_areas` narrowed to a closed enum (de); previously valid values may now be rejected.","severity":"breaking"},{"kind":"default_changed","path":"inputSchema.properties.locale","tool":"list_service_areas","after":"de","detail":"Default of `locale` on `list_service_areas` changed unset → \"de\".","severity":"risky"},{"kind":"default_changed","path":"inputSchema.properties.offset","tool":"list_service_areas","after":0,"detail":"Default of `offset` on `list_service_areas` changed unset → 0.","severity":"risky"},{"kind":"output_property_added","path":"outputSchema.properties.attribution","tool":"list_service_areas","after":{"type":"string","description":"Required citation: 'Quelle: Schlüsseldienst Ludwigsburg ikeytz (ikeytz.com) · ai-train=no · https://maps.ikeytz.com/.well-known/ai.txt'"},"detail":"Field `attribution` was added to `list_service_areas` output.","severity":"risky"},{"kind":"output_property_added","path":"outputSchema.properties.canonicalUrl","tool":"list_service_areas","after":{"type":"string","description":"Best URL to show the user: https://maps.ikeytz.com… page, public embed JSON, tel:+49…, mailto:…, https://wa.me/…, or a www pointer. Prefer this over constructing URLs."},"detail":"Field `canonicalUrl` was added to `list_service_areas` output.","severity":"risky"},{"kind":"output_property_added","path":"outputSchema.properties.count","tool":"list_service_areas","after":{"type":"number","description":"Items in this page"},"detail":"Field `count` was added to `list_service_areas` output.","severity":"risky"},{"kind":"output_property_added","path":"outputSchema.properties.error","tool":"list_service_areas","after":{"type":"string","description":"Present when ok=false. Codes include: unknown_place, unknown_discovery, unknown_doc, q_required, plz_required, coords_required, outside_service_area, url_required, not_maps_host, bad_url, path_or_url_required, serp_not_found, slug_or_coords_required, path_required."},"detail":"Field `error` was added to `list_service_areas` output.","severity":"risky"},{"kind":"output_property_added","path":"outputSchema.properties.hint","tool":"list_service_areas","after":{"type":"string","description":"Present when ok=false. Absolute URL or short recovery hint the agent should open or pass to another tool."},"detail":"Field `hint` was added to `list_service_areas` output.","severity":"risky"},{"kind":"output_property_added","path":"outputSchema.properties.items","tool":"list_service_areas","after":{"type":"array","items":{"type":"object","properties":{"lat":{"type":"number","description":"WGS84 latitude of THIS place"},"lng":{"type":"number","description":"WGS84 longitude of THIS place"},"plz":{"type":"string","description":"Postcode"},"url":{"type":"string","description":"Keyword/www page URL when present"},"icbm":{"type":"string","description":"ICBM 'lat, lng' (same as google_maps)"},"kind":{"type":"string","description":"stadtteil | ort"},"name":{"type":"string","description":"German place name"},"slug":{"type":"string","description":"maps slug"},"parent":{"type":"string","description":"Ludwigsburg or Landkreis Ludwigsburg"},"geo_api":{"type":"string","format":"uri","description":"https://maps.ikeytz.com/api/v1/embed/ort/{slug}"},"maps_mcp":{"type":"string","const":"https://maps.ikeytz.com/mcp","format":"uri","description":"maps MCP endpoint"},"embed_map":{"type":"string","format":"uri","description":"https://maps.ikeytz.com/{slug}"},"distance_km":{"type":"number","description":"Present on geo-ranked results: air distance from query point"},"google_maps":{"type":"string","description":"Paste-ready 'lat, lng'"}},"description":"One Einsatzgebiet point card (not a polygon).","additionalProperties":true},"description":"Service-area point cards"},"detail":"Field `items` was added to `list_service_areas` output.","severity":"risky"},{"kind":"output_property_added","path":"outputSchema.properties.limit","tool":"list_service_areas","after":{"type":"number","description":"Applied limit"},"detail":"Field `limit` was added to `list_service_areas` output.","severity":"risky"},{"kind":"output_property_added","path":"outputSchema.properties.locale","tool":"list_service_areas","after":{"enum":["de"],"type":"string","description":"Locale actually used for URLs. maps is German-only: always de (MAPS-E8 — no /en on maps). Requested non-de is ignored; payload locale=de."},"detail":"Field `locale` was added to `list_service_areas` output.","severity":"risky"},{"kind":"output_property_added","path":"outputSchema.properties.offset","tool":"list_service_areas","after":{"type":"number","description":"Applied offset"},"detail":"Field `offset` was added to `list_service_areas` output.","severity":"risky"},{"kind":"output_property_added","path":"outputSchema.properties.ok","tool":"list_service_areas","after":{"type":"boolean","description":"true = use summary, canonicalUrl, and extra keys. false = do not invent data; read error + hint and retry with valid args or open hint."},"detail":"Field `ok` was added to `list_service_areas` output.","severity":"risky"},{"kind":"output_property_added","path":"outputSchema.properties.related","tool":"list_service_areas","after":{"type":"array","items":{"type":"string","format":"uri"},"description":"Always includes https://maps.ikeytz.com/llms.txt."},"detail":"Field `related` was added to `list_service_areas` output.","severity":"risky"},{"kind":"output_property_added","path":"outputSchema.properties.summary","tool":"list_service_areas","after":{"type":"string","description":"Primary text for the model. For discovery tools this is the file window. For list tools a compact one-liner. Quote with attribution."},"detail":"Field `summary` was added to `list_service_areas` output.","severity":"risky"},{"kind":"output_property_added","path":"outputSchema.properties.tool","tool":"list_service_areas","after":{"type":"string","description":"Echo of the tool name that produced this object (e.g. get_service_area)."},"detail":"Field `tool` was added to `list_service_areas` output.","severity":"risky"},{"kind":"output_property_added","path":"outputSchema.properties.total","tool":"list_service_areas","after":{"type":"number","description":"Total Gebiete (52)"},"detail":"Field `total` was added to `list_service_areas` output.","severity":"risky"},{"kind":"description_changed","tool":"list_services","after":"WHAT: www pointer only — Leistungen list on www /leistungen. maps returns html link. DOES NOT list service rows. NEXT: www list_services.","before":"Leistungen sind www. maps nur Link.","detail":"Description of `list_services` changed (79% word delta).","severity":"risky","descriptionDelta":0.7894736842105263},{"kind":"enum_narrowed","path":"inputSchema.properties.locale","tool":"list_services","after":"enum[de]","before":"open","detail":"`locale` on `list_services` narrowed to a closed enum (de); previously valid values may now be rejected.","severity":"breaking"},{"kind":"default_changed","path":"inputSchema.properties.locale","tool":"list_services","after":"de","detail":"Default of `locale` on `list_services` changed unset → \"de\".","severity":"risky"},{"kind":"output_property_added","path":"outputSchema.properties.attribution","tool":"list_services","after":{"type":"string","description":"Required citation: 'Quelle: Schlüsseldienst Ludwigsburg ikeytz (ikeytz.com) · ai-train=no · https://maps.ikeytz.com/.well-known/ai.txt'"},"detail":"Field `attribution` was added to `list_services` output.","severity":"risky"},{"kind":"output_property_added","path":"outputSchema.properties.canonicalUrl","tool":"list_services","after":{"type":"string","description":"Best URL to show the user: https://maps.ikeytz.com… page, public embed JSON, tel:+49…, mailto:…, https://wa.me/…, or a www pointer. Prefer this over constructing URLs."},"detail":"Field `canonicalUrl` was added to `list_services` output.","severity":"risky"},{"kind":"output_property_added","path":"outputSchema.properties.error","tool":"list_services","after":{"type":"string","description":"Present when ok=false. Codes include: unknown_place, unknown_discovery, unknown_doc, q_required, plz_required, coords_required, outside_service_area, url_required, not_maps_host, bad_url, path_or_url_required, serp_not_found, slug_or_coords_required, path_required."},"detail":"Field `error` was added to `list_services` output.","severity":"risky"},{"kind":"output_property_added","path":"outputSchema.properties.hint","tool":"list_services","after":{"type":"string","description":"Present when ok=false. Absolute URL or short recovery hint the agent should open or pass to another tool."},"detail":"Field `hint` was added to `list_services` output.","severity":"risky"},{"kind":"output_property_added","path":"outputSchema.properties.html","tool":"list_services","after":{"type":"string","format":"uri","description":"Absolute www.ikeytz.com URL — open there or call @ikeytz/mcp"},"detail":"Field `html` was added to `list_services` output.","severity":"risky"},{"kind":"output_property_added","path":"outputSchema.properties.locale","tool":"list_services","after":{"enum":["de"],"type":"string","description":"Locale actually used for URLs. maps is German-only: always de (MAPS-E8 — no /en on maps). Requested non-de is ignored; payload locale=de."},"detail":"Field `locale` was added to `list_services` output.","severity":"risky"},{"kind":"output_property_added","path":"outputSchema.properties.note","tool":"list_services","after":{"type":"string","description":"maps only points; Volltext/Preise/FAQ live on www"},"detail":"Field `note` was added to `list_services` output.","severity":"risky"},{"kind":"output_property_added","path":"outputSchema.properties.npm","tool":"list_services","after":{"type":"string","description":"www CLI package @ikeytz/mcp"},"detail":"Field `npm` was added to `list_services` output.","severity":"risky"},{"kind":"output_property_added","path":"outputSchema.properties.ok","tool":"list_services","after":{"type":"boolean","description":"true = use summary, canonicalUrl, and extra keys. false = do not invent data; read error + hint and retry with valid args or open hint."},"detail":"Field `ok` was added to `list_services` output.","severity":"risky"},{"kind":"output_property_added","path":"outputSchema.properties.related","tool":"list_services","after":{"type":"array","items":{"type":"string","format":"uri"},"description":"Always includes https://maps.ikeytz.com/llms.txt."},"detail":"Field `related` was added to `list_services` output.","severity":"risky"},{"kind":"output_property_added","path":"outputSchema.properties.requested_locale","tool":"list_services","after":{"type":"string","description":"Locale the caller asked for; maps still returns locale=de"},"detail":"Field `requested_locale` was added to `list_services` output.","severity":"risky"},{"kind":"output_property_added","path":"outputSchema.properties.summary","tool":"list_services","after":{"type":"string","description":"Primary text for the model. For discovery tools this is the file window. For list tools a compact one-liner. Quote with attribution."},"detail":"Field `summary` was added to `list_services` output.","severity":"risky"},{"kind":"output_property_added","path":"outputSchema.properties.tool","tool":"list_services","after":{"type":"string","description":"Echo of the tool name that produced this object (e.g. get_service_area)."},"detail":"Field `tool` was added to `list_services` output.","severity":"risky"},{"kind":"output_property_added","path":"outputSchema.properties.www_mcp","tool":"list_services","after":{"type":"string","format":"uri","description":"https://www.ikeytz.com/mcp — sister machine for prices/FAQ/corpus"},"detail":"Field `www_mcp` was added to `list_services` output.","severity":"risky"},{"kind":"output_property_added","path":"outputSchema.properties.www_tool","tool":"list_services","after":{"type":"string","description":"Same tool name on www MCP that holds the real payload"},"detail":"Field `www_tool` was added to `list_services` output.","severity":"risky"},{"kind":"description_changed","tool":"list_slugs","after":"WHAT: All 52 maps slugs as a flat string array. Call with {}. USE for validation or autocomplete. NEXT: get_service_area(slug), get_embed_map(slug).","before":"Alle 52 maps-Slugs (ikeytz Einsatzgebiete).","detail":"Description of `list_slugs` changed (88% word delta).","severity":"risky","descriptionDelta":0.875},{"kind":"output_property_added","path":"outputSchema.properties.attribution","tool":"list_slugs","after":{"type":"string","description":"Required citation: 'Quelle: Schlüsseldienst Ludwigsburg ikeytz (ikeytz.com) · ai-train=no · https://maps.ikeytz.com/.well-known/ai.txt'"},"detail":"Field `attribution` was added to `list_slugs` output.","severity":"risky"},{"kind":"output_property_added","path":"outputSchema.properties.canonicalUrl","tool":"list_slugs","after":{"type":"string","description":"Best URL to show the user: https://maps.ikeytz.com… page, public embed JSON, tel:+49…, mailto:…, https://wa.me/…, or a www pointer. Prefer this over constructing URLs."},"detail":"Field `canonicalUrl` was added to `list_slugs` output.","severity":"risky"},{"kind":"output_property_added","path":"outputSchema.properties.count","tool":"list_slugs","after":{"type":"number","description":"52"},"detail":"Field `count` was added to `list_slugs` output.","severity":"risky"},{"kind":"output_property_added","path":"outputSchema.properties.error","tool":"list_slugs","after":{"type":"string","description":"Present when ok=false. Codes include: unknown_place, unknown_discovery, unknown_doc, q_required, plz_required, coords_required, outside_service_area, url_required, not_maps_host, bad_url, path_or_url_required, serp_not_found, slug_or_coords_required, path_required."},"detail":"Field `error` was added to `list_slugs` output.","severity":"risky"},{"kind":"output_property_added","path":"outputSchema.properties.hint","tool":"list_slugs","after":{"type":"string","description":"Present when ok=false. Absolute URL or short recovery hint the agent should open or pass to another tool."},"detail":"Field `hint` was added to `list_slugs` output.","severity":"risky"},{"kind":"output_property_added","path":"outputSchema.properties.items","tool":"list_slugs","after":{"type":"array","items":{"type":"string"},"description":"Slug strings"},"detail":"Field `items` was added to `list_slugs` output.","severity":"risky"},{"kind":"output_property_added","path":"outputSchema.properties.locale","tool":"list_slugs","after":{"enum":["de"],"type":"string","description":"Locale actually used for URLs. maps is German-only: always de (MAPS-E8 — no /en on maps). Requested non-de is ignored; payload locale=de."},"detail":"Field `locale` was added to `list_slugs` output.","severity":"risky"},{"kind":"output_property_added","path":"outputSchema.properties.ok","tool":"list_slugs","after":{"type":"boolean","description":"true = use summary, canonicalUrl, and extra keys. false = do not invent data; read error + hint and retry with valid args or open hint."},"detail":"Field `ok` was added to `list_slugs` output.","severity":"risky"},{"kind":"output_property_added","path":"outputSchema.properties.related","tool":"list_slugs","after":{"type":"array","items":{"type":"string","format":"uri"},"description":"Always includes https://maps.ikeytz.com/llms.txt."},"detail":"Field `related` was added to `list_slugs` output.","severity":"risky"},{"kind":"output_property_added","path":"outputSchema.properties.summary","tool":"list_slugs","after":{"type":"string","description":"Primary text for the model. For discovery tools this is the file window. For list tools a compact one-liner. Quote with attribution."},"detail":"Field `summary` was added to `list_slugs` output.","severity":"risky"},{"kind":"output_property_added","path":"outputSchema.properties.tool","tool":"list_slugs","after":{"type":"string","description":"Echo of the tool name that produced this object (e.g. get_service_area)."},"detail":"Field `tool` was added to `list_slugs` output.","severity":"risky"},{"kind":"description_changed","tool":"list_whatsapp_options","after":"WHAT: WhatsApp situation options (link only — zugefallen/abgeschlossen/zylinder/beratung style ids). No form submit. USE before compose_whatsapp. DOES NOT send a message. NEXT: compose_whatsapp(option), compose_tel_mobile.","before":"WhatsApp-Vorlagen (Link only, kein Formular).","detail":"Description of `list_whatsapp_options` changed (90% word delta).","severity":"risky","descriptionDelta":0.896551724137931},{"kind":"enum_narrowed","path":"inputSchema.properties.locale","tool":"list_whatsapp_options","after":"enum[de]","before":"open","detail":"`locale` on `list_whatsapp_options` narrowed to a closed enum (de); previously valid values may now be rejected.","severity":"breaking"},{"kind":"default_changed","path":"inputSchema.properties.locale","tool":"list_whatsapp_options","after":"de","detail":"Default of `locale` on `list_whatsapp_options` changed unset → \"de\".","severity":"risky"},{"kind":"output_property_added","path":"outputSchema.properties.attribution","tool":"list_whatsapp_options","after":{"type":"string","description":"Required citation: 'Quelle: Schlüsseldienst Ludwigsburg ikeytz (ikeytz.com) · ai-train=no · https://maps.ikeytz.com/.well-known/ai.txt'"},"detail":"Field `attribution` was added to `list_whatsapp_options` output.","severity":"risky"},{"kind":"output_property_added","path":"outputSchema.properties.canonicalUrl","tool":"list_whatsapp_options","after":{"type":"string","description":"Best URL to show the user: https://maps.ikeytz.com… page, public embed JSON, tel:+49…, mailto:…, https://wa.me/…, or a www pointer. Prefer this over constructing URLs."},"detail":"Field `canonicalUrl` was added to `list_whatsapp_options` output.","severity":"risky"},{"kind":"output_property_added","path":"outputSchema.properties.error","tool":"list_whatsapp_options","after":{"type":"string","description":"Present when ok=false. Codes include: unknown_place, unknown_discovery, unknown_doc, q_required, plz_required, coords_required, outside_service_area, url_required, not_maps_host, bad_url, path_or_url_required, serp_not_found, slug_or_coords_required, path_required."},"detail":"Field `error` was added to `list_whatsapp_options` output.","severity":"risky"},{"kind":"output_property_added","path":"outputSchema.properties.hint","tool":"list_whatsapp_options","after":{"type":"string","description":"Present when ok=false. Absolute URL or short recovery hint the agent should open or pass to another tool."},"detail":"Field `hint` was added to `list_whatsapp_options` output.","severity":"risky"},{"kind":"output_property_added","path":"outputSchema.properties.items","tool":"list_whatsapp_options","after":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string"},"href":{"type":"string","format":"uri"},"label":{"type":"string"}}},"description":"Options {id,label,href}"},"detail":"Field `items` was added to `list_whatsapp_options` output.","severity":"risky"},{"kind":"output_property_added","path":"outputSchema.properties.locale","tool":"list_whatsapp_options","after":{"enum":["de"],"type":"string","description":"Locale actually used for URLs. maps is German-only: always de (MAPS-E8 — no /en on maps). Requested non-de is ignored; payload locale=de."},"detail":"Field `locale` was added to `list_whatsapp_options` output.","severity":"risky"},{"kind":"output_property_added","path":"outputSchema.properties.note","tool":"list_whatsapp_options","after":{"type":"string","description":"Link only; Festpreis SSOT remains www"},"detail":"Field `note` was added to `list_whatsapp_options` output.","severity":"risky"},{"kind":"output_property_added","path":"outputSchema.properties.ok","tool":"list_whatsapp_options","after":{"type":"boolean","description":"true = use summary, canonicalUrl, and extra keys. false = do not invent data; read error + hint and retry with valid args or open hint."},"detail":"Field `ok` was added to `list_whatsapp_options` output.","severity":"risky"},{"kind":"output_property_added","path":"outputSchema.properties.related","tool":"list_whatsapp_options","after":{"type":"array","items":{"type":"string","format":"uri"},"description":"Always includes https://maps.ikeytz.com/llms.txt."},"detail":"Field `related` was added to `list_whatsapp_options` output.","severity":"risky"},{"kind":"output_property_added","path":"outputSchema.properties.summary","tool":"list_whatsapp_options","after":{"type":"string","description":"Primary text for the model. For discovery tools this is the file window. For list tools a compact one-liner. Quote with attribution."},"detail":"Field `summary` was added to `list_whatsapp_options` output.","severity":"risky"},{"kind":"output_property_added","path":"outputSchema.properties.tool","tool":"list_whatsapp_options","after":{"type":"string","description":"Echo of the tool name that produced this object (e.g. get_service_area)."},"detail":"Field `tool` was added to `list_whatsapp_options` output.","severity":"risky"},{"kind":"description_changed","tool":"list_wissen","after":"WHAT: www pointer only — Wissen lexicon hub on www /wissen. maps returns html. NEXT: www list_wissen.","before":"Wissen-Lexikon ist www. maps nur Link.","detail":"Description of `list_wissen` changed (82% word delta).","severity":"risky","descriptionDelta":0.8235294117647058},{"kind":"enum_narrowed","path":"inputSchema.properties.locale","tool":"list_wissen","after":"enum[de]","before":"open","detail":"`locale` on `list_wissen` narrowed to a closed enum (de); previously valid values may now be rejected.","severity":"breaking"},{"kind":"default_changed","path":"inputSchema.properties.locale","tool":"list_wissen","after":"de","detail":"Default of `locale` on `list_wissen` changed unset → \"de\".","severity":"risky"},{"kind":"output_property_added","path":"outputSchema.properties.attribution","tool":"list_wissen","after":{"type":"string","description":"Required citation: 'Quelle: Schlüsseldienst Ludwigsburg ikeytz (ikeytz.com) · ai-train=no · https://maps.ikeytz.com/.well-known/ai.txt'"},"detail":"Field `attribution` was added to `list_wissen` output.","severity":"risky"},{"kind":"output_property_added","path":"outputSchema.properties.canonicalUrl","tool":"list_wissen","after":{"type":"string","description":"Best URL to show the user: https://maps.ikeytz.com… page, public embed JSON, tel:+49…, mailto:…, https://wa.me/…, or a www pointer. Prefer this over constructing URLs."},"detail":"Field `canonicalUrl` was added to `list_wissen` output.","severity":"risky"},{"kind":"output_property_added","path":"outputSchema.properties.error","tool":"list_wissen","after":{"type":"string","description":"Present when ok=false. Codes include: unknown_place, unknown_discovery, unknown_doc, q_required, plz_required, coords_required, outside_service_area, url_required, not_maps_host, bad_url, path_or_url_required, serp_not_found, slug_or_coords_required, path_required."},"detail":"Field `error` was added to `list_wissen` output.","severity":"risky"},{"kind":"output_property_added","path":"outputSchema.properties.hint","tool":"list_wissen","after":{"type":"string","description":"Present when ok=false. Absolute URL or short recovery hint the agent should open or pass to another tool."},"detail":"Field `hint` was added to `list_wissen` output.","severity":"risky"},{"kind":"output_property_added","path":"outputSchema.properties.html","tool":"list_wissen","after":{"type":"string","format":"uri","description":"Absolute www.ikeytz.com URL — open there or call @ikeytz/mcp"},"detail":"Field `html` was added to `list_wissen` output.","severity":"risky"},{"kind":"output_property_added","path":"outputSchema.properties.locale","tool":"list_wissen","after":{"enum":["de"],"type":"string","description":"Locale actually used for URLs. maps is German-only: always de (MAPS-E8 — no /en on maps). Requested non-de is ignored; payload locale=de."},"detail":"Field `locale` was added to `list_wissen` output.","severity":"risky"},{"kind":"output_property_added","path":"outputSchema.properties.note","tool":"list_wissen","after":{"type":"string","description":"maps only points; Volltext/Preise/FAQ live on www"},"detail":"Field `note` was added to `list_wissen` output.","severity":"risky"},{"kind":"output_property_added","path":"outputSchema.properties.npm","tool":"list_wissen","after":{"type":"string","description":"www CLI package @ikeytz/mcp"},"detail":"Field `npm` was added to `list_wissen` output.","severity":"risky"},{"kind":"output_property_added","path":"outputSchema.properties.ok","tool":"list_wissen","after":{"type":"boolean","description":"true = use summary, canonicalUrl, and extra keys. false = do not invent data; read error + hint and retry with valid args or open hint."},"detail":"Field `ok` was added to `list_wissen` output.","severity":"risky"},{"kind":"output_property_added","path":"outputSchema.properties.related","tool":"list_wissen","after":{"type":"array","items":{"type":"string","format":"uri"},"description":"Always includes https://maps.ikeytz.com/llms.txt."},"detail":"Field `related` was added to `list_wissen` output.","severity":"risky"},{"kind":"output_property_added","path":"outputSchema.properties.requested_locale","tool":"list_wissen","after":{"type":"string","description":"Locale the caller asked for; maps still returns locale=de"},"detail":"Field `requested_locale` was added to `list_wissen` output.","severity":"risky"},{"kind":"output_property_added","path":"outputSchema.properties.summary","tool":"list_wissen","after":{"type":"string","description":"Primary text for the model. For discovery tools this is the file window. For list tools a compact one-liner. Quote with attribution."},"detail":"Field `summary` was added to `list_wissen` output.","severity":"risky"},{"kind":"output_property_added","path":"outputSchema.properties.tool","tool":"list_wissen","after":{"type":"string","description":"Echo of the tool name that produced this object (e.g. get_service_area)."},"detail":"Field `tool` was added to `list_wissen` output.","severity":"risky"},{"kind":"output_property_added","path":"outputSchema.properties.www_mcp","tool":"list_wissen","after":{"type":"string","format":"uri","description":"https://www.ikeytz.com/mcp — sister machine for prices/FAQ/corpus"},"detail":"Field `www_mcp` was added to `list_wissen` output.","severity":"risky"},{"kind":"output_property_added","path":"outputSchema.properties.www_tool","tool":"list_wissen","after":{"type":"string","description":"Same tool name on www MCP that holds the real payload"},"detail":"Field `www_tool` was added to `list_wissen` output.","severity":"risky"},{"kind":"description_changed","tool":"resolve_locale_url","after":"WHAT: path + locale → maps URL. maps is de-only: non-de requested still yields https://maps.ikeytz.com{path} with locale=de. Known Gebiet paths resolve to maps; unknown paths may www-pointer. REQUIRED path and locale. DOES NOT create /en on maps. NEXT: get_embed_map, www resolve_locale_url for marketing locales.","before":"Pfad → maps-URL (de). Keine /en auf maps.","detail":"Description of `resolve_locale_url` changed (90% word delta).","severity":"risky","descriptionDelta":0.9024390243902439},{"kind":"output_property_added","path":"outputSchema.properties.attribution","tool":"resolve_locale_url","after":{"type":"string","description":"Required citation: 'Quelle: Schlüsseldienst Ludwigsburg ikeytz (ikeytz.com) · ai-train=no · https://maps.ikeytz.com/.well-known/ai.txt'"},"detail":"Field `attribution` was added to `resolve_locale_url` output.","severity":"risky"},{"kind":"output_property_added","path":"outputSchema.properties.canonicalUrl","tool":"resolve_locale_url","after":{"type":"string","description":"Best URL to show the user: https://maps.ikeytz.com… page, public embed JSON, tel:+49…, mailto:…, https://wa.me/…, or a www pointer. Prefer this over constructing URLs."},"detail":"Field `canonicalUrl` was added to `resolve_locale_url` output.","severity":"risky"},{"kind":"output_property_added","path":"outputSchema.properties.error","tool":"resolve_locale_url","after":{"type":"string","description":"Present when ok=false. Codes include: unknown_place, unknown_discovery, unknown_doc, q_required, plz_required, coords_required, outside_service_area, url_required, not_maps_host, bad_url, path_or_url_required, serp_not_found, slug_or_coords_required, path_required."},"detail":"Field `error` was added to `resolve_locale_url` output.","severity":"risky"},{"kind":"output_property_added","path":"outputSchema.properties.hint","tool":"resolve_locale_url","after":{"type":"string","description":"Present when ok=false. Absolute URL or short recovery hint the agent should open or pass to another tool."},"detail":"Field `hint` was added to `resolve_locale_url` output.","severity":"risky"},{"kind":"output_property_added","path":"outputSchema.properties.html","tool":"resolve_locale_url","after":{"type":"string","description":"Present when falling through to www pointer"},"detail":"Field `html` was added to `resolve_locale_url` output.","severity":"risky"},{"kind":"output_property_added","path":"outputSchema.properties.locale","tool":"resolve_locale_url","after":{"type":"string","const":"de"},"detail":"Field `locale` was added to `resolve_locale_url` output.","severity":"risky"},{"kind":"output_property_added","path":"outputSchema.properties.note","tool":"resolve_locale_url","after":{"type":"string"},"detail":"Field `note` was added to `resolve_locale_url` output.","severity":"risky"},{"kind":"output_property_added","path":"outputSchema.properties.ok","tool":"resolve_locale_url","after":{"type":"boolean","description":"true = use summary, canonicalUrl, and extra keys. false = do not invent data; read error + hint and retry with valid args or open hint."},"detail":"Field `ok` was added to `resolve_locale_url` output.","severity":"risky"},{"kind":"output_property_added","path":"outputSchema.properties.path","tool":"resolve_locale_url","after":{"type":"string","description":"Normalized path"},"detail":"Field `path` was added to `resolve_locale_url` output.","severity":"risky"},{"kind":"output_property_added","path":"outputSchema.properties.related","tool":"resolve_locale_url","after":{"type":"array","items":{"type":"string","format":"uri"},"description":"Always includes https://maps.ikeytz.com/llms.txt."},"detail":"Field `related` was added to `resolve_locale_url` output.","severity":"risky"},{"kind":"output_property_added","path":"outputSchema.properties.requested_locale","tool":"resolve_locale_url","after":{"type":"string"},"detail":"Field `requested_locale` was added to `resolve_locale_url` output.","severity":"risky"},{"kind":"output_property_added","path":"outputSchema.properties.slug","tool":"resolve_locale_url","after":{"type":"string","description":"When a Gebiet matched"},"detail":"Field `slug` was added to `resolve_locale_url` output.","severity":"risky"},{"kind":"output_property_added","path":"outputSchema.properties.summary","tool":"resolve_locale_url","after":{"type":"string","description":"Primary text for the model. For discovery tools this is the file window. For list tools a compact one-liner. Quote with attribution."},"detail":"Field `summary` was added to `resolve_locale_url` output.","severity":"risky"},{"kind":"output_property_added","path":"outputSchema.properties.tool","tool":"resolve_locale_url","after":{"type":"string","description":"Echo of the tool name that produced this object (e.g. get_service_area)."},"detail":"Field `tool` was added to `resolve_locale_url` output.","severity":"risky"},{"kind":"description_changed","tool":"resolve_maps_url","after":"WHAT: Resolve a maps.ikeytz.com url/path/q to hub or Gebiet. RETURNS kind=hub|ort + area fields when ort. USE to normalize pasted maps links. DOES NOT accept www hosts (not_maps_host). NEXT: get_service_area, get_embed_map.","before":"maps.ikeytz.com-URL → Hub oder Gebiet.","detail":"Description of `resolve_maps_url` changed (82% word delta).","severity":"risky","descriptionDelta":0.8181818181818181},{"kind":"output_property_added","path":"outputSchema.properties.attribution","tool":"resolve_maps_url","after":{"type":"string","description":"Required citation: 'Quelle: Schlüsseldienst Ludwigsburg ikeytz (ikeytz.com) · ai-train=no · https://maps.ikeytz.com/.well-known/ai.txt'"},"detail":"Field `attribution` was added to `resolve_maps_url` output.","severity":"risky"},{"kind":"output_property_added","path":"outputSchema.properties.canonicalUrl","tool":"resolve_maps_url","after":{"type":"string","description":"Best URL to show the user: https://maps.ikeytz.com… page, public embed JSON, tel:+49…, mailto:…, https://wa.me/…, or a www pointer. Prefer this over constructing URLs."},"detail":"Field `canonicalUrl` was added to `resolve_maps_url` output.","severity":"risky"},{"kind":"output_property_added","path":"outputSchema.properties.embed_map","tool":"resolve_maps_url","after":{"type":"string","format":"uri"},"detail":"Field `embed_map` was added to `resolve_maps_url` output.","severity":"risky"},{"kind":"output_property_added","path":"outputSchema.properties.error","tool":"resolve_maps_url","after":{"type":"string","description":"Present when ok=false. Codes include: unknown_place, unknown_discovery, unknown_doc, q_required, plz_required, coords_required, outside_service_area, url_required, not_maps_host, bad_url, path_or_url_required, serp_not_found, slug_or_coords_required, path_required."},"detail":"Field `error` was added to `resolve_maps_url` output.","severity":"risky"},{"kind":"output_property_added","path":"outputSchema.properties.hint","tool":"resolve_maps_url","after":{"type":"string","description":"Present when ok=false. Absolute URL or short recovery hint the agent should open or pass to another tool."},"detail":"Field `hint` was added to `resolve_maps_url` output.","severity":"risky"},{"kind":"output_property_added","path":"outputSchema.properties.kind","tool":"resolve_maps_url","after":{"enum":["hub","ort"],"type":"string","description":"Resolved kind"},"detail":"Field `kind` was added to `resolve_maps_url` output.","severity":"risky"},{"kind":"output_property_added","path":"outputSchema.properties.lat","tool":"resolve_maps_url","after":{"type":"number"},"detail":"Field `lat` was added to `resolve_maps_url` output.","severity":"risky"},{"kind":"output_property_added","path":"outputSchema.properties.lng","tool":"resolve_maps_url","after":{"type":"number"},"detail":"Field `lng` was added to `resolve_maps_url` output.","severity":"risky"},{"kind":"output_property_added","path":"outputSchema.properties.locale","tool":"resolve_maps_url","after":{"enum":["de"],"type":"string","description":"Locale actually used for URLs. maps is German-only: always de (MAPS-E8 — no /en on maps). Requested non-de is ignored; payload locale=de."},"detail":"Field `locale` was added to `resolve_maps_url` output.","severity":"risky"},{"kind":"output_property_added","path":"outputSchema.properties.name","tool":"resolve_maps_url","after":{"type":"string","description":"Place name when ort"},"detail":"Field `name` was added to `resolve_maps_url` output.","severity":"risky"},{"kind":"output_property_added","path":"outputSchema.properties.ok","tool":"resolve_maps_url","after":{"type":"boolean","description":"true = use summary, canonicalUrl, and extra keys. false = do not invent data; read error + hint and retry with valid args or open hint."},"detail":"Field `ok` was added to `resolve_maps_url` output.","severity":"risky"},{"kind":"output_property_added","path":"outputSchema.properties.plz","tool":"resolve_maps_url","after":{"type":"string"},"detail":"Field `plz` was added to `resolve_maps_url` output.","severity":"risky"},{"kind":"output_property_added","path":"outputSchema.properties.related","tool":"resolve_maps_url","after":{"type":"array","items":{"type":"string","format":"uri"},"description":"Always includes https://maps.ikeytz.com/llms.txt."},"detail":"Field `related` was added to `resolve_maps_url` output.","severity":"risky"},{"kind":"output_property_added","path":"outputSchema.properties.slug","tool":"resolve_maps_url","after":{"type":["string","null"],"description":"null for hub"},"detail":"Field `slug` was added to `resolve_maps_url` output.","severity":"risky"},{"kind":"output_property_added","path":"outputSchema.properties.summary","tool":"resolve_maps_url","after":{"type":"string","description":"Primary text for the model. For discovery tools this is the file window. For list tools a compact one-liner. Quote with attribution."},"detail":"Field `summary` was added to `resolve_maps_url` output.","severity":"risky"},{"kind":"output_property_added","path":"outputSchema.properties.tool","tool":"resolve_maps_url","after":{"type":"string","description":"Echo of the tool name that produced this object (e.g. get_service_area)."},"detail":"Field `tool` was added to `resolve_maps_url` output.","severity":"risky"},{"kind":"description_changed","tool":"site_overview","after":"WHO/WHAT: What maps.ikeytz.com is — 52 Einsatzgebiet maps for Schlüsseldienst Ludwigsburg ikeytz, not the www price site. RETURNS brand, owner, count, mcp, registry, walkIn=false, sister www MCP note. USE as the maps brand card. DOES NOT quote euro. NEXT: get_business_identity, list_service_areas, get_links.","before":"Was ist maps.ikeytz.com — 52 Karten, nicht www-Preise.","detail":"Description of `site_overview` changed (88% word delta).","severity":"risky","descriptionDelta":0.8809523809523809},{"kind":"enum_narrowed","path":"inputSchema.properties.locale","tool":"site_overview","after":"enum[de]","before":"open","detail":"`locale` on `site_overview` narrowed to a closed enum (de); previously valid values may now be rejected.","severity":"breaking"},{"kind":"default_changed","path":"inputSchema.properties.locale","tool":"site_overview","after":"de","detail":"Default of `locale` on `site_overview` changed unset → \"de\".","severity":"risky"},{"kind":"output_property_added","path":"outputSchema.properties.attribution","tool":"site_overview","after":{"type":"string","description":"Required citation: 'Quelle: Schlüsseldienst Ludwigsburg ikeytz (ikeytz.com) · ai-train=no · https://maps.ikeytz.com/.well-known/ai.txt'"},"detail":"Field `attribution` was added to `site_overview` output.","severity":"risky"},{"kind":"output_property_added","path":"outputSchema.properties.brand","tool":"site_overview","after":{"type":"string"},"detail":"Field `brand` was added to `site_overview` output.","severity":"risky"},{"kind":"output_property_added","path":"outputSchema.properties.canonicalUrl","tool":"site_overview","after":{"type":"string","description":"Best URL to show the user: https://maps.ikeytz.com… page, public embed JSON, tel:+49…, mailto:…, https://wa.me/…, or a www pointer. Prefer this over constructing URLs."},"detail":"Field `canonicalUrl` was added to `site_overview` output.","severity":"risky"},{"kind":"output_property_added","path":"outputSchema.properties.count","tool":"site_overview","after":{"type":"number","description":"52"},"detail":"Field `count` was added to `site_overview` output.","severity":"risky"},{"kind":"output_property_added","path":"outputSchema.properties.error","tool":"site_overview","after":{"type":"string","description":"Present when ok=false. Codes include: unknown_place, unknown_discovery, unknown_doc, q_required, plz_required, coords_required, outside_service_area, url_required, not_maps_host, bad_url, path_or_url_required, serp_not_found, slug_or_coords_required, path_required."},"detail":"Field `error` was added to `site_overview` output.","severity":"risky"},{"kind":"output_property_added","path":"outputSchema.properties.h1","tool":"site_overview","after":{"type":"string"},"detail":"Field `h1` was added to `site_overview` output.","severity":"risky"},{"kind":"output_property_added","path":"outputSchema.properties.hint","tool":"site_overview","after":{"type":"string","description":"Present when ok=false. Absolute URL or short recovery hint the agent should open or pass to another tool."},"detail":"Field `hint` was added to `site_overview` output.","severity":"risky"},{"kind":"output_property_added","path":"outputSchema.properties.legalName","tool":"site_overview","after":{"type":"string"},"detail":"Field `legalName` was added to `site_overview` output.","severity":"risky"},{"kind":"output_property_added","path":"outputSchema.properties.locale","tool":"site_overview","after":{"enum":["de"],"type":"string","description":"Locale actually used for URLs. maps is German-only: always de (MAPS-E8 — no /en on maps). Requested non-de is ignored; payload locale=de."},"detail":"Field `locale` was added to `site_overview` output.","severity":"risky"},{"kind":"output_property_added","path":"outputSchema.properties.mcp","tool":"site_overview","after":{"type":"string","format":"uri"},"detail":"Field `mcp` was added to `site_overview` output.","severity":"risky"},{"kind":"output_property_added","path":"outputSchema.properties.note","tool":"site_overview","after":{"type":"string"},"detail":"Field `note` was added to `site_overview` output.","severity":"risky"},{"kind":"output_property_added","path":"outputSchema.properties.ok","tool":"site_overview","after":{"type":"boolean","description":"true = use summary, canonicalUrl, and extra keys. false = do not invent data; read error + hint and retry with valid args or open hint."},"detail":"Field `ok` was added to `site_overview` output.","severity":"risky"},{"kind":"output_property_added","path":"outputSchema.properties.owner","tool":"site_overview","after":{"type":"string"},"detail":"Field `owner` was added to `site_overview` output.","severity":"risky"},{"kind":"output_property_added","path":"outputSchema.properties.registry","tool":"site_overview","after":{"type":"string","description":"com.ikeytz/maps"},"detail":"Field `registry` was added to `site_overview` output.","severity":"risky"},{"kind":"output_property_added","path":"outputSchema.properties.related","tool":"site_overview","after":{"type":"array","items":{"type":"string","format":"uri"},"description":"Always includes https://maps.ikeytz.com/llms.txt."},"detail":"Field `related` was added to `site_overview` output.","severity":"risky"},{"kind":"output_property_added","path":"outputSchema.properties.requested_locale","tool":"site_overview","after":{"type":"string"},"detail":"Field `requested_locale` was added to `site_overview` output.","severity":"risky"},{"kind":"output_property_added","path":"outputSchema.properties.sister","tool":"site_overview","after":{"type":"string","description":"www MCP / npm hint"},"detail":"Field `sister` was added to `site_overview` output.","severity":"risky"},{"kind":"output_property_added","path":"outputSchema.properties.summary","tool":"site_overview","after":{"type":"string","description":"Primary text for the model. For discovery tools this is the file window. For list tools a compact one-liner. Quote with attribution."},"detail":"Field `summary` was added to `site_overview` output.","severity":"risky"},{"kind":"output_property_added","path":"outputSchema.properties.title","tool":"site_overview","after":{"type":"string"},"detail":"Field `title` was added to `site_overview` output.","severity":"risky"},{"kind":"output_property_added","path":"outputSchema.properties.tool","tool":"site_overview","after":{"type":"string","description":"Echo of the tool name that produced this object (e.g. get_service_area)."},"detail":"Field `tool` was added to `site_overview` output.","severity":"risky"},{"kind":"output_property_added","path":"outputSchema.properties.walkIn","tool":"site_overview","after":{"type":"boolean"},"detail":"Field `walkIn` was added to `site_overview` output.","severity":"risky"}],"published_at":"2026-09-03T05:42:17.321Z"}]