cURL
Post apivizcostestimate
POST /viz/cost/estimate
Validates the spec (structural + semantic) then returns a
VizCostEstimate. Same auth / visibility / readiness rules as
SafeVizSpecValidateView — both share
_resolve_visible_ready_version so the no-leak contract can’t
drift between them.
On failure: {is_valid: false, errors: [{path, error}]} —
same envelope as the validate endpoint, so the frontend has a
single error-handling path. On success: the flat VizCostEstimate
body per the issue’s TS interface.