in the training examples we encounter the repetative task of defining the optional blocks for type 'string', 'int' and 'date'. To minimize this task types can be defined in a pattern that can be reused and, more important, maintained in one place.
The following document describes how this can be done,