All [supported metadata keys](00001006020000) conform to a type.

User-defined metadata keys conform also to a type, based on the suffix of the key.

| Suffix | Type |
| --- | --- |
| `-date` | [Timestamp](00001006034500) |
| `-number` | [Number](00001006033000) |
| `-ref` | [Identifier](00001006032000) |
| `-refs` | [IdentifierSet](00001006032500) |
| `-role` | [Word](00001006035500) |
| `-time` | [Timestamp](00001006034500) |
| `-url` | [URL](00001006035000) |
| `-zettel` | [Identifier](00001006032000) |
| `-zid` | [Identifier](00001006032000) |
| `-zids` | [IdentifierSet](00001006032500) |
| any other suffix | [EString](00001006031500) |

The name of the metadata key is bound to the key type

Every key type has an associated validation rule to check values of the given type.
There is also a rule how values are matched, e.g. against a [search value](00001007706000) when selecting some zettel.
And there is a rule how values compare for sorting.

* [Credential](00001006031000)
* [EString](00001006031500)
* [Identifier](00001006032000)
* [IdentifierSet](00001006032500)
* [Number](00001006033000)
* [String](00001006033500)
* [TagSet](00001006034000)
* [Timestamp](00001006034500)
* [URL](00001006035000)
* [Word](00001006035500)