78c4511a3d
userServicesFromView returned a nil slice when a node advertised no services, which (combined with the omitempty tag) caused the services field to be dropped or serialize as null instead of []. TypeScript declares services as a non-optional array, so JS callers calling .find()/.some() on it would throw intermittently depending on which netmap snapshot they observed. Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>