Save the current taxonomy as an internal preset
Captures every LIVE axis (archived ones are excluded) into a named preset in the merchant’s own library, shared across every store of the network. The result is a FROZEN SNAPSHOT: later edits to the taxonomy do not reach it, and capturedAt records when it was taken — a preset that tracked the live vocabulary would be a mirror, and importing a mirror installs nothing. Reads and writes in one transaction under the taxonomy lock, so a snapshot can never freeze a half-finished import. 409s on a duplicate name, 422 when the taxonomy has no live axis to capture (an empty preset would list and preview like any other and install nothing). Needs pos.catalog.manage.
Authorizations
Authorization: Bearer <token>. Accepts EITHER a Keycloak access token (scopes-in-token) OR an opaque POS session token; both resolve to the same pos.* scope vocabulary the route guards enforce.

