code: func (t *PluginInterfaceType) UnmarshalJSON(p []byte) error {
  	versionIndex := len(p)
  	prefixIndex := 0
  	if len(p) < 2 || p[0] != '"' || p[len(p)-1] != '"' {
  		return fmt.Errorf("%q is not a plugin interface type", p)
  	}
  	p = p[1 : len(p)-1]
  loop:
  	for i, b := range p {
  		switch b {
  		case '.':
  			prefixIndex = i
  		case '/':
  			versionIndex = i
  			break loop
  		}
  	}
  	t.Prefix = string(p[:prefixIndex])
  	t.Capability = string(p[prefixIndex+1 : versionIndex])
  	if versionIndex < len(p) {
  		t.Version = string(p[versionIndex+1:])
  	}
  	return nil
  }
docs: // UnmarshalJSON implements json.Unmarshaler for PluginInterfaceType