MultipeerPeerLinkFactory
Parameters
Local display name surfaced to remote peers for display only — it is not the identity. Keep it short and recognisable (device name is the conventional choice). At most 26 bytes of it survive: it shares Apple's 63-byte MCPeerID.displayName budget with selfId, and the identity is kept whole. Longer names are trimmed, never rejected.
MultipeerConnectivity service-type string. Must be 1–15 ASCII letters, digits, or hyphens (same rules as Bonjour _service._tcp. minus underscores). Callers supply their own value; kuilt does not provide a default.
This peer's wire identity. It is the PeerId every remote observes: it is baked into the advertised MCPeerID.displayName and both ends derive it back out of that one string. Must not contain # (the delimiter) and must be short enough to leave room for a display name — a freshPeerId() UUID costs 37 of the 63 bytes. A violation throws from this constructor, not from weave.