pub fn encode_label(label: &str) -> [u8; 16]
Zero-padded UTF-8, capped at 15 bytes (the last byte stays NUL so the C side can treat the field as NUL-terminated).