code: function handleAttributeContext(attrNode, context) {
      if (!attrNode.type && attrNode.inherit !== 'inherit') attrNode.type = 'string';
  
      if (attrNode.map) {
          Object.keys(attrNode.map).forEach(mappingName => {
              const mapping = attrNode.map[mappingName];
  
              Object.keys(mapping).forEach(dataSourceName => {
                  if (!context.dataSourceAttributes[dataSourceName]) {
                      throw new ImplementationError(
                          `Unknown DataSource "${dataSourceName}" in map${context.errorContext}`
                      );
                  }
  
                  context.dataSourceAttributes[dataSourceName].push(mapping[dataSourceName]);
              });
          });
  
          if ('value' in attrNode) {
              throw new ImplementationError(
                  'Static "value" in combination with "map" makes no sense' + context.errorContext
              );
          }
      }
  }
docs: Handle special cases and checks for options in attribute context.
  
  @private