Our grid-restriction is similar, but not identical, to catboost's "symmetric trees". We allow child nodes to split on the same attribute as an ancestor (e.g., so there are two splits along one variable). You can still construct a vector comparison (observation value against thresholds) to map observations to uniquely-indexed cells (not generally true with other trees), though the length of the vector may be longer than the depth of the tree.