pub fn hex_encode(bytes: &[u8; 32]) -> String
Encodes a 32-byte array as a lowercase hex string (64 characters).
Used for formatting routing IDs and blob IDs in API responses.