anchor.diff:    ],
     init: [
       #A
  -  ]
  +  ],
     final: [
       #C
     ],
  
positive.code: - Un texte décrivant l'automate, potentiellement de façon incomplète
  - Un objet Javascript correspondant à l'automate (comme objet mathématique)
  - Un objet Javascript appelé dessinable contenant toutes les informations
  nécessaire pour dessiner l'automate à l'aide de primitives
  (formes, styles, positions, tailles)
  - Un document SVG (pas sous forme textuelle mais directement dans le DOM,
  à moins que la sérialisation ne soit proposée)
  
negative.code: 
  Dessiner un graphique en SVG via une description textuelle d'un automate.
  
  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 qui invite l'utilisateur à écrire
  le JSON
  - 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 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 : 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 (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
  