@example
category := value[name]
- 01? 00? 00? 00?
- (01 (i0 | i1 | i2) | i2)
+ (00 | 01)[merge] 00 (00 | 01)[unindexed] (i0 | i2)
int[index] int[n-subcategories] category*[n-subcategories]
@end example
@code{category} can represent a terminal category. In that case,
-@code{name} is the name of the category, @code{index} is a nonnegative
-integer less than @code{n-categories} in the @code{dimension} in which
-the @code{category} is nested (directly or indirectly), and
+@code{name} is the name of the category, @code{merge} is 00,
+@code{unindexed} is 00, @code{index} is a nonnegative integer less
+than @code{n-categories} in the @code{dimension} in which the
+@code{category} is nested (directly or indirectly), and
@code{n-subcategories} is 0.
Alternatively, @code{category} can represent a group of nested
categories. In that case, @code{name} is the name of the group,
-@code{index} is -1, and @code{n-subcategories} is positive.
+@code{unindexed} is 01, and @code{index} is -1. Ordinarily a group
+has some nested content, so that @code{n-subcategories} is positive,
+but a few instances of groups with @code{n-subcategories} 0 has been
+observed. If @code{merge} is 00, the most common value, then the
+group is really a distinct group that should be represented as such in
+the visual representation and user interface. If @code{merge} is 01,
+however, the categories in this group should be shown and treated as
+if they were direct children of the group's parent group (or if it has
+no parent group, then direct children of the dimension), and this
+group's name is irrelevant and should not be displayed. (Merged
+groups can be nested!)