package protocol // DescriptorPayload describes machine metadata, not house names or rooms. // Attribution is optional and has a maximum length of 2000 bytes. type DescriptorPayload struct { Manufacturer string `json:"manufacturer"` Model string `json:"model"` Firmware string `json:"firmware"` Attribution string `json:"attribution,omitempty"` Capabilities []Capability `json:"capabilities"` } // Capability describes one point. At least one access flag must be true. ID is // unique in its descriptor. ID and Type use protocol identifiers. type Capability struct { ID string `json:"id"` Type string `json:"type"` ReportsState bool `json:"reports_state"` AcceptsCommands bool `json:"accepts_commands"` }