code: function(_attr, _serverPath, _forced) {
              // extract parent node from client name:
              var index = _attr.lastIndexOf('.'),
                  node = index !== -1 ? _attr.substr(0, index) : '',
                  leaf = index !== -1 ? _attr.substr(index + 1) : _attr;
  
              mapped[_attr] = true;
  
              var nodes = (mappings[node] || (mappings[node] = []));
              nodes.push({ path: leaf, map: _serverPath === '*' ? null : _serverPath.split('.'), mapPath: _serverPath, forced: _forced });
              return this;
            }
docs: @memberof BuilderApi#
  
  @description Sets an attribute mapping.
  
  Allows a explicit server to model property mapping to be defined.
  
  For example, to map the response property `stats.created_at` to model's `created` property.
  
  ```javascript
  builder.attrMap('created', 'stats.created_at');
  ```
  
  It's also posible to use a wildcard '*' as server name to use the default name decoder as
  server name. This is used to force a property to be processed on decode/encode even if its
  not present on request/record (respectively), by doing this its posible, for example, to define
  a dynamic property that is generated automatically before the object is send to the server.
  
  @param {string} _attr Attribute name
  @param {string} _serverName Server (request/response) property name
  @return {BuilderApi} self