3 // DescriptorPayload describes machine metadata, not house names or rooms.
4 // Attribution is optional and has a maximum length of 2000 bytes.
5 type DescriptorPayload struct {
6 Manufacturer string `json:"manufacturer"`
7 Model string `json:"model"`
8 Firmware string `json:"firmware"`
9 Attribution string `json:"attribution,omitempty"`
10 Capabilities []Capability `json:"capabilities"`
13 // Capability describes one point. At least one access flag must be true. ID is
14 // unique in its descriptor. ID and Type use protocol identifiers.
15 type Capability struct {
17 Type string `json:"type"`
18 ReportsState bool `json:"reports_state"`
19 AcceptsCommands bool `json:"accepts_commands"`