Identifies a setting. It consists of three parts: the scope, the name, and the type of a value associated with this key.
The scope is represented by a value of type Scope.
The name and the type are represented by a value of type AttributeKey[T].
Instances are constructed using the companion object.