code: function parseMap(map, context) {
      const parsed = { default: {} };
      const primaryName = 'primary';
  
      if (map === null) {
          parsed.default[primaryName] = context.subAttrPath.join('.');
      } else {
          map.split(';').forEach(part => {
              const parts = part.split(':', 2);
              const dataSource = parts.length < 2 ? primaryName : parts.shift();
              parsed.default[dataSource] = parts[0];
          });
      }
      return parsed;
  }
docs: Parses "id", "id;fulltextSearch:articleId;articleBody:articleId".
  Null generates default-mapping to primary DataSource from context.subAttrPath.
  AST supports multiple mapping types - currently not implemented in syntax.
  
  @private