// Package cudy reads Wi-Fi clients from the stock TR3000 web interface. package cudy import ( "context" "time" ) type Client struct { IP string `json:"IP"` MAC string `json:"MAC"` Band string `json:"band"` Signal *int `json:"signal,omitempty"` } // Snapshot holds only the latest sanitized reading, never names or credentials. type Snapshot struct { Enabled bool `json:"enabled"` CollectedAt time.Time `json:"collectedAt"` HasError bool `json:"hasError"` Clients []Client `json:"clients"` } type Reader interface { Read(context.Context) ([]Client, error) }