code: function NamingConvention(config) {
      assertConfig(config || {})
          .whereParam("name").isOptional().isString()
          .whereParam("serverPropertyNameToClient").isFunction()
          .whereParam("clientPropertyNameToServer").isFunction()
          .applyAll(this);
      if (!this.name) {
        this.name = __getUuid();
      }
      __config._storeObject(this, proto._$typeName, this.name);
    }
docs: A NamingConvention instance is used to specify the naming conventions under which a MetadataStore
  will translate property names between the server and the javascript client.
  
  The default NamingConvention does not perform any translation, it simply passes property names thru unchanged.
  
  @class NamingConvention
   
  NamingConvention constructor
  
  @example
  A naming convention that converts the first character of every property name to uppercase on the server
  and lowercase on the client.
  var namingConv = new NamingConvention({
  serverPropertyNameToClient: function(serverPropertyName) {
  return serverPropertyName.substr(0, 1).toLowerCase() + serverPropertyName.substr(1);
  },
  clientPropertyNameToServer: function(clientPropertyName) {
  return clientPropertyName.substr(0, 1).toUpperCase() + clientPropertyName.substr(1);
  }
  });
  var ms = new MetadataStore({ namingConvention: namingConv });
  var em = new EntityManager( { metadataStore: ms });
  @method <ctor> NamingConvention
  @param config {Object}
  @param config.serverPropertyNameToClient {Function} Function that takes a server property name add converts it into a client side property name.
  @param config.clientPropertyNameToServer {Function} Function that takes a client property name add converts it into a server side property name.