/opt/splicevpn/proto/proto.go
// Package proto defines the wire types exchanged between the SpliceVPN
// coordinator and agents. Everything here is plain JSON over HTTP.
package proto
// RegisterRequest is sent by an agent when it joins (or refreshes) the mesh.
type RegisterRequest struct {
JoinKey string `json:"join_key"` // shared bootstrap secret
Name string `json:"name"` // human label, e.g. "office-gw"
// PublicKey is the agent's WireGuard public key (base64, as `wg` prints it).
PublicKey string `json:"public_key"`
// Endpoints are candidate ip:port pairs the agent believes it is reachable on
// (LAN addresses, UPnP-mapped ports, etc). The coordinator also records the
// observed public source ip:port (STUN-lite) and merges it in.
Endpoints []string `json:"endpoints"`
// Routes are subnets this endpoint exposes to the mesh. Empty =[REDACTED]