Skip to content

Common Types

The specifications here reuse a few small types that are more than the primitive they are built on. A reverse-DNS name is a text string, but it also carries a grammar, a comparison rule and a tree it belongs to. Writing each one down once keeps two specs from defining the same thing differently, and gives an implementer a single place to look when a field says it holds one.

Every page here is normative. When a specification says a field holds one of these types, every rule on that type’s page applies to that field.

TypeCarried asUsed for
Reverse-DNS nametext stringExtension keys, catalog resolver names, the identity of a producing app. Anything unique that nobody hands out.
Hash valuetagged byte stringIdentifying a ROM or a file by its content rather than by its name.

A type lands here once a second specification needs it. Until then it belongs to the spec that uses it, written out in place.