{"openapi":"3.1.0","info":{"title":"Kruskal MST Visualizer","version":"1.0"},"servers":[{"url":"https://dabbled.ai"}],"paths":{"/apps/kruskal-mst-visualizer":{"get":{"operationId":"kruskalMstVisualizer","summary":"Kruskal MST Visualizer","parameters":[{"name":"graph_preset","in":"query","required":false,"description":"Preset graph to load","schema":{"type":"string","enum":["Simple 5-node","Grid 3x3","Two components","Ties & duplicates","Negative weights"]}},{"name":"node_count","in":"query","required":false,"description":"Number of nodes for random graph","schema":{"type":"number"}},{"name":"density","in":"query","required":false,"description":"Edge density for random graph (0-1)","schema":{"type":"number"}},{"name":"speed_ms","in":"query","required":false,"description":"Animation speed in ms per step","schema":{"type":"number"}},{"name":"tie_break","in":"query","required":false,"description":"Tie-break rule for equal weights","schema":{"type":"string","enum":["Stable (input order)","Random"]}},{"name":"show_weights","in":"query","required":false,"description":"Show edge weights on the graph","schema":{"type":"boolean"}},{"name":"show_union_find","in":"query","required":false,"description":"Show the union-find structure","schema":{"type":"boolean"}}],"responses":{"200":{"description":"Rendered app reflecting the given inputs."}}}}}}