{"endpoints":{"DELETE /parts/<part>":"delete a part via the PPS API (cleanup)","GET    /bend-details/<part>":"per-bend DESIGN vs ACHIEVED radius/deduction + the punch/die the engine picks (via toolproposition; no NC generated)","GET    /can-bend/<part>":"is the part bendable? gates 3-4 via the real engine. ?suggest_dies=1 to find an owned die that works","GET    /dies":"list your tool-list dies + category codes (valid force_die values)","GET    /health":"sanity check (public)","GET    /material-dies?prefix=AlMg3":"read the preferred die (Lower Tool Category) per raw material","GET    /materials?prefix=AL":"list raw materials","GET    /parts/<part>/files/<kind>":"download a generated artifact (nc | setup | fx | out | geo | source | preview)","GET    /parts/<part>/status":"one-shot: is part imported? unfolded? has bend solution? computed? what files? (safe to poll)","POST   /compute-bend/<part>":"run Flux autocompute on an existing part; optional force_die + force_punch (e.g. OWR1.0); returns NC + setup plan + .fx (base64)","POST   /import-bend-part":"multipart: file, material, kfactor, bat, bend_tech, auto_compute, force_die, part_no, description, user","POST   /optimize-setups":"body {parts:[...]}: group parts by SHARED tool setup to minimize brake changeovers; returns setup_count + which parts share each","PUT    /material-dies/<material>":"set a material's preferred die (body: die=EV005 W16/30 R1.6). Affects new imports."},"service":"trutops bend-part pipeline"}
