code: function makeSubtree(columnName, expressionChain) {
          var booleans = captureBooleans(expressionChain),
              expressions = captureExpressions(expressionChain, booleans),
              children = makeChildren(columnName, expressions),
              operator = booleans && booleans[0] || 'and';
  
          if (children.length) {
              return {
                  operator: 'op-' + operator,
                  children: children,
                  type: 'columnFilter'
              };
          }
      }
docs: @summary Make a "locked" subexpression definition object from an expression chain.
  @desc _Locked_ means it is locked to a single field.
  
  When there is only a single expression in the chain, the `operator` field defaults to `'op-and'`.
  @param {string} columnName
  @param {string} expressionChain
  @returns {undefined|{operator: string, children: string[], schema: string[]}}
  `undefined` when there are no complete expressions