{
  "_lisez_moi": "Contrat des employes. PHP (tools/game-data-manager/employee_contract.php), la page du gestionnaire et Godot (scripts/core/employee_contract.gd) lisent CE fichier: la liste des taches, celle des competences, leurs libelles et leurs bornes n'existent qu'ici. Ce n'est pas une donnee d'auteur editable dans le gestionnaire, c'est le contrat du code. Ajouter une tache ici sans l'executer dans employee.gd ne la ferait pas exister: le controle employee_revolution_check verifie que chaque tache declaree est executee.",
  "contract_version": 1,

  "_affinity": "Choisit la tache: 0 = ne la fait jamais, 5 = sa priorite. Entiers seulement. Elle ne change jamais la vitesse.",
  "affinity": {"min": 0, "max": 5, "default": 0},

  "_speed": "Coefficient d'execution de la tache: 1 = normal, 2 = deux fois plus vite. Il raccourcit le delai de reaction avant de commencer ET la duree du geste (ecrire, cuire, poser). La marche, elle, depend de la competence Allure.",
  "speed": {"min": 0.01, "max": 10, "default": 1},

  "_skill": "Competences passives, entiers de 0 a 10. Chaque competence declare son defaut: 5 est la norme pour celles qui multiplient, 0 pour celles qui donnent une chance. Une competence de genre \"coefficient\" est un multiplicateur pur, avec ses propres bornes: 1 = normal, 2 = deux fois plus, 0,5 = moitie.",
  "skill": {"min": 0, "max": 10},

  "tasks": [
    {"id": "take_order", "group": "hall", "label": "Prise de commande", "short": "CMD",
     "help": "Aller voir un client assis dont la commande n'est pas encore sur l'ardoise, et l'inscrire."},
    {"id": "serve", "group": "hall", "label": "Service à table", "short": "SERV",
     "help": "Porter un plat prêt — sur le four ou sur l'étagère — jusqu'au client qui l'attend."},
    {"id": "bus", "group": "hall", "label": "Débarrassage", "short": "DÉB",
     "help": "Ramasser une assiette sale, encaisser la table et porter l'assiette à la plonge."},
    {"id": "cook", "group": "kitchen", "label": "Cuisson", "short": "CUIS",
     "help": "Prendre une commande de l'ardoise et la cuire en tenant le four jusqu'à la sortie du plat."},
    {"id": "shelve", "group": "kitchen", "label": "Sortie du four → étagère", "short": "ÉTAG",
     "help": "Retirer un plat sorti du four et le ranger sur l'étagère. Un four encombré d'un plat ne cuit rien d'autre."},
    {"id": "season", "group": "kitchen", "label": "Assaisonnement", "short": "ÉPIC",
     "help": "Porter un plat de l'étagère à l'épicerie pour qu'il ressorte supérieur, tant que son client a encore de la patience."},
    {"id": "takeout_restock", "group": "counter", "label": "Remplissage du comptoir", "short": "REMP",
     "help": "Cuisiner au comptoir de rue pour regarnir sa réserve."},
    {"id": "takeout_service", "group": "counter", "label": "Service au comptoir", "short": "COMPT",
     "help": "Se tenir au comptoir de rue et accélérer le service de la file."},
    {"id": "tidy", "group": "kitchen", "label": "Plats orphelins", "short": "ORPH",
     "help": "Un plat que plus personne n'attend: il va sur l'étagère s'il y a de la place, à la poubelle sinon."}
  ],

  "skills": [
    {"id": "pace", "label": "Allure", "kind": "coefficient", "min": 0.01, "max": 10, "default": 1,
     "help": "Vitesse de marche, en multiplicateur pur: 1 = normale, 2 = deux fois plus vite, 0,5 = moitié."},
    {"id": "sight", "label": "Coup d'œil", "default": 5,
     "help": "Vitesse à laquelle il remarque un client qui attend sa commande. Il voit toute la salle; plus le client est loin, plus c'est long. 5 = 420 px par seconde, 10 = ×1,75, 0 = ×0,25."},
    {"id": "charisma", "label": "Charisme", "default": 5,
     "help": "Satisfaction et pourboire des clients qu'il sert lui-même. 5 = neutre, 10 = double, 0 = aucun effet."},
    {"id": "tray", "label": "Plateau", "default": 0,
     "help": "Assiettes portées par voyage: 0–3 = une, 4–7 = deux, 8–10 = trois."},
    {"id": "thrift", "label": "Économie", "default": 0,
     "help": "Chance de ne pas consommer chaque ingrédient d'un plat qu'il cuisine: 4 % par point."},
    {"id": "plating", "label": "Dressage", "default": 0,
     "help": "Chance qu'un plat qu'il cuisine sorte supérieur sans passer par l'épicerie: 3 % par point."},
    {"id": "poise", "label": "Sang-froid", "default": 0,
     "help": "Tant qu'il travaille, les clients de la salle s'impatientent moins vite: 3 % par point. Le meilleur de la brigade compte, pas la somme."},
    {"id": "nose", "label": "Nez", "default": 0,
     "help": "Parmi les commandes les plus anciennes de l'ardoise, il en regarde 1 + Nez et cuit la plus rentable."},
    {"id": "juggling", "label": "Jonglage", "default": 0,
     "help": "Tendance à lancer un 2e plat sur un 2e four libre pendant que le premier finit seul en cuisson autonome. Le plat quitté ralentit, mais les deux sortent plus tôt. 0 = reste toujours à son four; 5 = part dès que c'est rentable; 10 = part même quand le premier y perd deux fois ce que le second y gagne. Sans cuisson autonome, personne ne jongle."},
    {"id": "stamina", "label": "Endurance", "default": 5,
     "help": "Tâches enchaînées avant de fatiguer: 4 + 2 par point. Fatigué, il ralentit de 30 % jusqu'à ce qu'il souffle."}
  ],

  "_specialties": "recipe_affinity reste: un coefficient par plat, qui multiplie la vitesse de TOUTE tache portant sur ce plat (cuisson, assaisonnement, service, rangement, comptoir)."
}
