# 004 — Standardize UCXI Payloads to UCXL Codes - Area: `pkg/ucxi/server.go`, shared responders/builders - Priority: Medium-High ## Background UCXI responses currently use a custom `Response` shape and plain HTTP status. The repo defines UCXL error/response codes and builders (see Rust `ucxl_codes.rs` analog). Clients need stable shapes and codes. ## Scope / Deliverables - Introduce UCXL response/error builders in Go with fields: - Success: `{response: {code, message, data?, details?, request_id, timestamp}}` - Error: `{error: {code, message, details?, source, path, request_id, timestamp, cause?}}` - Map common cases: 200/201, 400 INVALID_ADDRESS, 404 NOT_FOUND, 422 UNPROCESSABLE, 500 INTERNAL. - Update all UCXI handlers to use builders and include `request_id`. ## Acceptance Criteria / Tests - Unit tests assert exact JSON for success/error cases. - Manual GET/PUT/DELETE/Navigate show UCXL-20x/40x codes and messages. ## Notes - Coordinate with Issue 001 so invalid addresses surface UCXL-400-INVALID_ADDRESS with details.field=address.