package app

// Tagger is the interface that describes a collection of tags that gives
// context to something.
type Tagger interface {
	// Returns a collection of tags.
	Tags() Tags
}

// Tags represent key-value pairs that give context to what they are used with.
type Tags map[string]string

func ( Tags) () Tags {
	return 
}

// Set sets a tag with the given name and value. The value is converted to a
// string.
func ( Tags) ( string,  any) {
	[] = toString()
}

// Get returns a tag value with the given name.
func ( Tags) ( string) string {
	return []
}

// Tag is a key-value pair that adds context to an action.
type Tag struct {
	Name  string
	Value string
}

func ( Tag) () Tags {
	return Tags{.Name: .Value}
}

// T creates a tag with the given name and value. The value is converted to a
// string.
func ( string,  any) Tag {
	return Tag{
		Name:  ,
		Value: toString(),
	}
}