anchor.diff:  
   Dessiner un graphique en SVG via une description textuelle d'un automate.
   
  -Suppose de définir un DSL pour créer un automate.
  -
  -==== Produit fonctionnel viable
  +Suppose de définir un DSL (langage à domaine specifique) pour créer un automate.
  +
  +==== Produit minimum viable
   
   Le premier objectif est de produire une application web côté client (Javascript)
   qui, étant donnée une spécification complète sous format JSON d'un automate fini,
   le dessinera sur la même page en SVG.
   
  +Le produit minimum viable est l'application répondant au cas d'utilisation
  +principal tel qu'elle puisse être développée le plus rapidement possible.
  +
   L'application se compose de :
   
  -- un champ de texte de taille fixe sur la gauche invite l'utilisateur à écrire
  +- un champ de texte de taille fixe sur la gauche qui invite l'utilisateur à écrire
   le JSON
  -- un canvas de taille fixe sur la droite acceuille l'automate
  -- un bouton en haut propose de dessiner l'automate
  +- un canvas de taille fixe sur la droite acceuillant l'automate
  +- un bouton en haut permettant de dessiner l'automate
   
   De plus :
   
   - le positionnement des états sur le canvas est donné par l'utilisateur
   - les transitions sont représentées par des fléches droites
  -- le positionnement des étiquettes est choisi naïvement
  +- le positionnement des étiquettes des transitions est choisi naïvement
   
   ==== Produit attendu
   
   L'application soumise à l'issue du projet devra, à partir du produit minimum
   viable, posséder les fonctionnalités suivantes :
   
  -- Une interface adaptative
  -- Un canvas de taille variable
  -- Un algorithme infére la position des états si omise
  -- Les flêches sont des courbes et les étiquettes sont lisibles
  -- Les transitions d'états identiques sont regroupées sous une même flêche
  +- Une interface adaptative : pas prioritaire
  +- Un canvas de taille variable : indispensable
  +- Un algorithme infére la position des états si omise : oui
  +- Les flêches sont des courbes et les étiquettes sont lisibles : attention
  +- Les transitions d'états identiques sont regroupées sous une même flêche : oui
   - Le langage de description de l'automate est le plus simple possible pour
  -l'utilisateur (pas/peu de caractères spéciaux, inférence des états, etc.)
  +l'utilisateur (peu de structures imbriquées, attention aux caractères spéciaux, etc.)
   - Les erreurs dans la description sont repérées et proprement signalées
   
   ==== Améliorations envisageables
  
positive.code: 
  ==== Passage au SVG
  
  A partir du l'objet dessinable, on injecte des élements SVG dans le DOM pour
  afficher l'automate à l'écran.
  
  Manipuler le DOM peut rapidement devenir coûteux ; toutes les optimisations
  devraient être effectuées en amont pour qu'il n'y ait pas nécessité de
  rechercher l'information dans l'arbre. Pour illustrer le propos, imaginons
  qu'il faille dessiner une flêche entre deux le centre de deux cercles déjà
  dessinés. Il est préférable de connaître à l'avance les coordonnées des points
  qui composent la flêches plutôt que d'interroger le DOM sur la position des
  cercles à cette fin.
  
  En parvenant à réduire cette étape au maximum, on peut très facilement la
  remplacer par une autre chargée d'écrire un fichier SVG plutôt que de
  
negative.code: 
  ----
  [ {
    type: "automata"
    symbols: [
      { value: "a" }, { value: "b" }
    ],
  