<type-marker> <value-type>
Carbon TypeDescriptionSizeType MarkerValue Type
nokeyno identifier assigned0 B[?]none
autokey64-bit auto-generated unsigned identifier8 B[*]u64
ukey64-bit user-defined unsigned identifier8 B[+]u64
ikey64-bit user-defined signed identifier8 B[-]i64
skeyn-char string user-def. identifiern B[!]string

Table FO-1: Record Primary Key Types and Encoding

The value generation of autokey is implementation-dependent.

The default value for numeric keys (autokey, ukey, and ikey) is 0. The empty string "" is used to encode the default value for character string keys (skey). JSON formatters are required to format the value of nokey and the default value for character string keys as JSON null.

If nokey is set, the commit-hash field for a carbon record is omitted. In any case of revison, the commit hash for such a record is 0.