# 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.

