# Tâche: revoir complètement l'application pour pouvoir intégrer presque directement le fichier produit par schema_builder

## build_schema.py

build_schema.py ajoute les champs non compris dans le source de Kitty afin de fournir
les informations à l'application:

Groupes:

* "icon": icône associée au groupe

Options:

* "app_type": Equivalent de type dans schema.py
  * font
  * int
  * float
  * bool
  * font_features
  * modify_font
  * text
  * color
  * select
* "label": Nom du champ (pour affichage)
* "allow_auto": bool (pour le type font uniquement)
* min, max, step: Pris en compte pour les types numériques (int float). Si ni min, ni max ne
  sont définis, le nombre est quelconque, sinon la borne définie est utilisée pour contrôle.
  Si step est défini, les valeurs autorisées sont min+n*step jusqu'à max (n>=0)

Lors de la création du fichier de description, les nouveaux champs sont à "UNKNOWN", sauf s'ils sont déjà définis
dans le fichier de paramétrage de l'application, auquel cas, la vraie valeur déjà dans le fichier remplace "UNKNOWN".
Le programmeur de l'application n'aura plus qu'à contrôler et remplacer les UNKNOWN restants par les valeurs correctes.

Le fichier créé par build_schema.py remplace celui de l'application (avec sauvegarde de l'ancien, sauvegarde dans .gitignore)

## Application

Lors de la lecture du fichier de configuration, s'il reste ne serait-ce qu'un seul UNKNOWN (sensible à la casse), l'application
plante en indiquant que le programmeur doit corriger le fichier.

Utiliser les noms de champs créés par build_schema en priorité à la place de ceux dans le fichier schema.py.
Remettre le fichier schema.py en json pour simplifier la création/comparaison si c'est plus simple.
Par contre renforcer la détection des traductions puisqu'on ne passe probablement plus par "_()".

Utiliser les informations supplémentaires pour la création du fichier de configuration.
La lecture du fichier de configuration doit lire et conserver aussi les commentaires (c'est déjà fait actuellement)
Si un champ à écrire est à la valeur par défaut, le mettre en commentaire dans le fichier.

Les champs sont écrits dans l'ordre de définition créé par build_schema.

Revoir la disposition de l'écran de la fenêtre principale pour un usage simple.

Revoir le fichier README.md pour le côté utilisateur (traduire les parties en français),
créer un fichier CODING.md à l'intention des programmeurs désireux de modifier le programme.
Bien décrite le processus de description des options (création du schéma depuis le source
de Kitty, modification du fichier produit pour verifier les valeurs et remplacer les UNKNOWN)

Créer un plan de modification.
