"FreeBoard", re-using a lot of Board logic, but with SVG (empty) board + SVG (empty) reserves.
 Will be used for variants with custom non-rectangular board (Hex, at least)
 Or, with other board shapes (see greenchess.net for example)
+
+Would be nice to display some better variants names (Pacosako -> Paco-Ŝako etc),
+but the "formatted" name with uppercase + all lower cases would still be required.
+(For example in variants list, or tournament variant field).
 
 
 ul
   li.
-    King Faceoff — As in Xiangqi, Kings may not face each other
+    King Faceoff – As in Xiangqi, Kings may not face each other
     (on a file or rank).
   li.
-    Reinforcement Soldiers — Black starts with two soldiers in hand.
+    Reinforcement Soldiers – Black starts with two soldiers in hand.
     Instead of moving a piece on the board, the Dynasty player can drop a
     soldier onto an open square in rank 5.
-  li Campmate — A king that reaches the final rank wins the game.
+  li Campmate – A king that reaches the final rank wins the game.
   li.
-    Stalemate — As in Xiangqi, stalemates
-    and moves repetitions are a loss.
+    Stalemate – As in Xiangqi, stalemate
+    and moves repetition are a loss.
 
 h3 Dynasty Pieces
 
   hand), 2 Cannons, 2 Elephants, and 1 Advisor.
 p.
   The Chariots are equal to the Rooks and use the same abbreviation (R)
-  — the difference is purely cosmetic. Similarly, the Kings are the
+  – the difference is purely cosmetic. Similarly, the Kings are the
   same, but just appear different.
 
 ul
 
 
 ul
   li.
-    Rey opuestos — Como en Xiangqi, los reyes no pueden ser
+    Rey opuestos – Como en Xiangqi, los reyes no pueden ser
     cara a cara (en una columna o fila).
   li.
-    Soldados de refuerzo — Las negras comienzan con dos soldados en la
+    Soldados de refuerzo – Las negras comienzan con dos soldados en la
     mano. En lugar de jugar un movimiento, pueden dejar caer a un soldado en
     una casilla libre de la quinta fila.
   li.
-    "Mate de campo" — Si el rey llega a la última fila, entonces
+    "Mate de campo" – Si el rey llega a la última fila, entonces
     el juego está ganado.
   li.
-    Empate — Como en Xiangqi,
+    Empate – Como en Xiangqi,
     el empate y la repetición de jugadas pierden.
 
 h3 Piezas de la dinastía
   Cuatro piezas nuevas del lado de la Dinastía: 6 Soldados (2 serán
   en paracaídas), 2 Cañones, 2 Elefantes y 1 Asesor.
 p.
-  Los Carros equivalen a torres y utilizan la misma abreviatura —
+  Los Carros equivalen a torres y utilizan la misma abreviatura –
   la diferencia es puramente cosmética. Asimismo, los Reyes son iguales
   piezas dibujadas de manera diferente.
 
 
 
 ul
   li.
-    Roi en vis-à-vis — Comme au Xiangqi, les Rois ne peuvent pas se
+    Roi en vis-à-vis – Comme au Xiangqi, les Rois ne peuvent pas se
     faire face (sur une colonne ou rangée).
   li.
-    Soldats en renfort — Les noirs démarrent avec deux soldats en main.
+    Soldats en renfort – Les noirs démarrent avec deux soldats en main.
     Au lieu de jouer un coup, ils peuvent parachuter un soldat sur une case
     libre de la 5eme rangée.
   li.
-    "Mat de camp" — Si le roi atteint la dernière rangée, alors
+    "Mat de camp" – Si le roi atteint la dernière rangée, alors
     la partie est gagnée.
-  li Pat — Comme au Xiangqi, le pat et la répétition de coups perdent.
+  li Pat – Comme au Xiangqi, le pat et la répétition de coups perdent.
 
 h3 Pièces de la Dynastie
 
   Quatre nouvelles pièces du côté de la Dynastie : 6 Soldats (2 seront
   parachutés), 2 Canons, 2 Éléphants, et 1 Conseiller.
 p.
-  Les Chariots sont égaux aux tours, et utilisent la même abréviation —
+  Les Chariots sont égaux aux tours, et utilisent la même abréviation –
   la différence est purement cosmétique. De même, les Rois sont les mêmes
   pièces dessinées différemment.
 
 
         };
         setAndSendLoginToken("Welcome to " + params.siteURL, user);
         // Update tournament DB (TODO: if error, log it)
-        exec(params.tourneyPath + "/dbsync/update_users.py");
+        exec(params.tourneyPath + "/dbsync/insert_user.py " + ret.id);
         res.json({});
       }
     });
       notify: !!req.body.notify,
     };
     UserModel.updateSettings(user);
+    exec(params.tourneyPath + "/dbsync/update_user.py " + ret.id);
     res.json({});
   }
 });