Aside from the other comments, an ick I have is that struct tags are being abused here. Instead of providing a grouping like json, yaml, mapstructure, gorm, etc - it just goes willy nilly with struct tags like it owns the whole space. I’d like to see it grouped like…
type Conf struct {
Thing string `argp:”name:thing;short:t;desc:A thing you can do”`
}