/**
  * Create a SharePoint Item
  *
  * @static
  * @access  public
  * @param   SPList $list       SharePoint List
  * @param   array  $properties SharePoint Item properties (Title, ...)
  * @param   array  $extra      Extra SharePoint Item properties to map
  * @throws  SPException
  * @return  SPItem
  */
 public static function create(SPList $list, array $properties, array $extra = [])
 {
     $properties = array_replace_recursive($properties, ['odata.type' => $list->getItemType()]);
     $body = json_encode($properties);
     $json = $list->request("_api/web/Lists(guid'" . $list->getGUID() . "')/items", ['headers' => ['Authorization' => 'Bearer ' . $list->getSPAccessToken(), 'Accept' => 'application/json', 'X-RequestDigest' => (string) $list->getSPFormDigest(), 'Content-type' => 'application/json', 'Content-length' => strlen($body)], 'body' => $body], 'POST');
     return new static($list, $json, $extra);
 }