{
  "name": "create_excel",
  "description": "Crée un classeur Excel (.xlsx) professionnel aux couleurs UQO : formules vivantes, cellules d'hypothèses en bleu, feuille Lisez-moi, graphiques. Tolérant : accepte '425 000 $', '+3 %', 'Oui'/'Non', 'bon'. Deux modes.\n(1) `template` + `params` :\n- comparables_ajustes : {sujet:{adresse, superficie, terrain, garage:'Oui', etat:'bon', …}, taux:{superficie:120, terrain:8, garage:15000, etat:10000} ($/unité ou $/cran), echelles:{etat:['moyen','bon','très bon']}, taux_temps_mensuel:0.005, comparables:[{adresse, prix, date, mois, superficie, terrain, garage, etat, …}]} → les ajustements sont CALCULÉS par formules (sujet − comparable) × taux. Sans `taux`, donne directement des ajustements en $ : comparables:[{adresse, prix, temps:'+2 %', ajustements:{Superficie:-5000}, caracteristiques:{Garage:'Oui'}}].\n- methode_du_cout : {adresse, superficie_m2, cout_unitaire_m2, couts_indirects_pct, profit_pct, age_effectif, duree_vie_economique, valeur_terrain, ameliorations_site, depreciation_fonctionnelle, depreciation_economique}.\n- age_vie : {cout_neuf, age_effectif, duree_vie_economique}.\n- tableau_amortissement : {capital, taux_annuel, amortissement_ans, versements_par_an}.\n- six_fonctions : {taux, periodes_max}.\n- sensibilite : {superficie_m2, cout_unitaire_m2, duree_vie_economique, valeur_terrain, ages:[…], variations:[…]}.\n(2) `spec` libre : {filename, objective, sheets:[{name, title, inputs:[{cell:'B4', label, value, format:'currency|percent|number|integer|area|text', name}], tables:[{anchor:'A8', columns:[{header,type}] ou ['Col1','Col2'], rows:[[…]] ou [{col:val}], totals:{label, formula}}], charts:[{type:'bar|line|pie', title, categories_range, values_range, anchor}], notes:[…]}]}. Les valeurs commençant par '=' sont des formules (références réelles : la 1re ligne de données d'un tableau ancré en A8 est la ligne 9). Reste compact (≤ 60 lignes par appel).",
  "parameters": {
    "type": "object",
    "properties": {
      "template": { "type": "string", "enum": ["methode_du_cout", "comparables_ajustes", "age_vie", "tableau_amortissement", "six_fonctions", "sensibilite"] },
      "params": { "type": "object", "additionalProperties": true },
      "spec": { "type": "object", "additionalProperties": true },
      "filename": { "type": "string" }
    }
  }
}
