6.7 Other Field Types

The Email field type specifier is used to declare electronic
addresses. The synopsis is:

%typedef: Email_t email

Sometimes it is useful to make fields to store field names. For that
purpose the Field field type specifier is supported. The
synopsis is:

%typedef: Field_t field

Universally Unique Identifiers (also known as UUIDs) are a way to
assign a globally unique label to some object. The uuid field
type specifier serves that purpose. The synopsis is:

%typedef: Id_t uuid

The format of the uuids is specified as 32 hexadecimal digits,
displayed in five groups separated by hyphens. For example:

550e8400-e29b-41d4-a716-446655440000

There is one other possible field type, viz: a foreign key.
The following example
defines the type Maintainer_t to be of type “record Hacker”;
in other words, a foreign key referring to a record in the Hacker record set.

%typedef: Maintainer_t rec Hacker

This essentially means that the values
to be stored in fields of type Maintainer_t are of whatever
type is defined for the primary key of the Hacker record set.
Why this is useful is discussed later. See Queries which Join Records.