{"ok":true,"site":{"host":"karta.timothybrits.co.za","url":"https://karta.timothybrits.co.za/?basemap=topo","type":"live","desc":"Visualising how apartheid-era spatial planning still shapes commute times and access to jobs across Gauteng.","tools":[{"name":"list-map-layers","kind":"answer","impl":"imperative","description":"List this map's layers, each with its id, label, and whether it's currently visible.","inputSchema":{"type":"object","properties":{},"additionalProperties":false},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute","page":"/?basemap=topo","pages":["/?basemap=topo","/"]},{"name":"toggle-map-layer","kind":"act","impl":"imperative","description":"Show or hide a map layer by id. Call list-map-layers first to find valid ids.","inputSchema":{"type":"object","properties":{"layerId":{"type":"string","description":"The layer's id, as returned by list-map-layers."}},"required":["layerId"],"additionalProperties":false},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute","page":"/?basemap=topo","pages":["/?basemap=topo","/"]},{"name":"search-map-location","kind":"answer","impl":"imperative","description":"Search for a place by name and fly the map to the best match, e.g. a town, suburb or station.","inputSchema":{"type":"object","properties":{"query":{"type":"string","description":"Free-text place name to search for."}},"required":["query"],"additionalProperties":false},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute","page":"/?basemap=topo","pages":["/?basemap=topo","/"]},{"name":"set-map-basemap","kind":"act","impl":"imperative","description":"Switch the map's basemap style.","inputSchema":{"type":"object","properties":{"basemap":{"type":"string","enum":["positron","liberty","dark","satellite","topo"],"description":"One of the registered basemap ids."}},"required":["basemap"],"additionalProperties":false},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute","page":"/?basemap=topo","pages":["/?basemap=topo","/"]},{"name":"set-app-theme","kind":"act","impl":"imperative","description":"Switch the app's colour theme. \"system\" follows the OS preference.","inputSchema":{"type":"object","properties":{"theme":{"type":"string","enum":["system","light","dark"]}},"required":["theme"],"additionalProperties":false},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute","page":"/?basemap=topo","pages":["/?basemap=topo","/"]},{"name":"read-map-story","kind":"answer","impl":"imperative","description":"Read this map's background story explaining why it exists, and open the Story panel.","inputSchema":{"type":"object","properties":{},"additionalProperties":false},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute","page":"/?basemap=topo","pages":["/?basemap=topo","/"]},{"name":"measure-distance","kind":"act","impl":"imperative","description":"Measure the straight-line distance across two or more named locations, and show it on the map's measuring tool.","inputSchema":{"type":"object","properties":{"locations":{"type":"array","items":{"type":"string"},"minItems":2,"description":"Place names to measure between, in order, e.g. [\"Sandton\", \"Soweto\"]."}},"required":["locations"],"additionalProperties":false},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute","page":"/?basemap=topo","pages":["/?basemap=topo","/"]},{"name":"measure-area","kind":"act","impl":"imperative","description":"Measure the area enclosed by three or more named locations, and show it on the map's measuring tool.","inputSchema":{"type":"object","properties":{"locations":{"type":"array","items":{"type":"string"},"minItems":3,"description":"Place names forming the area's outline, in order, e.g. [\"Sandton\", \"Soweto\", \"Midrand\"]."}},"required":["locations"],"additionalProperties":false},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute","page":"/?basemap=topo","pages":["/?basemap=topo","/"]}],"favicon":"/favicons/karta.timothybrits.co.za.png","apiSurface":"spec","category":"Media & Personal","toolCount":8}}