{"name":"open-bp","transport":"Streamable HTTP","endpoint":"https://open-bp.com/api/mcp","method":"POST","authenticationRequired":true,"protectedResourceMetadata":"https://open-bp.com/.well-known/oauth-protected-resource/api/mcp","tools":[{"name":"account_delete","description":"Programmer ou annuler la suppression du compte après confirmation de son email. Exige une session créée depuis moins de dix minutes et vérifie les engagements Stripe.","scope":"account","scopeLabel":"Gérer les données et les sessions du compte","readOnly":false,"destructive":true,"idempotent":false,"inputSchema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"action":{"type":"string","enum":["request","cancel"]},"email":{"type":"string","maxLength":254,"format":"email","pattern":"^(?!\\.)(?!.*\\.\\.)([A-Za-z0-9_'+\\-\\.]*)[A-Za-z0-9_+-]@([A-Za-z0-9][A-Za-z0-9\\-]*\\.)+[A-Za-z]{2,}$"},"confirmed":{"type":"boolean","const":true}},"required":["action","email","confirmed"],"additionalProperties":false}},{"name":"account_export","description":"Exporter les données personnelles et tous les projets du propriétaire en JSON privé, sans secret de connexion.","scope":"account","scopeLabel":"Gérer les données et les sessions du compte","readOnly":true,"destructive":false,"idempotent":true,"inputSchema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{},"additionalProperties":false}},{"name":"account_get","description":"Consulter le compte, les connexions disponibles et la suppression éventuellement programmée.","scope":"account","scopeLabel":"Gérer les données et les sessions du compte","readOnly":true,"destructive":false,"idempotent":true,"inputSchema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{},"additionalProperties":false}},{"name":"account_link_provider","description":"Préparer l’association de Google ou incwo au compte. Ouvrir le lien et confirmer chez le fournisseur pour terminer l’association.","scope":"account","scopeLabel":"Gérer les données et les sessions du compte","readOnly":true,"destructive":false,"idempotent":true,"inputSchema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"provider":{"type":"string","enum":["google","incwo"]}},"required":["provider"],"additionalProperties":false}},{"name":"account_revoke_sessions","description":"Déconnecter les autres sessions du compte. Leurs clés MCP sont également supprimées.","scope":"account","scopeLabel":"Gérer les données et les sessions du compte","readOnly":false,"destructive":true,"idempotent":false,"inputSchema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"confirmed":{"type":"boolean","const":true}},"required":["confirmed"],"additionalProperties":false}},{"name":"account_sign_out","description":"Déconnecter la session qui a autorisé l’assistant et révoquer ses clés et autorisations actives. Exige une confirmation explicite.","scope":"account","scopeLabel":"Gérer les données et les sessions du compte","readOnly":false,"destructive":true,"idempotent":false,"inputSchema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"confirmed":{"type":"boolean","const":true}},"required":["confirmed"],"additionalProperties":false}},{"name":"admin_accounts","description":"Rechercher les comptes et consulter leurs droits et dernières attributions. Réservé aux comptes incwo vérifiés.","scope":"admin","scopeLabel":"Administrer les abonnements","readOnly":true,"destructive":false,"idempotent":true,"inputSchema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"query":{"type":"string","maxLength":254},"page":{"type":"integer","minimum":1,"maximum":100000}},"additionalProperties":false}},{"name":"admin_grant_subscription","description":"Attribuer un abonnement temporaire avec une durée et un historique, sans paiement Stripe. Réservé aux comptes incwo vérifiés.","scope":"admin","scopeLabel":"Administrer les abonnements","readOnly":false,"destructive":true,"idempotent":false,"inputSchema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"userId":{"type":"string","minLength":1,"maxLength":120},"plan":{"type":"string","enum":["decouverte","essentiel","plus","cabinet"]},"days":{"type":"integer","minimum":1,"maximum":365}},"required":["userId","plan","days"],"additionalProperties":false}},{"name":"admin_revoke_subscription","description":"Retirer une attribution temporaire et retrouver les droits facturés. Réservé aux comptes incwo vérifiés.","scope":"admin","scopeLabel":"Administrer les abonnements","readOnly":false,"destructive":true,"idempotent":false,"inputSchema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"userId":{"type":"string","minLength":1,"maxLength":120}},"required":["userId"],"additionalProperties":false}},{"name":"assistance_history","description":"Lire les propositions de rédaction, les revues et leurs quotas.","scope":"read","scopeLabel":"Lire les projets","readOnly":true,"destructive":false,"idempotent":true,"inputSchema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"projectId":{"type":"string","minLength":1,"maxLength":120}},"required":["projectId"],"additionalProperties":false}},{"name":"assistance_request","description":"Demander une rédaction ou une revue à OpenAI après consentement, avec quota et identifiant de reprise. Les textes restent des propositions.","scope":"write","scopeLabel":"Modifier les projets et les partages","readOnly":false,"destructive":false,"idempotent":true,"inputSchema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"requestId":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"kind":{"type":"string","enum":["assist","review"]},"section":{"type":"string","enum":["presentation","market","operations","acquisition","funding","risks"]},"instruction":{"default":"","type":"string","maxLength":3000},"expectedVersion":{"type":"integer","exclusiveMinimum":0,"maximum":9007199254740991},"consent":{"type":"boolean","const":true},"draft":{"type":"object","properties":{"name":{"type":"string","minLength":1,"maxLength":120},"clientName":{"type":"string","maxLength":120},"input":{"type":"object","properties":{"start":{"type":"string","pattern":"^20\\d{2}-(0[1-9]|1[0-2])$"},"months":{"type":"integer","minimum":12,"maximum":60},"revenues":{"maxItems":30,"type":"array","items":{"type":"object","properties":{"id":{"type":"string","minLength":1},"name":{"type":"string","minLength":1,"maxLength":120},"kind":{"type":"string","enum":["service","product","subscription"]},"quantity":{"type":"string","pattern":"^\\d+(\\.\\d{1,6})?$"},"evolution":{"type":"object","properties":{"quantity":{"type":"object","properties":{"ramp":{"type":"object","properties":{"target":{"type":"string","pattern":"^\\d+(\\.\\d{1,6})?$"},"endMonth":{"type":"integer","minimum":2,"maximum":60}},"required":["target","endMonth"],"additionalProperties":false},"overrides":{"type":"object","propertyNames":{"type":"string","pattern":"^(?:[1-9]|[1-5][0-9]|60)$"},"additionalProperties":{"type":"string","pattern":"^\\d+(\\.\\d{1,6})?$"}}},"additionalProperties":false},"price":{"type":"object","properties":{"ramp":{"type":"object","properties":{"target":{"type":"string","pattern":"^\\d+(\\.\\d{1,6})?$"},"endMonth":{"type":"integer","minimum":2,"maximum":60}},"required":["target","endMonth"],"additionalProperties":false},"overrides":{"type":"object","propertyNames":{"type":"string","pattern":"^(?:[1-9]|[1-5][0-9]|60)$"},"additionalProperties":{"type":"string","pattern":"^\\d+(\\.\\d{1,6})?$"}}},"additionalProperties":false},"unitCost":{"type":"object","properties":{"ramp":{"type":"object","properties":{"target":{"type":"string","pattern":"^\\d+(\\.\\d{1,6})?$"},"endMonth":{"type":"integer","minimum":2,"maximum":60}},"required":["target","endMonth"],"additionalProperties":false},"overrides":{"type":"object","propertyNames":{"type":"string","pattern":"^(?:[1-9]|[1-5][0-9]|60)$"},"additionalProperties":{"type":"string","pattern":"^\\d+(\\.\\d{1,6})?$"}}},"additionalProperties":false},"costRatio":{"type":"object","properties":{"ramp":{"type":"object","properties":{"target":{"type":"string","pattern":"^\\d+(\\.\\d{1,6})?$"},"endMonth":{"type":"integer","minimum":2,"maximum":60}},"required":["target","endMonth"],"additionalProperties":false},"overrides":{"type":"object","propertyNames":{"type":"string","pattern":"^(?:[1-9]|[1-5][0-9]|60)$"},"additionalProperties":{"type":"string","pattern":"^\\d+(\\.\\d{1,6})?$"}}},"additionalProperties":false},"newCustomers":{"type":"object","properties":{"ramp":{"type":"object","properties":{"target":{"type":"string","pattern":"^\\d+(\\.\\d{1,6})?$"},"endMonth":{"type":"integer","minimum":2,"maximum":60}},"required":["target","endMonth"],"additionalProperties":false},"overrides":{"type":"object","propertyNames":{"type":"string","pattern":"^(?:[1-9]|[1-5][0-9]|60)$"},"additionalProperties":{"type":"string","pattern":"^\\d+(\\.\\d{1,6})?$"}}},"additionalProperties":false},"churn":{"type":"object","properties":{"ramp":{"type":"object","properties":{"target":{"type":"string","pattern":"^\\d+(\\.\\d{1,6})?$"},"endMonth":{"type":"integer","minimum":2,"maximum":60}},"required":["target","endMonth"],"additionalProperties":false},"overrides":{"type":"object","propertyNames":{"type":"string","pattern":"^(?:[1-9]|[1-5][0-9]|60)$"},"additionalProperties":{"type":"string","pattern":"^\\d+(\\.\\d{1,6})?$"}}},"additionalProperties":false}},"additionalProperties":false},"price":{"type":"string","pattern":"^\\d+(\\.\\d{1,6})?$"},"unitCost":{"type":"string","pattern":"^\\d+(\\.\\d{1,6})?$"},"costRatio":{"type":"string","pattern":"^\\d+(\\.\\d{1,6})?$"},"newCustomers":{"default":"0","type":"string","pattern":"^\\d+(\\.\\d{1,6})?$"},"churn":{"default":"0","type":"string","pattern":"^\\d+(\\.\\d{1,6})?$"},"vat":{"type":"string","pattern":"^\\d+(\\.\\d{1,6})?$"},"costVat":{"type":"string","pattern":"^\\d+(\\.\\d{1,6})?$"},"costVatTiming":{"type":"string","enum":["invoice","payment"]},"vatTiming":{"type":"string","enum":["invoice","collection"]}},"required":["id","name","kind","quantity","price","unitCost","costRatio","vat"]}},"expenses":{"maxItems":50,"type":"array","items":{"type":"object","properties":{"id":{"type":"string"},"name":{"type":"string","minLength":1,"maxLength":120},"amount":{"type":"string","pattern":"^\\d+(\\.\\d{1,6})?$"},"evolution":{"type":"object","properties":{"amount":{"type":"object","properties":{"ramp":{"type":"object","properties":{"target":{"type":"string","pattern":"^\\d+(\\.\\d{1,6})?$"},"endMonth":{"type":"integer","minimum":2,"maximum":60}},"required":["target","endMonth"],"additionalProperties":false},"overrides":{"type":"object","propertyNames":{"type":"string","pattern":"^(?:[1-9]|[1-5][0-9]|60)$"},"additionalProperties":{"type":"string","pattern":"^\\d+(\\.\\d{1,6})?$"}}},"additionalProperties":false}},"additionalProperties":false},"vat":{"type":"string","pattern":"^\\d+(\\.\\d{1,6})?$"},"vatTiming":{"type":"string","enum":["invoice","payment"]},"standardCostId":{"type":"string","pattern":"^[a-z][a-z0-9-]{0,59}$"},"costEstimate":{"oneOf":[{"type":"object","properties":{"method":{"type":"string","const":"annual"},"annualAmount":{"type":"string","pattern":"^\\d+(\\.\\d{1,6})?$"}},"required":["method","annualAmount"],"additionalProperties":false},{"type":"object","properties":{"method":{"type":"string","const":"area"},"surface":{"type":"string","pattern":"^\\d+(\\.\\d{1,6})?$"},"annualRate":{"type":"string","pattern":"^\\d+(\\.\\d{1,6})?$"}},"required":["method","surface","annualRate"],"additionalProperties":false},{"type":"object","properties":{"method":{"type":"string","const":"energy"},"surface":{"type":"string","pattern":"^\\d+(\\.\\d{1,6})?$"},"consumption":{"type":"string","pattern":"^\\d+(\\.\\d{1,6})?$"},"kwhPrice":{"type":"string","pattern":"^\\d+(\\.\\d{1,6})?$"},"annualSubscription":{"type":"string","pattern":"^\\d+(\\.\\d{1,6})?$"}},"required":["method","surface","consumption","kwhPrice","annualSubscription"],"additionalProperties":false},{"type":"object","properties":{"method":{"type":"string","const":"revenue"},"annualRevenue":{"type":"string","pattern":"^\\d+(\\.\\d{1,6})?$"},"rate":{"type":"string","pattern":"^\\d+(\\.\\d{1,6})?$"}},"required":["method","annualRevenue","rate"],"additionalProperties":false},{"type":"object","properties":{"method":{"type":"string","const":"units"},"quantity":{"type":"string","pattern":"^\\d+(\\.\\d{1,6})?$"},"monthlyRate":{"type":"string","pattern":"^\\d+(\\.\\d{1,6})?$"}},"required":["method","quantity","monthlyRate"],"additionalProperties":false}]}},"required":["id","name","amount","vat"]}},"payroll":{"maxItems":30,"type":"array","items":{"type":"object","properties":{"id":{"type":"string"},"name":{"type":"string","minLength":1,"maxLength":120},"gross":{"type":"string","pattern":"^\\d+(\\.\\d{1,6})?$"},"count":{"type":"integer","minimum":1,"maximum":100},"startMonth":{"type":"integer","minimum":1,"maximum":60},"employerRate":{"type":"string","pattern":"^\\d+(\\.\\d{1,6})?$"}},"required":["id","name","gross","count","startMonth","employerRate"]}},"asset":{"type":"object","properties":{"amount":{"type":"string","pattern":"^\\d+(\\.\\d{1,6})?$"},"lifeMonths":{"type":"integer","minimum":1,"maximum":240},"vat":{"type":"string","pattern":"^\\d+(\\.\\d{1,6})?$"}},"required":["amount","lifeMonths","vat"]},"financing":{"type":"object","properties":{"equity":{"type":"string","pattern":"^\\d+(\\.\\d{1,6})?$"},"loan":{"type":"string","pattern":"^\\d+(\\.\\d{1,6})?$"},"annualRate":{"type":"string","pattern":"^\\d+(\\.\\d{1,6})?$"},"termMonths":{"type":"integer","minimum":1,"maximum":240}},"required":["equity","loan","annualRate","termMonths"]},"stock":{"type":"object","properties":{"initialPurchase":{"type":"string","pattern":"^\\d+(\\.\\d{1,6})?$"},"enabled":{"type":"boolean"},"vat":{"type":"string","pattern":"^\\d+(\\.\\d{1,6})?$"}},"required":["initialPurchase","enabled","vat"]},"collectionDelay":{"type":"integer","minimum":0,"maximum":3},"supplierDelay":{"type":"integer","minimum":0,"maximum":3},"tax":{"type":"object","properties":{"vatEnabled":{"type":"boolean"},"corporateRate":{"type":"string","pattern":"^\\d+(\\.\\d{1,6})?$"},"profile":{"type":"string","enum":["legacy","france-is"]},"reducedRateEligible":{"type":"boolean"},"capitalPaid":{"type":"boolean"},"ownershipEligible":{"type":"boolean"}},"required":["vatEnabled","corporateRate"]},"capacity":{"type":"object","properties":{"hoursPerMonth":{"type":"string","pattern":"^\\d+(\\.\\d{1,6})?$"},"minutesPerService":{"type":"string","pattern":"^\\d+(\\.\\d{1,6})?$"}},"required":["hoursPerMonth","minutesPerService"]}},"required":["start","months","revenues","expenses","payroll","asset","financing","stock","collectionDelay","supplierDelay","tax","capacity"]},"document":{"type":"object","properties":{"presentation":{"type":"string","maxLength":15000},"market":{"type":"string","maxLength":15000},"operations":{"type":"string","maxLength":15000},"acquisition":{"type":"string","maxLength":15000},"funding":{"type":"string","maxLength":15000},"risks":{"type":"string","maxLength":15000}},"required":["presentation","market","operations"]},"scenario":{"type":"object","properties":{"name":{"type":"string","minLength":1,"maxLength":100},"salesMultiplier":{"type":"string","pattern":"^\\d+(\\.\\d{1,6})?$"},"hiringShift":{"type":"integer","minimum":-36,"maximum":36},"revenueOverrides":{"type":"object","propertyNames":{"type":"string","minLength":1,"maxLength":120},"additionalProperties":{"type":"object","properties":{"quantity":{"type":"string","pattern":"^\\d+(\\.\\d{1,6})?$"},"price":{"type":"string","pattern":"^\\d+(\\.\\d{1,6})?$"},"newCustomers":{"type":"string","pattern":"^\\d+(\\.\\d{1,6})?$"},"churn":{"type":"string","pattern":"^\\d+(\\.\\d{1,6})?$"}},"additionalProperties":false}},"payrollShifts":{"type":"object","propertyNames":{"type":"string","minLength":1,"maxLength":120},"additionalProperties":{"type":"integer","minimum":-36,"maximum":36}},"collectionDelay":{"type":"integer","minimum":0,"maximum":3},"supplierDelay":{"type":"integer","minimum":0,"maximum":3}},"required":["name","salesMultiplier","hiringShift"],"additionalProperties":false},"scenarios":{"maxItems":19,"type":"array","items":{"type":"object","properties":{"name":{"type":"string","minLength":1,"maxLength":100},"salesMultiplier":{"type":"string","pattern":"^\\d+(\\.\\d{1,6})?$"},"hiringShift":{"type":"integer","minimum":-36,"maximum":36},"revenueOverrides":{"type":"object","propertyNames":{"type":"string","minLength":1,"maxLength":120},"additionalProperties":{"type":"object","properties":{"quantity":{"type":"string","pattern":"^\\d+(\\.\\d{1,6})?$"},"price":{"type":"string","pattern":"^\\d+(\\.\\d{1,6})?$"},"newCustomers":{"type":"string","pattern":"^\\d+(\\.\\d{1,6})?$"},"churn":{"type":"string","pattern":"^\\d+(\\.\\d{1,6})?$"}},"additionalProperties":false}},"payrollShifts":{"type":"object","propertyNames":{"type":"string","minLength":1,"maxLength":120},"additionalProperties":{"type":"integer","minimum":-36,"maximum":36}},"collectionDelay":{"type":"integer","minimum":0,"maximum":3},"supplierDelay":{"type":"integer","minimum":0,"maximum":3},"id":{"type":"string","minLength":1,"maxLength":120}},"required":["name","salesMultiplier","hiringShift","id"],"additionalProperties":false}},"assumptions":{"maxItems":400,"type":"array","items":{"type":"object","properties":{"path":{"type":"string","minLength":1,"maxLength":240},"label":{"type":"string","minLength":1,"maxLength":240},"status":{"type":"string","enum":["missing","example","estimate","confirmed"]},"source":{"type":"string","maxLength":1500},"note":{"type":"string","maxLength":3000}},"required":["path","label","status","source","note"],"additionalProperties":false}}},"required":["name","input","document","scenario"]},"projectId":{"type":"string","minLength":1,"maxLength":120}},"required":["requestId","kind","expectedVersion","consent","projectId"],"additionalProperties":false}},{"name":"assumption_update","description":"Modifier l’état, la source et la note d’une hypothèse existante. Une confirmation exige une origine ou une note. commit=true enregistre la modification.","scope":"write","scopeLabel":"Modifier les projets et les partages","readOnly":false,"destructive":true,"idempotent":false,"inputSchema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"projectId":{"type":"string","minLength":1,"maxLength":120},"expectedVersion":{"type":"integer","exclusiveMinimum":0,"maximum":2147483646},"draft":{"type":"object","properties":{"name":{"type":"string","minLength":1,"maxLength":120},"clientName":{"type":"string","maxLength":120},"input":{"type":"object","properties":{"start":{"type":"string","pattern":"^20\\d{2}-(0[1-9]|1[0-2])$"},"months":{"type":"integer","minimum":12,"maximum":60},"revenues":{"maxItems":30,"type":"array","items":{"type":"object","properties":{"id":{"type":"string","minLength":1},"name":{"type":"string","minLength":1,"maxLength":120},"kind":{"type":"string","enum":["service","product","subscription"]},"quantity":{"type":"string","pattern":"^\\d+(\\.\\d{1,6})?$"},"evolution":{"type":"object","properties":{"quantity":{"type":"object","properties":{"ramp":{"type":"object","properties":{"target":{"type":"string","pattern":"^\\d+(\\.\\d{1,6})?$"},"endMonth":{"type":"integer","minimum":2,"maximum":60}},"required":["target","endMonth"],"additionalProperties":false},"overrides":{"type":"object","propertyNames":{"type":"string","pattern":"^(?:[1-9]|[1-5][0-9]|60)$"},"additionalProperties":{"type":"string","pattern":"^\\d+(\\.\\d{1,6})?$"}}},"additionalProperties":false},"price":{"type":"object","properties":{"ramp":{"type":"object","properties":{"target":{"type":"string","pattern":"^\\d+(\\.\\d{1,6})?$"},"endMonth":{"type":"integer","minimum":2,"maximum":60}},"required":["target","endMonth"],"additionalProperties":false},"overrides":{"type":"object","propertyNames":{"type":"string","pattern":"^(?:[1-9]|[1-5][0-9]|60)$"},"additionalProperties":{"type":"string","pattern":"^\\d+(\\.\\d{1,6})?$"}}},"additionalProperties":false},"unitCost":{"type":"object","properties":{"ramp":{"type":"object","properties":{"target":{"type":"string","pattern":"^\\d+(\\.\\d{1,6})?$"},"endMonth":{"type":"integer","minimum":2,"maximum":60}},"required":["target","endMonth"],"additionalProperties":false},"overrides":{"type":"object","propertyNames":{"type":"string","pattern":"^(?:[1-9]|[1-5][0-9]|60)$"},"additionalProperties":{"type":"string","pattern":"^\\d+(\\.\\d{1,6})?$"}}},"additionalProperties":false},"costRatio":{"type":"object","properties":{"ramp":{"type":"object","properties":{"target":{"type":"string","pattern":"^\\d+(\\.\\d{1,6})?$"},"endMonth":{"type":"integer","minimum":2,"maximum":60}},"required":["target","endMonth"],"additionalProperties":false},"overrides":{"type":"object","propertyNames":{"type":"string","pattern":"^(?:[1-9]|[1-5][0-9]|60)$"},"additionalProperties":{"type":"string","pattern":"^\\d+(\\.\\d{1,6})?$"}}},"additionalProperties":false},"newCustomers":{"type":"object","properties":{"ramp":{"type":"object","properties":{"target":{"type":"string","pattern":"^\\d+(\\.\\d{1,6})?$"},"endMonth":{"type":"integer","minimum":2,"maximum":60}},"required":["target","endMonth"],"additionalProperties":false},"overrides":{"type":"object","propertyNames":{"type":"string","pattern":"^(?:[1-9]|[1-5][0-9]|60)$"},"additionalProperties":{"type":"string","pattern":"^\\d+(\\.\\d{1,6})?$"}}},"additionalProperties":false},"churn":{"type":"object","properties":{"ramp":{"type":"object","properties":{"target":{"type":"string","pattern":"^\\d+(\\.\\d{1,6})?$"},"endMonth":{"type":"integer","minimum":2,"maximum":60}},"required":["target","endMonth"],"additionalProperties":false},"overrides":{"type":"object","propertyNames":{"type":"string","pattern":"^(?:[1-9]|[1-5][0-9]|60)$"},"additionalProperties":{"type":"string","pattern":"^\\d+(\\.\\d{1,6})?$"}}},"additionalProperties":false}},"additionalProperties":false},"price":{"type":"string","pattern":"^\\d+(\\.\\d{1,6})?$"},"unitCost":{"type":"string","pattern":"^\\d+(\\.\\d{1,6})?$"},"costRatio":{"type":"string","pattern":"^\\d+(\\.\\d{1,6})?$"},"newCustomers":{"default":"0","type":"string","pattern":"^\\d+(\\.\\d{1,6})?$"},"churn":{"default":"0","type":"string","pattern":"^\\d+(\\.\\d{1,6})?$"},"vat":{"type":"string","pattern":"^\\d+(\\.\\d{1,6})?$"},"costVat":{"type":"string","pattern":"^\\d+(\\.\\d{1,6})?$"},"costVatTiming":{"type":"string","enum":["invoice","payment"]},"vatTiming":{"type":"string","enum":["invoice","collection"]}},"required":["id","name","kind","quantity","price","unitCost","costRatio","vat"]}},"expenses":{"maxItems":50,"type":"array","items":{"type":"object","properties":{"id":{"type":"string"},"name":{"type":"string","minLength":1,"maxLength":120},"amount":{"type":"string","pattern":"^\\d+(\\.\\d{1,6})?$"},"evolution":{"type":"object","properties":{"amount":{"type":"object","properties":{"ramp":{"type":"object","properties":{"target":{"type":"string","pattern":"^\\d+(\\.\\d{1,6})?$"},"endMonth":{"type":"integer","minimum":2,"maximum":60}},"required":["target","endMonth"],"additionalProperties":false},"overrides":{"type":"object","propertyNames":{"type":"string","pattern":"^(?:[1-9]|[1-5][0-9]|60)$"},"additionalProperties":{"type":"string","pattern":"^\\d+(\\.\\d{1,6})?$"}}},"additionalProperties":false}},"additionalProperties":false},"vat":{"type":"string","pattern":"^\\d+(\\.\\d{1,6})?$"},"vatTiming":{"type":"string","enum":["invoice","payment"]},"standardCostId":{"type":"string","pattern":"^[a-z][a-z0-9-]{0,59}$"},"costEstimate":{"oneOf":[{"type":"object","properties":{"method":{"type":"string","const":"annual"},"annualAmount":{"type":"string","pattern":"^\\d+(\\.\\d{1,6})?$"}},"required":["method","annualAmount"],"additionalProperties":false},{"type":"object","properties":{"method":{"type":"string","const":"area"},"surface":{"type":"string","pattern":"^\\d+(\\.\\d{1,6})?$"},"annualRate":{"type":"string","pattern":"^\\d+(\\.\\d{1,6})?$"}},"required":["method","surface","annualRate"],"additionalProperties":false},{"type":"object","properties":{"method":{"type":"string","const":"energy"},"surface":{"type":"string","pattern":"^\\d+(\\.\\d{1,6})?$"},"consumption":{"type":"string","pattern":"^\\d+(\\.\\d{1,6})?$"},"kwhPrice":{"type":"string","pattern":"^\\d+(\\.\\d{1,6})?$"},"annualSubscription":{"type":"string","pattern":"^\\d+(\\.\\d{1,6})?$"}},"required":["method","surface","consumption","kwhPrice","annualSubscription"],"additionalProperties":false},{"type":"object","properties":{"method":{"type":"string","const":"revenue"},"annualRevenue":{"type":"string","pattern":"^\\d+(\\.\\d{1,6})?$"},"rate":{"type":"string","pattern":"^\\d+(\\.\\d{1,6})?$"}},"required":["method","annualRevenue","rate"],"additionalProperties":false},{"type":"object","properties":{"method":{"type":"string","const":"units"},"quantity":{"type":"string","pattern":"^\\d+(\\.\\d{1,6})?$"},"monthlyRate":{"type":"string","pattern":"^\\d+(\\.\\d{1,6})?$"}},"required":["method","quantity","monthlyRate"],"additionalProperties":false}]}},"required":["id","name","amount","vat"]}},"payroll":{"maxItems":30,"type":"array","items":{"type":"object","properties":{"id":{"type":"string"},"name":{"type":"string","minLength":1,"maxLength":120},"gross":{"type":"string","pattern":"^\\d+(\\.\\d{1,6})?$"},"count":{"type":"integer","minimum":1,"maximum":100},"startMonth":{"type":"integer","minimum":1,"maximum":60},"employerRate":{"type":"string","pattern":"^\\d+(\\.\\d{1,6})?$"}},"required":["id","name","gross","count","startMonth","employerRate"]}},"asset":{"type":"object","properties":{"amount":{"type":"string","pattern":"^\\d+(\\.\\d{1,6})?$"},"lifeMonths":{"type":"integer","minimum":1,"maximum":240},"vat":{"type":"string","pattern":"^\\d+(\\.\\d{1,6})?$"}},"required":["amount","lifeMonths","vat"]},"financing":{"type":"object","properties":{"equity":{"type":"string","pattern":"^\\d+(\\.\\d{1,6})?$"},"loan":{"type":"string","pattern":"^\\d+(\\.\\d{1,6})?$"},"annualRate":{"type":"string","pattern":"^\\d+(\\.\\d{1,6})?$"},"termMonths":{"type":"integer","minimum":1,"maximum":240}},"required":["equity","loan","annualRate","termMonths"]},"stock":{"type":"object","properties":{"initialPurchase":{"type":"string","pattern":"^\\d+(\\.\\d{1,6})?$"},"enabled":{"type":"boolean"},"vat":{"type":"string","pattern":"^\\d+(\\.\\d{1,6})?$"}},"required":["initialPurchase","enabled","vat"]},"collectionDelay":{"type":"integer","minimum":0,"maximum":3},"supplierDelay":{"type":"integer","minimum":0,"maximum":3},"tax":{"type":"object","properties":{"vatEnabled":{"type":"boolean"},"corporateRate":{"type":"string","pattern":"^\\d+(\\.\\d{1,6})?$"},"profile":{"type":"string","enum":["legacy","france-is"]},"reducedRateEligible":{"type":"boolean"},"capitalPaid":{"type":"boolean"},"ownershipEligible":{"type":"boolean"}},"required":["vatEnabled","corporateRate"]},"capacity":{"type":"object","properties":{"hoursPerMonth":{"type":"string","pattern":"^\\d+(\\.\\d{1,6})?$"},"minutesPerService":{"type":"string","pattern":"^\\d+(\\.\\d{1,6})?$"}},"required":["hoursPerMonth","minutesPerService"]}},"required":["start","months","revenues","expenses","payroll","asset","financing","stock","collectionDelay","supplierDelay","tax","capacity"]},"document":{"type":"object","properties":{"presentation":{"type":"string","maxLength":15000},"market":{"type":"string","maxLength":15000},"operations":{"type":"string","maxLength":15000},"acquisition":{"type":"string","maxLength":15000},"funding":{"type":"string","maxLength":15000},"risks":{"type":"string","maxLength":15000}},"required":["presentation","market","operations"]},"scenario":{"type":"object","properties":{"name":{"type":"string","minLength":1,"maxLength":100},"salesMultiplier":{"type":"string","pattern":"^\\d+(\\.\\d{1,6})?$"},"hiringShift":{"type":"integer","minimum":-36,"maximum":36},"revenueOverrides":{"type":"object","propertyNames":{"type":"string","minLength":1,"maxLength":120},"additionalProperties":{"type":"object","properties":{"quantity":{"type":"string","pattern":"^\\d+(\\.\\d{1,6})?$"},"price":{"type":"string","pattern":"^\\d+(\\.\\d{1,6})?$"},"newCustomers":{"type":"string","pattern":"^\\d+(\\.\\d{1,6})?$"},"churn":{"type":"string","pattern":"^\\d+(\\.\\d{1,6})?$"}},"additionalProperties":false}},"payrollShifts":{"type":"object","propertyNames":{"type":"string","minLength":1,"maxLength":120},"additionalProperties":{"type":"integer","minimum":-36,"maximum":36}},"collectionDelay":{"type":"integer","minimum":0,"maximum":3},"supplierDelay":{"type":"integer","minimum":0,"maximum":3}},"required":["name","salesMultiplier","hiringShift"],"additionalProperties":false},"scenarios":{"maxItems":19,"type":"array","items":{"type":"object","properties":{"name":{"type":"string","minLength":1,"maxLength":100},"salesMultiplier":{"type":"string","pattern":"^\\d+(\\.\\d{1,6})?$"},"hiringShift":{"type":"integer","minimum":-36,"maximum":36},"revenueOverrides":{"type":"object","propertyNames":{"type":"string","minLength":1,"maxLength":120},"additionalProperties":{"type":"object","properties":{"quantity":{"type":"string","pattern":"^\\d+(\\.\\d{1,6})?$"},"price":{"type":"string","pattern":"^\\d+(\\.\\d{1,6})?$"},"newCustomers":{"type":"string","pattern":"^\\d+(\\.\\d{1,6})?$"},"churn":{"type":"string","pattern":"^\\d+(\\.\\d{1,6})?$"}},"additionalProperties":false}},"payrollShifts":{"type":"object","propertyNames":{"type":"string","minLength":1,"maxLength":120},"additionalProperties":{"type":"integer","minimum":-36,"maximum":36}},"collectionDelay":{"type":"integer","minimum":0,"maximum":3},"supplierDelay":{"type":"integer","minimum":0,"maximum":3},"id":{"type":"string","minLength":1,"maxLength":120}},"required":["name","salesMultiplier","hiringShift","id"],"additionalProperties":false}},"assumptions":{"maxItems":400,"type":"array","items":{"type":"object","properties":{"path":{"type":"string","minLength":1,"maxLength":240},"label":{"type":"string","minLength":1,"maxLength":240},"status":{"type":"string","enum":["missing","example","estimate","confirmed"]},"source":{"type":"string","maxLength":1500},"note":{"type":"string","maxLength":3000}},"required":["path","label","status","source","note"],"additionalProperties":false}}},"required":["name","input","document","scenario"]},"commit":{"default":false,"type":"boolean"},"path":{"type":"string","minLength":1,"maxLength":240},"status":{"type":"string","enum":["missing","example","estimate","confirmed"]},"source":{"type":"string","maxLength":1500},"note":{"type":"string","maxLength":3000}},"required":["projectId","expectedVersion","path","status","source","note"],"additionalProperties":false}},{"name":"billing_cancel_change","description":"Annuler un changement d’offre planifié.","scope":"billing","scopeLabel":"Gérer la facturation","readOnly":false,"destructive":true,"idempotent":false,"inputSchema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"quoteId":{"type":"string","minLength":1,"maxLength":120}},"required":["quoteId"],"additionalProperties":false}},{"name":"billing_checkout","description":"Créer un lien Stripe après choix de l’offre, du rythme et acceptation explicite des conditions. Le lien ne prouve aucun paiement.","scope":"billing","scopeLabel":"Gérer la facturation","readOnly":false,"destructive":false,"idempotent":false,"inputSchema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"plan":{"type":"string","enum":["essentiel","plus","cabinet"]},"interval":{"type":"string","enum":["month","year","prepaid12","prepaid24"]},"termsAccepted":{"type":"boolean","const":true},"termsVersion":{"type":"string","const":"2026-10-13"}},"required":["plan","interval","termsAccepted","termsVersion"],"additionalProperties":false}},{"name":"billing_confirm_change","description":"Confirmer un aperçu de changement d’offre encore valide, après accord sur le montant et la date.","scope":"billing","scopeLabel":"Gérer la facturation","readOnly":false,"destructive":true,"idempotent":false,"inputSchema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"quoteId":{"type":"string","minLength":1,"maxLength":120},"confirmed":{"type":"boolean","const":true}},"required":["quoteId","confirmed"],"additionalProperties":false}},{"name":"billing_portal","description":"Ouvrir le portail Stripe pour les cartes, factures et la résiliation.","scope":"billing","scopeLabel":"Gérer la facturation","readOnly":false,"destructive":false,"idempotent":false,"inputSchema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{},"additionalProperties":false}},{"name":"billing_preview_change","description":"Calculer le prorata et la date d’un changement d’offre, sans le confirmer.","scope":"billing","scopeLabel":"Gérer la facturation","readOnly":false,"destructive":false,"idempotent":false,"inputSchema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"plan":{"type":"string","enum":["essentiel","plus","cabinet"]},"interval":{"type":"string","enum":["month","year"]}},"required":["plan","interval"],"additionalProperties":false}},{"name":"billing_refresh","description":"Rapprocher l’abonnement avec les factures Stripe vérifiées.","scope":"billing","scopeLabel":"Gérer la facturation","readOnly":false,"destructive":false,"idempotent":false,"inputSchema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{},"additionalProperties":false}},{"name":"chat_action_confirm","description":"Confirmer une action précise préparée par le chat. Vérifie la session, les droits initiaux, la version et l’empreinte du brouillon ; une reprise ne répète pas une action terminée.","scope":"write","scopeLabel":"Modifier les projets et les partages","readOnly":false,"destructive":true,"idempotent":false,"inputSchema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"projectId":{"type":"string","minLength":1,"maxLength":120},"actionId":{"type":"string","minLength":1,"maxLength":120},"confirmed":{"type":"boolean","const":true},"fingerprint":{"type":"string","pattern":"^[a-f0-9]{64}$"},"termsAccepted":{"type":"boolean","const":true},"termsVersion":{"type":"string","const":"2026-10-13"}},"required":["projectId","actionId","confirmed","fingerprint"],"additionalProperties":false}},{"name":"chat_actions_list","description":"Consulter les actions préparées par le chat pour votre session, leurs données et leur état.","scope":"read","scopeLabel":"Lire les projets","readOnly":true,"destructive":false,"idempotent":true,"inputSchema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"projectId":{"type":"string","minLength":1,"maxLength":120}},"required":["projectId"],"additionalProperties":false}},{"name":"chat_history","description":"Lire les échanges privés du chat et son quota d’assistance.","scope":"read","scopeLabel":"Lire les projets","readOnly":true,"destructive":false,"idempotent":true,"inputSchema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"projectId":{"type":"string","minLength":1,"maxLength":120}},"required":["projectId"],"additionalProperties":false}},{"name":"chat_send","description":"Envoyer un message et les données du brouillon à OpenAI, avec consentement et quota. Retourne une proposition contrôlée sans enregistrer le projet.","scope":"write","scopeLabel":"Modifier les projets et les partages","readOnly":false,"destructive":false,"idempotent":true,"inputSchema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"requestId":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"expectedVersion":{"type":"integer","exclusiveMinimum":0,"maximum":9007199254740991},"consent":{"type":"boolean","const":true},"instruction":{"type":"string","minLength":1,"maxLength":3000},"draft":{"type":"object","properties":{"name":{"type":"string","minLength":1,"maxLength":120},"clientName":{"type":"string","maxLength":120},"input":{"type":"object","properties":{"start":{"type":"string","pattern":"^20\\d{2}-(0[1-9]|1[0-2])$"},"months":{"type":"integer","minimum":12,"maximum":60},"revenues":{"maxItems":30,"type":"array","items":{"type":"object","properties":{"id":{"type":"string","minLength":1},"name":{"type":"string","minLength":1,"maxLength":120},"kind":{"type":"string","enum":["service","product","subscription"]},"quantity":{"type":"string","pattern":"^\\d+(\\.\\d{1,6})?$"},"evolution":{"type":"object","properties":{"quantity":{"type":"object","properties":{"ramp":{"type":"object","properties":{"target":{"type":"string","pattern":"^\\d+(\\.\\d{1,6})?$"},"endMonth":{"type":"integer","minimum":2,"maximum":60}},"required":["target","endMonth"],"additionalProperties":false},"overrides":{"type":"object","propertyNames":{"type":"string","pattern":"^(?:[1-9]|[1-5][0-9]|60)$"},"additionalProperties":{"type":"string","pattern":"^\\d+(\\.\\d{1,6})?$"}}},"additionalProperties":false},"price":{"type":"object","properties":{"ramp":{"type":"object","properties":{"target":{"type":"string","pattern":"^\\d+(\\.\\d{1,6})?$"},"endMonth":{"type":"integer","minimum":2,"maximum":60}},"required":["target","endMonth"],"additionalProperties":false},"overrides":{"type":"object","propertyNames":{"type":"string","pattern":"^(?:[1-9]|[1-5][0-9]|60)$"},"additionalProperties":{"type":"string","pattern":"^\\d+(\\.\\d{1,6})?$"}}},"additionalProperties":false},"unitCost":{"type":"object","properties":{"ramp":{"type":"object","properties":{"target":{"type":"string","pattern":"^\\d+(\\.\\d{1,6})?$"},"endMonth":{"type":"integer","minimum":2,"maximum":60}},"required":["target","endMonth"],"additionalProperties":false},"overrides":{"type":"object","propertyNames":{"type":"string","pattern":"^(?:[1-9]|[1-5][0-9]|60)$"},"additionalProperties":{"type":"string","pattern":"^\\d+(\\.\\d{1,6})?$"}}},"additionalProperties":false},"costRatio":{"type":"object","properties":{"ramp":{"type":"object","properties":{"target":{"type":"string","pattern":"^\\d+(\\.\\d{1,6})?$"},"endMonth":{"type":"integer","minimum":2,"maximum":60}},"required":["target","endMonth"],"additionalProperties":false},"overrides":{"type":"object","propertyNames":{"type":"string","pattern":"^(?:[1-9]|[1-5][0-9]|60)$"},"additionalProperties":{"type":"string","pattern":"^\\d+(\\.\\d{1,6})?$"}}},"additionalProperties":false},"newCustomers":{"type":"object","properties":{"ramp":{"type":"object","properties":{"target":{"type":"string","pattern":"^\\d+(\\.\\d{1,6})?$"},"endMonth":{"type":"integer","minimum":2,"maximum":60}},"required":["target","endMonth"],"additionalProperties":false},"overrides":{"type":"object","propertyNames":{"type":"string","pattern":"^(?:[1-9]|[1-5][0-9]|60)$"},"additionalProperties":{"type":"string","pattern":"^\\d+(\\.\\d{1,6})?$"}}},"additionalProperties":false},"churn":{"type":"object","properties":{"ramp":{"type":"object","properties":{"target":{"type":"string","pattern":"^\\d+(\\.\\d{1,6})?$"},"endMonth":{"type":"integer","minimum":2,"maximum":60}},"required":["target","endMonth"],"additionalProperties":false},"overrides":{"type":"object","propertyNames":{"type":"string","pattern":"^(?:[1-9]|[1-5][0-9]|60)$"},"additionalProperties":{"type":"string","pattern":"^\\d+(\\.\\d{1,6})?$"}}},"additionalProperties":false}},"additionalProperties":false},"price":{"type":"string","pattern":"^\\d+(\\.\\d{1,6})?$"},"unitCost":{"type":"string","pattern":"^\\d+(\\.\\d{1,6})?$"},"costRatio":{"type":"string","pattern":"^\\d+(\\.\\d{1,6})?$"},"newCustomers":{"default":"0","type":"string","pattern":"^\\d+(\\.\\d{1,6})?$"},"churn":{"default":"0","type":"string","pattern":"^\\d+(\\.\\d{1,6})?$"},"vat":{"type":"string","pattern":"^\\d+(\\.\\d{1,6})?$"},"costVat":{"type":"string","pattern":"^\\d+(\\.\\d{1,6})?$"},"costVatTiming":{"type":"string","enum":["invoice","payment"]},"vatTiming":{"type":"string","enum":["invoice","collection"]}},"required":["id","name","kind","quantity","price","unitCost","costRatio","vat"]}},"expenses":{"maxItems":50,"type":"array","items":{"type":"object","properties":{"id":{"type":"string"},"name":{"type":"string","minLength":1,"maxLength":120},"amount":{"type":"string","pattern":"^\\d+(\\.\\d{1,6})?$"},"evolution":{"type":"object","properties":{"amount":{"type":"object","properties":{"ramp":{"type":"object","properties":{"target":{"type":"string","pattern":"^\\d+(\\.\\d{1,6})?$"},"endMonth":{"type":"integer","minimum":2,"maximum":60}},"required":["target","endMonth"],"additionalProperties":false},"overrides":{"type":"object","propertyNames":{"type":"string","pattern":"^(?:[1-9]|[1-5][0-9]|60)$"},"additionalProperties":{"type":"string","pattern":"^\\d+(\\.\\d{1,6})?$"}}},"additionalProperties":false}},"additionalProperties":false},"vat":{"type":"string","pattern":"^\\d+(\\.\\d{1,6})?$"},"vatTiming":{"type":"string","enum":["invoice","payment"]},"standardCostId":{"type":"string","pattern":"^[a-z][a-z0-9-]{0,59}$"},"costEstimate":{"oneOf":[{"type":"object","properties":{"method":{"type":"string","const":"annual"},"annualAmount":{"type":"string","pattern":"^\\d+(\\.\\d{1,6})?$"}},"required":["method","annualAmount"],"additionalProperties":false},{"type":"object","properties":{"method":{"type":"string","const":"area"},"surface":{"type":"string","pattern":"^\\d+(\\.\\d{1,6})?$"},"annualRate":{"type":"string","pattern":"^\\d+(\\.\\d{1,6})?$"}},"required":["method","surface","annualRate"],"additionalProperties":false},{"type":"object","properties":{"method":{"type":"string","const":"energy"},"surface":{"type":"string","pattern":"^\\d+(\\.\\d{1,6})?$"},"consumption":{"type":"string","pattern":"^\\d+(\\.\\d{1,6})?$"},"kwhPrice":{"type":"string","pattern":"^\\d+(\\.\\d{1,6})?$"},"annualSubscription":{"type":"string","pattern":"^\\d+(\\.\\d{1,6})?$"}},"required":["method","surface","consumption","kwhPrice","annualSubscription"],"additionalProperties":false},{"type":"object","properties":{"method":{"type":"string","const":"revenue"},"annualRevenue":{"type":"string","pattern":"^\\d+(\\.\\d{1,6})?$"},"rate":{"type":"string","pattern":"^\\d+(\\.\\d{1,6})?$"}},"required":["method","annualRevenue","rate"],"additionalProperties":false},{"type":"object","properties":{"method":{"type":"string","const":"units"},"quantity":{"type":"string","pattern":"^\\d+(\\.\\d{1,6})?$"},"monthlyRate":{"type":"string","pattern":"^\\d+(\\.\\d{1,6})?$"}},"required":["method","quantity","monthlyRate"],"additionalProperties":false}]}},"required":["id","name","amount","vat"]}},"payroll":{"maxItems":30,"type":"array","items":{"type":"object","properties":{"id":{"type":"string"},"name":{"type":"string","minLength":1,"maxLength":120},"gross":{"type":"string","pattern":"^\\d+(\\.\\d{1,6})?$"},"count":{"type":"integer","minimum":1,"maximum":100},"startMonth":{"type":"integer","minimum":1,"maximum":60},"employerRate":{"type":"string","pattern":"^\\d+(\\.\\d{1,6})?$"}},"required":["id","name","gross","count","startMonth","employerRate"]}},"asset":{"type":"object","properties":{"amount":{"type":"string","pattern":"^\\d+(\\.\\d{1,6})?$"},"lifeMonths":{"type":"integer","minimum":1,"maximum":240},"vat":{"type":"string","pattern":"^\\d+(\\.\\d{1,6})?$"}},"required":["amount","lifeMonths","vat"]},"financing":{"type":"object","properties":{"equity":{"type":"string","pattern":"^\\d+(\\.\\d{1,6})?$"},"loan":{"type":"string","pattern":"^\\d+(\\.\\d{1,6})?$"},"annualRate":{"type":"string","pattern":"^\\d+(\\.\\d{1,6})?$"},"termMonths":{"type":"integer","minimum":1,"maximum":240}},"required":["equity","loan","annualRate","termMonths"]},"stock":{"type":"object","properties":{"initialPurchase":{"type":"string","pattern":"^\\d+(\\.\\d{1,6})?$"},"enabled":{"type":"boolean"},"vat":{"type":"string","pattern":"^\\d+(\\.\\d{1,6})?$"}},"required":["initialPurchase","enabled","vat"]},"collectionDelay":{"type":"integer","minimum":0,"maximum":3},"supplierDelay":{"type":"integer","minimum":0,"maximum":3},"tax":{"type":"object","properties":{"vatEnabled":{"type":"boolean"},"corporateRate":{"type":"string","pattern":"^\\d+(\\.\\d{1,6})?$"},"profile":{"type":"string","enum":["legacy","france-is"]},"reducedRateEligible":{"type":"boolean"},"capitalPaid":{"type":"boolean"},"ownershipEligible":{"type":"boolean"}},"required":["vatEnabled","corporateRate"]},"capacity":{"type":"object","properties":{"hoursPerMonth":{"type":"string","pattern":"^\\d+(\\.\\d{1,6})?$"},"minutesPerService":{"type":"string","pattern":"^\\d+(\\.\\d{1,6})?$"}},"required":["hoursPerMonth","minutesPerService"]}},"required":["start","months","revenues","expenses","payroll","asset","financing","stock","collectionDelay","supplierDelay","tax","capacity"]},"document":{"type":"object","properties":{"presentation":{"type":"string","maxLength":15000},"market":{"type":"string","maxLength":15000},"operations":{"type":"string","maxLength":15000},"acquisition":{"type":"string","maxLength":15000},"funding":{"type":"string","maxLength":15000},"risks":{"type":"string","maxLength":15000}},"required":["presentation","market","operations"]},"scenario":{"type":"object","properties":{"name":{"type":"string","minLength":1,"maxLength":100},"salesMultiplier":{"type":"string","pattern":"^\\d+(\\.\\d{1,6})?$"},"hiringShift":{"type":"integer","minimum":-36,"maximum":36},"revenueOverrides":{"type":"object","propertyNames":{"type":"string","minLength":1,"maxLength":120},"additionalProperties":{"type":"object","properties":{"quantity":{"type":"string","pattern":"^\\d+(\\.\\d{1,6})?$"},"price":{"type":"string","pattern":"^\\d+(\\.\\d{1,6})?$"},"newCustomers":{"type":"string","pattern":"^\\d+(\\.\\d{1,6})?$"},"churn":{"type":"string","pattern":"^\\d+(\\.\\d{1,6})?$"}},"additionalProperties":false}},"payrollShifts":{"type":"object","propertyNames":{"type":"string","minLength":1,"maxLength":120},"additionalProperties":{"type":"integer","minimum":-36,"maximum":36}},"collectionDelay":{"type":"integer","minimum":0,"maximum":3},"supplierDelay":{"type":"integer","minimum":0,"maximum":3}},"required":["name","salesMultiplier","hiringShift"],"additionalProperties":false},"scenarios":{"maxItems":19,"type":"array","items":{"type":"object","properties":{"name":{"type":"string","minLength":1,"maxLength":100},"salesMultiplier":{"type":"string","pattern":"^\\d+(\\.\\d{1,6})?$"},"hiringShift":{"type":"integer","minimum":-36,"maximum":36},"revenueOverrides":{"type":"object","propertyNames":{"type":"string","minLength":1,"maxLength":120},"additionalProperties":{"type":"object","properties":{"quantity":{"type":"string","pattern":"^\\d+(\\.\\d{1,6})?$"},"price":{"type":"string","pattern":"^\\d+(\\.\\d{1,6})?$"},"newCustomers":{"type":"string","pattern":"^\\d+(\\.\\d{1,6})?$"},"churn":{"type":"string","pattern":"^\\d+(\\.\\d{1,6})?$"}},"additionalProperties":false}},"payrollShifts":{"type":"object","propertyNames":{"type":"string","minLength":1,"maxLength":120},"additionalProperties":{"type":"integer","minimum":-36,"maximum":36}},"collectionDelay":{"type":"integer","minimum":0,"maximum":3},"supplierDelay":{"type":"integer","minimum":0,"maximum":3},"id":{"type":"string","minLength":1,"maxLength":120}},"required":["name","salesMultiplier","hiringShift","id"],"additionalProperties":false}},"assumptions":{"maxItems":400,"type":"array","items":{"type":"object","properties":{"path":{"type":"string","minLength":1,"maxLength":240},"label":{"type":"string","minLength":1,"maxLength":240},"status":{"type":"string","enum":["missing","example","estimate","confirmed"]},"source":{"type":"string","maxLength":1500},"note":{"type":"string","maxLength":3000}},"required":["path","label","status","source","note"],"additionalProperties":false}}},"required":["name","input","document","scenario"]},"projectId":{"type":"string","minLength":1,"maxLength":120}},"required":["requestId","expectedVersion","consent","instruction","draft","projectId"],"additionalProperties":false}},{"name":"comment_add","description":"Ajouter un commentaire à une rubrique et à la version actuelle du projet.","scope":"write","scopeLabel":"Modifier les projets et les partages","readOnly":false,"destructive":true,"idempotent":false,"inputSchema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"projectId":{"type":"string","minLength":1,"maxLength":120},"section":{"type":"string","enum":["general","hypotheses","scenarios","presentation","market","operations","acquisition","funding","risks"]},"body":{"type":"string","minLength":1,"maxLength":4000},"version":{"type":"integer","exclusiveMinimum":0,"maximum":2147483646}},"required":["projectId","section","body","version"],"additionalProperties":false}},{"name":"comment_resolve","description":"Marquer un commentaire comme résolu ou le rouvrir, selon les droits du compte.","scope":"write","scopeLabel":"Modifier les projets et les partages","readOnly":false,"destructive":true,"idempotent":false,"inputSchema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"projectId":{"type":"string","minLength":1,"maxLength":120},"commentId":{"type":"string","minLength":1,"maxLength":120},"resolved":{"type":"boolean"}},"required":["projectId","commentId","resolved"],"additionalProperties":false}},{"name":"comments_list","description":"Lire les commentaires privés du projet, avec pagination.","scope":"read","scopeLabel":"Lire les projets","readOnly":true,"destructive":false,"idempotent":true,"inputSchema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"projectId":{"type":"string","minLength":1,"maxLength":120},"before":{"type":"string","minLength":1,"maxLength":120}},"required":["projectId"],"additionalProperties":false}},{"name":"cost_estimate","description":"Calculer une charge avec la méthode et les valeurs fournies, sans inventer de montant.","scope":"read","scopeLabel":"Lire les projets","readOnly":true,"destructive":false,"idempotent":true,"inputSchema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"estimate":{"oneOf":[{"type":"object","properties":{"method":{"type":"string","const":"annual"},"annualAmount":{"type":"string","pattern":"^\\d+(\\.\\d{1,6})?$"}},"required":["method","annualAmount"],"additionalProperties":false},{"type":"object","properties":{"method":{"type":"string","const":"area"},"surface":{"type":"string","pattern":"^\\d+(\\.\\d{1,6})?$"},"annualRate":{"type":"string","pattern":"^\\d+(\\.\\d{1,6})?$"}},"required":["method","surface","annualRate"],"additionalProperties":false},{"type":"object","properties":{"method":{"type":"string","const":"energy"},"surface":{"type":"string","pattern":"^\\d+(\\.\\d{1,6})?$"},"consumption":{"type":"string","pattern":"^\\d+(\\.\\d{1,6})?$"},"kwhPrice":{"type":"string","pattern":"^\\d+(\\.\\d{1,6})?$"},"annualSubscription":{"type":"string","pattern":"^\\d+(\\.\\d{1,6})?$"}},"required":["method","surface","consumption","kwhPrice","annualSubscription"],"additionalProperties":false},{"type":"object","properties":{"method":{"type":"string","const":"revenue"},"annualRevenue":{"type":"string","pattern":"^\\d+(\\.\\d{1,6})?$"},"rate":{"type":"string","pattern":"^\\d+(\\.\\d{1,6})?$"}},"required":["method","annualRevenue","rate"],"additionalProperties":false},{"type":"object","properties":{"method":{"type":"string","const":"units"},"quantity":{"type":"string","pattern":"^\\d+(\\.\\d{1,6})?$"},"monthlyRate":{"type":"string","pattern":"^\\d+(\\.\\d{1,6})?$"}},"required":["method","quantity","monthlyRate"],"additionalProperties":false}]}},"required":["estimate"],"additionalProperties":false}},{"name":"costs_list","description":"Consulter les charges et méthodes d’estimation disponibles.","scope":"read","scopeLabel":"Lire les projets","readOnly":true,"destructive":false,"idempotent":true,"inputSchema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{},"additionalProperties":false}},{"name":"expense_estimate_apply","description":"Appliquer une estimation chiffrée à une charge, conserver la méthode et sa source, et recalculer. commit=true enregistre la modification.","scope":"write","scopeLabel":"Modifier les projets et les partages","readOnly":false,"destructive":true,"idempotent":false,"inputSchema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"projectId":{"type":"string","minLength":1,"maxLength":120},"expectedVersion":{"type":"integer","exclusiveMinimum":0,"maximum":2147483646},"draft":{"type":"object","properties":{"name":{"type":"string","minLength":1,"maxLength":120},"clientName":{"type":"string","maxLength":120},"input":{"type":"object","properties":{"start":{"type":"string","pattern":"^20\\d{2}-(0[1-9]|1[0-2])$"},"months":{"type":"integer","minimum":12,"maximum":60},"revenues":{"maxItems":30,"type":"array","items":{"type":"object","properties":{"id":{"type":"string","minLength":1},"name":{"type":"string","minLength":1,"maxLength":120},"kind":{"type":"string","enum":["service","product","subscription"]},"quantity":{"type":"string","pattern":"^\\d+(\\.\\d{1,6})?$"},"evolution":{"type":"object","properties":{"quantity":{"type":"object","properties":{"ramp":{"type":"object","properties":{"target":{"type":"string","pattern":"^\\d+(\\.\\d{1,6})?$"},"endMonth":{"type":"integer","minimum":2,"maximum":60}},"required":["target","endMonth"],"additionalProperties":false},"overrides":{"type":"object","propertyNames":{"type":"string","pattern":"^(?:[1-9]|[1-5][0-9]|60)$"},"additionalProperties":{"type":"string","pattern":"^\\d+(\\.\\d{1,6})?$"}}},"additionalProperties":false},"price":{"type":"object","properties":{"ramp":{"type":"object","properties":{"target":{"type":"string","pattern":"^\\d+(\\.\\d{1,6})?$"},"endMonth":{"type":"integer","minimum":2,"maximum":60}},"required":["target","endMonth"],"additionalProperties":false},"overrides":{"type":"object","propertyNames":{"type":"string","pattern":"^(?:[1-9]|[1-5][0-9]|60)$"},"additionalProperties":{"type":"string","pattern":"^\\d+(\\.\\d{1,6})?$"}}},"additionalProperties":false},"unitCost":{"type":"object","properties":{"ramp":{"type":"object","properties":{"target":{"type":"string","pattern":"^\\d+(\\.\\d{1,6})?$"},"endMonth":{"type":"integer","minimum":2,"maximum":60}},"required":["target","endMonth"],"additionalProperties":false},"overrides":{"type":"object","propertyNames":{"type":"string","pattern":"^(?:[1-9]|[1-5][0-9]|60)$"},"additionalProperties":{"type":"string","pattern":"^\\d+(\\.\\d{1,6})?$"}}},"additionalProperties":false},"costRatio":{"type":"object","properties":{"ramp":{"type":"object","properties":{"target":{"type":"string","pattern":"^\\d+(\\.\\d{1,6})?$"},"endMonth":{"type":"integer","minimum":2,"maximum":60}},"required":["target","endMonth"],"additionalProperties":false},"overrides":{"type":"object","propertyNames":{"type":"string","pattern":"^(?:[1-9]|[1-5][0-9]|60)$"},"additionalProperties":{"type":"string","pattern":"^\\d+(\\.\\d{1,6})?$"}}},"additionalProperties":false},"newCustomers":{"type":"object","properties":{"ramp":{"type":"object","properties":{"target":{"type":"string","pattern":"^\\d+(\\.\\d{1,6})?$"},"endMonth":{"type":"integer","minimum":2,"maximum":60}},"required":["target","endMonth"],"additionalProperties":false},"overrides":{"type":"object","propertyNames":{"type":"string","pattern":"^(?:[1-9]|[1-5][0-9]|60)$"},"additionalProperties":{"type":"string","pattern":"^\\d+(\\.\\d{1,6})?$"}}},"additionalProperties":false},"churn":{"type":"object","properties":{"ramp":{"type":"object","properties":{"target":{"type":"string","pattern":"^\\d+(\\.\\d{1,6})?$"},"endMonth":{"type":"integer","minimum":2,"maximum":60}},"required":["target","endMonth"],"additionalProperties":false},"overrides":{"type":"object","propertyNames":{"type":"string","pattern":"^(?:[1-9]|[1-5][0-9]|60)$"},"additionalProperties":{"type":"string","pattern":"^\\d+(\\.\\d{1,6})?$"}}},"additionalProperties":false}},"additionalProperties":false},"price":{"type":"string","pattern":"^\\d+(\\.\\d{1,6})?$"},"unitCost":{"type":"string","pattern":"^\\d+(\\.\\d{1,6})?$"},"costRatio":{"type":"string","pattern":"^\\d+(\\.\\d{1,6})?$"},"newCustomers":{"default":"0","type":"string","pattern":"^\\d+(\\.\\d{1,6})?$"},"churn":{"default":"0","type":"string","pattern":"^\\d+(\\.\\d{1,6})?$"},"vat":{"type":"string","pattern":"^\\d+(\\.\\d{1,6})?$"},"costVat":{"type":"string","pattern":"^\\d+(\\.\\d{1,6})?$"},"costVatTiming":{"type":"string","enum":["invoice","payment"]},"vatTiming":{"type":"string","enum":["invoice","collection"]}},"required":["id","name","kind","quantity","price","unitCost","costRatio","vat"]}},"expenses":{"maxItems":50,"type":"array","items":{"type":"object","properties":{"id":{"type":"string"},"name":{"type":"string","minLength":1,"maxLength":120},"amount":{"type":"string","pattern":"^\\d+(\\.\\d{1,6})?$"},"evolution":{"type":"object","properties":{"amount":{"type":"object","properties":{"ramp":{"type":"object","properties":{"target":{"type":"string","pattern":"^\\d+(\\.\\d{1,6})?$"},"endMonth":{"type":"integer","minimum":2,"maximum":60}},"required":["target","endMonth"],"additionalProperties":false},"overrides":{"type":"object","propertyNames":{"type":"string","pattern":"^(?:[1-9]|[1-5][0-9]|60)$"},"additionalProperties":{"type":"string","pattern":"^\\d+(\\.\\d{1,6})?$"}}},"additionalProperties":false}},"additionalProperties":false},"vat":{"type":"string","pattern":"^\\d+(\\.\\d{1,6})?$"},"vatTiming":{"type":"string","enum":["invoice","payment"]},"standardCostId":{"type":"string","pattern":"^[a-z][a-z0-9-]{0,59}$"},"costEstimate":{"oneOf":[{"type":"object","properties":{"method":{"type":"string","const":"annual"},"annualAmount":{"type":"string","pattern":"^\\d+(\\.\\d{1,6})?$"}},"required":["method","annualAmount"],"additionalProperties":false},{"type":"object","properties":{"method":{"type":"string","const":"area"},"surface":{"type":"string","pattern":"^\\d+(\\.\\d{1,6})?$"},"annualRate":{"type":"string","pattern":"^\\d+(\\.\\d{1,6})?$"}},"required":["method","surface","annualRate"],"additionalProperties":false},{"type":"object","properties":{"method":{"type":"string","const":"energy"},"surface":{"type":"string","pattern":"^\\d+(\\.\\d{1,6})?$"},"consumption":{"type":"string","pattern":"^\\d+(\\.\\d{1,6})?$"},"kwhPrice":{"type":"string","pattern":"^\\d+(\\.\\d{1,6})?$"},"annualSubscription":{"type":"string","pattern":"^\\d+(\\.\\d{1,6})?$"}},"required":["method","surface","consumption","kwhPrice","annualSubscription"],"additionalProperties":false},{"type":"object","properties":{"method":{"type":"string","const":"revenue"},"annualRevenue":{"type":"string","pattern":"^\\d+(\\.\\d{1,6})?$"},"rate":{"type":"string","pattern":"^\\d+(\\.\\d{1,6})?$"}},"required":["method","annualRevenue","rate"],"additionalProperties":false},{"type":"object","properties":{"method":{"type":"string","const":"units"},"quantity":{"type":"string","pattern":"^\\d+(\\.\\d{1,6})?$"},"monthlyRate":{"type":"string","pattern":"^\\d+(\\.\\d{1,6})?$"}},"required":["method","quantity","monthlyRate"],"additionalProperties":false}]}},"required":["id","name","amount","vat"]}},"payroll":{"maxItems":30,"type":"array","items":{"type":"object","properties":{"id":{"type":"string"},"name":{"type":"string","minLength":1,"maxLength":120},"gross":{"type":"string","pattern":"^\\d+(\\.\\d{1,6})?$"},"count":{"type":"integer","minimum":1,"maximum":100},"startMonth":{"type":"integer","minimum":1,"maximum":60},"employerRate":{"type":"string","pattern":"^\\d+(\\.\\d{1,6})?$"}},"required":["id","name","gross","count","startMonth","employerRate"]}},"asset":{"type":"object","properties":{"amount":{"type":"string","pattern":"^\\d+(\\.\\d{1,6})?$"},"lifeMonths":{"type":"integer","minimum":1,"maximum":240},"vat":{"type":"string","pattern":"^\\d+(\\.\\d{1,6})?$"}},"required":["amount","lifeMonths","vat"]},"financing":{"type":"object","properties":{"equity":{"type":"string","pattern":"^\\d+(\\.\\d{1,6})?$"},"loan":{"type":"string","pattern":"^\\d+(\\.\\d{1,6})?$"},"annualRate":{"type":"string","pattern":"^\\d+(\\.\\d{1,6})?$"},"termMonths":{"type":"integer","minimum":1,"maximum":240}},"required":["equity","loan","annualRate","termMonths"]},"stock":{"type":"object","properties":{"initialPurchase":{"type":"string","pattern":"^\\d+(\\.\\d{1,6})?$"},"enabled":{"type":"boolean"},"vat":{"type":"string","pattern":"^\\d+(\\.\\d{1,6})?$"}},"required":["initialPurchase","enabled","vat"]},"collectionDelay":{"type":"integer","minimum":0,"maximum":3},"supplierDelay":{"type":"integer","minimum":0,"maximum":3},"tax":{"type":"object","properties":{"vatEnabled":{"type":"boolean"},"corporateRate":{"type":"string","pattern":"^\\d+(\\.\\d{1,6})?$"},"profile":{"type":"string","enum":["legacy","france-is"]},"reducedRateEligible":{"type":"boolean"},"capitalPaid":{"type":"boolean"},"ownershipEligible":{"type":"boolean"}},"required":["vatEnabled","corporateRate"]},"capacity":{"type":"object","properties":{"hoursPerMonth":{"type":"string","pattern":"^\\d+(\\.\\d{1,6})?$"},"minutesPerService":{"type":"string","pattern":"^\\d+(\\.\\d{1,6})?$"}},"required":["hoursPerMonth","minutesPerService"]}},"required":["start","months","revenues","expenses","payroll","asset","financing","stock","collectionDelay","supplierDelay","tax","capacity"]},"document":{"type":"object","properties":{"presentation":{"type":"string","maxLength":15000},"market":{"type":"string","maxLength":15000},"operations":{"type":"string","maxLength":15000},"acquisition":{"type":"string","maxLength":15000},"funding":{"type":"string","maxLength":15000},"risks":{"type":"string","maxLength":15000}},"required":["presentation","market","operations"]},"scenario":{"type":"object","properties":{"name":{"type":"string","minLength":1,"maxLength":100},"salesMultiplier":{"type":"string","pattern":"^\\d+(\\.\\d{1,6})?$"},"hiringShift":{"type":"integer","minimum":-36,"maximum":36},"revenueOverrides":{"type":"object","propertyNames":{"type":"string","minLength":1,"maxLength":120},"additionalProperties":{"type":"object","properties":{"quantity":{"type":"string","pattern":"^\\d+(\\.\\d{1,6})?$"},"price":{"type":"string","pattern":"^\\d+(\\.\\d{1,6})?$"},"newCustomers":{"type":"string","pattern":"^\\d+(\\.\\d{1,6})?$"},"churn":{"type":"string","pattern":"^\\d+(\\.\\d{1,6})?$"}},"additionalProperties":false}},"payrollShifts":{"type":"object","propertyNames":{"type":"string","minLength":1,"maxLength":120},"additionalProperties":{"type":"integer","minimum":-36,"maximum":36}},"collectionDelay":{"type":"integer","minimum":0,"maximum":3},"supplierDelay":{"type":"integer","minimum":0,"maximum":3}},"required":["name","salesMultiplier","hiringShift"],"additionalProperties":false},"scenarios":{"maxItems":19,"type":"array","items":{"type":"object","properties":{"name":{"type":"string","minLength":1,"maxLength":100},"salesMultiplier":{"type":"string","pattern":"^\\d+(\\.\\d{1,6})?$"},"hiringShift":{"type":"integer","minimum":-36,"maximum":36},"revenueOverrides":{"type":"object","propertyNames":{"type":"string","minLength":1,"maxLength":120},"additionalProperties":{"type":"object","properties":{"quantity":{"type":"string","pattern":"^\\d+(\\.\\d{1,6})?$"},"price":{"type":"string","pattern":"^\\d+(\\.\\d{1,6})?$"},"newCustomers":{"type":"string","pattern":"^\\d+(\\.\\d{1,6})?$"},"churn":{"type":"string","pattern":"^\\d+(\\.\\d{1,6})?$"}},"additionalProperties":false}},"payrollShifts":{"type":"object","propertyNames":{"type":"string","minLength":1,"maxLength":120},"additionalProperties":{"type":"integer","minimum":-36,"maximum":36}},"collectionDelay":{"type":"integer","minimum":0,"maximum":3},"supplierDelay":{"type":"integer","minimum":0,"maximum":3},"id":{"type":"string","minLength":1,"maxLength":120}},"required":["name","salesMultiplier","hiringShift","id"],"additionalProperties":false}},"assumptions":{"maxItems":400,"type":"array","items":{"type":"object","properties":{"path":{"type":"string","minLength":1,"maxLength":240},"label":{"type":"string","minLength":1,"maxLength":240},"status":{"type":"string","enum":["missing","example","estimate","confirmed"]},"source":{"type":"string","maxLength":1500},"note":{"type":"string","maxLength":3000}},"required":["path","label","status","source","note"],"additionalProperties":false}}},"required":["name","input","document","scenario"]},"commit":{"default":false,"type":"boolean"},"expenseId":{"type":"string","pattern":"^[a-zA-Z0-9_-]{1,120}$"},"estimate":{"oneOf":[{"type":"object","properties":{"method":{"type":"string","const":"annual"},"annualAmount":{"type":"string","pattern":"^\\d+(\\.\\d{1,6})?$"}},"required":["method","annualAmount"],"additionalProperties":false},{"type":"object","properties":{"method":{"type":"string","const":"area"},"surface":{"type":"string","pattern":"^\\d+(\\.\\d{1,6})?$"},"annualRate":{"type":"string","pattern":"^\\d+(\\.\\d{1,6})?$"}},"required":["method","surface","annualRate"],"additionalProperties":false},{"type":"object","properties":{"method":{"type":"string","const":"energy"},"surface":{"type":"string","pattern":"^\\d+(\\.\\d{1,6})?$"},"consumption":{"type":"string","pattern":"^\\d+(\\.\\d{1,6})?$"},"kwhPrice":{"type":"string","pattern":"^\\d+(\\.\\d{1,6})?$"},"annualSubscription":{"type":"string","pattern":"^\\d+(\\.\\d{1,6})?$"}},"required":["method","surface","consumption","kwhPrice","annualSubscription"],"additionalProperties":false},{"type":"object","properties":{"method":{"type":"string","const":"revenue"},"annualRevenue":{"type":"string","pattern":"^\\d+(\\.\\d{1,6})?$"},"rate":{"type":"string","pattern":"^\\d+(\\.\\d{1,6})?$"}},"required":["method","annualRevenue","rate"],"additionalProperties":false},{"type":"object","properties":{"method":{"type":"string","const":"units"},"quantity":{"type":"string","pattern":"^\\d+(\\.\\d{1,6})?$"},"monthlyRate":{"type":"string","pattern":"^\\d+(\\.\\d{1,6})?$"}},"required":["method","quantity","monthlyRate"],"additionalProperties":false}]},"source":{"type":"string","maxLength":1500}},"required":["projectId","expectedVersion","expenseId","estimate","source"],"additionalProperties":false}},{"name":"expenses_add_standard","description":"Ajouter les charges choisies dans le catalogue, sans montant inventé ni doublon. Les montants restent à renseigner. commit=true enregistre la modification.","scope":"write","scopeLabel":"Modifier les projets et les partages","readOnly":false,"destructive":true,"idempotent":false,"inputSchema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"projectId":{"type":"string","minLength":1,"maxLength":120},"expectedVersion":{"type":"integer","exclusiveMinimum":0,"maximum":2147483646},"draft":{"type":"object","properties":{"name":{"type":"string","minLength":1,"maxLength":120},"clientName":{"type":"string","maxLength":120},"input":{"type":"object","properties":{"start":{"type":"string","pattern":"^20\\d{2}-(0[1-9]|1[0-2])$"},"months":{"type":"integer","minimum":12,"maximum":60},"revenues":{"maxItems":30,"type":"array","items":{"type":"object","properties":{"id":{"type":"string","minLength":1},"name":{"type":"string","minLength":1,"maxLength":120},"kind":{"type":"string","enum":["service","product","subscription"]},"quantity":{"type":"string","pattern":"^\\d+(\\.\\d{1,6})?$"},"evolution":{"type":"object","properties":{"quantity":{"type":"object","properties":{"ramp":{"type":"object","properties":{"target":{"type":"string","pattern":"^\\d+(\\.\\d{1,6})?$"},"endMonth":{"type":"integer","minimum":2,"maximum":60}},"required":["target","endMonth"],"additionalProperties":false},"overrides":{"type":"object","propertyNames":{"type":"string","pattern":"^(?:[1-9]|[1-5][0-9]|60)$"},"additionalProperties":{"type":"string","pattern":"^\\d+(\\.\\d{1,6})?$"}}},"additionalProperties":false},"price":{"type":"object","properties":{"ramp":{"type":"object","properties":{"target":{"type":"string","pattern":"^\\d+(\\.\\d{1,6})?$"},"endMonth":{"type":"integer","minimum":2,"maximum":60}},"required":["target","endMonth"],"additionalProperties":false},"overrides":{"type":"object","propertyNames":{"type":"string","pattern":"^(?:[1-9]|[1-5][0-9]|60)$"},"additionalProperties":{"type":"string","pattern":"^\\d+(\\.\\d{1,6})?$"}}},"additionalProperties":false},"unitCost":{"type":"object","properties":{"ramp":{"type":"object","properties":{"target":{"type":"string","pattern":"^\\d+(\\.\\d{1,6})?$"},"endMonth":{"type":"integer","minimum":2,"maximum":60}},"required":["target","endMonth"],"additionalProperties":false},"overrides":{"type":"object","propertyNames":{"type":"string","pattern":"^(?:[1-9]|[1-5][0-9]|60)$"},"additionalProperties":{"type":"string","pattern":"^\\d+(\\.\\d{1,6})?$"}}},"additionalProperties":false},"costRatio":{"type":"object","properties":{"ramp":{"type":"object","properties":{"target":{"type":"string","pattern":"^\\d+(\\.\\d{1,6})?$"},"endMonth":{"type":"integer","minimum":2,"maximum":60}},"required":["target","endMonth"],"additionalProperties":false},"overrides":{"type":"object","propertyNames":{"type":"string","pattern":"^(?:[1-9]|[1-5][0-9]|60)$"},"additionalProperties":{"type":"string","pattern":"^\\d+(\\.\\d{1,6})?$"}}},"additionalProperties":false},"newCustomers":{"type":"object","properties":{"ramp":{"type":"object","properties":{"target":{"type":"string","pattern":"^\\d+(\\.\\d{1,6})?$"},"endMonth":{"type":"integer","minimum":2,"maximum":60}},"required":["target","endMonth"],"additionalProperties":false},"overrides":{"type":"object","propertyNames":{"type":"string","pattern":"^(?:[1-9]|[1-5][0-9]|60)$"},"additionalProperties":{"type":"string","pattern":"^\\d+(\\.\\d{1,6})?$"}}},"additionalProperties":false},"churn":{"type":"object","properties":{"ramp":{"type":"object","properties":{"target":{"type":"string","pattern":"^\\d+(\\.\\d{1,6})?$"},"endMonth":{"type":"integer","minimum":2,"maximum":60}},"required":["target","endMonth"],"additionalProperties":false},"overrides":{"type":"object","propertyNames":{"type":"string","pattern":"^(?:[1-9]|[1-5][0-9]|60)$"},"additionalProperties":{"type":"string","pattern":"^\\d+(\\.\\d{1,6})?$"}}},"additionalProperties":false}},"additionalProperties":false},"price":{"type":"string","pattern":"^\\d+(\\.\\d{1,6})?$"},"unitCost":{"type":"string","pattern":"^\\d+(\\.\\d{1,6})?$"},"costRatio":{"type":"string","pattern":"^\\d+(\\.\\d{1,6})?$"},"newCustomers":{"default":"0","type":"string","pattern":"^\\d+(\\.\\d{1,6})?$"},"churn":{"default":"0","type":"string","pattern":"^\\d+(\\.\\d{1,6})?$"},"vat":{"type":"string","pattern":"^\\d+(\\.\\d{1,6})?$"},"costVat":{"type":"string","pattern":"^\\d+(\\.\\d{1,6})?$"},"costVatTiming":{"type":"string","enum":["invoice","payment"]},"vatTiming":{"type":"string","enum":["invoice","collection"]}},"required":["id","name","kind","quantity","price","unitCost","costRatio","vat"]}},"expenses":{"maxItems":50,"type":"array","items":{"type":"object","properties":{"id":{"type":"string"},"name":{"type":"string","minLength":1,"maxLength":120},"amount":{"type":"string","pattern":"^\\d+(\\.\\d{1,6})?$"},"evolution":{"type":"object","properties":{"amount":{"type":"object","properties":{"ramp":{"type":"object","properties":{"target":{"type":"string","pattern":"^\\d+(\\.\\d{1,6})?$"},"endMonth":{"type":"integer","minimum":2,"maximum":60}},"required":["target","endMonth"],"additionalProperties":false},"overrides":{"type":"object","propertyNames":{"type":"string","pattern":"^(?:[1-9]|[1-5][0-9]|60)$"},"additionalProperties":{"type":"string","pattern":"^\\d+(\\.\\d{1,6})?$"}}},"additionalProperties":false}},"additionalProperties":false},"vat":{"type":"string","pattern":"^\\d+(\\.\\d{1,6})?$"},"vatTiming":{"type":"string","enum":["invoice","payment"]},"standardCostId":{"type":"string","pattern":"^[a-z][a-z0-9-]{0,59}$"},"costEstimate":{"oneOf":[{"type":"object","properties":{"method":{"type":"string","const":"annual"},"annualAmount":{"type":"string","pattern":"^\\d+(\\.\\d{1,6})?$"}},"required":["method","annualAmount"],"additionalProperties":false},{"type":"object","properties":{"method":{"type":"string","const":"area"},"surface":{"type":"string","pattern":"^\\d+(\\.\\d{1,6})?$"},"annualRate":{"type":"string","pattern":"^\\d+(\\.\\d{1,6})?$"}},"required":["method","surface","annualRate"],"additionalProperties":false},{"type":"object","properties":{"method":{"type":"string","const":"energy"},"surface":{"type":"string","pattern":"^\\d+(\\.\\d{1,6})?$"},"consumption":{"type":"string","pattern":"^\\d+(\\.\\d{1,6})?$"},"kwhPrice":{"type":"string","pattern":"^\\d+(\\.\\d{1,6})?$"},"annualSubscription":{"type":"string","pattern":"^\\d+(\\.\\d{1,6})?$"}},"required":["method","surface","consumption","kwhPrice","annualSubscription"],"additionalProperties":false},{"type":"object","properties":{"method":{"type":"string","const":"revenue"},"annualRevenue":{"type":"string","pattern":"^\\d+(\\.\\d{1,6})?$"},"rate":{"type":"string","pattern":"^\\d+(\\.\\d{1,6})?$"}},"required":["method","annualRevenue","rate"],"additionalProperties":false},{"type":"object","properties":{"method":{"type":"string","const":"units"},"quantity":{"type":"string","pattern":"^\\d+(\\.\\d{1,6})?$"},"monthlyRate":{"type":"string","pattern":"^\\d+(\\.\\d{1,6})?$"}},"required":["method","quantity","monthlyRate"],"additionalProperties":false}]}},"required":["id","name","amount","vat"]}},"payroll":{"maxItems":30,"type":"array","items":{"type":"object","properties":{"id":{"type":"string"},"name":{"type":"string","minLength":1,"maxLength":120},"gross":{"type":"string","pattern":"^\\d+(\\.\\d{1,6})?$"},"count":{"type":"integer","minimum":1,"maximum":100},"startMonth":{"type":"integer","minimum":1,"maximum":60},"employerRate":{"type":"string","pattern":"^\\d+(\\.\\d{1,6})?$"}},"required":["id","name","gross","count","startMonth","employerRate"]}},"asset":{"type":"object","properties":{"amount":{"type":"string","pattern":"^\\d+(\\.\\d{1,6})?$"},"lifeMonths":{"type":"integer","minimum":1,"maximum":240},"vat":{"type":"string","pattern":"^\\d+(\\.\\d{1,6})?$"}},"required":["amount","lifeMonths","vat"]},"financing":{"type":"object","properties":{"equity":{"type":"string","pattern":"^\\d+(\\.\\d{1,6})?$"},"loan":{"type":"string","pattern":"^\\d+(\\.\\d{1,6})?$"},"annualRate":{"type":"string","pattern":"^\\d+(\\.\\d{1,6})?$"},"termMonths":{"type":"integer","minimum":1,"maximum":240}},"required":["equity","loan","annualRate","termMonths"]},"stock":{"type":"object","properties":{"initialPurchase":{"type":"string","pattern":"^\\d+(\\.\\d{1,6})?$"},"enabled":{"type":"boolean"},"vat":{"type":"string","pattern":"^\\d+(\\.\\d{1,6})?$"}},"required":["initialPurchase","enabled","vat"]},"collectionDelay":{"type":"integer","minimum":0,"maximum":3},"supplierDelay":{"type":"integer","minimum":0,"maximum":3},"tax":{"type":"object","properties":{"vatEnabled":{"type":"boolean"},"corporateRate":{"type":"string","pattern":"^\\d+(\\.\\d{1,6})?$"},"profile":{"type":"string","enum":["legacy","france-is"]},"reducedRateEligible":{"type":"boolean"},"capitalPaid":{"type":"boolean"},"ownershipEligible":{"type":"boolean"}},"required":["vatEnabled","corporateRate"]},"capacity":{"type":"object","properties":{"hoursPerMonth":{"type":"string","pattern":"^\\d+(\\.\\d{1,6})?$"},"minutesPerService":{"type":"string","pattern":"^\\d+(\\.\\d{1,6})?$"}},"required":["hoursPerMonth","minutesPerService"]}},"required":["start","months","revenues","expenses","payroll","asset","financing","stock","collectionDelay","supplierDelay","tax","capacity"]},"document":{"type":"object","properties":{"presentation":{"type":"string","maxLength":15000},"market":{"type":"string","maxLength":15000},"operations":{"type":"string","maxLength":15000},"acquisition":{"type":"string","maxLength":15000},"funding":{"type":"string","maxLength":15000},"risks":{"type":"string","maxLength":15000}},"required":["presentation","market","operations"]},"scenario":{"type":"object","properties":{"name":{"type":"string","minLength":1,"maxLength":100},"salesMultiplier":{"type":"string","pattern":"^\\d+(\\.\\d{1,6})?$"},"hiringShift":{"type":"integer","minimum":-36,"maximum":36},"revenueOverrides":{"type":"object","propertyNames":{"type":"string","minLength":1,"maxLength":120},"additionalProperties":{"type":"object","properties":{"quantity":{"type":"string","pattern":"^\\d+(\\.\\d{1,6})?$"},"price":{"type":"string","pattern":"^\\d+(\\.\\d{1,6})?$"},"newCustomers":{"type":"string","pattern":"^\\d+(\\.\\d{1,6})?$"},"churn":{"type":"string","pattern":"^\\d+(\\.\\d{1,6})?$"}},"additionalProperties":false}},"payrollShifts":{"type":"object","propertyNames":{"type":"string","minLength":1,"maxLength":120},"additionalProperties":{"type":"integer","minimum":-36,"maximum":36}},"collectionDelay":{"type":"integer","minimum":0,"maximum":3},"supplierDelay":{"type":"integer","minimum":0,"maximum":3}},"required":["name","salesMultiplier","hiringShift"],"additionalProperties":false},"scenarios":{"maxItems":19,"type":"array","items":{"type":"object","properties":{"name":{"type":"string","minLength":1,"maxLength":100},"salesMultiplier":{"type":"string","pattern":"^\\d+(\\.\\d{1,6})?$"},"hiringShift":{"type":"integer","minimum":-36,"maximum":36},"revenueOverrides":{"type":"object","propertyNames":{"type":"string","minLength":1,"maxLength":120},"additionalProperties":{"type":"object","properties":{"quantity":{"type":"string","pattern":"^\\d+(\\.\\d{1,6})?$"},"price":{"type":"string","pattern":"^\\d+(\\.\\d{1,6})?$"},"newCustomers":{"type":"string","pattern":"^\\d+(\\.\\d{1,6})?$"},"churn":{"type":"string","pattern":"^\\d+(\\.\\d{1,6})?$"}},"additionalProperties":false}},"payrollShifts":{"type":"object","propertyNames":{"type":"string","minLength":1,"maxLength":120},"additionalProperties":{"type":"integer","minimum":-36,"maximum":36}},"collectionDelay":{"type":"integer","minimum":0,"maximum":3},"supplierDelay":{"type":"integer","minimum":0,"maximum":3},"id":{"type":"string","minLength":1,"maxLength":120}},"required":["name","salesMultiplier","hiringShift","id"],"additionalProperties":false}},"assumptions":{"maxItems":400,"type":"array","items":{"type":"object","properties":{"path":{"type":"string","minLength":1,"maxLength":240},"label":{"type":"string","minLength":1,"maxLength":240},"status":{"type":"string","enum":["missing","example","estimate","confirmed"]},"source":{"type":"string","maxLength":1500},"note":{"type":"string","maxLength":3000}},"required":["path","label","status","source","note"],"additionalProperties":false}}},"required":["name","input","document","scenario"]},"commit":{"default":false,"type":"boolean"},"standardCostIds":{"minItems":1,"maxItems":50,"type":"array","items":{"type":"string","minLength":1,"maxLength":60}}},"required":["projectId","expectedVersion","standardCostIds"],"additionalProperties":false}},{"name":"expenses_remove","description":"Supprimer une ligne explicitement désignée et retirer ses remplacements de scénarios. commit=true enregistre la modification.","scope":"write","scopeLabel":"Modifier les projets et les partages","readOnly":false,"destructive":true,"idempotent":false,"inputSchema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"projectId":{"type":"string","minLength":1,"maxLength":120},"expectedVersion":{"type":"integer","exclusiveMinimum":0,"maximum":2147483646},"draft":{"type":"object","properties":{"name":{"type":"string","minLength":1,"maxLength":120},"clientName":{"type":"string","maxLength":120},"input":{"type":"object","properties":{"start":{"type":"string","pattern":"^20\\d{2}-(0[1-9]|1[0-2])$"},"months":{"type":"integer","minimum":12,"maximum":60},"revenues":{"maxItems":30,"type":"array","items":{"type":"object","properties":{"id":{"type":"string","minLength":1},"name":{"type":"string","minLength":1,"maxLength":120},"kind":{"type":"string","enum":["service","product","subscription"]},"quantity":{"type":"string","pattern":"^\\d+(\\.\\d{1,6})?$"},"evolution":{"type":"object","properties":{"quantity":{"type":"object","properties":{"ramp":{"type":"object","properties":{"target":{"type":"string","pattern":"^\\d+(\\.\\d{1,6})?$"},"endMonth":{"type":"integer","minimum":2,"maximum":60}},"required":["target","endMonth"],"additionalProperties":false},"overrides":{"type":"object","propertyNames":{"type":"string","pattern":"^(?:[1-9]|[1-5][0-9]|60)$"},"additionalProperties":{"type":"string","pattern":"^\\d+(\\.\\d{1,6})?$"}}},"additionalProperties":false},"price":{"type":"object","properties":{"ramp":{"type":"object","properties":{"target":{"type":"string","pattern":"^\\d+(\\.\\d{1,6})?$"},"endMonth":{"type":"integer","minimum":2,"maximum":60}},"required":["target","endMonth"],"additionalProperties":false},"overrides":{"type":"object","propertyNames":{"type":"string","pattern":"^(?:[1-9]|[1-5][0-9]|60)$"},"additionalProperties":{"type":"string","pattern":"^\\d+(\\.\\d{1,6})?$"}}},"additionalProperties":false},"unitCost":{"type":"object","properties":{"ramp":{"type":"object","properties":{"target":{"type":"string","pattern":"^\\d+(\\.\\d{1,6})?$"},"endMonth":{"type":"integer","minimum":2,"maximum":60}},"required":["target","endMonth"],"additionalProperties":false},"overrides":{"type":"object","propertyNames":{"type":"string","pattern":"^(?:[1-9]|[1-5][0-9]|60)$"},"additionalProperties":{"type":"string","pattern":"^\\d+(\\.\\d{1,6})?$"}}},"additionalProperties":false},"costRatio":{"type":"object","properties":{"ramp":{"type":"object","properties":{"target":{"type":"string","pattern":"^\\d+(\\.\\d{1,6})?$"},"endMonth":{"type":"integer","minimum":2,"maximum":60}},"required":["target","endMonth"],"additionalProperties":false},"overrides":{"type":"object","propertyNames":{"type":"string","pattern":"^(?:[1-9]|[1-5][0-9]|60)$"},"additionalProperties":{"type":"string","pattern":"^\\d+(\\.\\d{1,6})?$"}}},"additionalProperties":false},"newCustomers":{"type":"object","properties":{"ramp":{"type":"object","properties":{"target":{"type":"string","pattern":"^\\d+(\\.\\d{1,6})?$"},"endMonth":{"type":"integer","minimum":2,"maximum":60}},"required":["target","endMonth"],"additionalProperties":false},"overrides":{"type":"object","propertyNames":{"type":"string","pattern":"^(?:[1-9]|[1-5][0-9]|60)$"},"additionalProperties":{"type":"string","pattern":"^\\d+(\\.\\d{1,6})?$"}}},"additionalProperties":false},"churn":{"type":"object","properties":{"ramp":{"type":"object","properties":{"target":{"type":"string","pattern":"^\\d+(\\.\\d{1,6})?$"},"endMonth":{"type":"integer","minimum":2,"maximum":60}},"required":["target","endMonth"],"additionalProperties":false},"overrides":{"type":"object","propertyNames":{"type":"string","pattern":"^(?:[1-9]|[1-5][0-9]|60)$"},"additionalProperties":{"type":"string","pattern":"^\\d+(\\.\\d{1,6})?$"}}},"additionalProperties":false}},"additionalProperties":false},"price":{"type":"string","pattern":"^\\d+(\\.\\d{1,6})?$"},"unitCost":{"type":"string","pattern":"^\\d+(\\.\\d{1,6})?$"},"costRatio":{"type":"string","pattern":"^\\d+(\\.\\d{1,6})?$"},"newCustomers":{"default":"0","type":"string","pattern":"^\\d+(\\.\\d{1,6})?$"},"churn":{"default":"0","type":"string","pattern":"^\\d+(\\.\\d{1,6})?$"},"vat":{"type":"string","pattern":"^\\d+(\\.\\d{1,6})?$"},"costVat":{"type":"string","pattern":"^\\d+(\\.\\d{1,6})?$"},"costVatTiming":{"type":"string","enum":["invoice","payment"]},"vatTiming":{"type":"string","enum":["invoice","collection"]}},"required":["id","name","kind","quantity","price","unitCost","costRatio","vat"]}},"expenses":{"maxItems":50,"type":"array","items":{"type":"object","properties":{"id":{"type":"string"},"name":{"type":"string","minLength":1,"maxLength":120},"amount":{"type":"string","pattern":"^\\d+(\\.\\d{1,6})?$"},"evolution":{"type":"object","properties":{"amount":{"type":"object","properties":{"ramp":{"type":"object","properties":{"target":{"type":"string","pattern":"^\\d+(\\.\\d{1,6})?$"},"endMonth":{"type":"integer","minimum":2,"maximum":60}},"required":["target","endMonth"],"additionalProperties":false},"overrides":{"type":"object","propertyNames":{"type":"string","pattern":"^(?:[1-9]|[1-5][0-9]|60)$"},"additionalProperties":{"type":"string","pattern":"^\\d+(\\.\\d{1,6})?$"}}},"additionalProperties":false}},"additionalProperties":false},"vat":{"type":"string","pattern":"^\\d+(\\.\\d{1,6})?$"},"vatTiming":{"type":"string","enum":["invoice","payment"]},"standardCostId":{"type":"string","pattern":"^[a-z][a-z0-9-]{0,59}$"},"costEstimate":{"oneOf":[{"type":"object","properties":{"method":{"type":"string","const":"annual"},"annualAmount":{"type":"string","pattern":"^\\d+(\\.\\d{1,6})?$"}},"required":["method","annualAmount"],"additionalProperties":false},{"type":"object","properties":{"method":{"type":"string","const":"area"},"surface":{"type":"string","pattern":"^\\d+(\\.\\d{1,6})?$"},"annualRate":{"type":"string","pattern":"^\\d+(\\.\\d{1,6})?$"}},"required":["method","surface","annualRate"],"additionalProperties":false},{"type":"object","properties":{"method":{"type":"string","const":"energy"},"surface":{"type":"string","pattern":"^\\d+(\\.\\d{1,6})?$"},"consumption":{"type":"string","pattern":"^\\d+(\\.\\d{1,6})?$"},"kwhPrice":{"type":"string","pattern":"^\\d+(\\.\\d{1,6})?$"},"annualSubscription":{"type":"string","pattern":"^\\d+(\\.\\d{1,6})?$"}},"required":["method","surface","consumption","kwhPrice","annualSubscription"],"additionalProperties":false},{"type":"object","properties":{"method":{"type":"string","const":"revenue"},"annualRevenue":{"type":"string","pattern":"^\\d+(\\.\\d{1,6})?$"},"rate":{"type":"string","pattern":"^\\d+(\\.\\d{1,6})?$"}},"required":["method","annualRevenue","rate"],"additionalProperties":false},{"type":"object","properties":{"method":{"type":"string","const":"units"},"quantity":{"type":"string","pattern":"^\\d+(\\.\\d{1,6})?$"},"monthlyRate":{"type":"string","pattern":"^\\d+(\\.\\d{1,6})?$"}},"required":["method","quantity","monthlyRate"],"additionalProperties":false}]}},"required":["id","name","amount","vat"]}},"payroll":{"maxItems":30,"type":"array","items":{"type":"object","properties":{"id":{"type":"string"},"name":{"type":"string","minLength":1,"maxLength":120},"gross":{"type":"string","pattern":"^\\d+(\\.\\d{1,6})?$"},"count":{"type":"integer","minimum":1,"maximum":100},"startMonth":{"type":"integer","minimum":1,"maximum":60},"employerRate":{"type":"string","pattern":"^\\d+(\\.\\d{1,6})?$"}},"required":["id","name","gross","count","startMonth","employerRate"]}},"asset":{"type":"object","properties":{"amount":{"type":"string","pattern":"^\\d+(\\.\\d{1,6})?$"},"lifeMonths":{"type":"integer","minimum":1,"maximum":240},"vat":{"type":"string","pattern":"^\\d+(\\.\\d{1,6})?$"}},"required":["amount","lifeMonths","vat"]},"financing":{"type":"object","properties":{"equity":{"type":"string","pattern":"^\\d+(\\.\\d{1,6})?$"},"loan":{"type":"string","pattern":"^\\d+(\\.\\d{1,6})?$"},"annualRate":{"type":"string","pattern":"^\\d+(\\.\\d{1,6})?$"},"termMonths":{"type":"integer","minimum":1,"maximum":240}},"required":["equity","loan","annualRate","termMonths"]},"stock":{"type":"object","properties":{"initialPurchase":{"type":"string","pattern":"^\\d+(\\.\\d{1,6})?$"},"enabled":{"type":"boolean"},"vat":{"type":"string","pattern":"^\\d+(\\.\\d{1,6})?$"}},"required":["initialPurchase","enabled","vat"]},"collectionDelay":{"type":"integer","minimum":0,"maximum":3},"supplierDelay":{"type":"integer","minimum":0,"maximum":3},"tax":{"type":"object","properties":{"vatEnabled":{"type":"boolean"},"corporateRate":{"type":"string","pattern":"^\\d+(\\.\\d{1,6})?$"},"profile":{"type":"string","enum":["legacy","france-is"]},"reducedRateEligible":{"type":"boolean"},"capitalPaid":{"type":"boolean"},"ownershipEligible":{"type":"boolean"}},"required":["vatEnabled","corporateRate"]},"capacity":{"type":"object","properties":{"hoursPerMonth":{"type":"string","pattern":"^\\d+(\\.\\d{1,6})?$"},"minutesPerService":{"type":"string","pattern":"^\\d+(\\.\\d{1,6})?$"}},"required":["hoursPerMonth","minutesPerService"]}},"required":["start","months","revenues","expenses","payroll","asset","financing","stock","collectionDelay","supplierDelay","tax","capacity"]},"document":{"type":"object","properties":{"presentation":{"type":"string","maxLength":15000},"market":{"type":"string","maxLength":15000},"operations":{"type":"string","maxLength":15000},"acquisition":{"type":"string","maxLength":15000},"funding":{"type":"string","maxLength":15000},"risks":{"type":"string","maxLength":15000}},"required":["presentation","market","operations"]},"scenario":{"type":"object","properties":{"name":{"type":"string","minLength":1,"maxLength":100},"salesMultiplier":{"type":"string","pattern":"^\\d+(\\.\\d{1,6})?$"},"hiringShift":{"type":"integer","minimum":-36,"maximum":36},"revenueOverrides":{"type":"object","propertyNames":{"type":"string","minLength":1,"maxLength":120},"additionalProperties":{"type":"object","properties":{"quantity":{"type":"string","pattern":"^\\d+(\\.\\d{1,6})?$"},"price":{"type":"string","pattern":"^\\d+(\\.\\d{1,6})?$"},"newCustomers":{"type":"string","pattern":"^\\d+(\\.\\d{1,6})?$"},"churn":{"type":"string","pattern":"^\\d+(\\.\\d{1,6})?$"}},"additionalProperties":false}},"payrollShifts":{"type":"object","propertyNames":{"type":"string","minLength":1,"maxLength":120},"additionalProperties":{"type":"integer","minimum":-36,"maximum":36}},"collectionDelay":{"type":"integer","minimum":0,"maximum":3},"supplierDelay":{"type":"integer","minimum":0,"maximum":3}},"required":["name","salesMultiplier","hiringShift"],"additionalProperties":false},"scenarios":{"maxItems":19,"type":"array","items":{"type":"object","properties":{"name":{"type":"string","minLength":1,"maxLength":100},"salesMultiplier":{"type":"string","pattern":"^\\d+(\\.\\d{1,6})?$"},"hiringShift":{"type":"integer","minimum":-36,"maximum":36},"revenueOverrides":{"type":"object","propertyNames":{"type":"string","minLength":1,"maxLength":120},"additionalProperties":{"type":"object","properties":{"quantity":{"type":"string","pattern":"^\\d+(\\.\\d{1,6})?$"},"price":{"type":"string","pattern":"^\\d+(\\.\\d{1,6})?$"},"newCustomers":{"type":"string","pattern":"^\\d+(\\.\\d{1,6})?$"},"churn":{"type":"string","pattern":"^\\d+(\\.\\d{1,6})?$"}},"additionalProperties":false}},"payrollShifts":{"type":"object","propertyNames":{"type":"string","minLength":1,"maxLength":120},"additionalProperties":{"type":"integer","minimum":-36,"maximum":36}},"collectionDelay":{"type":"integer","minimum":0,"maximum":3},"supplierDelay":{"type":"integer","minimum":0,"maximum":3},"id":{"type":"string","minLength":1,"maxLength":120}},"required":["name","salesMultiplier","hiringShift","id"],"additionalProperties":false}},"assumptions":{"maxItems":400,"type":"array","items":{"type":"object","properties":{"path":{"type":"string","minLength":1,"maxLength":240},"label":{"type":"string","minLength":1,"maxLength":240},"status":{"type":"string","enum":["missing","example","estimate","confirmed"]},"source":{"type":"string","maxLength":1500},"note":{"type":"string","maxLength":3000}},"required":["path","label","status","source","note"],"additionalProperties":false}}},"required":["name","input","document","scenario"]},"commit":{"default":false,"type":"boolean"},"rowId":{"type":"string","pattern":"^[a-zA-Z0-9_-]{1,120}$"}},"required":["projectId","expectedVersion","rowId"],"additionalProperties":false}},{"name":"expenses_upsert","description":"Ajouter ou modifier une ligne complète des hypothèses avec son identifiant stable. commit=true enregistre la modification.","scope":"write","scopeLabel":"Modifier les projets et les partages","readOnly":false,"destructive":true,"idempotent":false,"inputSchema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"projectId":{"type":"string","minLength":1,"maxLength":120},"expectedVersion":{"type":"integer","exclusiveMinimum":0,"maximum":2147483646},"draft":{"type":"object","properties":{"name":{"type":"string","minLength":1,"maxLength":120},"clientName":{"type":"string","maxLength":120},"input":{"type":"object","properties":{"start":{"type":"string","pattern":"^20\\d{2}-(0[1-9]|1[0-2])$"},"months":{"type":"integer","minimum":12,"maximum":60},"revenues":{"maxItems":30,"type":"array","items":{"type":"object","properties":{"id":{"type":"string","minLength":1},"name":{"type":"string","minLength":1,"maxLength":120},"kind":{"type":"string","enum":["service","product","subscription"]},"quantity":{"type":"string","pattern":"^\\d+(\\.\\d{1,6})?$"},"evolution":{"type":"object","properties":{"quantity":{"type":"object","properties":{"ramp":{"type":"object","properties":{"target":{"type":"string","pattern":"^\\d+(\\.\\d{1,6})?$"},"endMonth":{"type":"integer","minimum":2,"maximum":60}},"required":["target","endMonth"],"additionalProperties":false},"overrides":{"type":"object","propertyNames":{"type":"string","pattern":"^(?:[1-9]|[1-5][0-9]|60)$"},"additionalProperties":{"type":"string","pattern":"^\\d+(\\.\\d{1,6})?$"}}},"additionalProperties":false},"price":{"type":"object","properties":{"ramp":{"type":"object","properties":{"target":{"type":"string","pattern":"^\\d+(\\.\\d{1,6})?$"},"endMonth":{"type":"integer","minimum":2,"maximum":60}},"required":["target","endMonth"],"additionalProperties":false},"overrides":{"type":"object","propertyNames":{"type":"string","pattern":"^(?:[1-9]|[1-5][0-9]|60)$"},"additionalProperties":{"type":"string","pattern":"^\\d+(\\.\\d{1,6})?$"}}},"additionalProperties":false},"unitCost":{"type":"object","properties":{"ramp":{"type":"object","properties":{"target":{"type":"string","pattern":"^\\d+(\\.\\d{1,6})?$"},"endMonth":{"type":"integer","minimum":2,"maximum":60}},"required":["target","endMonth"],"additionalProperties":false},"overrides":{"type":"object","propertyNames":{"type":"string","pattern":"^(?:[1-9]|[1-5][0-9]|60)$"},"additionalProperties":{"type":"string","pattern":"^\\d+(\\.\\d{1,6})?$"}}},"additionalProperties":false},"costRatio":{"type":"object","properties":{"ramp":{"type":"object","properties":{"target":{"type":"string","pattern":"^\\d+(\\.\\d{1,6})?$"},"endMonth":{"type":"integer","minimum":2,"maximum":60}},"required":["target","endMonth"],"additionalProperties":false},"overrides":{"type":"object","propertyNames":{"type":"string","pattern":"^(?:[1-9]|[1-5][0-9]|60)$"},"additionalProperties":{"type":"string","pattern":"^\\d+(\\.\\d{1,6})?$"}}},"additionalProperties":false},"newCustomers":{"type":"object","properties":{"ramp":{"type":"object","properties":{"target":{"type":"string","pattern":"^\\d+(\\.\\d{1,6})?$"},"endMonth":{"type":"integer","minimum":2,"maximum":60}},"required":["target","endMonth"],"additionalProperties":false},"overrides":{"type":"object","propertyNames":{"type":"string","pattern":"^(?:[1-9]|[1-5][0-9]|60)$"},"additionalProperties":{"type":"string","pattern":"^\\d+(\\.\\d{1,6})?$"}}},"additionalProperties":false},"churn":{"type":"object","properties":{"ramp":{"type":"object","properties":{"target":{"type":"string","pattern":"^\\d+(\\.\\d{1,6})?$"},"endMonth":{"type":"integer","minimum":2,"maximum":60}},"required":["target","endMonth"],"additionalProperties":false},"overrides":{"type":"object","propertyNames":{"type":"string","pattern":"^(?:[1-9]|[1-5][0-9]|60)$"},"additionalProperties":{"type":"string","pattern":"^\\d+(\\.\\d{1,6})?$"}}},"additionalProperties":false}},"additionalProperties":false},"price":{"type":"string","pattern":"^\\d+(\\.\\d{1,6})?$"},"unitCost":{"type":"string","pattern":"^\\d+(\\.\\d{1,6})?$"},"costRatio":{"type":"string","pattern":"^\\d+(\\.\\d{1,6})?$"},"newCustomers":{"default":"0","type":"string","pattern":"^\\d+(\\.\\d{1,6})?$"},"churn":{"default":"0","type":"string","pattern":"^\\d+(\\.\\d{1,6})?$"},"vat":{"type":"string","pattern":"^\\d+(\\.\\d{1,6})?$"},"costVat":{"type":"string","pattern":"^\\d+(\\.\\d{1,6})?$"},"costVatTiming":{"type":"string","enum":["invoice","payment"]},"vatTiming":{"type":"string","enum":["invoice","collection"]}},"required":["id","name","kind","quantity","price","unitCost","costRatio","vat"]}},"expenses":{"maxItems":50,"type":"array","items":{"type":"object","properties":{"id":{"type":"string"},"name":{"type":"string","minLength":1,"maxLength":120},"amount":{"type":"string","pattern":"^\\d+(\\.\\d{1,6})?$"},"evolution":{"type":"object","properties":{"amount":{"type":"object","properties":{"ramp":{"type":"object","properties":{"target":{"type":"string","pattern":"^\\d+(\\.\\d{1,6})?$"},"endMonth":{"type":"integer","minimum":2,"maximum":60}},"required":["target","endMonth"],"additionalProperties":false},"overrides":{"type":"object","propertyNames":{"type":"string","pattern":"^(?:[1-9]|[1-5][0-9]|60)$"},"additionalProperties":{"type":"string","pattern":"^\\d+(\\.\\d{1,6})?$"}}},"additionalProperties":false}},"additionalProperties":false},"vat":{"type":"string","pattern":"^\\d+(\\.\\d{1,6})?$"},"vatTiming":{"type":"string","enum":["invoice","payment"]},"standardCostId":{"type":"string","pattern":"^[a-z][a-z0-9-]{0,59}$"},"costEstimate":{"oneOf":[{"type":"object","properties":{"method":{"type":"string","const":"annual"},"annualAmount":{"type":"string","pattern":"^\\d+(\\.\\d{1,6})?$"}},"required":["method","annualAmount"],"additionalProperties":false},{"type":"object","properties":{"method":{"type":"string","const":"area"},"surface":{"type":"string","pattern":"^\\d+(\\.\\d{1,6})?$"},"annualRate":{"type":"string","pattern":"^\\d+(\\.\\d{1,6})?$"}},"required":["method","surface","annualRate"],"additionalProperties":false},{"type":"object","properties":{"method":{"type":"string","const":"energy"},"surface":{"type":"string","pattern":"^\\d+(\\.\\d{1,6})?$"},"consumption":{"type":"string","pattern":"^\\d+(\\.\\d{1,6})?$"},"kwhPrice":{"type":"string","pattern":"^\\d+(\\.\\d{1,6})?$"},"annualSubscription":{"type":"string","pattern":"^\\d+(\\.\\d{1,6})?$"}},"required":["method","surface","consumption","kwhPrice","annualSubscription"],"additionalProperties":false},{"type":"object","properties":{"method":{"type":"string","const":"revenue"},"annualRevenue":{"type":"string","pattern":"^\\d+(\\.\\d{1,6})?$"},"rate":{"type":"string","pattern":"^\\d+(\\.\\d{1,6})?$"}},"required":["method","annualRevenue","rate"],"additionalProperties":false},{"type":"object","properties":{"method":{"type":"string","const":"units"},"quantity":{"type":"string","pattern":"^\\d+(\\.\\d{1,6})?$"},"monthlyRate":{"type":"string","pattern":"^\\d+(\\.\\d{1,6})?$"}},"required":["method","quantity","monthlyRate"],"additionalProperties":false}]}},"required":["id","name","amount","vat"]}},"payroll":{"maxItems":30,"type":"array","items":{"type":"object","properties":{"id":{"type":"string"},"name":{"type":"string","minLength":1,"maxLength":120},"gross":{"type":"string","pattern":"^\\d+(\\.\\d{1,6})?$"},"count":{"type":"integer","minimum":1,"maximum":100},"startMonth":{"type":"integer","minimum":1,"maximum":60},"employerRate":{"type":"string","pattern":"^\\d+(\\.\\d{1,6})?$"}},"required":["id","name","gross","count","startMonth","employerRate"]}},"asset":{"type":"object","properties":{"amount":{"type":"string","pattern":"^\\d+(\\.\\d{1,6})?$"},"lifeMonths":{"type":"integer","minimum":1,"maximum":240},"vat":{"type":"string","pattern":"^\\d+(\\.\\d{1,6})?$"}},"required":["amount","lifeMonths","vat"]},"financing":{"type":"object","properties":{"equity":{"type":"string","pattern":"^\\d+(\\.\\d{1,6})?$"},"loan":{"type":"string","pattern":"^\\d+(\\.\\d{1,6})?$"},"annualRate":{"type":"string","pattern":"^\\d+(\\.\\d{1,6})?$"},"termMonths":{"type":"integer","minimum":1,"maximum":240}},"required":["equity","loan","annualRate","termMonths"]},"stock":{"type":"object","properties":{"initialPurchase":{"type":"string","pattern":"^\\d+(\\.\\d{1,6})?$"},"enabled":{"type":"boolean"},"vat":{"type":"string","pattern":"^\\d+(\\.\\d{1,6})?$"}},"required":["initialPurchase","enabled","vat"]},"collectionDelay":{"type":"integer","minimum":0,"maximum":3},"supplierDelay":{"type":"integer","minimum":0,"maximum":3},"tax":{"type":"object","properties":{"vatEnabled":{"type":"boolean"},"corporateRate":{"type":"string","pattern":"^\\d+(\\.\\d{1,6})?$"},"profile":{"type":"string","enum":["legacy","france-is"]},"reducedRateEligible":{"type":"boolean"},"capitalPaid":{"type":"boolean"},"ownershipEligible":{"type":"boolean"}},"required":["vatEnabled","corporateRate"]},"capacity":{"type":"object","properties":{"hoursPerMonth":{"type":"string","pattern":"^\\d+(\\.\\d{1,6})?$"},"minutesPerService":{"type":"string","pattern":"^\\d+(\\.\\d{1,6})?$"}},"required":["hoursPerMonth","minutesPerService"]}},"required":["start","months","revenues","expenses","payroll","asset","financing","stock","collectionDelay","supplierDelay","tax","capacity"]},"document":{"type":"object","properties":{"presentation":{"type":"string","maxLength":15000},"market":{"type":"string","maxLength":15000},"operations":{"type":"string","maxLength":15000},"acquisition":{"type":"string","maxLength":15000},"funding":{"type":"string","maxLength":15000},"risks":{"type":"string","maxLength":15000}},"required":["presentation","market","operations"]},"scenario":{"type":"object","properties":{"name":{"type":"string","minLength":1,"maxLength":100},"salesMultiplier":{"type":"string","pattern":"^\\d+(\\.\\d{1,6})?$"},"hiringShift":{"type":"integer","minimum":-36,"maximum":36},"revenueOverrides":{"type":"object","propertyNames":{"type":"string","minLength":1,"maxLength":120},"additionalProperties":{"type":"object","properties":{"quantity":{"type":"string","pattern":"^\\d+(\\.\\d{1,6})?$"},"price":{"type":"string","pattern":"^\\d+(\\.\\d{1,6})?$"},"newCustomers":{"type":"string","pattern":"^\\d+(\\.\\d{1,6})?$"},"churn":{"type":"string","pattern":"^\\d+(\\.\\d{1,6})?$"}},"additionalProperties":false}},"payrollShifts":{"type":"object","propertyNames":{"type":"string","minLength":1,"maxLength":120},"additionalProperties":{"type":"integer","minimum":-36,"maximum":36}},"collectionDelay":{"type":"integer","minimum":0,"maximum":3},"supplierDelay":{"type":"integer","minimum":0,"maximum":3}},"required":["name","salesMultiplier","hiringShift"],"additionalProperties":false},"scenarios":{"maxItems":19,"type":"array","items":{"type":"object","properties":{"name":{"type":"string","minLength":1,"maxLength":100},"salesMultiplier":{"type":"string","pattern":"^\\d+(\\.\\d{1,6})?$"},"hiringShift":{"type":"integer","minimum":-36,"maximum":36},"revenueOverrides":{"type":"object","propertyNames":{"type":"string","minLength":1,"maxLength":120},"additionalProperties":{"type":"object","properties":{"quantity":{"type":"string","pattern":"^\\d+(\\.\\d{1,6})?$"},"price":{"type":"string","pattern":"^\\d+(\\.\\d{1,6})?$"},"newCustomers":{"type":"string","pattern":"^\\d+(\\.\\d{1,6})?$"},"churn":{"type":"string","pattern":"^\\d+(\\.\\d{1,6})?$"}},"additionalProperties":false}},"payrollShifts":{"type":"object","propertyNames":{"type":"string","minLength":1,"maxLength":120},"additionalProperties":{"type":"integer","minimum":-36,"maximum":36}},"collectionDelay":{"type":"integer","minimum":0,"maximum":3},"supplierDelay":{"type":"integer","minimum":0,"maximum":3},"id":{"type":"string","minLength":1,"maxLength":120}},"required":["name","salesMultiplier","hiringShift","id"],"additionalProperties":false}},"assumptions":{"maxItems":400,"type":"array","items":{"type":"object","properties":{"path":{"type":"string","minLength":1,"maxLength":240},"label":{"type":"string","minLength":1,"maxLength":240},"status":{"type":"string","enum":["missing","example","estimate","confirmed"]},"source":{"type":"string","maxLength":1500},"note":{"type":"string","maxLength":3000}},"required":["path","label","status","source","note"],"additionalProperties":false}}},"required":["name","input","document","scenario"]},"commit":{"default":false,"type":"boolean"},"row":{"type":"object","properties":{"id":{"type":"string","pattern":"^[a-zA-Z0-9_-]{1,120}$"},"name":{"type":"string","minLength":1,"maxLength":120},"amount":{"type":"string","pattern":"^\\d+(\\.\\d{1,6})?$"},"evolution":{"type":"object","properties":{"amount":{"type":"object","properties":{"ramp":{"type":"object","properties":{"target":{"type":"string","pattern":"^\\d+(\\.\\d{1,6})?$"},"endMonth":{"type":"integer","minimum":2,"maximum":60}},"required":["target","endMonth"],"additionalProperties":false},"overrides":{"type":"object","propertyNames":{"type":"string","pattern":"^(?:[1-9]|[1-5][0-9]|60)$"},"additionalProperties":{"type":"string","pattern":"^\\d+(\\.\\d{1,6})?$"}}},"additionalProperties":false}},"additionalProperties":false},"vat":{"type":"string","pattern":"^\\d+(\\.\\d{1,6})?$"},"vatTiming":{"type":"string","enum":["invoice","payment"]},"standardCostId":{"type":"string","pattern":"^[a-z][a-z0-9-]{0,59}$"},"costEstimate":{"oneOf":[{"type":"object","properties":{"method":{"type":"string","const":"annual"},"annualAmount":{"type":"string","pattern":"^\\d+(\\.\\d{1,6})?$"}},"required":["method","annualAmount"],"additionalProperties":false},{"type":"object","properties":{"method":{"type":"string","const":"area"},"surface":{"type":"string","pattern":"^\\d+(\\.\\d{1,6})?$"},"annualRate":{"type":"string","pattern":"^\\d+(\\.\\d{1,6})?$"}},"required":["method","surface","annualRate"],"additionalProperties":false},{"type":"object","properties":{"method":{"type":"string","const":"energy"},"surface":{"type":"string","pattern":"^\\d+(\\.\\d{1,6})?$"},"consumption":{"type":"string","pattern":"^\\d+(\\.\\d{1,6})?$"},"kwhPrice":{"type":"string","pattern":"^\\d+(\\.\\d{1,6})?$"},"annualSubscription":{"type":"string","pattern":"^\\d+(\\.\\d{1,6})?$"}},"required":["method","surface","consumption","kwhPrice","annualSubscription"],"additionalProperties":false},{"type":"object","properties":{"method":{"type":"string","const":"revenue"},"annualRevenue":{"type":"string","pattern":"^\\d+(\\.\\d{1,6})?$"},"rate":{"type":"string","pattern":"^\\d+(\\.\\d{1,6})?$"}},"required":["method","annualRevenue","rate"],"additionalProperties":false},{"type":"object","properties":{"method":{"type":"string","const":"units"},"quantity":{"type":"string","pattern":"^\\d+(\\.\\d{1,6})?$"},"monthlyRate":{"type":"string","pattern":"^\\d+(\\.\\d{1,6})?$"}},"required":["method","quantity","monthlyRate"],"additionalProperties":false}]}},"required":["id","name","amount","vat"],"additionalProperties":false}},"required":["projectId","expectedVersion","row"],"additionalProperties":false}},{"name":"invitation_accept","description":"Accepter une invitation correspondant à l’adresse email vérifiée du compte.","scope":"write","scopeLabel":"Modifier les projets et les partages","readOnly":false,"destructive":true,"idempotent":false,"inputSchema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"invitationId":{"type":"string","minLength":1,"maxLength":120}},"required":["invitationId"],"additionalProperties":false}},{"name":"invitations_list","description":"Lister les invitations destinées à l’adresse email vérifiée du compte.","scope":"read","scopeLabel":"Lire les projets","readOnly":true,"destructive":false,"idempotent":true,"inputSchema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{},"additionalProperties":false}},{"name":"language_set","description":"Choisir la langue des outils et réponses pour cette connexion MCP. Les données et règles financières ne changent pas.","scope":"read","scopeLabel":"Lire les projets","readOnly":false,"destructive":false,"idempotent":true,"inputSchema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"locale":{"type":"string","enum":["fr","en","es"]}},"required":["locale"],"additionalProperties":false}},{"name":"mcp_connection_create","description":"Créer une clé MCP après confirmation explicite. Ne peut déléguer que les droits de la connexion actuelle. La clé retournée doit rester dans une configuration privée.","scope":"access","scopeLabel":"Gérer les connexions MCP et leurs droits","readOnly":false,"destructive":true,"idempotent":false,"inputSchema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"name":{"type":"string","minLength":1,"maxLength":120},"scopes":{"minItems":1,"maxItems":6,"type":"array","items":{"type":"string","enum":["read","write","billing","account","admin","access"]}},"locale":{"type":"string","enum":["fr","en","es"]},"confirmed":{"type":"boolean","const":true}},"required":["name","scopes","locale","confirmed"],"additionalProperties":false}},{"name":"mcp_connection_revoke","description":"Révoquer une clé MCP appartenant au compte, après confirmation explicite.","scope":"access","scopeLabel":"Gérer les connexions MCP et leurs droits","readOnly":false,"destructive":true,"idempotent":false,"inputSchema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"connectionId":{"type":"string","minLength":1,"maxLength":120},"confirmed":{"type":"boolean","const":true}},"required":["connectionId","confirmed"],"additionalProperties":false}},{"name":"mcp_connections_list","description":"Lister les clés MCP du compte et leurs droits, sans afficher les secrets.","scope":"access","scopeLabel":"Gérer les connexions MCP et leurs droits","readOnly":true,"destructive":false,"idempotent":true,"inputSchema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{},"additionalProperties":false}},{"name":"monthly_evolution_set","description":"Remplacer ou supprimer la progression et les exceptions du seul champ mensuel indiqué. Une exception zéro reste explicite. commit=true enregistre la modification.","scope":"write","scopeLabel":"Modifier les projets et les partages","readOnly":false,"destructive":true,"idempotent":false,"inputSchema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"projectId":{"type":"string","minLength":1,"maxLength":120},"expectedVersion":{"type":"integer","exclusiveMinimum":0,"maximum":2147483646},"draft":{"type":"object","properties":{"name":{"type":"string","minLength":1,"maxLength":120},"clientName":{"type":"string","maxLength":120},"input":{"type":"object","properties":{"start":{"type":"string","pattern":"^20\\d{2}-(0[1-9]|1[0-2])$"},"months":{"type":"integer","minimum":12,"maximum":60},"revenues":{"maxItems":30,"type":"array","items":{"type":"object","properties":{"id":{"type":"string","minLength":1},"name":{"type":"string","minLength":1,"maxLength":120},"kind":{"type":"string","enum":["service","product","subscription"]},"quantity":{"type":"string","pattern":"^\\d+(\\.\\d{1,6})?$"},"evolution":{"type":"object","properties":{"quantity":{"type":"object","properties":{"ramp":{"type":"object","properties":{"target":{"type":"string","pattern":"^\\d+(\\.\\d{1,6})?$"},"endMonth":{"type":"integer","minimum":2,"maximum":60}},"required":["target","endMonth"],"additionalProperties":false},"overrides":{"type":"object","propertyNames":{"type":"string","pattern":"^(?:[1-9]|[1-5][0-9]|60)$"},"additionalProperties":{"type":"string","pattern":"^\\d+(\\.\\d{1,6})?$"}}},"additionalProperties":false},"price":{"type":"object","properties":{"ramp":{"type":"object","properties":{"target":{"type":"string","pattern":"^\\d+(\\.\\d{1,6})?$"},"endMonth":{"type":"integer","minimum":2,"maximum":60}},"required":["target","endMonth"],"additionalProperties":false},"overrides":{"type":"object","propertyNames":{"type":"string","pattern":"^(?:[1-9]|[1-5][0-9]|60)$"},"additionalProperties":{"type":"string","pattern":"^\\d+(\\.\\d{1,6})?$"}}},"additionalProperties":false},"unitCost":{"type":"object","properties":{"ramp":{"type":"object","properties":{"target":{"type":"string","pattern":"^\\d+(\\.\\d{1,6})?$"},"endMonth":{"type":"integer","minimum":2,"maximum":60}},"required":["target","endMonth"],"additionalProperties":false},"overrides":{"type":"object","propertyNames":{"type":"string","pattern":"^(?:[1-9]|[1-5][0-9]|60)$"},"additionalProperties":{"type":"string","pattern":"^\\d+(\\.\\d{1,6})?$"}}},"additionalProperties":false},"costRatio":{"type":"object","properties":{"ramp":{"type":"object","properties":{"target":{"type":"string","pattern":"^\\d+(\\.\\d{1,6})?$"},"endMonth":{"type":"integer","minimum":2,"maximum":60}},"required":["target","endMonth"],"additionalProperties":false},"overrides":{"type":"object","propertyNames":{"type":"string","pattern":"^(?:[1-9]|[1-5][0-9]|60)$"},"additionalProperties":{"type":"string","pattern":"^\\d+(\\.\\d{1,6})?$"}}},"additionalProperties":false},"newCustomers":{"type":"object","properties":{"ramp":{"type":"object","properties":{"target":{"type":"string","pattern":"^\\d+(\\.\\d{1,6})?$"},"endMonth":{"type":"integer","minimum":2,"maximum":60}},"required":["target","endMonth"],"additionalProperties":false},"overrides":{"type":"object","propertyNames":{"type":"string","pattern":"^(?:[1-9]|[1-5][0-9]|60)$"},"additionalProperties":{"type":"string","pattern":"^\\d+(\\.\\d{1,6})?$"}}},"additionalProperties":false},"churn":{"type":"object","properties":{"ramp":{"type":"object","properties":{"target":{"type":"string","pattern":"^\\d+(\\.\\d{1,6})?$"},"endMonth":{"type":"integer","minimum":2,"maximum":60}},"required":["target","endMonth"],"additionalProperties":false},"overrides":{"type":"object","propertyNames":{"type":"string","pattern":"^(?:[1-9]|[1-5][0-9]|60)$"},"additionalProperties":{"type":"string","pattern":"^\\d+(\\.\\d{1,6})?$"}}},"additionalProperties":false}},"additionalProperties":false},"price":{"type":"string","pattern":"^\\d+(\\.\\d{1,6})?$"},"unitCost":{"type":"string","pattern":"^\\d+(\\.\\d{1,6})?$"},"costRatio":{"type":"string","pattern":"^\\d+(\\.\\d{1,6})?$"},"newCustomers":{"default":"0","type":"string","pattern":"^\\d+(\\.\\d{1,6})?$"},"churn":{"default":"0","type":"string","pattern":"^\\d+(\\.\\d{1,6})?$"},"vat":{"type":"string","pattern":"^\\d+(\\.\\d{1,6})?$"},"costVat":{"type":"string","pattern":"^\\d+(\\.\\d{1,6})?$"},"costVatTiming":{"type":"string","enum":["invoice","payment"]},"vatTiming":{"type":"string","enum":["invoice","collection"]}},"required":["id","name","kind","quantity","price","unitCost","costRatio","vat"]}},"expenses":{"maxItems":50,"type":"array","items":{"type":"object","properties":{"id":{"type":"string"},"name":{"type":"string","minLength":1,"maxLength":120},"amount":{"type":"string","pattern":"^\\d+(\\.\\d{1,6})?$"},"evolution":{"type":"object","properties":{"amount":{"type":"object","properties":{"ramp":{"type":"object","properties":{"target":{"type":"string","pattern":"^\\d+(\\.\\d{1,6})?$"},"endMonth":{"type":"integer","minimum":2,"maximum":60}},"required":["target","endMonth"],"additionalProperties":false},"overrides":{"type":"object","propertyNames":{"type":"string","pattern":"^(?:[1-9]|[1-5][0-9]|60)$"},"additionalProperties":{"type":"string","pattern":"^\\d+(\\.\\d{1,6})?$"}}},"additionalProperties":false}},"additionalProperties":false},"vat":{"type":"string","pattern":"^\\d+(\\.\\d{1,6})?$"},"vatTiming":{"type":"string","enum":["invoice","payment"]},"standardCostId":{"type":"string","pattern":"^[a-z][a-z0-9-]{0,59}$"},"costEstimate":{"oneOf":[{"type":"object","properties":{"method":{"type":"string","const":"annual"},"annualAmount":{"type":"string","pattern":"^\\d+(\\.\\d{1,6})?$"}},"required":["method","annualAmount"],"additionalProperties":false},{"type":"object","properties":{"method":{"type":"string","const":"area"},"surface":{"type":"string","pattern":"^\\d+(\\.\\d{1,6})?$"},"annualRate":{"type":"string","pattern":"^\\d+(\\.\\d{1,6})?$"}},"required":["method","surface","annualRate"],"additionalProperties":false},{"type":"object","properties":{"method":{"type":"string","const":"energy"},"surface":{"type":"string","pattern":"^\\d+(\\.\\d{1,6})?$"},"consumption":{"type":"string","pattern":"^\\d+(\\.\\d{1,6})?$"},"kwhPrice":{"type":"string","pattern":"^\\d+(\\.\\d{1,6})?$"},"annualSubscription":{"type":"string","pattern":"^\\d+(\\.\\d{1,6})?$"}},"required":["method","surface","consumption","kwhPrice","annualSubscription"],"additionalProperties":false},{"type":"object","properties":{"method":{"type":"string","const":"revenue"},"annualRevenue":{"type":"string","pattern":"^\\d+(\\.\\d{1,6})?$"},"rate":{"type":"string","pattern":"^\\d+(\\.\\d{1,6})?$"}},"required":["method","annualRevenue","rate"],"additionalProperties":false},{"type":"object","properties":{"method":{"type":"string","const":"units"},"quantity":{"type":"string","pattern":"^\\d+(\\.\\d{1,6})?$"},"monthlyRate":{"type":"string","pattern":"^\\d+(\\.\\d{1,6})?$"}},"required":["method","quantity","monthlyRate"],"additionalProperties":false}]}},"required":["id","name","amount","vat"]}},"payroll":{"maxItems":30,"type":"array","items":{"type":"object","properties":{"id":{"type":"string"},"name":{"type":"string","minLength":1,"maxLength":120},"gross":{"type":"string","pattern":"^\\d+(\\.\\d{1,6})?$"},"count":{"type":"integer","minimum":1,"maximum":100},"startMonth":{"type":"integer","minimum":1,"maximum":60},"employerRate":{"type":"string","pattern":"^\\d+(\\.\\d{1,6})?$"}},"required":["id","name","gross","count","startMonth","employerRate"]}},"asset":{"type":"object","properties":{"amount":{"type":"string","pattern":"^\\d+(\\.\\d{1,6})?$"},"lifeMonths":{"type":"integer","minimum":1,"maximum":240},"vat":{"type":"string","pattern":"^\\d+(\\.\\d{1,6})?$"}},"required":["amount","lifeMonths","vat"]},"financing":{"type":"object","properties":{"equity":{"type":"string","pattern":"^\\d+(\\.\\d{1,6})?$"},"loan":{"type":"string","pattern":"^\\d+(\\.\\d{1,6})?$"},"annualRate":{"type":"string","pattern":"^\\d+(\\.\\d{1,6})?$"},"termMonths":{"type":"integer","minimum":1,"maximum":240}},"required":["equity","loan","annualRate","termMonths"]},"stock":{"type":"object","properties":{"initialPurchase":{"type":"string","pattern":"^\\d+(\\.\\d{1,6})?$"},"enabled":{"type":"boolean"},"vat":{"type":"string","pattern":"^\\d+(\\.\\d{1,6})?$"}},"required":["initialPurchase","enabled","vat"]},"collectionDelay":{"type":"integer","minimum":0,"maximum":3},"supplierDelay":{"type":"integer","minimum":0,"maximum":3},"tax":{"type":"object","properties":{"vatEnabled":{"type":"boolean"},"corporateRate":{"type":"string","pattern":"^\\d+(\\.\\d{1,6})?$"},"profile":{"type":"string","enum":["legacy","france-is"]},"reducedRateEligible":{"type":"boolean"},"capitalPaid":{"type":"boolean"},"ownershipEligible":{"type":"boolean"}},"required":["vatEnabled","corporateRate"]},"capacity":{"type":"object","properties":{"hoursPerMonth":{"type":"string","pattern":"^\\d+(\\.\\d{1,6})?$"},"minutesPerService":{"type":"string","pattern":"^\\d+(\\.\\d{1,6})?$"}},"required":["hoursPerMonth","minutesPerService"]}},"required":["start","months","revenues","expenses","payroll","asset","financing","stock","collectionDelay","supplierDelay","tax","capacity"]},"document":{"type":"object","properties":{"presentation":{"type":"string","maxLength":15000},"market":{"type":"string","maxLength":15000},"operations":{"type":"string","maxLength":15000},"acquisition":{"type":"string","maxLength":15000},"funding":{"type":"string","maxLength":15000},"risks":{"type":"string","maxLength":15000}},"required":["presentation","market","operations"]},"scenario":{"type":"object","properties":{"name":{"type":"string","minLength":1,"maxLength":100},"salesMultiplier":{"type":"string","pattern":"^\\d+(\\.\\d{1,6})?$"},"hiringShift":{"type":"integer","minimum":-36,"maximum":36},"revenueOverrides":{"type":"object","propertyNames":{"type":"string","minLength":1,"maxLength":120},"additionalProperties":{"type":"object","properties":{"quantity":{"type":"string","pattern":"^\\d+(\\.\\d{1,6})?$"},"price":{"type":"string","pattern":"^\\d+(\\.\\d{1,6})?$"},"newCustomers":{"type":"string","pattern":"^\\d+(\\.\\d{1,6})?$"},"churn":{"type":"string","pattern":"^\\d+(\\.\\d{1,6})?$"}},"additionalProperties":false}},"payrollShifts":{"type":"object","propertyNames":{"type":"string","minLength":1,"maxLength":120},"additionalProperties":{"type":"integer","minimum":-36,"maximum":36}},"collectionDelay":{"type":"integer","minimum":0,"maximum":3},"supplierDelay":{"type":"integer","minimum":0,"maximum":3}},"required":["name","salesMultiplier","hiringShift"],"additionalProperties":false},"scenarios":{"maxItems":19,"type":"array","items":{"type":"object","properties":{"name":{"type":"string","minLength":1,"maxLength":100},"salesMultiplier":{"type":"string","pattern":"^\\d+(\\.\\d{1,6})?$"},"hiringShift":{"type":"integer","minimum":-36,"maximum":36},"revenueOverrides":{"type":"object","propertyNames":{"type":"string","minLength":1,"maxLength":120},"additionalProperties":{"type":"object","properties":{"quantity":{"type":"string","pattern":"^\\d+(\\.\\d{1,6})?$"},"price":{"type":"string","pattern":"^\\d+(\\.\\d{1,6})?$"},"newCustomers":{"type":"string","pattern":"^\\d+(\\.\\d{1,6})?$"},"churn":{"type":"string","pattern":"^\\d+(\\.\\d{1,6})?$"}},"additionalProperties":false}},"payrollShifts":{"type":"object","propertyNames":{"type":"string","minLength":1,"maxLength":120},"additionalProperties":{"type":"integer","minimum":-36,"maximum":36}},"collectionDelay":{"type":"integer","minimum":0,"maximum":3},"supplierDelay":{"type":"integer","minimum":0,"maximum":3},"id":{"type":"string","minLength":1,"maxLength":120}},"required":["name","salesMultiplier","hiringShift","id"],"additionalProperties":false}},"assumptions":{"maxItems":400,"type":"array","items":{"type":"object","properties":{"path":{"type":"string","minLength":1,"maxLength":240},"label":{"type":"string","minLength":1,"maxLength":240},"status":{"type":"string","enum":["missing","example","estimate","confirmed"]},"source":{"type":"string","maxLength":1500},"note":{"type":"string","maxLength":3000}},"required":["path","label","status","source","note"],"additionalProperties":false}}},"required":["name","input","document","scenario"]},"commit":{"default":false,"type":"boolean"},"collection":{"type":"string","enum":["revenues","expenses"]},"rowId":{"type":"string","pattern":"^[a-zA-Z0-9_-]{1,120}$"},"field":{"type":"string","enum":["quantity","price","unitCost","costRatio","newCustomers","churn","amount"]},"profile":{"anyOf":[{"type":"object","properties":{"ramp":{"type":"object","properties":{"target":{"type":"string","pattern":"^\\d+(\\.\\d{1,6})?$"},"endMonth":{"type":"integer","minimum":2,"maximum":60}},"required":["target","endMonth"],"additionalProperties":false},"overrides":{"type":"object","propertyNames":{"type":"string","pattern":"^(?:[1-9]|[1-5][0-9]|60)$"},"additionalProperties":{"type":"string","pattern":"^\\d+(\\.\\d{1,6})?$"}}},"additionalProperties":false},{"type":"null"}]}},"required":["projectId","expectedVersion","collection","rowId","field","profile"],"additionalProperties":false}},{"name":"oauth_connection_revoke","description":"Retirer l’autorisation OAuth d’un assistant et révoquer ses jetons d’accès et de renouvellement.","scope":"account","scopeLabel":"Gérer les données et les sessions du compte","readOnly":false,"destructive":true,"idempotent":false,"inputSchema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"connectionId":{"type":"string","minLength":1,"maxLength":120},"confirmed":{"type":"boolean","const":true}},"required":["connectionId","confirmed"],"additionalProperties":false}},{"name":"oauth_connections_list","description":"Lister les assistants autorisés par OAuth et leurs droits, sans secret de connexion.","scope":"account","scopeLabel":"Gérer les données et les sessions du compte","readOnly":true,"destructive":false,"idempotent":true,"inputSchema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{},"additionalProperties":false}},{"name":"payroll_remove","description":"Supprimer une ligne explicitement désignée et retirer ses remplacements de scénarios. commit=true enregistre la modification.","scope":"write","scopeLabel":"Modifier les projets et les partages","readOnly":false,"destructive":true,"idempotent":false,"inputSchema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"projectId":{"type":"string","minLength":1,"maxLength":120},"expectedVersion":{"type":"integer","exclusiveMinimum":0,"maximum":2147483646},"draft":{"type":"object","properties":{"name":{"type":"string","minLength":1,"maxLength":120},"clientName":{"type":"string","maxLength":120},"input":{"type":"object","properties":{"start":{"type":"string","pattern":"^20\\d{2}-(0[1-9]|1[0-2])$"},"months":{"type":"integer","minimum":12,"maximum":60},"revenues":{"maxItems":30,"type":"array","items":{"type":"object","properties":{"id":{"type":"string","minLength":1},"name":{"type":"string","minLength":1,"maxLength":120},"kind":{"type":"string","enum":["service","product","subscription"]},"quantity":{"type":"string","pattern":"^\\d+(\\.\\d{1,6})?$"},"evolution":{"type":"object","properties":{"quantity":{"type":"object","properties":{"ramp":{"type":"object","properties":{"target":{"type":"string","pattern":"^\\d+(\\.\\d{1,6})?$"},"endMonth":{"type":"integer","minimum":2,"maximum":60}},"required":["target","endMonth"],"additionalProperties":false},"overrides":{"type":"object","propertyNames":{"type":"string","pattern":"^(?:[1-9]|[1-5][0-9]|60)$"},"additionalProperties":{"type":"string","pattern":"^\\d+(\\.\\d{1,6})?$"}}},"additionalProperties":false},"price":{"type":"object","properties":{"ramp":{"type":"object","properties":{"target":{"type":"string","pattern":"^\\d+(\\.\\d{1,6})?$"},"endMonth":{"type":"integer","minimum":2,"maximum":60}},"required":["target","endMonth"],"additionalProperties":false},"overrides":{"type":"object","propertyNames":{"type":"string","pattern":"^(?:[1-9]|[1-5][0-9]|60)$"},"additionalProperties":{"type":"string","pattern":"^\\d+(\\.\\d{1,6})?$"}}},"additionalProperties":false},"unitCost":{"type":"object","properties":{"ramp":{"type":"object","properties":{"target":{"type":"string","pattern":"^\\d+(\\.\\d{1,6})?$"},"endMonth":{"type":"integer","minimum":2,"maximum":60}},"required":["target","endMonth"],"additionalProperties":false},"overrides":{"type":"object","propertyNames":{"type":"string","pattern":"^(?:[1-9]|[1-5][0-9]|60)$"},"additionalProperties":{"type":"string","pattern":"^\\d+(\\.\\d{1,6})?$"}}},"additionalProperties":false},"costRatio":{"type":"object","properties":{"ramp":{"type":"object","properties":{"target":{"type":"string","pattern":"^\\d+(\\.\\d{1,6})?$"},"endMonth":{"type":"integer","minimum":2,"maximum":60}},"required":["target","endMonth"],"additionalProperties":false},"overrides":{"type":"object","propertyNames":{"type":"string","pattern":"^(?:[1-9]|[1-5][0-9]|60)$"},"additionalProperties":{"type":"string","pattern":"^\\d+(\\.\\d{1,6})?$"}}},"additionalProperties":false},"newCustomers":{"type":"object","properties":{"ramp":{"type":"object","properties":{"target":{"type":"string","pattern":"^\\d+(\\.\\d{1,6})?$"},"endMonth":{"type":"integer","minimum":2,"maximum":60}},"required":["target","endMonth"],"additionalProperties":false},"overrides":{"type":"object","propertyNames":{"type":"string","pattern":"^(?:[1-9]|[1-5][0-9]|60)$"},"additionalProperties":{"type":"string","pattern":"^\\d+(\\.\\d{1,6})?$"}}},"additionalProperties":false},"churn":{"type":"object","properties":{"ramp":{"type":"object","properties":{"target":{"type":"string","pattern":"^\\d+(\\.\\d{1,6})?$"},"endMonth":{"type":"integer","minimum":2,"maximum":60}},"required":["target","endMonth"],"additionalProperties":false},"overrides":{"type":"object","propertyNames":{"type":"string","pattern":"^(?:[1-9]|[1-5][0-9]|60)$"},"additionalProperties":{"type":"string","pattern":"^\\d+(\\.\\d{1,6})?$"}}},"additionalProperties":false}},"additionalProperties":false},"price":{"type":"string","pattern":"^\\d+(\\.\\d{1,6})?$"},"unitCost":{"type":"string","pattern":"^\\d+(\\.\\d{1,6})?$"},"costRatio":{"type":"string","pattern":"^\\d+(\\.\\d{1,6})?$"},"newCustomers":{"default":"0","type":"string","pattern":"^\\d+(\\.\\d{1,6})?$"},"churn":{"default":"0","type":"string","pattern":"^\\d+(\\.\\d{1,6})?$"},"vat":{"type":"string","pattern":"^\\d+(\\.\\d{1,6})?$"},"costVat":{"type":"string","pattern":"^\\d+(\\.\\d{1,6})?$"},"costVatTiming":{"type":"string","enum":["invoice","payment"]},"vatTiming":{"type":"string","enum":["invoice","collection"]}},"required":["id","name","kind","quantity","price","unitCost","costRatio","vat"]}},"expenses":{"maxItems":50,"type":"array","items":{"type":"object","properties":{"id":{"type":"string"},"name":{"type":"string","minLength":1,"maxLength":120},"amount":{"type":"string","pattern":"^\\d+(\\.\\d{1,6})?$"},"evolution":{"type":"object","properties":{"amount":{"type":"object","properties":{"ramp":{"type":"object","properties":{"target":{"type":"string","pattern":"^\\d+(\\.\\d{1,6})?$"},"endMonth":{"type":"integer","minimum":2,"maximum":60}},"required":["target","endMonth"],"additionalProperties":false},"overrides":{"type":"object","propertyNames":{"type":"string","pattern":"^(?:[1-9]|[1-5][0-9]|60)$"},"additionalProperties":{"type":"string","pattern":"^\\d+(\\.\\d{1,6})?$"}}},"additionalProperties":false}},"additionalProperties":false},"vat":{"type":"string","pattern":"^\\d+(\\.\\d{1,6})?$"},"vatTiming":{"type":"string","enum":["invoice","payment"]},"standardCostId":{"type":"string","pattern":"^[a-z][a-z0-9-]{0,59}$"},"costEstimate":{"oneOf":[{"type":"object","properties":{"method":{"type":"string","const":"annual"},"annualAmount":{"type":"string","pattern":"^\\d+(\\.\\d{1,6})?$"}},"required":["method","annualAmount"],"additionalProperties":false},{"type":"object","properties":{"method":{"type":"string","const":"area"},"surface":{"type":"string","pattern":"^\\d+(\\.\\d{1,6})?$"},"annualRate":{"type":"string","pattern":"^\\d+(\\.\\d{1,6})?$"}},"required":["method","surface","annualRate"],"additionalProperties":false},{"type":"object","properties":{"method":{"type":"string","const":"energy"},"surface":{"type":"string","pattern":"^\\d+(\\.\\d{1,6})?$"},"consumption":{"type":"string","pattern":"^\\d+(\\.\\d{1,6})?$"},"kwhPrice":{"type":"string","pattern":"^\\d+(\\.\\d{1,6})?$"},"annualSubscription":{"type":"string","pattern":"^\\d+(\\.\\d{1,6})?$"}},"required":["method","surface","consumption","kwhPrice","annualSubscription"],"additionalProperties":false},{"type":"object","properties":{"method":{"type":"string","const":"revenue"},"annualRevenue":{"type":"string","pattern":"^\\d+(\\.\\d{1,6})?$"},"rate":{"type":"string","pattern":"^\\d+(\\.\\d{1,6})?$"}},"required":["method","annualRevenue","rate"],"additionalProperties":false},{"type":"object","properties":{"method":{"type":"string","const":"units"},"quantity":{"type":"string","pattern":"^\\d+(\\.\\d{1,6})?$"},"monthlyRate":{"type":"string","pattern":"^\\d+(\\.\\d{1,6})?$"}},"required":["method","quantity","monthlyRate"],"additionalProperties":false}]}},"required":["id","name","amount","vat"]}},"payroll":{"maxItems":30,"type":"array","items":{"type":"object","properties":{"id":{"type":"string"},"name":{"type":"string","minLength":1,"maxLength":120},"gross":{"type":"string","pattern":"^\\d+(\\.\\d{1,6})?$"},"count":{"type":"integer","minimum":1,"maximum":100},"startMonth":{"type":"integer","minimum":1,"maximum":60},"employerRate":{"type":"string","pattern":"^\\d+(\\.\\d{1,6})?$"}},"required":["id","name","gross","count","startMonth","employerRate"]}},"asset":{"type":"object","properties":{"amount":{"type":"string","pattern":"^\\d+(\\.\\d{1,6})?$"},"lifeMonths":{"type":"integer","minimum":1,"maximum":240},"vat":{"type":"string","pattern":"^\\d+(\\.\\d{1,6})?$"}},"required":["amount","lifeMonths","vat"]},"financing":{"type":"object","properties":{"equity":{"type":"string","pattern":"^\\d+(\\.\\d{1,6})?$"},"loan":{"type":"string","pattern":"^\\d+(\\.\\d{1,6})?$"},"annualRate":{"type":"string","pattern":"^\\d+(\\.\\d{1,6})?$"},"termMonths":{"type":"integer","minimum":1,"maximum":240}},"required":["equity","loan","annualRate","termMonths"]},"stock":{"type":"object","properties":{"initialPurchase":{"type":"string","pattern":"^\\d+(\\.\\d{1,6})?$"},"enabled":{"type":"boolean"},"vat":{"type":"string","pattern":"^\\d+(\\.\\d{1,6})?$"}},"required":["initialPurchase","enabled","vat"]},"collectionDelay":{"type":"integer","minimum":0,"maximum":3},"supplierDelay":{"type":"integer","minimum":0,"maximum":3},"tax":{"type":"object","properties":{"vatEnabled":{"type":"boolean"},"corporateRate":{"type":"string","pattern":"^\\d+(\\.\\d{1,6})?$"},"profile":{"type":"string","enum":["legacy","france-is"]},"reducedRateEligible":{"type":"boolean"},"capitalPaid":{"type":"boolean"},"ownershipEligible":{"type":"boolean"}},"required":["vatEnabled","corporateRate"]},"capacity":{"type":"object","properties":{"hoursPerMonth":{"type":"string","pattern":"^\\d+(\\.\\d{1,6})?$"},"minutesPerService":{"type":"string","pattern":"^\\d+(\\.\\d{1,6})?$"}},"required":["hoursPerMonth","minutesPerService"]}},"required":["start","months","revenues","expenses","payroll","asset","financing","stock","collectionDelay","supplierDelay","tax","capacity"]},"document":{"type":"object","properties":{"presentation":{"type":"string","maxLength":15000},"market":{"type":"string","maxLength":15000},"operations":{"type":"string","maxLength":15000},"acquisition":{"type":"string","maxLength":15000},"funding":{"type":"string","maxLength":15000},"risks":{"type":"string","maxLength":15000}},"required":["presentation","market","operations"]},"scenario":{"type":"object","properties":{"name":{"type":"string","minLength":1,"maxLength":100},"salesMultiplier":{"type":"string","pattern":"^\\d+(\\.\\d{1,6})?$"},"hiringShift":{"type":"integer","minimum":-36,"maximum":36},"revenueOverrides":{"type":"object","propertyNames":{"type":"string","minLength":1,"maxLength":120},"additionalProperties":{"type":"object","properties":{"quantity":{"type":"string","pattern":"^\\d+(\\.\\d{1,6})?$"},"price":{"type":"string","pattern":"^\\d+(\\.\\d{1,6})?$"},"newCustomers":{"type":"string","pattern":"^\\d+(\\.\\d{1,6})?$"},"churn":{"type":"string","pattern":"^\\d+(\\.\\d{1,6})?$"}},"additionalProperties":false}},"payrollShifts":{"type":"object","propertyNames":{"type":"string","minLength":1,"maxLength":120},"additionalProperties":{"type":"integer","minimum":-36,"maximum":36}},"collectionDelay":{"type":"integer","minimum":0,"maximum":3},"supplierDelay":{"type":"integer","minimum":0,"maximum":3}},"required":["name","salesMultiplier","hiringShift"],"additionalProperties":false},"scenarios":{"maxItems":19,"type":"array","items":{"type":"object","properties":{"name":{"type":"string","minLength":1,"maxLength":100},"salesMultiplier":{"type":"string","pattern":"^\\d+(\\.\\d{1,6})?$"},"hiringShift":{"type":"integer","minimum":-36,"maximum":36},"revenueOverrides":{"type":"object","propertyNames":{"type":"string","minLength":1,"maxLength":120},"additionalProperties":{"type":"object","properties":{"quantity":{"type":"string","pattern":"^\\d+(\\.\\d{1,6})?$"},"price":{"type":"string","pattern":"^\\d+(\\.\\d{1,6})?$"},"newCustomers":{"type":"string","pattern":"^\\d+(\\.\\d{1,6})?$"},"churn":{"type":"string","pattern":"^\\d+(\\.\\d{1,6})?$"}},"additionalProperties":false}},"payrollShifts":{"type":"object","propertyNames":{"type":"string","minLength":1,"maxLength":120},"additionalProperties":{"type":"integer","minimum":-36,"maximum":36}},"collectionDelay":{"type":"integer","minimum":0,"maximum":3},"supplierDelay":{"type":"integer","minimum":0,"maximum":3},"id":{"type":"string","minLength":1,"maxLength":120}},"required":["name","salesMultiplier","hiringShift","id"],"additionalProperties":false}},"assumptions":{"maxItems":400,"type":"array","items":{"type":"object","properties":{"path":{"type":"string","minLength":1,"maxLength":240},"label":{"type":"string","minLength":1,"maxLength":240},"status":{"type":"string","enum":["missing","example","estimate","confirmed"]},"source":{"type":"string","maxLength":1500},"note":{"type":"string","maxLength":3000}},"required":["path","label","status","source","note"],"additionalProperties":false}}},"required":["name","input","document","scenario"]},"commit":{"default":false,"type":"boolean"},"rowId":{"type":"string","pattern":"^[a-zA-Z0-9_-]{1,120}$"}},"required":["projectId","expectedVersion","rowId"],"additionalProperties":false}},{"name":"payroll_upsert","description":"Ajouter ou modifier une ligne complète des hypothèses avec son identifiant stable. commit=true enregistre la modification.","scope":"write","scopeLabel":"Modifier les projets et les partages","readOnly":false,"destructive":true,"idempotent":false,"inputSchema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"projectId":{"type":"string","minLength":1,"maxLength":120},"expectedVersion":{"type":"integer","exclusiveMinimum":0,"maximum":2147483646},"draft":{"type":"object","properties":{"name":{"type":"string","minLength":1,"maxLength":120},"clientName":{"type":"string","maxLength":120},"input":{"type":"object","properties":{"start":{"type":"string","pattern":"^20\\d{2}-(0[1-9]|1[0-2])$"},"months":{"type":"integer","minimum":12,"maximum":60},"revenues":{"maxItems":30,"type":"array","items":{"type":"object","properties":{"id":{"type":"string","minLength":1},"name":{"type":"string","minLength":1,"maxLength":120},"kind":{"type":"string","enum":["service","product","subscription"]},"quantity":{"type":"string","pattern":"^\\d+(\\.\\d{1,6})?$"},"evolution":{"type":"object","properties":{"quantity":{"type":"object","properties":{"ramp":{"type":"object","properties":{"target":{"type":"string","pattern":"^\\d+(\\.\\d{1,6})?$"},"endMonth":{"type":"integer","minimum":2,"maximum":60}},"required":["target","endMonth"],"additionalProperties":false},"overrides":{"type":"object","propertyNames":{"type":"string","pattern":"^(?:[1-9]|[1-5][0-9]|60)$"},"additionalProperties":{"type":"string","pattern":"^\\d+(\\.\\d{1,6})?$"}}},"additionalProperties":false},"price":{"type":"object","properties":{"ramp":{"type":"object","properties":{"target":{"type":"string","pattern":"^\\d+(\\.\\d{1,6})?$"},"endMonth":{"type":"integer","minimum":2,"maximum":60}},"required":["target","endMonth"],"additionalProperties":false},"overrides":{"type":"object","propertyNames":{"type":"string","pattern":"^(?:[1-9]|[1-5][0-9]|60)$"},"additionalProperties":{"type":"string","pattern":"^\\d+(\\.\\d{1,6})?$"}}},"additionalProperties":false},"unitCost":{"type":"object","properties":{"ramp":{"type":"object","properties":{"target":{"type":"string","pattern":"^\\d+(\\.\\d{1,6})?$"},"endMonth":{"type":"integer","minimum":2,"maximum":60}},"required":["target","endMonth"],"additionalProperties":false},"overrides":{"type":"object","propertyNames":{"type":"string","pattern":"^(?:[1-9]|[1-5][0-9]|60)$"},"additionalProperties":{"type":"string","pattern":"^\\d+(\\.\\d{1,6})?$"}}},"additionalProperties":false},"costRatio":{"type":"object","properties":{"ramp":{"type":"object","properties":{"target":{"type":"string","pattern":"^\\d+(\\.\\d{1,6})?$"},"endMonth":{"type":"integer","minimum":2,"maximum":60}},"required":["target","endMonth"],"additionalProperties":false},"overrides":{"type":"object","propertyNames":{"type":"string","pattern":"^(?:[1-9]|[1-5][0-9]|60)$"},"additionalProperties":{"type":"string","pattern":"^\\d+(\\.\\d{1,6})?$"}}},"additionalProperties":false},"newCustomers":{"type":"object","properties":{"ramp":{"type":"object","properties":{"target":{"type":"string","pattern":"^\\d+(\\.\\d{1,6})?$"},"endMonth":{"type":"integer","minimum":2,"maximum":60}},"required":["target","endMonth"],"additionalProperties":false},"overrides":{"type":"object","propertyNames":{"type":"string","pattern":"^(?:[1-9]|[1-5][0-9]|60)$"},"additionalProperties":{"type":"string","pattern":"^\\d+(\\.\\d{1,6})?$"}}},"additionalProperties":false},"churn":{"type":"object","properties":{"ramp":{"type":"object","properties":{"target":{"type":"string","pattern":"^\\d+(\\.\\d{1,6})?$"},"endMonth":{"type":"integer","minimum":2,"maximum":60}},"required":["target","endMonth"],"additionalProperties":false},"overrides":{"type":"object","propertyNames":{"type":"string","pattern":"^(?:[1-9]|[1-5][0-9]|60)$"},"additionalProperties":{"type":"string","pattern":"^\\d+(\\.\\d{1,6})?$"}}},"additionalProperties":false}},"additionalProperties":false},"price":{"type":"string","pattern":"^\\d+(\\.\\d{1,6})?$"},"unitCost":{"type":"string","pattern":"^\\d+(\\.\\d{1,6})?$"},"costRatio":{"type":"string","pattern":"^\\d+(\\.\\d{1,6})?$"},"newCustomers":{"default":"0","type":"string","pattern":"^\\d+(\\.\\d{1,6})?$"},"churn":{"default":"0","type":"string","pattern":"^\\d+(\\.\\d{1,6})?$"},"vat":{"type":"string","pattern":"^\\d+(\\.\\d{1,6})?$"},"costVat":{"type":"string","pattern":"^\\d+(\\.\\d{1,6})?$"},"costVatTiming":{"type":"string","enum":["invoice","payment"]},"vatTiming":{"type":"string","enum":["invoice","collection"]}},"required":["id","name","kind","quantity","price","unitCost","costRatio","vat"]}},"expenses":{"maxItems":50,"type":"array","items":{"type":"object","properties":{"id":{"type":"string"},"name":{"type":"string","minLength":1,"maxLength":120},"amount":{"type":"string","pattern":"^\\d+(\\.\\d{1,6})?$"},"evolution":{"type":"object","properties":{"amount":{"type":"object","properties":{"ramp":{"type":"object","properties":{"target":{"type":"string","pattern":"^\\d+(\\.\\d{1,6})?$"},"endMonth":{"type":"integer","minimum":2,"maximum":60}},"required":["target","endMonth"],"additionalProperties":false},"overrides":{"type":"object","propertyNames":{"type":"string","pattern":"^(?:[1-9]|[1-5][0-9]|60)$"},"additionalProperties":{"type":"string","pattern":"^\\d+(\\.\\d{1,6})?$"}}},"additionalProperties":false}},"additionalProperties":false},"vat":{"type":"string","pattern":"^\\d+(\\.\\d{1,6})?$"},"vatTiming":{"type":"string","enum":["invoice","payment"]},"standardCostId":{"type":"string","pattern":"^[a-z][a-z0-9-]{0,59}$"},"costEstimate":{"oneOf":[{"type":"object","properties":{"method":{"type":"string","const":"annual"},"annualAmount":{"type":"string","pattern":"^\\d+(\\.\\d{1,6})?$"}},"required":["method","annualAmount"],"additionalProperties":false},{"type":"object","properties":{"method":{"type":"string","const":"area"},"surface":{"type":"string","pattern":"^\\d+(\\.\\d{1,6})?$"},"annualRate":{"type":"string","pattern":"^\\d+(\\.\\d{1,6})?$"}},"required":["method","surface","annualRate"],"additionalProperties":false},{"type":"object","properties":{"method":{"type":"string","const":"energy"},"surface":{"type":"string","pattern":"^\\d+(\\.\\d{1,6})?$"},"consumption":{"type":"string","pattern":"^\\d+(\\.\\d{1,6})?$"},"kwhPrice":{"type":"string","pattern":"^\\d+(\\.\\d{1,6})?$"},"annualSubscription":{"type":"string","pattern":"^\\d+(\\.\\d{1,6})?$"}},"required":["method","surface","consumption","kwhPrice","annualSubscription"],"additionalProperties":false},{"type":"object","properties":{"method":{"type":"string","const":"revenue"},"annualRevenue":{"type":"string","pattern":"^\\d+(\\.\\d{1,6})?$"},"rate":{"type":"string","pattern":"^\\d+(\\.\\d{1,6})?$"}},"required":["method","annualRevenue","rate"],"additionalProperties":false},{"type":"object","properties":{"method":{"type":"string","const":"units"},"quantity":{"type":"string","pattern":"^\\d+(\\.\\d{1,6})?$"},"monthlyRate":{"type":"string","pattern":"^\\d+(\\.\\d{1,6})?$"}},"required":["method","quantity","monthlyRate"],"additionalProperties":false}]}},"required":["id","name","amount","vat"]}},"payroll":{"maxItems":30,"type":"array","items":{"type":"object","properties":{"id":{"type":"string"},"name":{"type":"string","minLength":1,"maxLength":120},"gross":{"type":"string","pattern":"^\\d+(\\.\\d{1,6})?$"},"count":{"type":"integer","minimum":1,"maximum":100},"startMonth":{"type":"integer","minimum":1,"maximum":60},"employerRate":{"type":"string","pattern":"^\\d+(\\.\\d{1,6})?$"}},"required":["id","name","gross","count","startMonth","employerRate"]}},"asset":{"type":"object","properties":{"amount":{"type":"string","pattern":"^\\d+(\\.\\d{1,6})?$"},"lifeMonths":{"type":"integer","minimum":1,"maximum":240},"vat":{"type":"string","pattern":"^\\d+(\\.\\d{1,6})?$"}},"required":["amount","lifeMonths","vat"]},"financing":{"type":"object","properties":{"equity":{"type":"string","pattern":"^\\d+(\\.\\d{1,6})?$"},"loan":{"type":"string","pattern":"^\\d+(\\.\\d{1,6})?$"},"annualRate":{"type":"string","pattern":"^\\d+(\\.\\d{1,6})?$"},"termMonths":{"type":"integer","minimum":1,"maximum":240}},"required":["equity","loan","annualRate","termMonths"]},"stock":{"type":"object","properties":{"initialPurchase":{"type":"string","pattern":"^\\d+(\\.\\d{1,6})?$"},"enabled":{"type":"boolean"},"vat":{"type":"string","pattern":"^\\d+(\\.\\d{1,6})?$"}},"required":["initialPurchase","enabled","vat"]},"collectionDelay":{"type":"integer","minimum":0,"maximum":3},"supplierDelay":{"type":"integer","minimum":0,"maximum":3},"tax":{"type":"object","properties":{"vatEnabled":{"type":"boolean"},"corporateRate":{"type":"string","pattern":"^\\d+(\\.\\d{1,6})?$"},"profile":{"type":"string","enum":["legacy","france-is"]},"reducedRateEligible":{"type":"boolean"},"capitalPaid":{"type":"boolean"},"ownershipEligible":{"type":"boolean"}},"required":["vatEnabled","corporateRate"]},"capacity":{"type":"object","properties":{"hoursPerMonth":{"type":"string","pattern":"^\\d+(\\.\\d{1,6})?$"},"minutesPerService":{"type":"string","pattern":"^\\d+(\\.\\d{1,6})?$"}},"required":["hoursPerMonth","minutesPerService"]}},"required":["start","months","revenues","expenses","payroll","asset","financing","stock","collectionDelay","supplierDelay","tax","capacity"]},"document":{"type":"object","properties":{"presentation":{"type":"string","maxLength":15000},"market":{"type":"string","maxLength":15000},"operations":{"type":"string","maxLength":15000},"acquisition":{"type":"string","maxLength":15000},"funding":{"type":"string","maxLength":15000},"risks":{"type":"string","maxLength":15000}},"required":["presentation","market","operations"]},"scenario":{"type":"object","properties":{"name":{"type":"string","minLength":1,"maxLength":100},"salesMultiplier":{"type":"string","pattern":"^\\d+(\\.\\d{1,6})?$"},"hiringShift":{"type":"integer","minimum":-36,"maximum":36},"revenueOverrides":{"type":"object","propertyNames":{"type":"string","minLength":1,"maxLength":120},"additionalProperties":{"type":"object","properties":{"quantity":{"type":"string","pattern":"^\\d+(\\.\\d{1,6})?$"},"price":{"type":"string","pattern":"^\\d+(\\.\\d{1,6})?$"},"newCustomers":{"type":"string","pattern":"^\\d+(\\.\\d{1,6})?$"},"churn":{"type":"string","pattern":"^\\d+(\\.\\d{1,6})?$"}},"additionalProperties":false}},"payrollShifts":{"type":"object","propertyNames":{"type":"string","minLength":1,"maxLength":120},"additionalProperties":{"type":"integer","minimum":-36,"maximum":36}},"collectionDelay":{"type":"integer","minimum":0,"maximum":3},"supplierDelay":{"type":"integer","minimum":0,"maximum":3}},"required":["name","salesMultiplier","hiringShift"],"additionalProperties":false},"scenarios":{"maxItems":19,"type":"array","items":{"type":"object","properties":{"name":{"type":"string","minLength":1,"maxLength":100},"salesMultiplier":{"type":"string","pattern":"^\\d+(\\.\\d{1,6})?$"},"hiringShift":{"type":"integer","minimum":-36,"maximum":36},"revenueOverrides":{"type":"object","propertyNames":{"type":"string","minLength":1,"maxLength":120},"additionalProperties":{"type":"object","properties":{"quantity":{"type":"string","pattern":"^\\d+(\\.\\d{1,6})?$"},"price":{"type":"string","pattern":"^\\d+(\\.\\d{1,6})?$"},"newCustomers":{"type":"string","pattern":"^\\d+(\\.\\d{1,6})?$"},"churn":{"type":"string","pattern":"^\\d+(\\.\\d{1,6})?$"}},"additionalProperties":false}},"payrollShifts":{"type":"object","propertyNames":{"type":"string","minLength":1,"maxLength":120},"additionalProperties":{"type":"integer","minimum":-36,"maximum":36}},"collectionDelay":{"type":"integer","minimum":0,"maximum":3},"supplierDelay":{"type":"integer","minimum":0,"maximum":3},"id":{"type":"string","minLength":1,"maxLength":120}},"required":["name","salesMultiplier","hiringShift","id"],"additionalProperties":false}},"assumptions":{"maxItems":400,"type":"array","items":{"type":"object","properties":{"path":{"type":"string","minLength":1,"maxLength":240},"label":{"type":"string","minLength":1,"maxLength":240},"status":{"type":"string","enum":["missing","example","estimate","confirmed"]},"source":{"type":"string","maxLength":1500},"note":{"type":"string","maxLength":3000}},"required":["path","label","status","source","note"],"additionalProperties":false}}},"required":["name","input","document","scenario"]},"commit":{"default":false,"type":"boolean"},"row":{"type":"object","properties":{"id":{"type":"string","pattern":"^[a-zA-Z0-9_-]{1,120}$"},"name":{"type":"string","minLength":1,"maxLength":120},"gross":{"type":"string","pattern":"^\\d+(\\.\\d{1,6})?$"},"count":{"type":"integer","minimum":1,"maximum":100},"startMonth":{"type":"integer","minimum":1,"maximum":60},"employerRate":{"type":"string","pattern":"^\\d+(\\.\\d{1,6})?$"}},"required":["id","name","gross","count","startMonth","employerRate"],"additionalProperties":false}},"required":["projectId","expectedVersion","row"],"additionalProperties":false}},{"name":"portfolio_list","description":"Consulter l’avancement des dossiers clients avec la vue Cabinet et pagination.","scope":"read","scopeLabel":"Lire les projets","readOnly":true,"destructive":false,"idempotent":true,"inputSchema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"query":{"type":"string","maxLength":254},"page":{"type":"integer","minimum":1,"maximum":100000}},"additionalProperties":false}},{"name":"project_archive","description":"Archiver ou réactiver un projet appartenant au compte, avec contrôle de version et de quota.","scope":"write","scopeLabel":"Modifier les projets et les partages","readOnly":false,"destructive":true,"idempotent":false,"inputSchema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"projectId":{"type":"string","minLength":1,"maxLength":120},"archived":{"type":"boolean"},"expectedVersion":{"type":"integer","exclusiveMinimum":0,"maximum":2147483646}},"required":["projectId","archived","expectedVersion"],"additionalProperties":false}},{"name":"project_calculate","description":"Recalculer un brouillon et comparer ses scénarios avec le moteur financier.","scope":"read","scopeLabel":"Lire les projets","readOnly":true,"destructive":false,"idempotent":true,"inputSchema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"draft":{"type":"object","properties":{"name":{"type":"string","minLength":1,"maxLength":120},"clientName":{"type":"string","maxLength":120},"input":{"type":"object","properties":{"start":{"type":"string","pattern":"^20\\d{2}-(0[1-9]|1[0-2])$"},"months":{"type":"integer","minimum":12,"maximum":60},"revenues":{"maxItems":30,"type":"array","items":{"type":"object","properties":{"id":{"type":"string","minLength":1},"name":{"type":"string","minLength":1,"maxLength":120},"kind":{"type":"string","enum":["service","product","subscription"]},"quantity":{"type":"string","pattern":"^\\d+(\\.\\d{1,6})?$"},"evolution":{"type":"object","properties":{"quantity":{"type":"object","properties":{"ramp":{"type":"object","properties":{"target":{"type":"string","pattern":"^\\d+(\\.\\d{1,6})?$"},"endMonth":{"type":"integer","minimum":2,"maximum":60}},"required":["target","endMonth"],"additionalProperties":false},"overrides":{"type":"object","propertyNames":{"type":"string","pattern":"^(?:[1-9]|[1-5][0-9]|60)$"},"additionalProperties":{"type":"string","pattern":"^\\d+(\\.\\d{1,6})?$"}}},"additionalProperties":false},"price":{"type":"object","properties":{"ramp":{"type":"object","properties":{"target":{"type":"string","pattern":"^\\d+(\\.\\d{1,6})?$"},"endMonth":{"type":"integer","minimum":2,"maximum":60}},"required":["target","endMonth"],"additionalProperties":false},"overrides":{"type":"object","propertyNames":{"type":"string","pattern":"^(?:[1-9]|[1-5][0-9]|60)$"},"additionalProperties":{"type":"string","pattern":"^\\d+(\\.\\d{1,6})?$"}}},"additionalProperties":false},"unitCost":{"type":"object","properties":{"ramp":{"type":"object","properties":{"target":{"type":"string","pattern":"^\\d+(\\.\\d{1,6})?$"},"endMonth":{"type":"integer","minimum":2,"maximum":60}},"required":["target","endMonth"],"additionalProperties":false},"overrides":{"type":"object","propertyNames":{"type":"string","pattern":"^(?:[1-9]|[1-5][0-9]|60)$"},"additionalProperties":{"type":"string","pattern":"^\\d+(\\.\\d{1,6})?$"}}},"additionalProperties":false},"costRatio":{"type":"object","properties":{"ramp":{"type":"object","properties":{"target":{"type":"string","pattern":"^\\d+(\\.\\d{1,6})?$"},"endMonth":{"type":"integer","minimum":2,"maximum":60}},"required":["target","endMonth"],"additionalProperties":false},"overrides":{"type":"object","propertyNames":{"type":"string","pattern":"^(?:[1-9]|[1-5][0-9]|60)$"},"additionalProperties":{"type":"string","pattern":"^\\d+(\\.\\d{1,6})?$"}}},"additionalProperties":false},"newCustomers":{"type":"object","properties":{"ramp":{"type":"object","properties":{"target":{"type":"string","pattern":"^\\d+(\\.\\d{1,6})?$"},"endMonth":{"type":"integer","minimum":2,"maximum":60}},"required":["target","endMonth"],"additionalProperties":false},"overrides":{"type":"object","propertyNames":{"type":"string","pattern":"^(?:[1-9]|[1-5][0-9]|60)$"},"additionalProperties":{"type":"string","pattern":"^\\d+(\\.\\d{1,6})?$"}}},"additionalProperties":false},"churn":{"type":"object","properties":{"ramp":{"type":"object","properties":{"target":{"type":"string","pattern":"^\\d+(\\.\\d{1,6})?$"},"endMonth":{"type":"integer","minimum":2,"maximum":60}},"required":["target","endMonth"],"additionalProperties":false},"overrides":{"type":"object","propertyNames":{"type":"string","pattern":"^(?:[1-9]|[1-5][0-9]|60)$"},"additionalProperties":{"type":"string","pattern":"^\\d+(\\.\\d{1,6})?$"}}},"additionalProperties":false}},"additionalProperties":false},"price":{"type":"string","pattern":"^\\d+(\\.\\d{1,6})?$"},"unitCost":{"type":"string","pattern":"^\\d+(\\.\\d{1,6})?$"},"costRatio":{"type":"string","pattern":"^\\d+(\\.\\d{1,6})?$"},"newCustomers":{"default":"0","type":"string","pattern":"^\\d+(\\.\\d{1,6})?$"},"churn":{"default":"0","type":"string","pattern":"^\\d+(\\.\\d{1,6})?$"},"vat":{"type":"string","pattern":"^\\d+(\\.\\d{1,6})?$"},"costVat":{"type":"string","pattern":"^\\d+(\\.\\d{1,6})?$"},"costVatTiming":{"type":"string","enum":["invoice","payment"]},"vatTiming":{"type":"string","enum":["invoice","collection"]}},"required":["id","name","kind","quantity","price","unitCost","costRatio","vat"]}},"expenses":{"maxItems":50,"type":"array","items":{"type":"object","properties":{"id":{"type":"string"},"name":{"type":"string","minLength":1,"maxLength":120},"amount":{"type":"string","pattern":"^\\d+(\\.\\d{1,6})?$"},"evolution":{"type":"object","properties":{"amount":{"type":"object","properties":{"ramp":{"type":"object","properties":{"target":{"type":"string","pattern":"^\\d+(\\.\\d{1,6})?$"},"endMonth":{"type":"integer","minimum":2,"maximum":60}},"required":["target","endMonth"],"additionalProperties":false},"overrides":{"type":"object","propertyNames":{"type":"string","pattern":"^(?:[1-9]|[1-5][0-9]|60)$"},"additionalProperties":{"type":"string","pattern":"^\\d+(\\.\\d{1,6})?$"}}},"additionalProperties":false}},"additionalProperties":false},"vat":{"type":"string","pattern":"^\\d+(\\.\\d{1,6})?$"},"vatTiming":{"type":"string","enum":["invoice","payment"]},"standardCostId":{"type":"string","pattern":"^[a-z][a-z0-9-]{0,59}$"},"costEstimate":{"oneOf":[{"type":"object","properties":{"method":{"type":"string","const":"annual"},"annualAmount":{"type":"string","pattern":"^\\d+(\\.\\d{1,6})?$"}},"required":["method","annualAmount"],"additionalProperties":false},{"type":"object","properties":{"method":{"type":"string","const":"area"},"surface":{"type":"string","pattern":"^\\d+(\\.\\d{1,6})?$"},"annualRate":{"type":"string","pattern":"^\\d+(\\.\\d{1,6})?$"}},"required":["method","surface","annualRate"],"additionalProperties":false},{"type":"object","properties":{"method":{"type":"string","const":"energy"},"surface":{"type":"string","pattern":"^\\d+(\\.\\d{1,6})?$"},"consumption":{"type":"string","pattern":"^\\d+(\\.\\d{1,6})?$"},"kwhPrice":{"type":"string","pattern":"^\\d+(\\.\\d{1,6})?$"},"annualSubscription":{"type":"string","pattern":"^\\d+(\\.\\d{1,6})?$"}},"required":["method","surface","consumption","kwhPrice","annualSubscription"],"additionalProperties":false},{"type":"object","properties":{"method":{"type":"string","const":"revenue"},"annualRevenue":{"type":"string","pattern":"^\\d+(\\.\\d{1,6})?$"},"rate":{"type":"string","pattern":"^\\d+(\\.\\d{1,6})?$"}},"required":["method","annualRevenue","rate"],"additionalProperties":false},{"type":"object","properties":{"method":{"type":"string","const":"units"},"quantity":{"type":"string","pattern":"^\\d+(\\.\\d{1,6})?$"},"monthlyRate":{"type":"string","pattern":"^\\d+(\\.\\d{1,6})?$"}},"required":["method","quantity","monthlyRate"],"additionalProperties":false}]}},"required":["id","name","amount","vat"]}},"payroll":{"maxItems":30,"type":"array","items":{"type":"object","properties":{"id":{"type":"string"},"name":{"type":"string","minLength":1,"maxLength":120},"gross":{"type":"string","pattern":"^\\d+(\\.\\d{1,6})?$"},"count":{"type":"integer","minimum":1,"maximum":100},"startMonth":{"type":"integer","minimum":1,"maximum":60},"employerRate":{"type":"string","pattern":"^\\d+(\\.\\d{1,6})?$"}},"required":["id","name","gross","count","startMonth","employerRate"]}},"asset":{"type":"object","properties":{"amount":{"type":"string","pattern":"^\\d+(\\.\\d{1,6})?$"},"lifeMonths":{"type":"integer","minimum":1,"maximum":240},"vat":{"type":"string","pattern":"^\\d+(\\.\\d{1,6})?$"}},"required":["amount","lifeMonths","vat"]},"financing":{"type":"object","properties":{"equity":{"type":"string","pattern":"^\\d+(\\.\\d{1,6})?$"},"loan":{"type":"string","pattern":"^\\d+(\\.\\d{1,6})?$"},"annualRate":{"type":"string","pattern":"^\\d+(\\.\\d{1,6})?$"},"termMonths":{"type":"integer","minimum":1,"maximum":240}},"required":["equity","loan","annualRate","termMonths"]},"stock":{"type":"object","properties":{"initialPurchase":{"type":"string","pattern":"^\\d+(\\.\\d{1,6})?$"},"enabled":{"type":"boolean"},"vat":{"type":"string","pattern":"^\\d+(\\.\\d{1,6})?$"}},"required":["initialPurchase","enabled","vat"]},"collectionDelay":{"type":"integer","minimum":0,"maximum":3},"supplierDelay":{"type":"integer","minimum":0,"maximum":3},"tax":{"type":"object","properties":{"vatEnabled":{"type":"boolean"},"corporateRate":{"type":"string","pattern":"^\\d+(\\.\\d{1,6})?$"},"profile":{"type":"string","enum":["legacy","france-is"]},"reducedRateEligible":{"type":"boolean"},"capitalPaid":{"type":"boolean"},"ownershipEligible":{"type":"boolean"}},"required":["vatEnabled","corporateRate"]},"capacity":{"type":"object","properties":{"hoursPerMonth":{"type":"string","pattern":"^\\d+(\\.\\d{1,6})?$"},"minutesPerService":{"type":"string","pattern":"^\\d+(\\.\\d{1,6})?$"}},"required":["hoursPerMonth","minutesPerService"]}},"required":["start","months","revenues","expenses","payroll","asset","financing","stock","collectionDelay","supplierDelay","tax","capacity"]},"document":{"type":"object","properties":{"presentation":{"type":"string","maxLength":15000},"market":{"type":"string","maxLength":15000},"operations":{"type":"string","maxLength":15000},"acquisition":{"type":"string","maxLength":15000},"funding":{"type":"string","maxLength":15000},"risks":{"type":"string","maxLength":15000}},"required":["presentation","market","operations"]},"scenario":{"type":"object","properties":{"name":{"type":"string","minLength":1,"maxLength":100},"salesMultiplier":{"type":"string","pattern":"^\\d+(\\.\\d{1,6})?$"},"hiringShift":{"type":"integer","minimum":-36,"maximum":36},"revenueOverrides":{"type":"object","propertyNames":{"type":"string","minLength":1,"maxLength":120},"additionalProperties":{"type":"object","properties":{"quantity":{"type":"string","pattern":"^\\d+(\\.\\d{1,6})?$"},"price":{"type":"string","pattern":"^\\d+(\\.\\d{1,6})?$"},"newCustomers":{"type":"string","pattern":"^\\d+(\\.\\d{1,6})?$"},"churn":{"type":"string","pattern":"^\\d+(\\.\\d{1,6})?$"}},"additionalProperties":false}},"payrollShifts":{"type":"object","propertyNames":{"type":"string","minLength":1,"maxLength":120},"additionalProperties":{"type":"integer","minimum":-36,"maximum":36}},"collectionDelay":{"type":"integer","minimum":0,"maximum":3},"supplierDelay":{"type":"integer","minimum":0,"maximum":3}},"required":["name","salesMultiplier","hiringShift"],"additionalProperties":false},"scenarios":{"maxItems":19,"type":"array","items":{"type":"object","properties":{"name":{"type":"string","minLength":1,"maxLength":100},"salesMultiplier":{"type":"string","pattern":"^\\d+(\\.\\d{1,6})?$"},"hiringShift":{"type":"integer","minimum":-36,"maximum":36},"revenueOverrides":{"type":"object","propertyNames":{"type":"string","minLength":1,"maxLength":120},"additionalProperties":{"type":"object","properties":{"quantity":{"type":"string","pattern":"^\\d+(\\.\\d{1,6})?$"},"price":{"type":"string","pattern":"^\\d+(\\.\\d{1,6})?$"},"newCustomers":{"type":"string","pattern":"^\\d+(\\.\\d{1,6})?$"},"churn":{"type":"string","pattern":"^\\d+(\\.\\d{1,6})?$"}},"additionalProperties":false}},"payrollShifts":{"type":"object","propertyNames":{"type":"string","minLength":1,"maxLength":120},"additionalProperties":{"type":"integer","minimum":-36,"maximum":36}},"collectionDelay":{"type":"integer","minimum":0,"maximum":3},"supplierDelay":{"type":"integer","minimum":0,"maximum":3},"id":{"type":"string","minLength":1,"maxLength":120}},"required":["name","salesMultiplier","hiringShift","id"],"additionalProperties":false}},"assumptions":{"maxItems":400,"type":"array","items":{"type":"object","properties":{"path":{"type":"string","minLength":1,"maxLength":240},"label":{"type":"string","minLength":1,"maxLength":240},"status":{"type":"string","enum":["missing","example","estimate","confirmed"]},"source":{"type":"string","maxLength":1500},"note":{"type":"string","maxLength":3000}},"required":["path","label","status","source","note"],"additionalProperties":false}}},"required":["name","input","document","scenario"]}},"required":["draft"],"additionalProperties":false}},{"name":"project_context","description":"Lire les chemins de champs, unités, périodes et résultats pour modifier le bon projet.","scope":"read","scopeLabel":"Lire les projets","readOnly":true,"destructive":false,"idempotent":true,"inputSchema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"projectId":{"type":"string","minLength":1,"maxLength":120}},"required":["projectId"],"additionalProperties":false}},{"name":"project_create","description":"Créer un projet depuis un modèle. Le serveur vérifie le quota de projets actifs.","scope":"write","scopeLabel":"Modifier les projets et les partages","readOnly":false,"destructive":true,"idempotent":false,"inputSchema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"name":{"type":"string","minLength":1,"maxLength":120},"templateId":{"type":"string","minLength":1,"maxLength":120},"templateVersion":{"type":"string","maxLength":120},"setup":{"type":"object","properties":{"mode":{"default":"example","type":"string","enum":["blank","example"]},"revenueIds":{"minItems":1,"maxItems":30,"type":"array","items":{"type":"string","minLength":1,"maxLength":120}},"team":{"default":true,"type":"boolean"},"premises":{"default":true,"type":"boolean"},"revenueValues":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{"type":"object","properties":{"quantity":{"type":"string","pattern":"^\\d+(\\.\\d{1,6})?$"},"price":{"type":"string","pattern":"^\\d+(\\.\\d{1,6})?$"},"source":{"default":"","type":"string","maxLength":1500}},"additionalProperties":false}},"start":{"type":"string","pattern":"^20\\d{2}-(0[1-9]|1[0-2])$"}},"additionalProperties":false}},"required":["name","templateId"],"additionalProperties":false}},{"name":"project_edit_draft","description":"Modifier un brouillon et recalculer les résultats, sans enregistrer. Les chemins et unités sont fournis par project_context. Pour enregistrer, utiliser project_save avec la version attendue.","scope":"write","scopeLabel":"Modifier les projets et les partages","readOnly":true,"destructive":false,"idempotent":true,"inputSchema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"draft":{"type":"object","properties":{"name":{"type":"string","minLength":1,"maxLength":120},"clientName":{"type":"string","maxLength":120},"input":{"type":"object","properties":{"start":{"type":"string","pattern":"^20\\d{2}-(0[1-9]|1[0-2])$"},"months":{"type":"integer","minimum":12,"maximum":60},"revenues":{"maxItems":30,"type":"array","items":{"type":"object","properties":{"id":{"type":"string","minLength":1},"name":{"type":"string","minLength":1,"maxLength":120},"kind":{"type":"string","enum":["service","product","subscription"]},"quantity":{"type":"string","pattern":"^\\d+(\\.\\d{1,6})?$"},"evolution":{"type":"object","properties":{"quantity":{"type":"object","properties":{"ramp":{"type":"object","properties":{"target":{"type":"string","pattern":"^\\d+(\\.\\d{1,6})?$"},"endMonth":{"type":"integer","minimum":2,"maximum":60}},"required":["target","endMonth"],"additionalProperties":false},"overrides":{"type":"object","propertyNames":{"type":"string","pattern":"^(?:[1-9]|[1-5][0-9]|60)$"},"additionalProperties":{"type":"string","pattern":"^\\d+(\\.\\d{1,6})?$"}}},"additionalProperties":false},"price":{"type":"object","properties":{"ramp":{"type":"object","properties":{"target":{"type":"string","pattern":"^\\d+(\\.\\d{1,6})?$"},"endMonth":{"type":"integer","minimum":2,"maximum":60}},"required":["target","endMonth"],"additionalProperties":false},"overrides":{"type":"object","propertyNames":{"type":"string","pattern":"^(?:[1-9]|[1-5][0-9]|60)$"},"additionalProperties":{"type":"string","pattern":"^\\d+(\\.\\d{1,6})?$"}}},"additionalProperties":false},"unitCost":{"type":"object","properties":{"ramp":{"type":"object","properties":{"target":{"type":"string","pattern":"^\\d+(\\.\\d{1,6})?$"},"endMonth":{"type":"integer","minimum":2,"maximum":60}},"required":["target","endMonth"],"additionalProperties":false},"overrides":{"type":"object","propertyNames":{"type":"string","pattern":"^(?:[1-9]|[1-5][0-9]|60)$"},"additionalProperties":{"type":"string","pattern":"^\\d+(\\.\\d{1,6})?$"}}},"additionalProperties":false},"costRatio":{"type":"object","properties":{"ramp":{"type":"object","properties":{"target":{"type":"string","pattern":"^\\d+(\\.\\d{1,6})?$"},"endMonth":{"type":"integer","minimum":2,"maximum":60}},"required":["target","endMonth"],"additionalProperties":false},"overrides":{"type":"object","propertyNames":{"type":"string","pattern":"^(?:[1-9]|[1-5][0-9]|60)$"},"additionalProperties":{"type":"string","pattern":"^\\d+(\\.\\d{1,6})?$"}}},"additionalProperties":false},"newCustomers":{"type":"object","properties":{"ramp":{"type":"object","properties":{"target":{"type":"string","pattern":"^\\d+(\\.\\d{1,6})?$"},"endMonth":{"type":"integer","minimum":2,"maximum":60}},"required":["target","endMonth"],"additionalProperties":false},"overrides":{"type":"object","propertyNames":{"type":"string","pattern":"^(?:[1-9]|[1-5][0-9]|60)$"},"additionalProperties":{"type":"string","pattern":"^\\d+(\\.\\d{1,6})?$"}}},"additionalProperties":false},"churn":{"type":"object","properties":{"ramp":{"type":"object","properties":{"target":{"type":"string","pattern":"^\\d+(\\.\\d{1,6})?$"},"endMonth":{"type":"integer","minimum":2,"maximum":60}},"required":["target","endMonth"],"additionalProperties":false},"overrides":{"type":"object","propertyNames":{"type":"string","pattern":"^(?:[1-9]|[1-5][0-9]|60)$"},"additionalProperties":{"type":"string","pattern":"^\\d+(\\.\\d{1,6})?$"}}},"additionalProperties":false}},"additionalProperties":false},"price":{"type":"string","pattern":"^\\d+(\\.\\d{1,6})?$"},"unitCost":{"type":"string","pattern":"^\\d+(\\.\\d{1,6})?$"},"costRatio":{"type":"string","pattern":"^\\d+(\\.\\d{1,6})?$"},"newCustomers":{"default":"0","type":"string","pattern":"^\\d+(\\.\\d{1,6})?$"},"churn":{"default":"0","type":"string","pattern":"^\\d+(\\.\\d{1,6})?$"},"vat":{"type":"string","pattern":"^\\d+(\\.\\d{1,6})?$"},"costVat":{"type":"string","pattern":"^\\d+(\\.\\d{1,6})?$"},"costVatTiming":{"type":"string","enum":["invoice","payment"]},"vatTiming":{"type":"string","enum":["invoice","collection"]}},"required":["id","name","kind","quantity","price","unitCost","costRatio","vat"]}},"expenses":{"maxItems":50,"type":"array","items":{"type":"object","properties":{"id":{"type":"string"},"name":{"type":"string","minLength":1,"maxLength":120},"amount":{"type":"string","pattern":"^\\d+(\\.\\d{1,6})?$"},"evolution":{"type":"object","properties":{"amount":{"type":"object","properties":{"ramp":{"type":"object","properties":{"target":{"type":"string","pattern":"^\\d+(\\.\\d{1,6})?$"},"endMonth":{"type":"integer","minimum":2,"maximum":60}},"required":["target","endMonth"],"additionalProperties":false},"overrides":{"type":"object","propertyNames":{"type":"string","pattern":"^(?:[1-9]|[1-5][0-9]|60)$"},"additionalProperties":{"type":"string","pattern":"^\\d+(\\.\\d{1,6})?$"}}},"additionalProperties":false}},"additionalProperties":false},"vat":{"type":"string","pattern":"^\\d+(\\.\\d{1,6})?$"},"vatTiming":{"type":"string","enum":["invoice","payment"]},"standardCostId":{"type":"string","pattern":"^[a-z][a-z0-9-]{0,59}$"},"costEstimate":{"oneOf":[{"type":"object","properties":{"method":{"type":"string","const":"annual"},"annualAmount":{"type":"string","pattern":"^\\d+(\\.\\d{1,6})?$"}},"required":["method","annualAmount"],"additionalProperties":false},{"type":"object","properties":{"method":{"type":"string","const":"area"},"surface":{"type":"string","pattern":"^\\d+(\\.\\d{1,6})?$"},"annualRate":{"type":"string","pattern":"^\\d+(\\.\\d{1,6})?$"}},"required":["method","surface","annualRate"],"additionalProperties":false},{"type":"object","properties":{"method":{"type":"string","const":"energy"},"surface":{"type":"string","pattern":"^\\d+(\\.\\d{1,6})?$"},"consumption":{"type":"string","pattern":"^\\d+(\\.\\d{1,6})?$"},"kwhPrice":{"type":"string","pattern":"^\\d+(\\.\\d{1,6})?$"},"annualSubscription":{"type":"string","pattern":"^\\d+(\\.\\d{1,6})?$"}},"required":["method","surface","consumption","kwhPrice","annualSubscription"],"additionalProperties":false},{"type":"object","properties":{"method":{"type":"string","const":"revenue"},"annualRevenue":{"type":"string","pattern":"^\\d+(\\.\\d{1,6})?$"},"rate":{"type":"string","pattern":"^\\d+(\\.\\d{1,6})?$"}},"required":["method","annualRevenue","rate"],"additionalProperties":false},{"type":"object","properties":{"method":{"type":"string","const":"units"},"quantity":{"type":"string","pattern":"^\\d+(\\.\\d{1,6})?$"},"monthlyRate":{"type":"string","pattern":"^\\d+(\\.\\d{1,6})?$"}},"required":["method","quantity","monthlyRate"],"additionalProperties":false}]}},"required":["id","name","amount","vat"]}},"payroll":{"maxItems":30,"type":"array","items":{"type":"object","properties":{"id":{"type":"string"},"name":{"type":"string","minLength":1,"maxLength":120},"gross":{"type":"string","pattern":"^\\d+(\\.\\d{1,6})?$"},"count":{"type":"integer","minimum":1,"maximum":100},"startMonth":{"type":"integer","minimum":1,"maximum":60},"employerRate":{"type":"string","pattern":"^\\d+(\\.\\d{1,6})?$"}},"required":["id","name","gross","count","startMonth","employerRate"]}},"asset":{"type":"object","properties":{"amount":{"type":"string","pattern":"^\\d+(\\.\\d{1,6})?$"},"lifeMonths":{"type":"integer","minimum":1,"maximum":240},"vat":{"type":"string","pattern":"^\\d+(\\.\\d{1,6})?$"}},"required":["amount","lifeMonths","vat"]},"financing":{"type":"object","properties":{"equity":{"type":"string","pattern":"^\\d+(\\.\\d{1,6})?$"},"loan":{"type":"string","pattern":"^\\d+(\\.\\d{1,6})?$"},"annualRate":{"type":"string","pattern":"^\\d+(\\.\\d{1,6})?$"},"termMonths":{"type":"integer","minimum":1,"maximum":240}},"required":["equity","loan","annualRate","termMonths"]},"stock":{"type":"object","properties":{"initialPurchase":{"type":"string","pattern":"^\\d+(\\.\\d{1,6})?$"},"enabled":{"type":"boolean"},"vat":{"type":"string","pattern":"^\\d+(\\.\\d{1,6})?$"}},"required":["initialPurchase","enabled","vat"]},"collectionDelay":{"type":"integer","minimum":0,"maximum":3},"supplierDelay":{"type":"integer","minimum":0,"maximum":3},"tax":{"type":"object","properties":{"vatEnabled":{"type":"boolean"},"corporateRate":{"type":"string","pattern":"^\\d+(\\.\\d{1,6})?$"},"profile":{"type":"string","enum":["legacy","france-is"]},"reducedRateEligible":{"type":"boolean"},"capitalPaid":{"type":"boolean"},"ownershipEligible":{"type":"boolean"}},"required":["vatEnabled","corporateRate"]},"capacity":{"type":"object","properties":{"hoursPerMonth":{"type":"string","pattern":"^\\d+(\\.\\d{1,6})?$"},"minutesPerService":{"type":"string","pattern":"^\\d+(\\.\\d{1,6})?$"}},"required":["hoursPerMonth","minutesPerService"]}},"required":["start","months","revenues","expenses","payroll","asset","financing","stock","collectionDelay","supplierDelay","tax","capacity"]},"document":{"type":"object","properties":{"presentation":{"type":"string","maxLength":15000},"market":{"type":"string","maxLength":15000},"operations":{"type":"string","maxLength":15000},"acquisition":{"type":"string","maxLength":15000},"funding":{"type":"string","maxLength":15000},"risks":{"type":"string","maxLength":15000}},"required":["presentation","market","operations"]},"scenario":{"type":"object","properties":{"name":{"type":"string","minLength":1,"maxLength":100},"salesMultiplier":{"type":"string","pattern":"^\\d+(\\.\\d{1,6})?$"},"hiringShift":{"type":"integer","minimum":-36,"maximum":36},"revenueOverrides":{"type":"object","propertyNames":{"type":"string","minLength":1,"maxLength":120},"additionalProperties":{"type":"object","properties":{"quantity":{"type":"string","pattern":"^\\d+(\\.\\d{1,6})?$"},"price":{"type":"string","pattern":"^\\d+(\\.\\d{1,6})?$"},"newCustomers":{"type":"string","pattern":"^\\d+(\\.\\d{1,6})?$"},"churn":{"type":"string","pattern":"^\\d+(\\.\\d{1,6})?$"}},"additionalProperties":false}},"payrollShifts":{"type":"object","propertyNames":{"type":"string","minLength":1,"maxLength":120},"additionalProperties":{"type":"integer","minimum":-36,"maximum":36}},"collectionDelay":{"type":"integer","minimum":0,"maximum":3},"supplierDelay":{"type":"integer","minimum":0,"maximum":3}},"required":["name","salesMultiplier","hiringShift"],"additionalProperties":false},"scenarios":{"maxItems":19,"type":"array","items":{"type":"object","properties":{"name":{"type":"string","minLength":1,"maxLength":100},"salesMultiplier":{"type":"string","pattern":"^\\d+(\\.\\d{1,6})?$"},"hiringShift":{"type":"integer","minimum":-36,"maximum":36},"revenueOverrides":{"type":"object","propertyNames":{"type":"string","minLength":1,"maxLength":120},"additionalProperties":{"type":"object","properties":{"quantity":{"type":"string","pattern":"^\\d+(\\.\\d{1,6})?$"},"price":{"type":"string","pattern":"^\\d+(\\.\\d{1,6})?$"},"newCustomers":{"type":"string","pattern":"^\\d+(\\.\\d{1,6})?$"},"churn":{"type":"string","pattern":"^\\d+(\\.\\d{1,6})?$"}},"additionalProperties":false}},"payrollShifts":{"type":"object","propertyNames":{"type":"string","minLength":1,"maxLength":120},"additionalProperties":{"type":"integer","minimum":-36,"maximum":36}},"collectionDelay":{"type":"integer","minimum":0,"maximum":3},"supplierDelay":{"type":"integer","minimum":0,"maximum":3},"id":{"type":"string","minLength":1,"maxLength":120}},"required":["name","salesMultiplier","hiringShift","id"],"additionalProperties":false}},"assumptions":{"maxItems":400,"type":"array","items":{"type":"object","properties":{"path":{"type":"string","minLength":1,"maxLength":240},"label":{"type":"string","minLength":1,"maxLength":240},"status":{"type":"string","enum":["missing","example","estimate","confirmed"]},"source":{"type":"string","maxLength":1500},"note":{"type":"string","maxLength":3000}},"required":["path","label","status","source","note"],"additionalProperties":false}}},"required":["name","input","document","scenario"]},"operations":{"maxItems":80,"type":"array","items":{"oneOf":[{"type":"object","properties":{"type":{"type":"string","const":"source"},"path":{"type":"string","minLength":1,"maxLength":240},"status":{"type":"string","enum":["missing","example","estimate","confirmed"]},"source":{"type":"string","maxLength":1500},"note":{"type":"string","maxLength":3000}},"required":["type","path","status","source","note"],"additionalProperties":false},{"type":"object","properties":{"type":{"type":"string","const":"expenseEstimate"},"id":{"type":"string","pattern":"^[a-zA-Z0-9_-]{1,120}$"},"estimate":{"oneOf":[{"type":"object","properties":{"method":{"type":"string","const":"annual"},"annualAmount":{"type":"string","pattern":"^\\d+(\\.\\d{1,6})?$"}},"required":["method","annualAmount"],"additionalProperties":false},{"type":"object","properties":{"method":{"type":"string","const":"area"},"surface":{"type":"string","pattern":"^\\d+(\\.\\d{1,6})?$"},"annualRate":{"type":"string","pattern":"^\\d+(\\.\\d{1,6})?$"}},"required":["method","surface","annualRate"],"additionalProperties":false},{"type":"object","properties":{"method":{"type":"string","const":"energy"},"surface":{"type":"string","pattern":"^\\d+(\\.\\d{1,6})?$"},"consumption":{"type":"string","pattern":"^\\d+(\\.\\d{1,6})?$"},"kwhPrice":{"type":"string","pattern":"^\\d+(\\.\\d{1,6})?$"},"annualSubscription":{"type":"string","pattern":"^\\d+(\\.\\d{1,6})?$"}},"required":["method","surface","consumption","kwhPrice","annualSubscription"],"additionalProperties":false},{"type":"object","properties":{"method":{"type":"string","const":"revenue"},"annualRevenue":{"type":"string","pattern":"^\\d+(\\.\\d{1,6})?$"},"rate":{"type":"string","pattern":"^\\d+(\\.\\d{1,6})?$"}},"required":["method","annualRevenue","rate"],"additionalProperties":false},{"type":"object","properties":{"method":{"type":"string","const":"units"},"quantity":{"type":"string","pattern":"^\\d+(\\.\\d{1,6})?$"},"monthlyRate":{"type":"string","pattern":"^\\d+(\\.\\d{1,6})?$"}},"required":["method","quantity","monthlyRate"],"additionalProperties":false}]},"source":{"type":"string","maxLength":1500}},"required":["type","id","estimate","source"],"additionalProperties":false},{"type":"object","properties":{"type":{"type":"string","const":"standardCosts"},"items":{"minItems":1,"maxItems":50,"type":"array","items":{"type":"object","properties":{"standardCostId":{"type":"string","minLength":1,"maxLength":60},"id":{"type":"string","pattern":"^[a-zA-Z0-9_-]{1,120}$"}},"required":["standardCostId","id"],"additionalProperties":false}}},"required":["type","items"],"additionalProperties":false},{"type":"object","properties":{"type":{"type":"string","const":"replaceEvolution"},"collection":{"type":"string","enum":["revenues","expenses"]},"id":{"type":"string","pattern":"^[a-zA-Z0-9_-]{1,120}$"},"field":{"type":"string","enum":["quantity","price","unitCost","costRatio","newCustomers","churn","amount"]},"profile":{"type":"string","maxLength":15000}},"required":["type","collection","id","field","profile"],"additionalProperties":false},{"type":"object","properties":{"type":{"type":"string","const":"inputPatch"},"json":{"type":"string","maxLength":100000}},"required":["type","json"],"additionalProperties":false},{"type":"object","properties":{"type":{"type":"string","const":"set"},"path":{"type":"string","minLength":1,"maxLength":240},"value":{"type":"string","maxLength":15000}},"required":["type","path","value"],"additionalProperties":false},{"type":"object","properties":{"type":{"type":"string","const":"add"},"collection":{"type":"string","enum":["revenues","expenses","payroll"]},"id":{"type":"string","pattern":"^[a-zA-Z0-9_-]{1,120}$"},"name":{"type":"string","minLength":1,"maxLength":120},"kind":{"anyOf":[{"type":"string","enum":["service","product","subscription"]},{"type":"null"}]}},"required":["type","collection","id","name","kind"],"additionalProperties":false},{"type":"object","properties":{"type":{"type":"string","const":"remove"},"collection":{"type":"string","enum":["revenues","expenses","payroll","scenarios"]},"id":{"type":"string","pattern":"^[a-zA-Z0-9_-]{1,120}$"}},"required":["type","collection","id"],"additionalProperties":false},{"type":"object","properties":{"type":{"type":"string","const":"monthly"},"path":{"type":"string","minLength":1,"maxLength":240},"value":{"type":"string","maxLength":15000},"fromMonth":{"type":"integer","minimum":1,"maximum":60},"toMonth":{"type":"integer","minimum":1,"maximum":60}},"required":["type","path","value","fromMonth","toMonth"],"additionalProperties":false},{"type":"object","properties":{"type":{"type":"string","const":"ramp"},"path":{"type":"string","minLength":1,"maxLength":240},"value":{"type":"string","maxLength":15000},"endMonth":{"type":"integer","minimum":2,"maximum":60}},"required":["type","path","value","endMonth"],"additionalProperties":false},{"type":"object","properties":{"type":{"type":"string","const":"clearEvolution"},"path":{"type":"string","minLength":1,"maxLength":240}},"required":["type","path"],"additionalProperties":false},{"type":"object","properties":{"type":{"type":"string","const":"document"},"section":{"type":"string","enum":["presentation","market","operations","acquisition","funding","risks"]},"text":{"type":"string","maxLength":15000}},"required":["type","section","text"],"additionalProperties":false},{"type":"object","properties":{"type":{"type":"string","const":"scenario"},"id":{"type":"string","pattern":"^[a-zA-Z0-9_-]{1,120}$"},"name":{"type":"string","minLength":1,"maxLength":100},"salesMultiplier":{"type":"string","maxLength":15000},"hiringShift":{"type":"integer","minimum":-36,"maximum":36},"collectionDelay":{"anyOf":[{"type":"integer","minimum":0,"maximum":3},{"type":"null"}]},"supplierDelay":{"anyOf":[{"type":"integer","minimum":0,"maximum":3},{"type":"null"}]},"revenueOverrides":{"maxItems":30,"type":"array","items":{"type":"object","properties":{"id":{"type":"string","pattern":"^[a-zA-Z0-9_-]{1,120}$"},"quantity":{"anyOf":[{"type":"string","maxLength":15000},{"type":"null"}]},"price":{"anyOf":[{"type":"string","maxLength":15000},{"type":"null"}]},"newCustomers":{"anyOf":[{"type":"string","maxLength":15000},{"type":"null"}]},"churn":{"anyOf":[{"type":"string","maxLength":15000},{"type":"null"}]}},"required":["id","quantity","price","newCustomers","churn"],"additionalProperties":false}},"payrollShifts":{"maxItems":30,"type":"array","items":{"type":"object","properties":{"id":{"type":"string","pattern":"^[a-zA-Z0-9_-]{1,120}$"},"shift":{"type":"integer","minimum":-36,"maximum":36}},"required":["id","shift"],"additionalProperties":false}}},"required":["type","id","name","salesMultiplier","hiringShift","collectionDelay","supplierDelay","revenueOverrides","payrollShifts"],"additionalProperties":false}]}},"instruction":{"type":"string","minLength":1,"maxLength":3000},"projectId":{"type":"string","minLength":1,"maxLength":120},"expectedVersion":{"type":"integer","exclusiveMinimum":0,"maximum":2147483646}},"required":["draft","operations","instruction","projectId","expectedVersion"],"additionalProperties":false}},{"name":"project_export","description":"Exporter la version enregistrée en PDF, Word ou Excel. Retourne une ressource binaire privée ; les droits d’abonnement sont vérifiés.","scope":"read","scopeLabel":"Lire les projets","readOnly":true,"destructive":false,"idempotent":true,"inputSchema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"projectId":{"type":"string","minLength":1,"maxLength":120},"format":{"type":"string","enum":["pdf","docx","xlsx"]}},"required":["projectId","format"],"additionalProperties":false}},{"name":"project_get","description":"Lire les données enregistrées, la version et les droits du projet.","scope":"read","scopeLabel":"Lire les projets","readOnly":true,"destructive":false,"idempotent":true,"inputSchema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"projectId":{"type":"string","minLength":1,"maxLength":120}},"required":["projectId"],"additionalProperties":false}},{"name":"project_save","description":"Enregistrer tous les champs du projet, sources, charges, profils mensuels, scénarios et dossier. Exige la version attendue ; crée une nouvelle révision.","scope":"write","scopeLabel":"Modifier les projets et les partages","readOnly":false,"destructive":true,"idempotent":false,"inputSchema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"name":{"type":"string","minLength":1,"maxLength":120},"clientName":{"type":"string","maxLength":120},"input":{"type":"object","properties":{"start":{"type":"string","pattern":"^20\\d{2}-(0[1-9]|1[0-2])$"},"months":{"type":"integer","minimum":12,"maximum":60},"revenues":{"maxItems":30,"type":"array","items":{"type":"object","properties":{"id":{"type":"string","minLength":1},"name":{"type":"string","minLength":1,"maxLength":120},"kind":{"type":"string","enum":["service","product","subscription"]},"quantity":{"type":"string","pattern":"^\\d+(\\.\\d{1,6})?$"},"evolution":{"type":"object","properties":{"quantity":{"type":"object","properties":{"ramp":{"type":"object","properties":{"target":{"type":"string","pattern":"^\\d+(\\.\\d{1,6})?$"},"endMonth":{"type":"integer","minimum":2,"maximum":60}},"required":["target","endMonth"],"additionalProperties":false},"overrides":{"type":"object","propertyNames":{"type":"string","pattern":"^(?:[1-9]|[1-5][0-9]|60)$"},"additionalProperties":{"type":"string","pattern":"^\\d+(\\.\\d{1,6})?$"}}},"additionalProperties":false},"price":{"type":"object","properties":{"ramp":{"type":"object","properties":{"target":{"type":"string","pattern":"^\\d+(\\.\\d{1,6})?$"},"endMonth":{"type":"integer","minimum":2,"maximum":60}},"required":["target","endMonth"],"additionalProperties":false},"overrides":{"type":"object","propertyNames":{"type":"string","pattern":"^(?:[1-9]|[1-5][0-9]|60)$"},"additionalProperties":{"type":"string","pattern":"^\\d+(\\.\\d{1,6})?$"}}},"additionalProperties":false},"unitCost":{"type":"object","properties":{"ramp":{"type":"object","properties":{"target":{"type":"string","pattern":"^\\d+(\\.\\d{1,6})?$"},"endMonth":{"type":"integer","minimum":2,"maximum":60}},"required":["target","endMonth"],"additionalProperties":false},"overrides":{"type":"object","propertyNames":{"type":"string","pattern":"^(?:[1-9]|[1-5][0-9]|60)$"},"additionalProperties":{"type":"string","pattern":"^\\d+(\\.\\d{1,6})?$"}}},"additionalProperties":false},"costRatio":{"type":"object","properties":{"ramp":{"type":"object","properties":{"target":{"type":"string","pattern":"^\\d+(\\.\\d{1,6})?$"},"endMonth":{"type":"integer","minimum":2,"maximum":60}},"required":["target","endMonth"],"additionalProperties":false},"overrides":{"type":"object","propertyNames":{"type":"string","pattern":"^(?:[1-9]|[1-5][0-9]|60)$"},"additionalProperties":{"type":"string","pattern":"^\\d+(\\.\\d{1,6})?$"}}},"additionalProperties":false},"newCustomers":{"type":"object","properties":{"ramp":{"type":"object","properties":{"target":{"type":"string","pattern":"^\\d+(\\.\\d{1,6})?$"},"endMonth":{"type":"integer","minimum":2,"maximum":60}},"required":["target","endMonth"],"additionalProperties":false},"overrides":{"type":"object","propertyNames":{"type":"string","pattern":"^(?:[1-9]|[1-5][0-9]|60)$"},"additionalProperties":{"type":"string","pattern":"^\\d+(\\.\\d{1,6})?$"}}},"additionalProperties":false},"churn":{"type":"object","properties":{"ramp":{"type":"object","properties":{"target":{"type":"string","pattern":"^\\d+(\\.\\d{1,6})?$"},"endMonth":{"type":"integer","minimum":2,"maximum":60}},"required":["target","endMonth"],"additionalProperties":false},"overrides":{"type":"object","propertyNames":{"type":"string","pattern":"^(?:[1-9]|[1-5][0-9]|60)$"},"additionalProperties":{"type":"string","pattern":"^\\d+(\\.\\d{1,6})?$"}}},"additionalProperties":false}},"additionalProperties":false},"price":{"type":"string","pattern":"^\\d+(\\.\\d{1,6})?$"},"unitCost":{"type":"string","pattern":"^\\d+(\\.\\d{1,6})?$"},"costRatio":{"type":"string","pattern":"^\\d+(\\.\\d{1,6})?$"},"newCustomers":{"default":"0","type":"string","pattern":"^\\d+(\\.\\d{1,6})?$"},"churn":{"default":"0","type":"string","pattern":"^\\d+(\\.\\d{1,6})?$"},"vat":{"type":"string","pattern":"^\\d+(\\.\\d{1,6})?$"},"costVat":{"type":"string","pattern":"^\\d+(\\.\\d{1,6})?$"},"costVatTiming":{"type":"string","enum":["invoice","payment"]},"vatTiming":{"type":"string","enum":["invoice","collection"]}},"required":["id","name","kind","quantity","price","unitCost","costRatio","vat"]}},"expenses":{"maxItems":50,"type":"array","items":{"type":"object","properties":{"id":{"type":"string"},"name":{"type":"string","minLength":1,"maxLength":120},"amount":{"type":"string","pattern":"^\\d+(\\.\\d{1,6})?$"},"evolution":{"type":"object","properties":{"amount":{"type":"object","properties":{"ramp":{"type":"object","properties":{"target":{"type":"string","pattern":"^\\d+(\\.\\d{1,6})?$"},"endMonth":{"type":"integer","minimum":2,"maximum":60}},"required":["target","endMonth"],"additionalProperties":false},"overrides":{"type":"object","propertyNames":{"type":"string","pattern":"^(?:[1-9]|[1-5][0-9]|60)$"},"additionalProperties":{"type":"string","pattern":"^\\d+(\\.\\d{1,6})?$"}}},"additionalProperties":false}},"additionalProperties":false},"vat":{"type":"string","pattern":"^\\d+(\\.\\d{1,6})?$"},"vatTiming":{"type":"string","enum":["invoice","payment"]},"standardCostId":{"type":"string","pattern":"^[a-z][a-z0-9-]{0,59}$"},"costEstimate":{"oneOf":[{"type":"object","properties":{"method":{"type":"string","const":"annual"},"annualAmount":{"type":"string","pattern":"^\\d+(\\.\\d{1,6})?$"}},"required":["method","annualAmount"],"additionalProperties":false},{"type":"object","properties":{"method":{"type":"string","const":"area"},"surface":{"type":"string","pattern":"^\\d+(\\.\\d{1,6})?$"},"annualRate":{"type":"string","pattern":"^\\d+(\\.\\d{1,6})?$"}},"required":["method","surface","annualRate"],"additionalProperties":false},{"type":"object","properties":{"method":{"type":"string","const":"energy"},"surface":{"type":"string","pattern":"^\\d+(\\.\\d{1,6})?$"},"consumption":{"type":"string","pattern":"^\\d+(\\.\\d{1,6})?$"},"kwhPrice":{"type":"string","pattern":"^\\d+(\\.\\d{1,6})?$"},"annualSubscription":{"type":"string","pattern":"^\\d+(\\.\\d{1,6})?$"}},"required":["method","surface","consumption","kwhPrice","annualSubscription"],"additionalProperties":false},{"type":"object","properties":{"method":{"type":"string","const":"revenue"},"annualRevenue":{"type":"string","pattern":"^\\d+(\\.\\d{1,6})?$"},"rate":{"type":"string","pattern":"^\\d+(\\.\\d{1,6})?$"}},"required":["method","annualRevenue","rate"],"additionalProperties":false},{"type":"object","properties":{"method":{"type":"string","const":"units"},"quantity":{"type":"string","pattern":"^\\d+(\\.\\d{1,6})?$"},"monthlyRate":{"type":"string","pattern":"^\\d+(\\.\\d{1,6})?$"}},"required":["method","quantity","monthlyRate"],"additionalProperties":false}]}},"required":["id","name","amount","vat"]}},"payroll":{"maxItems":30,"type":"array","items":{"type":"object","properties":{"id":{"type":"string"},"name":{"type":"string","minLength":1,"maxLength":120},"gross":{"type":"string","pattern":"^\\d+(\\.\\d{1,6})?$"},"count":{"type":"integer","minimum":1,"maximum":100},"startMonth":{"type":"integer","minimum":1,"maximum":60},"employerRate":{"type":"string","pattern":"^\\d+(\\.\\d{1,6})?$"}},"required":["id","name","gross","count","startMonth","employerRate"]}},"asset":{"type":"object","properties":{"amount":{"type":"string","pattern":"^\\d+(\\.\\d{1,6})?$"},"lifeMonths":{"type":"integer","minimum":1,"maximum":240},"vat":{"type":"string","pattern":"^\\d+(\\.\\d{1,6})?$"}},"required":["amount","lifeMonths","vat"]},"financing":{"type":"object","properties":{"equity":{"type":"string","pattern":"^\\d+(\\.\\d{1,6})?$"},"loan":{"type":"string","pattern":"^\\d+(\\.\\d{1,6})?$"},"annualRate":{"type":"string","pattern":"^\\d+(\\.\\d{1,6})?$"},"termMonths":{"type":"integer","minimum":1,"maximum":240}},"required":["equity","loan","annualRate","termMonths"]},"stock":{"type":"object","properties":{"initialPurchase":{"type":"string","pattern":"^\\d+(\\.\\d{1,6})?$"},"enabled":{"type":"boolean"},"vat":{"type":"string","pattern":"^\\d+(\\.\\d{1,6})?$"}},"required":["initialPurchase","enabled","vat"]},"collectionDelay":{"type":"integer","minimum":0,"maximum":3},"supplierDelay":{"type":"integer","minimum":0,"maximum":3},"tax":{"type":"object","properties":{"vatEnabled":{"type":"boolean"},"corporateRate":{"type":"string","pattern":"^\\d+(\\.\\d{1,6})?$"},"profile":{"type":"string","enum":["legacy","france-is"]},"reducedRateEligible":{"type":"boolean"},"capitalPaid":{"type":"boolean"},"ownershipEligible":{"type":"boolean"}},"required":["vatEnabled","corporateRate"]},"capacity":{"type":"object","properties":{"hoursPerMonth":{"type":"string","pattern":"^\\d+(\\.\\d{1,6})?$"},"minutesPerService":{"type":"string","pattern":"^\\d+(\\.\\d{1,6})?$"}},"required":["hoursPerMonth","minutesPerService"]}},"required":["start","months","revenues","expenses","payroll","asset","financing","stock","collectionDelay","supplierDelay","tax","capacity"]},"document":{"type":"object","properties":{"presentation":{"type":"string","maxLength":15000},"market":{"type":"string","maxLength":15000},"operations":{"type":"string","maxLength":15000},"acquisition":{"type":"string","maxLength":15000},"funding":{"type":"string","maxLength":15000},"risks":{"type":"string","maxLength":15000}},"required":["presentation","market","operations"]},"scenario":{"type":"object","properties":{"name":{"type":"string","minLength":1,"maxLength":100},"salesMultiplier":{"type":"string","pattern":"^\\d+(\\.\\d{1,6})?$"},"hiringShift":{"type":"integer","minimum":-36,"maximum":36},"revenueOverrides":{"type":"object","propertyNames":{"type":"string","minLength":1,"maxLength":120},"additionalProperties":{"type":"object","properties":{"quantity":{"type":"string","pattern":"^\\d+(\\.\\d{1,6})?$"},"price":{"type":"string","pattern":"^\\d+(\\.\\d{1,6})?$"},"newCustomers":{"type":"string","pattern":"^\\d+(\\.\\d{1,6})?$"},"churn":{"type":"string","pattern":"^\\d+(\\.\\d{1,6})?$"}},"additionalProperties":false}},"payrollShifts":{"type":"object","propertyNames":{"type":"string","minLength":1,"maxLength":120},"additionalProperties":{"type":"integer","minimum":-36,"maximum":36}},"collectionDelay":{"type":"integer","minimum":0,"maximum":3},"supplierDelay":{"type":"integer","minimum":0,"maximum":3}},"required":["name","salesMultiplier","hiringShift"],"additionalProperties":false},"scenarios":{"maxItems":19,"type":"array","items":{"type":"object","properties":{"name":{"type":"string","minLength":1,"maxLength":100},"salesMultiplier":{"type":"string","pattern":"^\\d+(\\.\\d{1,6})?$"},"hiringShift":{"type":"integer","minimum":-36,"maximum":36},"revenueOverrides":{"type":"object","propertyNames":{"type":"string","minLength":1,"maxLength":120},"additionalProperties":{"type":"object","properties":{"quantity":{"type":"string","pattern":"^\\d+(\\.\\d{1,6})?$"},"price":{"type":"string","pattern":"^\\d+(\\.\\d{1,6})?$"},"newCustomers":{"type":"string","pattern":"^\\d+(\\.\\d{1,6})?$"},"churn":{"type":"string","pattern":"^\\d+(\\.\\d{1,6})?$"}},"additionalProperties":false}},"payrollShifts":{"type":"object","propertyNames":{"type":"string","minLength":1,"maxLength":120},"additionalProperties":{"type":"integer","minimum":-36,"maximum":36}},"collectionDelay":{"type":"integer","minimum":0,"maximum":3},"supplierDelay":{"type":"integer","minimum":0,"maximum":3},"id":{"type":"string","minLength":1,"maxLength":120}},"required":["name","salesMultiplier","hiringShift","id"],"additionalProperties":false}},"assumptions":{"maxItems":400,"type":"array","items":{"type":"object","properties":{"path":{"type":"string","minLength":1,"maxLength":240},"label":{"type":"string","minLength":1,"maxLength":240},"status":{"type":"string","enum":["missing","example","estimate","confirmed"]},"source":{"type":"string","maxLength":1500},"note":{"type":"string","maxLength":3000}},"required":["path","label","status","source","note"],"additionalProperties":false}},"expectedVersion":{"type":"integer","exclusiveMinimum":0,"maximum":2147483646},"projectId":{"type":"string","minLength":1,"maxLength":120}},"required":["name","input","document","scenario","expectedVersion","projectId"],"additionalProperties":false}},{"name":"project_update","description":"Modifier seulement les champs demandés du projet. Les groupes financiers sont fusionnés ; les listes sont remplacées. commit=false propose un brouillon, commit=true enregistre avec contrôle de version.","scope":"write","scopeLabel":"Modifier les projets et les partages","readOnly":false,"destructive":true,"idempotent":false,"inputSchema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"projectId":{"type":"string","minLength":1,"maxLength":120},"expectedVersion":{"type":"integer","exclusiveMinimum":0,"maximum":2147483646},"draft":{"type":"object","properties":{"name":{"type":"string","minLength":1,"maxLength":120},"clientName":{"type":"string","maxLength":120},"input":{"type":"object","properties":{"start":{"type":"string","pattern":"^20\\d{2}-(0[1-9]|1[0-2])$"},"months":{"type":"integer","minimum":12,"maximum":60},"revenues":{"maxItems":30,"type":"array","items":{"type":"object","properties":{"id":{"type":"string","minLength":1},"name":{"type":"string","minLength":1,"maxLength":120},"kind":{"type":"string","enum":["service","product","subscription"]},"quantity":{"type":"string","pattern":"^\\d+(\\.\\d{1,6})?$"},"evolution":{"type":"object","properties":{"quantity":{"type":"object","properties":{"ramp":{"type":"object","properties":{"target":{"type":"string","pattern":"^\\d+(\\.\\d{1,6})?$"},"endMonth":{"type":"integer","minimum":2,"maximum":60}},"required":["target","endMonth"],"additionalProperties":false},"overrides":{"type":"object","propertyNames":{"type":"string","pattern":"^(?:[1-9]|[1-5][0-9]|60)$"},"additionalProperties":{"type":"string","pattern":"^\\d+(\\.\\d{1,6})?$"}}},"additionalProperties":false},"price":{"type":"object","properties":{"ramp":{"type":"object","properties":{"target":{"type":"string","pattern":"^\\d+(\\.\\d{1,6})?$"},"endMonth":{"type":"integer","minimum":2,"maximum":60}},"required":["target","endMonth"],"additionalProperties":false},"overrides":{"type":"object","propertyNames":{"type":"string","pattern":"^(?:[1-9]|[1-5][0-9]|60)$"},"additionalProperties":{"type":"string","pattern":"^\\d+(\\.\\d{1,6})?$"}}},"additionalProperties":false},"unitCost":{"type":"object","properties":{"ramp":{"type":"object","properties":{"target":{"type":"string","pattern":"^\\d+(\\.\\d{1,6})?$"},"endMonth":{"type":"integer","minimum":2,"maximum":60}},"required":["target","endMonth"],"additionalProperties":false},"overrides":{"type":"object","propertyNames":{"type":"string","pattern":"^(?:[1-9]|[1-5][0-9]|60)$"},"additionalProperties":{"type":"string","pattern":"^\\d+(\\.\\d{1,6})?$"}}},"additionalProperties":false},"costRatio":{"type":"object","properties":{"ramp":{"type":"object","properties":{"target":{"type":"string","pattern":"^\\d+(\\.\\d{1,6})?$"},"endMonth":{"type":"integer","minimum":2,"maximum":60}},"required":["target","endMonth"],"additionalProperties":false},"overrides":{"type":"object","propertyNames":{"type":"string","pattern":"^(?:[1-9]|[1-5][0-9]|60)$"},"additionalProperties":{"type":"string","pattern":"^\\d+(\\.\\d{1,6})?$"}}},"additionalProperties":false},"newCustomers":{"type":"object","properties":{"ramp":{"type":"object","properties":{"target":{"type":"string","pattern":"^\\d+(\\.\\d{1,6})?$"},"endMonth":{"type":"integer","minimum":2,"maximum":60}},"required":["target","endMonth"],"additionalProperties":false},"overrides":{"type":"object","propertyNames":{"type":"string","pattern":"^(?:[1-9]|[1-5][0-9]|60)$"},"additionalProperties":{"type":"string","pattern":"^\\d+(\\.\\d{1,6})?$"}}},"additionalProperties":false},"churn":{"type":"object","properties":{"ramp":{"type":"object","properties":{"target":{"type":"string","pattern":"^\\d+(\\.\\d{1,6})?$"},"endMonth":{"type":"integer","minimum":2,"maximum":60}},"required":["target","endMonth"],"additionalProperties":false},"overrides":{"type":"object","propertyNames":{"type":"string","pattern":"^(?:[1-9]|[1-5][0-9]|60)$"},"additionalProperties":{"type":"string","pattern":"^\\d+(\\.\\d{1,6})?$"}}},"additionalProperties":false}},"additionalProperties":false},"price":{"type":"string","pattern":"^\\d+(\\.\\d{1,6})?$"},"unitCost":{"type":"string","pattern":"^\\d+(\\.\\d{1,6})?$"},"costRatio":{"type":"string","pattern":"^\\d+(\\.\\d{1,6})?$"},"newCustomers":{"default":"0","type":"string","pattern":"^\\d+(\\.\\d{1,6})?$"},"churn":{"default":"0","type":"string","pattern":"^\\d+(\\.\\d{1,6})?$"},"vat":{"type":"string","pattern":"^\\d+(\\.\\d{1,6})?$"},"costVat":{"type":"string","pattern":"^\\d+(\\.\\d{1,6})?$"},"costVatTiming":{"type":"string","enum":["invoice","payment"]},"vatTiming":{"type":"string","enum":["invoice","collection"]}},"required":["id","name","kind","quantity","price","unitCost","costRatio","vat"]}},"expenses":{"maxItems":50,"type":"array","items":{"type":"object","properties":{"id":{"type":"string"},"name":{"type":"string","minLength":1,"maxLength":120},"amount":{"type":"string","pattern":"^\\d+(\\.\\d{1,6})?$"},"evolution":{"type":"object","properties":{"amount":{"type":"object","properties":{"ramp":{"type":"object","properties":{"target":{"type":"string","pattern":"^\\d+(\\.\\d{1,6})?$"},"endMonth":{"type":"integer","minimum":2,"maximum":60}},"required":["target","endMonth"],"additionalProperties":false},"overrides":{"type":"object","propertyNames":{"type":"string","pattern":"^(?:[1-9]|[1-5][0-9]|60)$"},"additionalProperties":{"type":"string","pattern":"^\\d+(\\.\\d{1,6})?$"}}},"additionalProperties":false}},"additionalProperties":false},"vat":{"type":"string","pattern":"^\\d+(\\.\\d{1,6})?$"},"vatTiming":{"type":"string","enum":["invoice","payment"]},"standardCostId":{"type":"string","pattern":"^[a-z][a-z0-9-]{0,59}$"},"costEstimate":{"oneOf":[{"type":"object","properties":{"method":{"type":"string","const":"annual"},"annualAmount":{"type":"string","pattern":"^\\d+(\\.\\d{1,6})?$"}},"required":["method","annualAmount"],"additionalProperties":false},{"type":"object","properties":{"method":{"type":"string","const":"area"},"surface":{"type":"string","pattern":"^\\d+(\\.\\d{1,6})?$"},"annualRate":{"type":"string","pattern":"^\\d+(\\.\\d{1,6})?$"}},"required":["method","surface","annualRate"],"additionalProperties":false},{"type":"object","properties":{"method":{"type":"string","const":"energy"},"surface":{"type":"string","pattern":"^\\d+(\\.\\d{1,6})?$"},"consumption":{"type":"string","pattern":"^\\d+(\\.\\d{1,6})?$"},"kwhPrice":{"type":"string","pattern":"^\\d+(\\.\\d{1,6})?$"},"annualSubscription":{"type":"string","pattern":"^\\d+(\\.\\d{1,6})?$"}},"required":["method","surface","consumption","kwhPrice","annualSubscription"],"additionalProperties":false},{"type":"object","properties":{"method":{"type":"string","const":"revenue"},"annualRevenue":{"type":"string","pattern":"^\\d+(\\.\\d{1,6})?$"},"rate":{"type":"string","pattern":"^\\d+(\\.\\d{1,6})?$"}},"required":["method","annualRevenue","rate"],"additionalProperties":false},{"type":"object","properties":{"method":{"type":"string","const":"units"},"quantity":{"type":"string","pattern":"^\\d+(\\.\\d{1,6})?$"},"monthlyRate":{"type":"string","pattern":"^\\d+(\\.\\d{1,6})?$"}},"required":["method","quantity","monthlyRate"],"additionalProperties":false}]}},"required":["id","name","amount","vat"]}},"payroll":{"maxItems":30,"type":"array","items":{"type":"object","properties":{"id":{"type":"string"},"name":{"type":"string","minLength":1,"maxLength":120},"gross":{"type":"string","pattern":"^\\d+(\\.\\d{1,6})?$"},"count":{"type":"integer","minimum":1,"maximum":100},"startMonth":{"type":"integer","minimum":1,"maximum":60},"employerRate":{"type":"string","pattern":"^\\d+(\\.\\d{1,6})?$"}},"required":["id","name","gross","count","startMonth","employerRate"]}},"asset":{"type":"object","properties":{"amount":{"type":"string","pattern":"^\\d+(\\.\\d{1,6})?$"},"lifeMonths":{"type":"integer","minimum":1,"maximum":240},"vat":{"type":"string","pattern":"^\\d+(\\.\\d{1,6})?$"}},"required":["amount","lifeMonths","vat"]},"financing":{"type":"object","properties":{"equity":{"type":"string","pattern":"^\\d+(\\.\\d{1,6})?$"},"loan":{"type":"string","pattern":"^\\d+(\\.\\d{1,6})?$"},"annualRate":{"type":"string","pattern":"^\\d+(\\.\\d{1,6})?$"},"termMonths":{"type":"integer","minimum":1,"maximum":240}},"required":["equity","loan","annualRate","termMonths"]},"stock":{"type":"object","properties":{"initialPurchase":{"type":"string","pattern":"^\\d+(\\.\\d{1,6})?$"},"enabled":{"type":"boolean"},"vat":{"type":"string","pattern":"^\\d+(\\.\\d{1,6})?$"}},"required":["initialPurchase","enabled","vat"]},"collectionDelay":{"type":"integer","minimum":0,"maximum":3},"supplierDelay":{"type":"integer","minimum":0,"maximum":3},"tax":{"type":"object","properties":{"vatEnabled":{"type":"boolean"},"corporateRate":{"type":"string","pattern":"^\\d+(\\.\\d{1,6})?$"},"profile":{"type":"string","enum":["legacy","france-is"]},"reducedRateEligible":{"type":"boolean"},"capitalPaid":{"type":"boolean"},"ownershipEligible":{"type":"boolean"}},"required":["vatEnabled","corporateRate"]},"capacity":{"type":"object","properties":{"hoursPerMonth":{"type":"string","pattern":"^\\d+(\\.\\d{1,6})?$"},"minutesPerService":{"type":"string","pattern":"^\\d+(\\.\\d{1,6})?$"}},"required":["hoursPerMonth","minutesPerService"]}},"required":["start","months","revenues","expenses","payroll","asset","financing","stock","collectionDelay","supplierDelay","tax","capacity"]},"document":{"type":"object","properties":{"presentation":{"type":"string","maxLength":15000},"market":{"type":"string","maxLength":15000},"operations":{"type":"string","maxLength":15000},"acquisition":{"type":"string","maxLength":15000},"funding":{"type":"string","maxLength":15000},"risks":{"type":"string","maxLength":15000}},"required":["presentation","market","operations"]},"scenario":{"type":"object","properties":{"name":{"type":"string","minLength":1,"maxLength":100},"salesMultiplier":{"type":"string","pattern":"^\\d+(\\.\\d{1,6})?$"},"hiringShift":{"type":"integer","minimum":-36,"maximum":36},"revenueOverrides":{"type":"object","propertyNames":{"type":"string","minLength":1,"maxLength":120},"additionalProperties":{"type":"object","properties":{"quantity":{"type":"string","pattern":"^\\d+(\\.\\d{1,6})?$"},"price":{"type":"string","pattern":"^\\d+(\\.\\d{1,6})?$"},"newCustomers":{"type":"string","pattern":"^\\d+(\\.\\d{1,6})?$"},"churn":{"type":"string","pattern":"^\\d+(\\.\\d{1,6})?$"}},"additionalProperties":false}},"payrollShifts":{"type":"object","propertyNames":{"type":"string","minLength":1,"maxLength":120},"additionalProperties":{"type":"integer","minimum":-36,"maximum":36}},"collectionDelay":{"type":"integer","minimum":0,"maximum":3},"supplierDelay":{"type":"integer","minimum":0,"maximum":3}},"required":["name","salesMultiplier","hiringShift"],"additionalProperties":false},"scenarios":{"maxItems":19,"type":"array","items":{"type":"object","properties":{"name":{"type":"string","minLength":1,"maxLength":100},"salesMultiplier":{"type":"string","pattern":"^\\d+(\\.\\d{1,6})?$"},"hiringShift":{"type":"integer","minimum":-36,"maximum":36},"revenueOverrides":{"type":"object","propertyNames":{"type":"string","minLength":1,"maxLength":120},"additionalProperties":{"type":"object","properties":{"quantity":{"type":"string","pattern":"^\\d+(\\.\\d{1,6})?$"},"price":{"type":"string","pattern":"^\\d+(\\.\\d{1,6})?$"},"newCustomers":{"type":"string","pattern":"^\\d+(\\.\\d{1,6})?$"},"churn":{"type":"string","pattern":"^\\d+(\\.\\d{1,6})?$"}},"additionalProperties":false}},"payrollShifts":{"type":"object","propertyNames":{"type":"string","minLength":1,"maxLength":120},"additionalProperties":{"type":"integer","minimum":-36,"maximum":36}},"collectionDelay":{"type":"integer","minimum":0,"maximum":3},"supplierDelay":{"type":"integer","minimum":0,"maximum":3},"id":{"type":"string","minLength":1,"maxLength":120}},"required":["name","salesMultiplier","hiringShift","id"],"additionalProperties":false}},"assumptions":{"maxItems":400,"type":"array","items":{"type":"object","properties":{"path":{"type":"string","minLength":1,"maxLength":240},"label":{"type":"string","minLength":1,"maxLength":240},"status":{"type":"string","enum":["missing","example","estimate","confirmed"]},"source":{"type":"string","maxLength":1500},"note":{"type":"string","maxLength":3000}},"required":["path","label","status","source","note"],"additionalProperties":false}}},"required":["name","input","document","scenario"]},"commit":{"default":false,"type":"boolean"},"changes":{"type":"object","properties":{"name":{"type":"string","minLength":1,"maxLength":120},"clientName":{"type":"string","maxLength":120},"input":{"type":"object","properties":{"start":{"type":"string","pattern":"^20\\d{2}-(0[1-9]|1[0-2])$"},"months":{"type":"integer","minimum":12,"maximum":60},"revenues":{"maxItems":30,"type":"array","items":{"type":"object","properties":{"id":{"type":"string","minLength":1},"name":{"type":"string","minLength":1,"maxLength":120},"kind":{"type":"string","enum":["service","product","subscription"]},"quantity":{"type":"string","pattern":"^\\d+(\\.\\d{1,6})?$"},"evolution":{"type":"object","properties":{"quantity":{"type":"object","properties":{"ramp":{"type":"object","properties":{"target":{"type":"string","pattern":"^\\d+(\\.\\d{1,6})?$"},"endMonth":{"type":"integer","minimum":2,"maximum":60}},"required":["target","endMonth"],"additionalProperties":false},"overrides":{"type":"object","propertyNames":{"type":"string","pattern":"^(?:[1-9]|[1-5][0-9]|60)$"},"additionalProperties":{"type":"string","pattern":"^\\d+(\\.\\d{1,6})?$"}}},"additionalProperties":false},"price":{"type":"object","properties":{"ramp":{"type":"object","properties":{"target":{"type":"string","pattern":"^\\d+(\\.\\d{1,6})?$"},"endMonth":{"type":"integer","minimum":2,"maximum":60}},"required":["target","endMonth"],"additionalProperties":false},"overrides":{"type":"object","propertyNames":{"type":"string","pattern":"^(?:[1-9]|[1-5][0-9]|60)$"},"additionalProperties":{"type":"string","pattern":"^\\d+(\\.\\d{1,6})?$"}}},"additionalProperties":false},"unitCost":{"type":"object","properties":{"ramp":{"type":"object","properties":{"target":{"type":"string","pattern":"^\\d+(\\.\\d{1,6})?$"},"endMonth":{"type":"integer","minimum":2,"maximum":60}},"required":["target","endMonth"],"additionalProperties":false},"overrides":{"type":"object","propertyNames":{"type":"string","pattern":"^(?:[1-9]|[1-5][0-9]|60)$"},"additionalProperties":{"type":"string","pattern":"^\\d+(\\.\\d{1,6})?$"}}},"additionalProperties":false},"costRatio":{"type":"object","properties":{"ramp":{"type":"object","properties":{"target":{"type":"string","pattern":"^\\d+(\\.\\d{1,6})?$"},"endMonth":{"type":"integer","minimum":2,"maximum":60}},"required":["target","endMonth"],"additionalProperties":false},"overrides":{"type":"object","propertyNames":{"type":"string","pattern":"^(?:[1-9]|[1-5][0-9]|60)$"},"additionalProperties":{"type":"string","pattern":"^\\d+(\\.\\d{1,6})?$"}}},"additionalProperties":false},"newCustomers":{"type":"object","properties":{"ramp":{"type":"object","properties":{"target":{"type":"string","pattern":"^\\d+(\\.\\d{1,6})?$"},"endMonth":{"type":"integer","minimum":2,"maximum":60}},"required":["target","endMonth"],"additionalProperties":false},"overrides":{"type":"object","propertyNames":{"type":"string","pattern":"^(?:[1-9]|[1-5][0-9]|60)$"},"additionalProperties":{"type":"string","pattern":"^\\d+(\\.\\d{1,6})?$"}}},"additionalProperties":false},"churn":{"type":"object","properties":{"ramp":{"type":"object","properties":{"target":{"type":"string","pattern":"^\\d+(\\.\\d{1,6})?$"},"endMonth":{"type":"integer","minimum":2,"maximum":60}},"required":["target","endMonth"],"additionalProperties":false},"overrides":{"type":"object","propertyNames":{"type":"string","pattern":"^(?:[1-9]|[1-5][0-9]|60)$"},"additionalProperties":{"type":"string","pattern":"^\\d+(\\.\\d{1,6})?$"}}},"additionalProperties":false}},"additionalProperties":false},"price":{"type":"string","pattern":"^\\d+(\\.\\d{1,6})?$"},"unitCost":{"type":"string","pattern":"^\\d+(\\.\\d{1,6})?$"},"costRatio":{"type":"string","pattern":"^\\d+(\\.\\d{1,6})?$"},"newCustomers":{"default":"0","type":"string","pattern":"^\\d+(\\.\\d{1,6})?$"},"churn":{"default":"0","type":"string","pattern":"^\\d+(\\.\\d{1,6})?$"},"vat":{"type":"string","pattern":"^\\d+(\\.\\d{1,6})?$"},"costVat":{"type":"string","pattern":"^\\d+(\\.\\d{1,6})?$"},"costVatTiming":{"type":"string","enum":["invoice","payment"]},"vatTiming":{"type":"string","enum":["invoice","collection"]}},"required":["id","name","kind","quantity","price","unitCost","costRatio","vat"]}},"expenses":{"maxItems":50,"type":"array","items":{"type":"object","properties":{"id":{"type":"string"},"name":{"type":"string","minLength":1,"maxLength":120},"amount":{"type":"string","pattern":"^\\d+(\\.\\d{1,6})?$"},"evolution":{"type":"object","properties":{"amount":{"type":"object","properties":{"ramp":{"type":"object","properties":{"target":{"type":"string","pattern":"^\\d+(\\.\\d{1,6})?$"},"endMonth":{"type":"integer","minimum":2,"maximum":60}},"required":["target","endMonth"],"additionalProperties":false},"overrides":{"type":"object","propertyNames":{"type":"string","pattern":"^(?:[1-9]|[1-5][0-9]|60)$"},"additionalProperties":{"type":"string","pattern":"^\\d+(\\.\\d{1,6})?$"}}},"additionalProperties":false}},"additionalProperties":false},"vat":{"type":"string","pattern":"^\\d+(\\.\\d{1,6})?$"},"vatTiming":{"type":"string","enum":["invoice","payment"]},"standardCostId":{"type":"string","pattern":"^[a-z][a-z0-9-]{0,59}$"},"costEstimate":{"oneOf":[{"type":"object","properties":{"method":{"type":"string","const":"annual"},"annualAmount":{"type":"string","pattern":"^\\d+(\\.\\d{1,6})?$"}},"required":["method","annualAmount"],"additionalProperties":false},{"type":"object","properties":{"method":{"type":"string","const":"area"},"surface":{"type":"string","pattern":"^\\d+(\\.\\d{1,6})?$"},"annualRate":{"type":"string","pattern":"^\\d+(\\.\\d{1,6})?$"}},"required":["method","surface","annualRate"],"additionalProperties":false},{"type":"object","properties":{"method":{"type":"string","const":"energy"},"surface":{"type":"string","pattern":"^\\d+(\\.\\d{1,6})?$"},"consumption":{"type":"string","pattern":"^\\d+(\\.\\d{1,6})?$"},"kwhPrice":{"type":"string","pattern":"^\\d+(\\.\\d{1,6})?$"},"annualSubscription":{"type":"string","pattern":"^\\d+(\\.\\d{1,6})?$"}},"required":["method","surface","consumption","kwhPrice","annualSubscription"],"additionalProperties":false},{"type":"object","properties":{"method":{"type":"string","const":"revenue"},"annualRevenue":{"type":"string","pattern":"^\\d+(\\.\\d{1,6})?$"},"rate":{"type":"string","pattern":"^\\d+(\\.\\d{1,6})?$"}},"required":["method","annualRevenue","rate"],"additionalProperties":false},{"type":"object","properties":{"method":{"type":"string","const":"units"},"quantity":{"type":"string","pattern":"^\\d+(\\.\\d{1,6})?$"},"monthlyRate":{"type":"string","pattern":"^\\d+(\\.\\d{1,6})?$"}},"required":["method","quantity","monthlyRate"],"additionalProperties":false}]}},"required":["id","name","amount","vat"]}},"payroll":{"maxItems":30,"type":"array","items":{"type":"object","properties":{"id":{"type":"string"},"name":{"type":"string","minLength":1,"maxLength":120},"gross":{"type":"string","pattern":"^\\d+(\\.\\d{1,6})?$"},"count":{"type":"integer","minimum":1,"maximum":100},"startMonth":{"type":"integer","minimum":1,"maximum":60},"employerRate":{"type":"string","pattern":"^\\d+(\\.\\d{1,6})?$"}},"required":["id","name","gross","count","startMonth","employerRate"]}},"asset":{"type":"object","properties":{"amount":{"type":"string","pattern":"^\\d+(\\.\\d{1,6})?$"},"lifeMonths":{"type":"integer","minimum":1,"maximum":240},"vat":{"type":"string","pattern":"^\\d+(\\.\\d{1,6})?$"}}},"financing":{"type":"object","properties":{"equity":{"type":"string","pattern":"^\\d+(\\.\\d{1,6})?$"},"loan":{"type":"string","pattern":"^\\d+(\\.\\d{1,6})?$"},"annualRate":{"type":"string","pattern":"^\\d+(\\.\\d{1,6})?$"},"termMonths":{"type":"integer","minimum":1,"maximum":240}}},"stock":{"type":"object","properties":{"initialPurchase":{"type":"string","pattern":"^\\d+(\\.\\d{1,6})?$"},"enabled":{"type":"boolean"},"vat":{"type":"string","pattern":"^\\d+(\\.\\d{1,6})?$"}}},"collectionDelay":{"type":"integer","minimum":0,"maximum":3},"supplierDelay":{"type":"integer","minimum":0,"maximum":3},"tax":{"type":"object","properties":{"vatEnabled":{"type":"boolean"},"corporateRate":{"type":"string","pattern":"^\\d+(\\.\\d{1,6})?$"},"profile":{"type":"string","enum":["legacy","france-is"]},"reducedRateEligible":{"type":"boolean"},"capitalPaid":{"type":"boolean"},"ownershipEligible":{"type":"boolean"}}},"capacity":{"type":"object","properties":{"hoursPerMonth":{"type":"string","pattern":"^\\d+(\\.\\d{1,6})?$"},"minutesPerService":{"type":"string","pattern":"^\\d+(\\.\\d{1,6})?$"}}}},"additionalProperties":false},"document":{"type":"object","properties":{"presentation":{"type":"string","maxLength":15000},"market":{"type":"string","maxLength":15000},"operations":{"type":"string","maxLength":15000},"acquisition":{"type":"string","maxLength":15000},"funding":{"type":"string","maxLength":15000},"risks":{"type":"string","maxLength":15000}}},"scenario":{"type":"object","properties":{"name":{"type":"string","minLength":1,"maxLength":100},"salesMultiplier":{"type":"string","pattern":"^\\d+(\\.\\d{1,6})?$"},"hiringShift":{"type":"integer","minimum":-36,"maximum":36},"revenueOverrides":{"type":"object","propertyNames":{"type":"string","minLength":1,"maxLength":120},"additionalProperties":{"type":"object","properties":{"quantity":{"type":"string","pattern":"^\\d+(\\.\\d{1,6})?$"},"price":{"type":"string","pattern":"^\\d+(\\.\\d{1,6})?$"},"newCustomers":{"type":"string","pattern":"^\\d+(\\.\\d{1,6})?$"},"churn":{"type":"string","pattern":"^\\d+(\\.\\d{1,6})?$"}},"additionalProperties":false}},"payrollShifts":{"type":"object","propertyNames":{"type":"string","minLength":1,"maxLength":120},"additionalProperties":{"type":"integer","minimum":-36,"maximum":36}},"collectionDelay":{"type":"integer","minimum":0,"maximum":3},"supplierDelay":{"type":"integer","minimum":0,"maximum":3}},"required":["name","salesMultiplier","hiringShift"],"additionalProperties":false},"scenarios":{"maxItems":19,"type":"array","items":{"type":"object","properties":{"name":{"type":"string","minLength":1,"maxLength":100},"salesMultiplier":{"type":"string","pattern":"^\\d+(\\.\\d{1,6})?$"},"hiringShift":{"type":"integer","minimum":-36,"maximum":36},"revenueOverrides":{"type":"object","propertyNames":{"type":"string","minLength":1,"maxLength":120},"additionalProperties":{"type":"object","properties":{"quantity":{"type":"string","pattern":"^\\d+(\\.\\d{1,6})?$"},"price":{"type":"string","pattern":"^\\d+(\\.\\d{1,6})?$"},"newCustomers":{"type":"string","pattern":"^\\d+(\\.\\d{1,6})?$"},"churn":{"type":"string","pattern":"^\\d+(\\.\\d{1,6})?$"}},"additionalProperties":false}},"payrollShifts":{"type":"object","propertyNames":{"type":"string","minLength":1,"maxLength":120},"additionalProperties":{"type":"integer","minimum":-36,"maximum":36}},"collectionDelay":{"type":"integer","minimum":0,"maximum":3},"supplierDelay":{"type":"integer","minimum":0,"maximum":3},"id":{"type":"string","minLength":1,"maxLength":120}},"required":["name","salesMultiplier","hiringShift","id"],"additionalProperties":false}},"assumptions":{"maxItems":400,"type":"array","items":{"type":"object","properties":{"path":{"type":"string","minLength":1,"maxLength":240},"label":{"type":"string","minLength":1,"maxLength":240},"status":{"type":"string","enum":["missing","example","estimate","confirmed"]},"source":{"type":"string","maxLength":1500},"note":{"type":"string","maxLength":3000}},"required":["path","label","status","source","note"],"additionalProperties":false}}},"additionalProperties":false}},"required":["projectId","expectedVersion","changes"],"additionalProperties":false}},{"name":"projects_list","description":"Rechercher les projets privés et partagés, y compris les archives, avec pagination.","scope":"read","scopeLabel":"Lire les projets","readOnly":true,"destructive":false,"idempotent":true,"inputSchema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"query":{"type":"string","maxLength":254},"page":{"type":"integer","minimum":1,"maximum":100000},"archived":{"type":"boolean"}},"additionalProperties":false}},{"name":"revenues_remove","description":"Supprimer une ligne explicitement désignée et retirer ses remplacements de scénarios. commit=true enregistre la modification.","scope":"write","scopeLabel":"Modifier les projets et les partages","readOnly":false,"destructive":true,"idempotent":false,"inputSchema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"projectId":{"type":"string","minLength":1,"maxLength":120},"expectedVersion":{"type":"integer","exclusiveMinimum":0,"maximum":2147483646},"draft":{"type":"object","properties":{"name":{"type":"string","minLength":1,"maxLength":120},"clientName":{"type":"string","maxLength":120},"input":{"type":"object","properties":{"start":{"type":"string","pattern":"^20\\d{2}-(0[1-9]|1[0-2])$"},"months":{"type":"integer","minimum":12,"maximum":60},"revenues":{"maxItems":30,"type":"array","items":{"type":"object","properties":{"id":{"type":"string","minLength":1},"name":{"type":"string","minLength":1,"maxLength":120},"kind":{"type":"string","enum":["service","product","subscription"]},"quantity":{"type":"string","pattern":"^\\d+(\\.\\d{1,6})?$"},"evolution":{"type":"object","properties":{"quantity":{"type":"object","properties":{"ramp":{"type":"object","properties":{"target":{"type":"string","pattern":"^\\d+(\\.\\d{1,6})?$"},"endMonth":{"type":"integer","minimum":2,"maximum":60}},"required":["target","endMonth"],"additionalProperties":false},"overrides":{"type":"object","propertyNames":{"type":"string","pattern":"^(?:[1-9]|[1-5][0-9]|60)$"},"additionalProperties":{"type":"string","pattern":"^\\d+(\\.\\d{1,6})?$"}}},"additionalProperties":false},"price":{"type":"object","properties":{"ramp":{"type":"object","properties":{"target":{"type":"string","pattern":"^\\d+(\\.\\d{1,6})?$"},"endMonth":{"type":"integer","minimum":2,"maximum":60}},"required":["target","endMonth"],"additionalProperties":false},"overrides":{"type":"object","propertyNames":{"type":"string","pattern":"^(?:[1-9]|[1-5][0-9]|60)$"},"additionalProperties":{"type":"string","pattern":"^\\d+(\\.\\d{1,6})?$"}}},"additionalProperties":false},"unitCost":{"type":"object","properties":{"ramp":{"type":"object","properties":{"target":{"type":"string","pattern":"^\\d+(\\.\\d{1,6})?$"},"endMonth":{"type":"integer","minimum":2,"maximum":60}},"required":["target","endMonth"],"additionalProperties":false},"overrides":{"type":"object","propertyNames":{"type":"string","pattern":"^(?:[1-9]|[1-5][0-9]|60)$"},"additionalProperties":{"type":"string","pattern":"^\\d+(\\.\\d{1,6})?$"}}},"additionalProperties":false},"costRatio":{"type":"object","properties":{"ramp":{"type":"object","properties":{"target":{"type":"string","pattern":"^\\d+(\\.\\d{1,6})?$"},"endMonth":{"type":"integer","minimum":2,"maximum":60}},"required":["target","endMonth"],"additionalProperties":false},"overrides":{"type":"object","propertyNames":{"type":"string","pattern":"^(?:[1-9]|[1-5][0-9]|60)$"},"additionalProperties":{"type":"string","pattern":"^\\d+(\\.\\d{1,6})?$"}}},"additionalProperties":false},"newCustomers":{"type":"object","properties":{"ramp":{"type":"object","properties":{"target":{"type":"string","pattern":"^\\d+(\\.\\d{1,6})?$"},"endMonth":{"type":"integer","minimum":2,"maximum":60}},"required":["target","endMonth"],"additionalProperties":false},"overrides":{"type":"object","propertyNames":{"type":"string","pattern":"^(?:[1-9]|[1-5][0-9]|60)$"},"additionalProperties":{"type":"string","pattern":"^\\d+(\\.\\d{1,6})?$"}}},"additionalProperties":false},"churn":{"type":"object","properties":{"ramp":{"type":"object","properties":{"target":{"type":"string","pattern":"^\\d+(\\.\\d{1,6})?$"},"endMonth":{"type":"integer","minimum":2,"maximum":60}},"required":["target","endMonth"],"additionalProperties":false},"overrides":{"type":"object","propertyNames":{"type":"string","pattern":"^(?:[1-9]|[1-5][0-9]|60)$"},"additionalProperties":{"type":"string","pattern":"^\\d+(\\.\\d{1,6})?$"}}},"additionalProperties":false}},"additionalProperties":false},"price":{"type":"string","pattern":"^\\d+(\\.\\d{1,6})?$"},"unitCost":{"type":"string","pattern":"^\\d+(\\.\\d{1,6})?$"},"costRatio":{"type":"string","pattern":"^\\d+(\\.\\d{1,6})?$"},"newCustomers":{"default":"0","type":"string","pattern":"^\\d+(\\.\\d{1,6})?$"},"churn":{"default":"0","type":"string","pattern":"^\\d+(\\.\\d{1,6})?$"},"vat":{"type":"string","pattern":"^\\d+(\\.\\d{1,6})?$"},"costVat":{"type":"string","pattern":"^\\d+(\\.\\d{1,6})?$"},"costVatTiming":{"type":"string","enum":["invoice","payment"]},"vatTiming":{"type":"string","enum":["invoice","collection"]}},"required":["id","name","kind","quantity","price","unitCost","costRatio","vat"]}},"expenses":{"maxItems":50,"type":"array","items":{"type":"object","properties":{"id":{"type":"string"},"name":{"type":"string","minLength":1,"maxLength":120},"amount":{"type":"string","pattern":"^\\d+(\\.\\d{1,6})?$"},"evolution":{"type":"object","properties":{"amount":{"type":"object","properties":{"ramp":{"type":"object","properties":{"target":{"type":"string","pattern":"^\\d+(\\.\\d{1,6})?$"},"endMonth":{"type":"integer","minimum":2,"maximum":60}},"required":["target","endMonth"],"additionalProperties":false},"overrides":{"type":"object","propertyNames":{"type":"string","pattern":"^(?:[1-9]|[1-5][0-9]|60)$"},"additionalProperties":{"type":"string","pattern":"^\\d+(\\.\\d{1,6})?$"}}},"additionalProperties":false}},"additionalProperties":false},"vat":{"type":"string","pattern":"^\\d+(\\.\\d{1,6})?$"},"vatTiming":{"type":"string","enum":["invoice","payment"]},"standardCostId":{"type":"string","pattern":"^[a-z][a-z0-9-]{0,59}$"},"costEstimate":{"oneOf":[{"type":"object","properties":{"method":{"type":"string","const":"annual"},"annualAmount":{"type":"string","pattern":"^\\d+(\\.\\d{1,6})?$"}},"required":["method","annualAmount"],"additionalProperties":false},{"type":"object","properties":{"method":{"type":"string","const":"area"},"surface":{"type":"string","pattern":"^\\d+(\\.\\d{1,6})?$"},"annualRate":{"type":"string","pattern":"^\\d+(\\.\\d{1,6})?$"}},"required":["method","surface","annualRate"],"additionalProperties":false},{"type":"object","properties":{"method":{"type":"string","const":"energy"},"surface":{"type":"string","pattern":"^\\d+(\\.\\d{1,6})?$"},"consumption":{"type":"string","pattern":"^\\d+(\\.\\d{1,6})?$"},"kwhPrice":{"type":"string","pattern":"^\\d+(\\.\\d{1,6})?$"},"annualSubscription":{"type":"string","pattern":"^\\d+(\\.\\d{1,6})?$"}},"required":["method","surface","consumption","kwhPrice","annualSubscription"],"additionalProperties":false},{"type":"object","properties":{"method":{"type":"string","const":"revenue"},"annualRevenue":{"type":"string","pattern":"^\\d+(\\.\\d{1,6})?$"},"rate":{"type":"string","pattern":"^\\d+(\\.\\d{1,6})?$"}},"required":["method","annualRevenue","rate"],"additionalProperties":false},{"type":"object","properties":{"method":{"type":"string","const":"units"},"quantity":{"type":"string","pattern":"^\\d+(\\.\\d{1,6})?$"},"monthlyRate":{"type":"string","pattern":"^\\d+(\\.\\d{1,6})?$"}},"required":["method","quantity","monthlyRate"],"additionalProperties":false}]}},"required":["id","name","amount","vat"]}},"payroll":{"maxItems":30,"type":"array","items":{"type":"object","properties":{"id":{"type":"string"},"name":{"type":"string","minLength":1,"maxLength":120},"gross":{"type":"string","pattern":"^\\d+(\\.\\d{1,6})?$"},"count":{"type":"integer","minimum":1,"maximum":100},"startMonth":{"type":"integer","minimum":1,"maximum":60},"employerRate":{"type":"string","pattern":"^\\d+(\\.\\d{1,6})?$"}},"required":["id","name","gross","count","startMonth","employerRate"]}},"asset":{"type":"object","properties":{"amount":{"type":"string","pattern":"^\\d+(\\.\\d{1,6})?$"},"lifeMonths":{"type":"integer","minimum":1,"maximum":240},"vat":{"type":"string","pattern":"^\\d+(\\.\\d{1,6})?$"}},"required":["amount","lifeMonths","vat"]},"financing":{"type":"object","properties":{"equity":{"type":"string","pattern":"^\\d+(\\.\\d{1,6})?$"},"loan":{"type":"string","pattern":"^\\d+(\\.\\d{1,6})?$"},"annualRate":{"type":"string","pattern":"^\\d+(\\.\\d{1,6})?$"},"termMonths":{"type":"integer","minimum":1,"maximum":240}},"required":["equity","loan","annualRate","termMonths"]},"stock":{"type":"object","properties":{"initialPurchase":{"type":"string","pattern":"^\\d+(\\.\\d{1,6})?$"},"enabled":{"type":"boolean"},"vat":{"type":"string","pattern":"^\\d+(\\.\\d{1,6})?$"}},"required":["initialPurchase","enabled","vat"]},"collectionDelay":{"type":"integer","minimum":0,"maximum":3},"supplierDelay":{"type":"integer","minimum":0,"maximum":3},"tax":{"type":"object","properties":{"vatEnabled":{"type":"boolean"},"corporateRate":{"type":"string","pattern":"^\\d+(\\.\\d{1,6})?$"},"profile":{"type":"string","enum":["legacy","france-is"]},"reducedRateEligible":{"type":"boolean"},"capitalPaid":{"type":"boolean"},"ownershipEligible":{"type":"boolean"}},"required":["vatEnabled","corporateRate"]},"capacity":{"type":"object","properties":{"hoursPerMonth":{"type":"string","pattern":"^\\d+(\\.\\d{1,6})?$"},"minutesPerService":{"type":"string","pattern":"^\\d+(\\.\\d{1,6})?$"}},"required":["hoursPerMonth","minutesPerService"]}},"required":["start","months","revenues","expenses","payroll","asset","financing","stock","collectionDelay","supplierDelay","tax","capacity"]},"document":{"type":"object","properties":{"presentation":{"type":"string","maxLength":15000},"market":{"type":"string","maxLength":15000},"operations":{"type":"string","maxLength":15000},"acquisition":{"type":"string","maxLength":15000},"funding":{"type":"string","maxLength":15000},"risks":{"type":"string","maxLength":15000}},"required":["presentation","market","operations"]},"scenario":{"type":"object","properties":{"name":{"type":"string","minLength":1,"maxLength":100},"salesMultiplier":{"type":"string","pattern":"^\\d+(\\.\\d{1,6})?$"},"hiringShift":{"type":"integer","minimum":-36,"maximum":36},"revenueOverrides":{"type":"object","propertyNames":{"type":"string","minLength":1,"maxLength":120},"additionalProperties":{"type":"object","properties":{"quantity":{"type":"string","pattern":"^\\d+(\\.\\d{1,6})?$"},"price":{"type":"string","pattern":"^\\d+(\\.\\d{1,6})?$"},"newCustomers":{"type":"string","pattern":"^\\d+(\\.\\d{1,6})?$"},"churn":{"type":"string","pattern":"^\\d+(\\.\\d{1,6})?$"}},"additionalProperties":false}},"payrollShifts":{"type":"object","propertyNames":{"type":"string","minLength":1,"maxLength":120},"additionalProperties":{"type":"integer","minimum":-36,"maximum":36}},"collectionDelay":{"type":"integer","minimum":0,"maximum":3},"supplierDelay":{"type":"integer","minimum":0,"maximum":3}},"required":["name","salesMultiplier","hiringShift"],"additionalProperties":false},"scenarios":{"maxItems":19,"type":"array","items":{"type":"object","properties":{"name":{"type":"string","minLength":1,"maxLength":100},"salesMultiplier":{"type":"string","pattern":"^\\d+(\\.\\d{1,6})?$"},"hiringShift":{"type":"integer","minimum":-36,"maximum":36},"revenueOverrides":{"type":"object","propertyNames":{"type":"string","minLength":1,"maxLength":120},"additionalProperties":{"type":"object","properties":{"quantity":{"type":"string","pattern":"^\\d+(\\.\\d{1,6})?$"},"price":{"type":"string","pattern":"^\\d+(\\.\\d{1,6})?$"},"newCustomers":{"type":"string","pattern":"^\\d+(\\.\\d{1,6})?$"},"churn":{"type":"string","pattern":"^\\d+(\\.\\d{1,6})?$"}},"additionalProperties":false}},"payrollShifts":{"type":"object","propertyNames":{"type":"string","minLength":1,"maxLength":120},"additionalProperties":{"type":"integer","minimum":-36,"maximum":36}},"collectionDelay":{"type":"integer","minimum":0,"maximum":3},"supplierDelay":{"type":"integer","minimum":0,"maximum":3},"id":{"type":"string","minLength":1,"maxLength":120}},"required":["name","salesMultiplier","hiringShift","id"],"additionalProperties":false}},"assumptions":{"maxItems":400,"type":"array","items":{"type":"object","properties":{"path":{"type":"string","minLength":1,"maxLength":240},"label":{"type":"string","minLength":1,"maxLength":240},"status":{"type":"string","enum":["missing","example","estimate","confirmed"]},"source":{"type":"string","maxLength":1500},"note":{"type":"string","maxLength":3000}},"required":["path","label","status","source","note"],"additionalProperties":false}}},"required":["name","input","document","scenario"]},"commit":{"default":false,"type":"boolean"},"rowId":{"type":"string","pattern":"^[a-zA-Z0-9_-]{1,120}$"}},"required":["projectId","expectedVersion","rowId"],"additionalProperties":false}},{"name":"revenues_upsert","description":"Ajouter ou modifier une ligne complète des hypothèses avec son identifiant stable. commit=true enregistre la modification.","scope":"write","scopeLabel":"Modifier les projets et les partages","readOnly":false,"destructive":true,"idempotent":false,"inputSchema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"projectId":{"type":"string","minLength":1,"maxLength":120},"expectedVersion":{"type":"integer","exclusiveMinimum":0,"maximum":2147483646},"draft":{"type":"object","properties":{"name":{"type":"string","minLength":1,"maxLength":120},"clientName":{"type":"string","maxLength":120},"input":{"type":"object","properties":{"start":{"type":"string","pattern":"^20\\d{2}-(0[1-9]|1[0-2])$"},"months":{"type":"integer","minimum":12,"maximum":60},"revenues":{"maxItems":30,"type":"array","items":{"type":"object","properties":{"id":{"type":"string","minLength":1},"name":{"type":"string","minLength":1,"maxLength":120},"kind":{"type":"string","enum":["service","product","subscription"]},"quantity":{"type":"string","pattern":"^\\d+(\\.\\d{1,6})?$"},"evolution":{"type":"object","properties":{"quantity":{"type":"object","properties":{"ramp":{"type":"object","properties":{"target":{"type":"string","pattern":"^\\d+(\\.\\d{1,6})?$"},"endMonth":{"type":"integer","minimum":2,"maximum":60}},"required":["target","endMonth"],"additionalProperties":false},"overrides":{"type":"object","propertyNames":{"type":"string","pattern":"^(?:[1-9]|[1-5][0-9]|60)$"},"additionalProperties":{"type":"string","pattern":"^\\d+(\\.\\d{1,6})?$"}}},"additionalProperties":false},"price":{"type":"object","properties":{"ramp":{"type":"object","properties":{"target":{"type":"string","pattern":"^\\d+(\\.\\d{1,6})?$"},"endMonth":{"type":"integer","minimum":2,"maximum":60}},"required":["target","endMonth"],"additionalProperties":false},"overrides":{"type":"object","propertyNames":{"type":"string","pattern":"^(?:[1-9]|[1-5][0-9]|60)$"},"additionalProperties":{"type":"string","pattern":"^\\d+(\\.\\d{1,6})?$"}}},"additionalProperties":false},"unitCost":{"type":"object","properties":{"ramp":{"type":"object","properties":{"target":{"type":"string","pattern":"^\\d+(\\.\\d{1,6})?$"},"endMonth":{"type":"integer","minimum":2,"maximum":60}},"required":["target","endMonth"],"additionalProperties":false},"overrides":{"type":"object","propertyNames":{"type":"string","pattern":"^(?:[1-9]|[1-5][0-9]|60)$"},"additionalProperties":{"type":"string","pattern":"^\\d+(\\.\\d{1,6})?$"}}},"additionalProperties":false},"costRatio":{"type":"object","properties":{"ramp":{"type":"object","properties":{"target":{"type":"string","pattern":"^\\d+(\\.\\d{1,6})?$"},"endMonth":{"type":"integer","minimum":2,"maximum":60}},"required":["target","endMonth"],"additionalProperties":false},"overrides":{"type":"object","propertyNames":{"type":"string","pattern":"^(?:[1-9]|[1-5][0-9]|60)$"},"additionalProperties":{"type":"string","pattern":"^\\d+(\\.\\d{1,6})?$"}}},"additionalProperties":false},"newCustomers":{"type":"object","properties":{"ramp":{"type":"object","properties":{"target":{"type":"string","pattern":"^\\d+(\\.\\d{1,6})?$"},"endMonth":{"type":"integer","minimum":2,"maximum":60}},"required":["target","endMonth"],"additionalProperties":false},"overrides":{"type":"object","propertyNames":{"type":"string","pattern":"^(?:[1-9]|[1-5][0-9]|60)$"},"additionalProperties":{"type":"string","pattern":"^\\d+(\\.\\d{1,6})?$"}}},"additionalProperties":false},"churn":{"type":"object","properties":{"ramp":{"type":"object","properties":{"target":{"type":"string","pattern":"^\\d+(\\.\\d{1,6})?$"},"endMonth":{"type":"integer","minimum":2,"maximum":60}},"required":["target","endMonth"],"additionalProperties":false},"overrides":{"type":"object","propertyNames":{"type":"string","pattern":"^(?:[1-9]|[1-5][0-9]|60)$"},"additionalProperties":{"type":"string","pattern":"^\\d+(\\.\\d{1,6})?$"}}},"additionalProperties":false}},"additionalProperties":false},"price":{"type":"string","pattern":"^\\d+(\\.\\d{1,6})?$"},"unitCost":{"type":"string","pattern":"^\\d+(\\.\\d{1,6})?$"},"costRatio":{"type":"string","pattern":"^\\d+(\\.\\d{1,6})?$"},"newCustomers":{"default":"0","type":"string","pattern":"^\\d+(\\.\\d{1,6})?$"},"churn":{"default":"0","type":"string","pattern":"^\\d+(\\.\\d{1,6})?$"},"vat":{"type":"string","pattern":"^\\d+(\\.\\d{1,6})?$"},"costVat":{"type":"string","pattern":"^\\d+(\\.\\d{1,6})?$"},"costVatTiming":{"type":"string","enum":["invoice","payment"]},"vatTiming":{"type":"string","enum":["invoice","collection"]}},"required":["id","name","kind","quantity","price","unitCost","costRatio","vat"]}},"expenses":{"maxItems":50,"type":"array","items":{"type":"object","properties":{"id":{"type":"string"},"name":{"type":"string","minLength":1,"maxLength":120},"amount":{"type":"string","pattern":"^\\d+(\\.\\d{1,6})?$"},"evolution":{"type":"object","properties":{"amount":{"type":"object","properties":{"ramp":{"type":"object","properties":{"target":{"type":"string","pattern":"^\\d+(\\.\\d{1,6})?$"},"endMonth":{"type":"integer","minimum":2,"maximum":60}},"required":["target","endMonth"],"additionalProperties":false},"overrides":{"type":"object","propertyNames":{"type":"string","pattern":"^(?:[1-9]|[1-5][0-9]|60)$"},"additionalProperties":{"type":"string","pattern":"^\\d+(\\.\\d{1,6})?$"}}},"additionalProperties":false}},"additionalProperties":false},"vat":{"type":"string","pattern":"^\\d+(\\.\\d{1,6})?$"},"vatTiming":{"type":"string","enum":["invoice","payment"]},"standardCostId":{"type":"string","pattern":"^[a-z][a-z0-9-]{0,59}$"},"costEstimate":{"oneOf":[{"type":"object","properties":{"method":{"type":"string","const":"annual"},"annualAmount":{"type":"string","pattern":"^\\d+(\\.\\d{1,6})?$"}},"required":["method","annualAmount"],"additionalProperties":false},{"type":"object","properties":{"method":{"type":"string","const":"area"},"surface":{"type":"string","pattern":"^\\d+(\\.\\d{1,6})?$"},"annualRate":{"type":"string","pattern":"^\\d+(\\.\\d{1,6})?$"}},"required":["method","surface","annualRate"],"additionalProperties":false},{"type":"object","properties":{"method":{"type":"string","const":"energy"},"surface":{"type":"string","pattern":"^\\d+(\\.\\d{1,6})?$"},"consumption":{"type":"string","pattern":"^\\d+(\\.\\d{1,6})?$"},"kwhPrice":{"type":"string","pattern":"^\\d+(\\.\\d{1,6})?$"},"annualSubscription":{"type":"string","pattern":"^\\d+(\\.\\d{1,6})?$"}},"required":["method","surface","consumption","kwhPrice","annualSubscription"],"additionalProperties":false},{"type":"object","properties":{"method":{"type":"string","const":"revenue"},"annualRevenue":{"type":"string","pattern":"^\\d+(\\.\\d{1,6})?$"},"rate":{"type":"string","pattern":"^\\d+(\\.\\d{1,6})?$"}},"required":["method","annualRevenue","rate"],"additionalProperties":false},{"type":"object","properties":{"method":{"type":"string","const":"units"},"quantity":{"type":"string","pattern":"^\\d+(\\.\\d{1,6})?$"},"monthlyRate":{"type":"string","pattern":"^\\d+(\\.\\d{1,6})?$"}},"required":["method","quantity","monthlyRate"],"additionalProperties":false}]}},"required":["id","name","amount","vat"]}},"payroll":{"maxItems":30,"type":"array","items":{"type":"object","properties":{"id":{"type":"string"},"name":{"type":"string","minLength":1,"maxLength":120},"gross":{"type":"string","pattern":"^\\d+(\\.\\d{1,6})?$"},"count":{"type":"integer","minimum":1,"maximum":100},"startMonth":{"type":"integer","minimum":1,"maximum":60},"employerRate":{"type":"string","pattern":"^\\d+(\\.\\d{1,6})?$"}},"required":["id","name","gross","count","startMonth","employerRate"]}},"asset":{"type":"object","properties":{"amount":{"type":"string","pattern":"^\\d+(\\.\\d{1,6})?$"},"lifeMonths":{"type":"integer","minimum":1,"maximum":240},"vat":{"type":"string","pattern":"^\\d+(\\.\\d{1,6})?$"}},"required":["amount","lifeMonths","vat"]},"financing":{"type":"object","properties":{"equity":{"type":"string","pattern":"^\\d+(\\.\\d{1,6})?$"},"loan":{"type":"string","pattern":"^\\d+(\\.\\d{1,6})?$"},"annualRate":{"type":"string","pattern":"^\\d+(\\.\\d{1,6})?$"},"termMonths":{"type":"integer","minimum":1,"maximum":240}},"required":["equity","loan","annualRate","termMonths"]},"stock":{"type":"object","properties":{"initialPurchase":{"type":"string","pattern":"^\\d+(\\.\\d{1,6})?$"},"enabled":{"type":"boolean"},"vat":{"type":"string","pattern":"^\\d+(\\.\\d{1,6})?$"}},"required":["initialPurchase","enabled","vat"]},"collectionDelay":{"type":"integer","minimum":0,"maximum":3},"supplierDelay":{"type":"integer","minimum":0,"maximum":3},"tax":{"type":"object","properties":{"vatEnabled":{"type":"boolean"},"corporateRate":{"type":"string","pattern":"^\\d+(\\.\\d{1,6})?$"},"profile":{"type":"string","enum":["legacy","france-is"]},"reducedRateEligible":{"type":"boolean"},"capitalPaid":{"type":"boolean"},"ownershipEligible":{"type":"boolean"}},"required":["vatEnabled","corporateRate"]},"capacity":{"type":"object","properties":{"hoursPerMonth":{"type":"string","pattern":"^\\d+(\\.\\d{1,6})?$"},"minutesPerService":{"type":"string","pattern":"^\\d+(\\.\\d{1,6})?$"}},"required":["hoursPerMonth","minutesPerService"]}},"required":["start","months","revenues","expenses","payroll","asset","financing","stock","collectionDelay","supplierDelay","tax","capacity"]},"document":{"type":"object","properties":{"presentation":{"type":"string","maxLength":15000},"market":{"type":"string","maxLength":15000},"operations":{"type":"string","maxLength":15000},"acquisition":{"type":"string","maxLength":15000},"funding":{"type":"string","maxLength":15000},"risks":{"type":"string","maxLength":15000}},"required":["presentation","market","operations"]},"scenario":{"type":"object","properties":{"name":{"type":"string","minLength":1,"maxLength":100},"salesMultiplier":{"type":"string","pattern":"^\\d+(\\.\\d{1,6})?$"},"hiringShift":{"type":"integer","minimum":-36,"maximum":36},"revenueOverrides":{"type":"object","propertyNames":{"type":"string","minLength":1,"maxLength":120},"additionalProperties":{"type":"object","properties":{"quantity":{"type":"string","pattern":"^\\d+(\\.\\d{1,6})?$"},"price":{"type":"string","pattern":"^\\d+(\\.\\d{1,6})?$"},"newCustomers":{"type":"string","pattern":"^\\d+(\\.\\d{1,6})?$"},"churn":{"type":"string","pattern":"^\\d+(\\.\\d{1,6})?$"}},"additionalProperties":false}},"payrollShifts":{"type":"object","propertyNames":{"type":"string","minLength":1,"maxLength":120},"additionalProperties":{"type":"integer","minimum":-36,"maximum":36}},"collectionDelay":{"type":"integer","minimum":0,"maximum":3},"supplierDelay":{"type":"integer","minimum":0,"maximum":3}},"required":["name","salesMultiplier","hiringShift"],"additionalProperties":false},"scenarios":{"maxItems":19,"type":"array","items":{"type":"object","properties":{"name":{"type":"string","minLength":1,"maxLength":100},"salesMultiplier":{"type":"string","pattern":"^\\d+(\\.\\d{1,6})?$"},"hiringShift":{"type":"integer","minimum":-36,"maximum":36},"revenueOverrides":{"type":"object","propertyNames":{"type":"string","minLength":1,"maxLength":120},"additionalProperties":{"type":"object","properties":{"quantity":{"type":"string","pattern":"^\\d+(\\.\\d{1,6})?$"},"price":{"type":"string","pattern":"^\\d+(\\.\\d{1,6})?$"},"newCustomers":{"type":"string","pattern":"^\\d+(\\.\\d{1,6})?$"},"churn":{"type":"string","pattern":"^\\d+(\\.\\d{1,6})?$"}},"additionalProperties":false}},"payrollShifts":{"type":"object","propertyNames":{"type":"string","minLength":1,"maxLength":120},"additionalProperties":{"type":"integer","minimum":-36,"maximum":36}},"collectionDelay":{"type":"integer","minimum":0,"maximum":3},"supplierDelay":{"type":"integer","minimum":0,"maximum":3},"id":{"type":"string","minLength":1,"maxLength":120}},"required":["name","salesMultiplier","hiringShift","id"],"additionalProperties":false}},"assumptions":{"maxItems":400,"type":"array","items":{"type":"object","properties":{"path":{"type":"string","minLength":1,"maxLength":240},"label":{"type":"string","minLength":1,"maxLength":240},"status":{"type":"string","enum":["missing","example","estimate","confirmed"]},"source":{"type":"string","maxLength":1500},"note":{"type":"string","maxLength":3000}},"required":["path","label","status","source","note"],"additionalProperties":false}}},"required":["name","input","document","scenario"]},"commit":{"default":false,"type":"boolean"},"row":{"type":"object","properties":{"id":{"type":"string","pattern":"^[a-zA-Z0-9_-]{1,120}$"},"name":{"type":"string","minLength":1,"maxLength":120},"kind":{"type":"string","enum":["service","product","subscription"]},"quantity":{"type":"string","pattern":"^\\d+(\\.\\d{1,6})?$"},"evolution":{"type":"object","properties":{"quantity":{"type":"object","properties":{"ramp":{"type":"object","properties":{"target":{"type":"string","pattern":"^\\d+(\\.\\d{1,6})?$"},"endMonth":{"type":"integer","minimum":2,"maximum":60}},"required":["target","endMonth"],"additionalProperties":false},"overrides":{"type":"object","propertyNames":{"type":"string","pattern":"^(?:[1-9]|[1-5][0-9]|60)$"},"additionalProperties":{"type":"string","pattern":"^\\d+(\\.\\d{1,6})?$"}}},"additionalProperties":false},"price":{"type":"object","properties":{"ramp":{"type":"object","properties":{"target":{"type":"string","pattern":"^\\d+(\\.\\d{1,6})?$"},"endMonth":{"type":"integer","minimum":2,"maximum":60}},"required":["target","endMonth"],"additionalProperties":false},"overrides":{"type":"object","propertyNames":{"type":"string","pattern":"^(?:[1-9]|[1-5][0-9]|60)$"},"additionalProperties":{"type":"string","pattern":"^\\d+(\\.\\d{1,6})?$"}}},"additionalProperties":false},"unitCost":{"type":"object","properties":{"ramp":{"type":"object","properties":{"target":{"type":"string","pattern":"^\\d+(\\.\\d{1,6})?$"},"endMonth":{"type":"integer","minimum":2,"maximum":60}},"required":["target","endMonth"],"additionalProperties":false},"overrides":{"type":"object","propertyNames":{"type":"string","pattern":"^(?:[1-9]|[1-5][0-9]|60)$"},"additionalProperties":{"type":"string","pattern":"^\\d+(\\.\\d{1,6})?$"}}},"additionalProperties":false},"costRatio":{"type":"object","properties":{"ramp":{"type":"object","properties":{"target":{"type":"string","pattern":"^\\d+(\\.\\d{1,6})?$"},"endMonth":{"type":"integer","minimum":2,"maximum":60}},"required":["target","endMonth"],"additionalProperties":false},"overrides":{"type":"object","propertyNames":{"type":"string","pattern":"^(?:[1-9]|[1-5][0-9]|60)$"},"additionalProperties":{"type":"string","pattern":"^\\d+(\\.\\d{1,6})?$"}}},"additionalProperties":false},"newCustomers":{"type":"object","properties":{"ramp":{"type":"object","properties":{"target":{"type":"string","pattern":"^\\d+(\\.\\d{1,6})?$"},"endMonth":{"type":"integer","minimum":2,"maximum":60}},"required":["target","endMonth"],"additionalProperties":false},"overrides":{"type":"object","propertyNames":{"type":"string","pattern":"^(?:[1-9]|[1-5][0-9]|60)$"},"additionalProperties":{"type":"string","pattern":"^\\d+(\\.\\d{1,6})?$"}}},"additionalProperties":false},"churn":{"type":"object","properties":{"ramp":{"type":"object","properties":{"target":{"type":"string","pattern":"^\\d+(\\.\\d{1,6})?$"},"endMonth":{"type":"integer","minimum":2,"maximum":60}},"required":["target","endMonth"],"additionalProperties":false},"overrides":{"type":"object","propertyNames":{"type":"string","pattern":"^(?:[1-9]|[1-5][0-9]|60)$"},"additionalProperties":{"type":"string","pattern":"^\\d+(\\.\\d{1,6})?$"}}},"additionalProperties":false}},"additionalProperties":false},"price":{"type":"string","pattern":"^\\d+(\\.\\d{1,6})?$"},"unitCost":{"type":"string","pattern":"^\\d+(\\.\\d{1,6})?$"},"costRatio":{"type":"string","pattern":"^\\d+(\\.\\d{1,6})?$"},"newCustomers":{"default":"0","type":"string","pattern":"^\\d+(\\.\\d{1,6})?$"},"churn":{"default":"0","type":"string","pattern":"^\\d+(\\.\\d{1,6})?$"},"vat":{"type":"string","pattern":"^\\d+(\\.\\d{1,6})?$"},"costVat":{"type":"string","pattern":"^\\d+(\\.\\d{1,6})?$"},"costVatTiming":{"type":"string","enum":["invoice","payment"]},"vatTiming":{"type":"string","enum":["invoice","collection"]}},"required":["id","name","kind","quantity","price","unitCost","costRatio","vat"],"additionalProperties":false}},"required":["projectId","expectedVersion","row"],"additionalProperties":false}},{"name":"revision_compare","description":"Comparer deux versions enregistrées ou un brouillon à une version : hypothèses, sources, scénarios, dossier et résultats calculés.","scope":"read","scopeLabel":"Lire les projets","readOnly":true,"destructive":false,"idempotent":true,"inputSchema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"projectId":{"type":"string","minLength":1,"maxLength":120},"version":{"type":"integer","exclusiveMinimum":0,"maximum":2147483646},"currentVersion":{"type":"integer","exclusiveMinimum":0,"maximum":2147483646},"draft":{"type":"object","properties":{"name":{"type":"string","minLength":1,"maxLength":120},"clientName":{"type":"string","maxLength":120},"input":{"type":"object","properties":{"start":{"type":"string","pattern":"^20\\d{2}-(0[1-9]|1[0-2])$"},"months":{"type":"integer","minimum":12,"maximum":60},"revenues":{"maxItems":30,"type":"array","items":{"type":"object","properties":{"id":{"type":"string","minLength":1},"name":{"type":"string","minLength":1,"maxLength":120},"kind":{"type":"string","enum":["service","product","subscription"]},"quantity":{"type":"string","pattern":"^\\d+(\\.\\d{1,6})?$"},"evolution":{"type":"object","properties":{"quantity":{"type":"object","properties":{"ramp":{"type":"object","properties":{"target":{"type":"string","pattern":"^\\d+(\\.\\d{1,6})?$"},"endMonth":{"type":"integer","minimum":2,"maximum":60}},"required":["target","endMonth"],"additionalProperties":false},"overrides":{"type":"object","propertyNames":{"type":"string","pattern":"^(?:[1-9]|[1-5][0-9]|60)$"},"additionalProperties":{"type":"string","pattern":"^\\d+(\\.\\d{1,6})?$"}}},"additionalProperties":false},"price":{"type":"object","properties":{"ramp":{"type":"object","properties":{"target":{"type":"string","pattern":"^\\d+(\\.\\d{1,6})?$"},"endMonth":{"type":"integer","minimum":2,"maximum":60}},"required":["target","endMonth"],"additionalProperties":false},"overrides":{"type":"object","propertyNames":{"type":"string","pattern":"^(?:[1-9]|[1-5][0-9]|60)$"},"additionalProperties":{"type":"string","pattern":"^\\d+(\\.\\d{1,6})?$"}}},"additionalProperties":false},"unitCost":{"type":"object","properties":{"ramp":{"type":"object","properties":{"target":{"type":"string","pattern":"^\\d+(\\.\\d{1,6})?$"},"endMonth":{"type":"integer","minimum":2,"maximum":60}},"required":["target","endMonth"],"additionalProperties":false},"overrides":{"type":"object","propertyNames":{"type":"string","pattern":"^(?:[1-9]|[1-5][0-9]|60)$"},"additionalProperties":{"type":"string","pattern":"^\\d+(\\.\\d{1,6})?$"}}},"additionalProperties":false},"costRatio":{"type":"object","properties":{"ramp":{"type":"object","properties":{"target":{"type":"string","pattern":"^\\d+(\\.\\d{1,6})?$"},"endMonth":{"type":"integer","minimum":2,"maximum":60}},"required":["target","endMonth"],"additionalProperties":false},"overrides":{"type":"object","propertyNames":{"type":"string","pattern":"^(?:[1-9]|[1-5][0-9]|60)$"},"additionalProperties":{"type":"string","pattern":"^\\d+(\\.\\d{1,6})?$"}}},"additionalProperties":false},"newCustomers":{"type":"object","properties":{"ramp":{"type":"object","properties":{"target":{"type":"string","pattern":"^\\d+(\\.\\d{1,6})?$"},"endMonth":{"type":"integer","minimum":2,"maximum":60}},"required":["target","endMonth"],"additionalProperties":false},"overrides":{"type":"object","propertyNames":{"type":"string","pattern":"^(?:[1-9]|[1-5][0-9]|60)$"},"additionalProperties":{"type":"string","pattern":"^\\d+(\\.\\d{1,6})?$"}}},"additionalProperties":false},"churn":{"type":"object","properties":{"ramp":{"type":"object","properties":{"target":{"type":"string","pattern":"^\\d+(\\.\\d{1,6})?$"},"endMonth":{"type":"integer","minimum":2,"maximum":60}},"required":["target","endMonth"],"additionalProperties":false},"overrides":{"type":"object","propertyNames":{"type":"string","pattern":"^(?:[1-9]|[1-5][0-9]|60)$"},"additionalProperties":{"type":"string","pattern":"^\\d+(\\.\\d{1,6})?$"}}},"additionalProperties":false}},"additionalProperties":false},"price":{"type":"string","pattern":"^\\d+(\\.\\d{1,6})?$"},"unitCost":{"type":"string","pattern":"^\\d+(\\.\\d{1,6})?$"},"costRatio":{"type":"string","pattern":"^\\d+(\\.\\d{1,6})?$"},"newCustomers":{"default":"0","type":"string","pattern":"^\\d+(\\.\\d{1,6})?$"},"churn":{"default":"0","type":"string","pattern":"^\\d+(\\.\\d{1,6})?$"},"vat":{"type":"string","pattern":"^\\d+(\\.\\d{1,6})?$"},"costVat":{"type":"string","pattern":"^\\d+(\\.\\d{1,6})?$"},"costVatTiming":{"type":"string","enum":["invoice","payment"]},"vatTiming":{"type":"string","enum":["invoice","collection"]}},"required":["id","name","kind","quantity","price","unitCost","costRatio","vat"]}},"expenses":{"maxItems":50,"type":"array","items":{"type":"object","properties":{"id":{"type":"string"},"name":{"type":"string","minLength":1,"maxLength":120},"amount":{"type":"string","pattern":"^\\d+(\\.\\d{1,6})?$"},"evolution":{"type":"object","properties":{"amount":{"type":"object","properties":{"ramp":{"type":"object","properties":{"target":{"type":"string","pattern":"^\\d+(\\.\\d{1,6})?$"},"endMonth":{"type":"integer","minimum":2,"maximum":60}},"required":["target","endMonth"],"additionalProperties":false},"overrides":{"type":"object","propertyNames":{"type":"string","pattern":"^(?:[1-9]|[1-5][0-9]|60)$"},"additionalProperties":{"type":"string","pattern":"^\\d+(\\.\\d{1,6})?$"}}},"additionalProperties":false}},"additionalProperties":false},"vat":{"type":"string","pattern":"^\\d+(\\.\\d{1,6})?$"},"vatTiming":{"type":"string","enum":["invoice","payment"]},"standardCostId":{"type":"string","pattern":"^[a-z][a-z0-9-]{0,59}$"},"costEstimate":{"oneOf":[{"type":"object","properties":{"method":{"type":"string","const":"annual"},"annualAmount":{"type":"string","pattern":"^\\d+(\\.\\d{1,6})?$"}},"required":["method","annualAmount"],"additionalProperties":false},{"type":"object","properties":{"method":{"type":"string","const":"area"},"surface":{"type":"string","pattern":"^\\d+(\\.\\d{1,6})?$"},"annualRate":{"type":"string","pattern":"^\\d+(\\.\\d{1,6})?$"}},"required":["method","surface","annualRate"],"additionalProperties":false},{"type":"object","properties":{"method":{"type":"string","const":"energy"},"surface":{"type":"string","pattern":"^\\d+(\\.\\d{1,6})?$"},"consumption":{"type":"string","pattern":"^\\d+(\\.\\d{1,6})?$"},"kwhPrice":{"type":"string","pattern":"^\\d+(\\.\\d{1,6})?$"},"annualSubscription":{"type":"string","pattern":"^\\d+(\\.\\d{1,6})?$"}},"required":["method","surface","consumption","kwhPrice","annualSubscription"],"additionalProperties":false},{"type":"object","properties":{"method":{"type":"string","const":"revenue"},"annualRevenue":{"type":"string","pattern":"^\\d+(\\.\\d{1,6})?$"},"rate":{"type":"string","pattern":"^\\d+(\\.\\d{1,6})?$"}},"required":["method","annualRevenue","rate"],"additionalProperties":false},{"type":"object","properties":{"method":{"type":"string","const":"units"},"quantity":{"type":"string","pattern":"^\\d+(\\.\\d{1,6})?$"},"monthlyRate":{"type":"string","pattern":"^\\d+(\\.\\d{1,6})?$"}},"required":["method","quantity","monthlyRate"],"additionalProperties":false}]}},"required":["id","name","amount","vat"]}},"payroll":{"maxItems":30,"type":"array","items":{"type":"object","properties":{"id":{"type":"string"},"name":{"type":"string","minLength":1,"maxLength":120},"gross":{"type":"string","pattern":"^\\d+(\\.\\d{1,6})?$"},"count":{"type":"integer","minimum":1,"maximum":100},"startMonth":{"type":"integer","minimum":1,"maximum":60},"employerRate":{"type":"string","pattern":"^\\d+(\\.\\d{1,6})?$"}},"required":["id","name","gross","count","startMonth","employerRate"]}},"asset":{"type":"object","properties":{"amount":{"type":"string","pattern":"^\\d+(\\.\\d{1,6})?$"},"lifeMonths":{"type":"integer","minimum":1,"maximum":240},"vat":{"type":"string","pattern":"^\\d+(\\.\\d{1,6})?$"}},"required":["amount","lifeMonths","vat"]},"financing":{"type":"object","properties":{"equity":{"type":"string","pattern":"^\\d+(\\.\\d{1,6})?$"},"loan":{"type":"string","pattern":"^\\d+(\\.\\d{1,6})?$"},"annualRate":{"type":"string","pattern":"^\\d+(\\.\\d{1,6})?$"},"termMonths":{"type":"integer","minimum":1,"maximum":240}},"required":["equity","loan","annualRate","termMonths"]},"stock":{"type":"object","properties":{"initialPurchase":{"type":"string","pattern":"^\\d+(\\.\\d{1,6})?$"},"enabled":{"type":"boolean"},"vat":{"type":"string","pattern":"^\\d+(\\.\\d{1,6})?$"}},"required":["initialPurchase","enabled","vat"]},"collectionDelay":{"type":"integer","minimum":0,"maximum":3},"supplierDelay":{"type":"integer","minimum":0,"maximum":3},"tax":{"type":"object","properties":{"vatEnabled":{"type":"boolean"},"corporateRate":{"type":"string","pattern":"^\\d+(\\.\\d{1,6})?$"},"profile":{"type":"string","enum":["legacy","france-is"]},"reducedRateEligible":{"type":"boolean"},"capitalPaid":{"type":"boolean"},"ownershipEligible":{"type":"boolean"}},"required":["vatEnabled","corporateRate"]},"capacity":{"type":"object","properties":{"hoursPerMonth":{"type":"string","pattern":"^\\d+(\\.\\d{1,6})?$"},"minutesPerService":{"type":"string","pattern":"^\\d+(\\.\\d{1,6})?$"}},"required":["hoursPerMonth","minutesPerService"]}},"required":["start","months","revenues","expenses","payroll","asset","financing","stock","collectionDelay","supplierDelay","tax","capacity"]},"document":{"type":"object","properties":{"presentation":{"type":"string","maxLength":15000},"market":{"type":"string","maxLength":15000},"operations":{"type":"string","maxLength":15000},"acquisition":{"type":"string","maxLength":15000},"funding":{"type":"string","maxLength":15000},"risks":{"type":"string","maxLength":15000}},"required":["presentation","market","operations"]},"scenario":{"type":"object","properties":{"name":{"type":"string","minLength":1,"maxLength":100},"salesMultiplier":{"type":"string","pattern":"^\\d+(\\.\\d{1,6})?$"},"hiringShift":{"type":"integer","minimum":-36,"maximum":36},"revenueOverrides":{"type":"object","propertyNames":{"type":"string","minLength":1,"maxLength":120},"additionalProperties":{"type":"object","properties":{"quantity":{"type":"string","pattern":"^\\d+(\\.\\d{1,6})?$"},"price":{"type":"string","pattern":"^\\d+(\\.\\d{1,6})?$"},"newCustomers":{"type":"string","pattern":"^\\d+(\\.\\d{1,6})?$"},"churn":{"type":"string","pattern":"^\\d+(\\.\\d{1,6})?$"}},"additionalProperties":false}},"payrollShifts":{"type":"object","propertyNames":{"type":"string","minLength":1,"maxLength":120},"additionalProperties":{"type":"integer","minimum":-36,"maximum":36}},"collectionDelay":{"type":"integer","minimum":0,"maximum":3},"supplierDelay":{"type":"integer","minimum":0,"maximum":3}},"required":["name","salesMultiplier","hiringShift"],"additionalProperties":false},"scenarios":{"maxItems":19,"type":"array","items":{"type":"object","properties":{"name":{"type":"string","minLength":1,"maxLength":100},"salesMultiplier":{"type":"string","pattern":"^\\d+(\\.\\d{1,6})?$"},"hiringShift":{"type":"integer","minimum":-36,"maximum":36},"revenueOverrides":{"type":"object","propertyNames":{"type":"string","minLength":1,"maxLength":120},"additionalProperties":{"type":"object","properties":{"quantity":{"type":"string","pattern":"^\\d+(\\.\\d{1,6})?$"},"price":{"type":"string","pattern":"^\\d+(\\.\\d{1,6})?$"},"newCustomers":{"type":"string","pattern":"^\\d+(\\.\\d{1,6})?$"},"churn":{"type":"string","pattern":"^\\d+(\\.\\d{1,6})?$"}},"additionalProperties":false}},"payrollShifts":{"type":"object","propertyNames":{"type":"string","minLength":1,"maxLength":120},"additionalProperties":{"type":"integer","minimum":-36,"maximum":36}},"collectionDelay":{"type":"integer","minimum":0,"maximum":3},"supplierDelay":{"type":"integer","minimum":0,"maximum":3},"id":{"type":"string","minLength":1,"maxLength":120}},"required":["name","salesMultiplier","hiringShift","id"],"additionalProperties":false}},"assumptions":{"maxItems":400,"type":"array","items":{"type":"object","properties":{"path":{"type":"string","minLength":1,"maxLength":240},"label":{"type":"string","minLength":1,"maxLength":240},"status":{"type":"string","enum":["missing","example","estimate","confirmed"]},"source":{"type":"string","maxLength":1500},"note":{"type":"string","maxLength":3000}},"required":["path","label","status","source","note"],"additionalProperties":false}}},"required":["name","input","document","scenario"]}},"required":["projectId","version"],"additionalProperties":false}},{"name":"revision_get","description":"Consulter les données et résultats d’une sauvegarde du projet.","scope":"read","scopeLabel":"Lire les projets","readOnly":true,"destructive":false,"idempotent":true,"inputSchema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"projectId":{"type":"string","minLength":1,"maxLength":120},"version":{"type":"integer","exclusiveMinimum":0,"maximum":2147483646}},"required":["projectId","version"],"additionalProperties":false}},{"name":"revision_restore","description":"Restaurer une sauvegarde complète en créant une nouvelle version, sans écraser l’historique.","scope":"write","scopeLabel":"Modifier les projets et les partages","readOnly":false,"destructive":true,"idempotent":false,"inputSchema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"projectId":{"type":"string","minLength":1,"maxLength":120},"version":{"type":"integer","exclusiveMinimum":0,"maximum":2147483646},"expectedVersion":{"type":"integer","exclusiveMinimum":0,"maximum":2147483646}},"required":["projectId","version","expectedVersion"],"additionalProperties":false}},{"name":"revisions_list","description":"Lister les sauvegardes privées du projet, avec pagination par version.","scope":"read","scopeLabel":"Lire les projets","readOnly":true,"destructive":false,"idempotent":true,"inputSchema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"projectId":{"type":"string","minLength":1,"maxLength":120},"before":{"type":"integer","exclusiveMinimum":0,"maximum":2147483646}},"required":["projectId"],"additionalProperties":false}},{"name":"scenario_remove","description":"Supprimer le scénario explicitement désigné, y compris un ancien scénario enregistré. commit=true enregistre la modification.","scope":"write","scopeLabel":"Modifier les projets et les partages","readOnly":false,"destructive":true,"idempotent":false,"inputSchema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"projectId":{"type":"string","minLength":1,"maxLength":120},"expectedVersion":{"type":"integer","exclusiveMinimum":0,"maximum":2147483646},"draft":{"type":"object","properties":{"name":{"type":"string","minLength":1,"maxLength":120},"clientName":{"type":"string","maxLength":120},"input":{"type":"object","properties":{"start":{"type":"string","pattern":"^20\\d{2}-(0[1-9]|1[0-2])$"},"months":{"type":"integer","minimum":12,"maximum":60},"revenues":{"maxItems":30,"type":"array","items":{"type":"object","properties":{"id":{"type":"string","minLength":1},"name":{"type":"string","minLength":1,"maxLength":120},"kind":{"type":"string","enum":["service","product","subscription"]},"quantity":{"type":"string","pattern":"^\\d+(\\.\\d{1,6})?$"},"evolution":{"type":"object","properties":{"quantity":{"type":"object","properties":{"ramp":{"type":"object","properties":{"target":{"type":"string","pattern":"^\\d+(\\.\\d{1,6})?$"},"endMonth":{"type":"integer","minimum":2,"maximum":60}},"required":["target","endMonth"],"additionalProperties":false},"overrides":{"type":"object","propertyNames":{"type":"string","pattern":"^(?:[1-9]|[1-5][0-9]|60)$"},"additionalProperties":{"type":"string","pattern":"^\\d+(\\.\\d{1,6})?$"}}},"additionalProperties":false},"price":{"type":"object","properties":{"ramp":{"type":"object","properties":{"target":{"type":"string","pattern":"^\\d+(\\.\\d{1,6})?$"},"endMonth":{"type":"integer","minimum":2,"maximum":60}},"required":["target","endMonth"],"additionalProperties":false},"overrides":{"type":"object","propertyNames":{"type":"string","pattern":"^(?:[1-9]|[1-5][0-9]|60)$"},"additionalProperties":{"type":"string","pattern":"^\\d+(\\.\\d{1,6})?$"}}},"additionalProperties":false},"unitCost":{"type":"object","properties":{"ramp":{"type":"object","properties":{"target":{"type":"string","pattern":"^\\d+(\\.\\d{1,6})?$"},"endMonth":{"type":"integer","minimum":2,"maximum":60}},"required":["target","endMonth"],"additionalProperties":false},"overrides":{"type":"object","propertyNames":{"type":"string","pattern":"^(?:[1-9]|[1-5][0-9]|60)$"},"additionalProperties":{"type":"string","pattern":"^\\d+(\\.\\d{1,6})?$"}}},"additionalProperties":false},"costRatio":{"type":"object","properties":{"ramp":{"type":"object","properties":{"target":{"type":"string","pattern":"^\\d+(\\.\\d{1,6})?$"},"endMonth":{"type":"integer","minimum":2,"maximum":60}},"required":["target","endMonth"],"additionalProperties":false},"overrides":{"type":"object","propertyNames":{"type":"string","pattern":"^(?:[1-9]|[1-5][0-9]|60)$"},"additionalProperties":{"type":"string","pattern":"^\\d+(\\.\\d{1,6})?$"}}},"additionalProperties":false},"newCustomers":{"type":"object","properties":{"ramp":{"type":"object","properties":{"target":{"type":"string","pattern":"^\\d+(\\.\\d{1,6})?$"},"endMonth":{"type":"integer","minimum":2,"maximum":60}},"required":["target","endMonth"],"additionalProperties":false},"overrides":{"type":"object","propertyNames":{"type":"string","pattern":"^(?:[1-9]|[1-5][0-9]|60)$"},"additionalProperties":{"type":"string","pattern":"^\\d+(\\.\\d{1,6})?$"}}},"additionalProperties":false},"churn":{"type":"object","properties":{"ramp":{"type":"object","properties":{"target":{"type":"string","pattern":"^\\d+(\\.\\d{1,6})?$"},"endMonth":{"type":"integer","minimum":2,"maximum":60}},"required":["target","endMonth"],"additionalProperties":false},"overrides":{"type":"object","propertyNames":{"type":"string","pattern":"^(?:[1-9]|[1-5][0-9]|60)$"},"additionalProperties":{"type":"string","pattern":"^\\d+(\\.\\d{1,6})?$"}}},"additionalProperties":false}},"additionalProperties":false},"price":{"type":"string","pattern":"^\\d+(\\.\\d{1,6})?$"},"unitCost":{"type":"string","pattern":"^\\d+(\\.\\d{1,6})?$"},"costRatio":{"type":"string","pattern":"^\\d+(\\.\\d{1,6})?$"},"newCustomers":{"default":"0","type":"string","pattern":"^\\d+(\\.\\d{1,6})?$"},"churn":{"default":"0","type":"string","pattern":"^\\d+(\\.\\d{1,6})?$"},"vat":{"type":"string","pattern":"^\\d+(\\.\\d{1,6})?$"},"costVat":{"type":"string","pattern":"^\\d+(\\.\\d{1,6})?$"},"costVatTiming":{"type":"string","enum":["invoice","payment"]},"vatTiming":{"type":"string","enum":["invoice","collection"]}},"required":["id","name","kind","quantity","price","unitCost","costRatio","vat"]}},"expenses":{"maxItems":50,"type":"array","items":{"type":"object","properties":{"id":{"type":"string"},"name":{"type":"string","minLength":1,"maxLength":120},"amount":{"type":"string","pattern":"^\\d+(\\.\\d{1,6})?$"},"evolution":{"type":"object","properties":{"amount":{"type":"object","properties":{"ramp":{"type":"object","properties":{"target":{"type":"string","pattern":"^\\d+(\\.\\d{1,6})?$"},"endMonth":{"type":"integer","minimum":2,"maximum":60}},"required":["target","endMonth"],"additionalProperties":false},"overrides":{"type":"object","propertyNames":{"type":"string","pattern":"^(?:[1-9]|[1-5][0-9]|60)$"},"additionalProperties":{"type":"string","pattern":"^\\d+(\\.\\d{1,6})?$"}}},"additionalProperties":false}},"additionalProperties":false},"vat":{"type":"string","pattern":"^\\d+(\\.\\d{1,6})?$"},"vatTiming":{"type":"string","enum":["invoice","payment"]},"standardCostId":{"type":"string","pattern":"^[a-z][a-z0-9-]{0,59}$"},"costEstimate":{"oneOf":[{"type":"object","properties":{"method":{"type":"string","const":"annual"},"annualAmount":{"type":"string","pattern":"^\\d+(\\.\\d{1,6})?$"}},"required":["method","annualAmount"],"additionalProperties":false},{"type":"object","properties":{"method":{"type":"string","const":"area"},"surface":{"type":"string","pattern":"^\\d+(\\.\\d{1,6})?$"},"annualRate":{"type":"string","pattern":"^\\d+(\\.\\d{1,6})?$"}},"required":["method","surface","annualRate"],"additionalProperties":false},{"type":"object","properties":{"method":{"type":"string","const":"energy"},"surface":{"type":"string","pattern":"^\\d+(\\.\\d{1,6})?$"},"consumption":{"type":"string","pattern":"^\\d+(\\.\\d{1,6})?$"},"kwhPrice":{"type":"string","pattern":"^\\d+(\\.\\d{1,6})?$"},"annualSubscription":{"type":"string","pattern":"^\\d+(\\.\\d{1,6})?$"}},"required":["method","surface","consumption","kwhPrice","annualSubscription"],"additionalProperties":false},{"type":"object","properties":{"method":{"type":"string","const":"revenue"},"annualRevenue":{"type":"string","pattern":"^\\d+(\\.\\d{1,6})?$"},"rate":{"type":"string","pattern":"^\\d+(\\.\\d{1,6})?$"}},"required":["method","annualRevenue","rate"],"additionalProperties":false},{"type":"object","properties":{"method":{"type":"string","const":"units"},"quantity":{"type":"string","pattern":"^\\d+(\\.\\d{1,6})?$"},"monthlyRate":{"type":"string","pattern":"^\\d+(\\.\\d{1,6})?$"}},"required":["method","quantity","monthlyRate"],"additionalProperties":false}]}},"required":["id","name","amount","vat"]}},"payroll":{"maxItems":30,"type":"array","items":{"type":"object","properties":{"id":{"type":"string"},"name":{"type":"string","minLength":1,"maxLength":120},"gross":{"type":"string","pattern":"^\\d+(\\.\\d{1,6})?$"},"count":{"type":"integer","minimum":1,"maximum":100},"startMonth":{"type":"integer","minimum":1,"maximum":60},"employerRate":{"type":"string","pattern":"^\\d+(\\.\\d{1,6})?$"}},"required":["id","name","gross","count","startMonth","employerRate"]}},"asset":{"type":"object","properties":{"amount":{"type":"string","pattern":"^\\d+(\\.\\d{1,6})?$"},"lifeMonths":{"type":"integer","minimum":1,"maximum":240},"vat":{"type":"string","pattern":"^\\d+(\\.\\d{1,6})?$"}},"required":["amount","lifeMonths","vat"]},"financing":{"type":"object","properties":{"equity":{"type":"string","pattern":"^\\d+(\\.\\d{1,6})?$"},"loan":{"type":"string","pattern":"^\\d+(\\.\\d{1,6})?$"},"annualRate":{"type":"string","pattern":"^\\d+(\\.\\d{1,6})?$"},"termMonths":{"type":"integer","minimum":1,"maximum":240}},"required":["equity","loan","annualRate","termMonths"]},"stock":{"type":"object","properties":{"initialPurchase":{"type":"string","pattern":"^\\d+(\\.\\d{1,6})?$"},"enabled":{"type":"boolean"},"vat":{"type":"string","pattern":"^\\d+(\\.\\d{1,6})?$"}},"required":["initialPurchase","enabled","vat"]},"collectionDelay":{"type":"integer","minimum":0,"maximum":3},"supplierDelay":{"type":"integer","minimum":0,"maximum":3},"tax":{"type":"object","properties":{"vatEnabled":{"type":"boolean"},"corporateRate":{"type":"string","pattern":"^\\d+(\\.\\d{1,6})?$"},"profile":{"type":"string","enum":["legacy","france-is"]},"reducedRateEligible":{"type":"boolean"},"capitalPaid":{"type":"boolean"},"ownershipEligible":{"type":"boolean"}},"required":["vatEnabled","corporateRate"]},"capacity":{"type":"object","properties":{"hoursPerMonth":{"type":"string","pattern":"^\\d+(\\.\\d{1,6})?$"},"minutesPerService":{"type":"string","pattern":"^\\d+(\\.\\d{1,6})?$"}},"required":["hoursPerMonth","minutesPerService"]}},"required":["start","months","revenues","expenses","payroll","asset","financing","stock","collectionDelay","supplierDelay","tax","capacity"]},"document":{"type":"object","properties":{"presentation":{"type":"string","maxLength":15000},"market":{"type":"string","maxLength":15000},"operations":{"type":"string","maxLength":15000},"acquisition":{"type":"string","maxLength":15000},"funding":{"type":"string","maxLength":15000},"risks":{"type":"string","maxLength":15000}},"required":["presentation","market","operations"]},"scenario":{"type":"object","properties":{"name":{"type":"string","minLength":1,"maxLength":100},"salesMultiplier":{"type":"string","pattern":"^\\d+(\\.\\d{1,6})?$"},"hiringShift":{"type":"integer","minimum":-36,"maximum":36},"revenueOverrides":{"type":"object","propertyNames":{"type":"string","minLength":1,"maxLength":120},"additionalProperties":{"type":"object","properties":{"quantity":{"type":"string","pattern":"^\\d+(\\.\\d{1,6})?$"},"price":{"type":"string","pattern":"^\\d+(\\.\\d{1,6})?$"},"newCustomers":{"type":"string","pattern":"^\\d+(\\.\\d{1,6})?$"},"churn":{"type":"string","pattern":"^\\d+(\\.\\d{1,6})?$"}},"additionalProperties":false}},"payrollShifts":{"type":"object","propertyNames":{"type":"string","minLength":1,"maxLength":120},"additionalProperties":{"type":"integer","minimum":-36,"maximum":36}},"collectionDelay":{"type":"integer","minimum":0,"maximum":3},"supplierDelay":{"type":"integer","minimum":0,"maximum":3}},"required":["name","salesMultiplier","hiringShift"],"additionalProperties":false},"scenarios":{"maxItems":19,"type":"array","items":{"type":"object","properties":{"name":{"type":"string","minLength":1,"maxLength":100},"salesMultiplier":{"type":"string","pattern":"^\\d+(\\.\\d{1,6})?$"},"hiringShift":{"type":"integer","minimum":-36,"maximum":36},"revenueOverrides":{"type":"object","propertyNames":{"type":"string","minLength":1,"maxLength":120},"additionalProperties":{"type":"object","properties":{"quantity":{"type":"string","pattern":"^\\d+(\\.\\d{1,6})?$"},"price":{"type":"string","pattern":"^\\d+(\\.\\d{1,6})?$"},"newCustomers":{"type":"string","pattern":"^\\d+(\\.\\d{1,6})?$"},"churn":{"type":"string","pattern":"^\\d+(\\.\\d{1,6})?$"}},"additionalProperties":false}},"payrollShifts":{"type":"object","propertyNames":{"type":"string","minLength":1,"maxLength":120},"additionalProperties":{"type":"integer","minimum":-36,"maximum":36}},"collectionDelay":{"type":"integer","minimum":0,"maximum":3},"supplierDelay":{"type":"integer","minimum":0,"maximum":3},"id":{"type":"string","minLength":1,"maxLength":120}},"required":["name","salesMultiplier","hiringShift","id"],"additionalProperties":false}},"assumptions":{"maxItems":400,"type":"array","items":{"type":"object","properties":{"path":{"type":"string","minLength":1,"maxLength":240},"label":{"type":"string","minLength":1,"maxLength":240},"status":{"type":"string","enum":["missing","example","estimate","confirmed"]},"source":{"type":"string","maxLength":1500},"note":{"type":"string","maxLength":3000}},"required":["path","label","status","source","note"],"additionalProperties":false}}},"required":["name","input","document","scenario"]},"commit":{"default":false,"type":"boolean"},"scenarioId":{"type":"string","pattern":"^[a-zA-Z0-9_-]{1,120}$"}},"required":["projectId","expectedVersion","scenarioId"],"additionalProperties":false}},{"name":"scenario_upsert","description":"Créer ou modifier un scénario complet en conservant la prévision initiale. Vérifie les quotas et recalcule la comparaison. commit=true enregistre la modification.","scope":"write","scopeLabel":"Modifier les projets et les partages","readOnly":false,"destructive":true,"idempotent":false,"inputSchema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"projectId":{"type":"string","minLength":1,"maxLength":120},"expectedVersion":{"type":"integer","exclusiveMinimum":0,"maximum":2147483646},"draft":{"type":"object","properties":{"name":{"type":"string","minLength":1,"maxLength":120},"clientName":{"type":"string","maxLength":120},"input":{"type":"object","properties":{"start":{"type":"string","pattern":"^20\\d{2}-(0[1-9]|1[0-2])$"},"months":{"type":"integer","minimum":12,"maximum":60},"revenues":{"maxItems":30,"type":"array","items":{"type":"object","properties":{"id":{"type":"string","minLength":1},"name":{"type":"string","minLength":1,"maxLength":120},"kind":{"type":"string","enum":["service","product","subscription"]},"quantity":{"type":"string","pattern":"^\\d+(\\.\\d{1,6})?$"},"evolution":{"type":"object","properties":{"quantity":{"type":"object","properties":{"ramp":{"type":"object","properties":{"target":{"type":"string","pattern":"^\\d+(\\.\\d{1,6})?$"},"endMonth":{"type":"integer","minimum":2,"maximum":60}},"required":["target","endMonth"],"additionalProperties":false},"overrides":{"type":"object","propertyNames":{"type":"string","pattern":"^(?:[1-9]|[1-5][0-9]|60)$"},"additionalProperties":{"type":"string","pattern":"^\\d+(\\.\\d{1,6})?$"}}},"additionalProperties":false},"price":{"type":"object","properties":{"ramp":{"type":"object","properties":{"target":{"type":"string","pattern":"^\\d+(\\.\\d{1,6})?$"},"endMonth":{"type":"integer","minimum":2,"maximum":60}},"required":["target","endMonth"],"additionalProperties":false},"overrides":{"type":"object","propertyNames":{"type":"string","pattern":"^(?:[1-9]|[1-5][0-9]|60)$"},"additionalProperties":{"type":"string","pattern":"^\\d+(\\.\\d{1,6})?$"}}},"additionalProperties":false},"unitCost":{"type":"object","properties":{"ramp":{"type":"object","properties":{"target":{"type":"string","pattern":"^\\d+(\\.\\d{1,6})?$"},"endMonth":{"type":"integer","minimum":2,"maximum":60}},"required":["target","endMonth"],"additionalProperties":false},"overrides":{"type":"object","propertyNames":{"type":"string","pattern":"^(?:[1-9]|[1-5][0-9]|60)$"},"additionalProperties":{"type":"string","pattern":"^\\d+(\\.\\d{1,6})?$"}}},"additionalProperties":false},"costRatio":{"type":"object","properties":{"ramp":{"type":"object","properties":{"target":{"type":"string","pattern":"^\\d+(\\.\\d{1,6})?$"},"endMonth":{"type":"integer","minimum":2,"maximum":60}},"required":["target","endMonth"],"additionalProperties":false},"overrides":{"type":"object","propertyNames":{"type":"string","pattern":"^(?:[1-9]|[1-5][0-9]|60)$"},"additionalProperties":{"type":"string","pattern":"^\\d+(\\.\\d{1,6})?$"}}},"additionalProperties":false},"newCustomers":{"type":"object","properties":{"ramp":{"type":"object","properties":{"target":{"type":"string","pattern":"^\\d+(\\.\\d{1,6})?$"},"endMonth":{"type":"integer","minimum":2,"maximum":60}},"required":["target","endMonth"],"additionalProperties":false},"overrides":{"type":"object","propertyNames":{"type":"string","pattern":"^(?:[1-9]|[1-5][0-9]|60)$"},"additionalProperties":{"type":"string","pattern":"^\\d+(\\.\\d{1,6})?$"}}},"additionalProperties":false},"churn":{"type":"object","properties":{"ramp":{"type":"object","properties":{"target":{"type":"string","pattern":"^\\d+(\\.\\d{1,6})?$"},"endMonth":{"type":"integer","minimum":2,"maximum":60}},"required":["target","endMonth"],"additionalProperties":false},"overrides":{"type":"object","propertyNames":{"type":"string","pattern":"^(?:[1-9]|[1-5][0-9]|60)$"},"additionalProperties":{"type":"string","pattern":"^\\d+(\\.\\d{1,6})?$"}}},"additionalProperties":false}},"additionalProperties":false},"price":{"type":"string","pattern":"^\\d+(\\.\\d{1,6})?$"},"unitCost":{"type":"string","pattern":"^\\d+(\\.\\d{1,6})?$"},"costRatio":{"type":"string","pattern":"^\\d+(\\.\\d{1,6})?$"},"newCustomers":{"default":"0","type":"string","pattern":"^\\d+(\\.\\d{1,6})?$"},"churn":{"default":"0","type":"string","pattern":"^\\d+(\\.\\d{1,6})?$"},"vat":{"type":"string","pattern":"^\\d+(\\.\\d{1,6})?$"},"costVat":{"type":"string","pattern":"^\\d+(\\.\\d{1,6})?$"},"costVatTiming":{"type":"string","enum":["invoice","payment"]},"vatTiming":{"type":"string","enum":["invoice","collection"]}},"required":["id","name","kind","quantity","price","unitCost","costRatio","vat"]}},"expenses":{"maxItems":50,"type":"array","items":{"type":"object","properties":{"id":{"type":"string"},"name":{"type":"string","minLength":1,"maxLength":120},"amount":{"type":"string","pattern":"^\\d+(\\.\\d{1,6})?$"},"evolution":{"type":"object","properties":{"amount":{"type":"object","properties":{"ramp":{"type":"object","properties":{"target":{"type":"string","pattern":"^\\d+(\\.\\d{1,6})?$"},"endMonth":{"type":"integer","minimum":2,"maximum":60}},"required":["target","endMonth"],"additionalProperties":false},"overrides":{"type":"object","propertyNames":{"type":"string","pattern":"^(?:[1-9]|[1-5][0-9]|60)$"},"additionalProperties":{"type":"string","pattern":"^\\d+(\\.\\d{1,6})?$"}}},"additionalProperties":false}},"additionalProperties":false},"vat":{"type":"string","pattern":"^\\d+(\\.\\d{1,6})?$"},"vatTiming":{"type":"string","enum":["invoice","payment"]},"standardCostId":{"type":"string","pattern":"^[a-z][a-z0-9-]{0,59}$"},"costEstimate":{"oneOf":[{"type":"object","properties":{"method":{"type":"string","const":"annual"},"annualAmount":{"type":"string","pattern":"^\\d+(\\.\\d{1,6})?$"}},"required":["method","annualAmount"],"additionalProperties":false},{"type":"object","properties":{"method":{"type":"string","const":"area"},"surface":{"type":"string","pattern":"^\\d+(\\.\\d{1,6})?$"},"annualRate":{"type":"string","pattern":"^\\d+(\\.\\d{1,6})?$"}},"required":["method","surface","annualRate"],"additionalProperties":false},{"type":"object","properties":{"method":{"type":"string","const":"energy"},"surface":{"type":"string","pattern":"^\\d+(\\.\\d{1,6})?$"},"consumption":{"type":"string","pattern":"^\\d+(\\.\\d{1,6})?$"},"kwhPrice":{"type":"string","pattern":"^\\d+(\\.\\d{1,6})?$"},"annualSubscription":{"type":"string","pattern":"^\\d+(\\.\\d{1,6})?$"}},"required":["method","surface","consumption","kwhPrice","annualSubscription"],"additionalProperties":false},{"type":"object","properties":{"method":{"type":"string","const":"revenue"},"annualRevenue":{"type":"string","pattern":"^\\d+(\\.\\d{1,6})?$"},"rate":{"type":"string","pattern":"^\\d+(\\.\\d{1,6})?$"}},"required":["method","annualRevenue","rate"],"additionalProperties":false},{"type":"object","properties":{"method":{"type":"string","const":"units"},"quantity":{"type":"string","pattern":"^\\d+(\\.\\d{1,6})?$"},"monthlyRate":{"type":"string","pattern":"^\\d+(\\.\\d{1,6})?$"}},"required":["method","quantity","monthlyRate"],"additionalProperties":false}]}},"required":["id","name","amount","vat"]}},"payroll":{"maxItems":30,"type":"array","items":{"type":"object","properties":{"id":{"type":"string"},"name":{"type":"string","minLength":1,"maxLength":120},"gross":{"type":"string","pattern":"^\\d+(\\.\\d{1,6})?$"},"count":{"type":"integer","minimum":1,"maximum":100},"startMonth":{"type":"integer","minimum":1,"maximum":60},"employerRate":{"type":"string","pattern":"^\\d+(\\.\\d{1,6})?$"}},"required":["id","name","gross","count","startMonth","employerRate"]}},"asset":{"type":"object","properties":{"amount":{"type":"string","pattern":"^\\d+(\\.\\d{1,6})?$"},"lifeMonths":{"type":"integer","minimum":1,"maximum":240},"vat":{"type":"string","pattern":"^\\d+(\\.\\d{1,6})?$"}},"required":["amount","lifeMonths","vat"]},"financing":{"type":"object","properties":{"equity":{"type":"string","pattern":"^\\d+(\\.\\d{1,6})?$"},"loan":{"type":"string","pattern":"^\\d+(\\.\\d{1,6})?$"},"annualRate":{"type":"string","pattern":"^\\d+(\\.\\d{1,6})?$"},"termMonths":{"type":"integer","minimum":1,"maximum":240}},"required":["equity","loan","annualRate","termMonths"]},"stock":{"type":"object","properties":{"initialPurchase":{"type":"string","pattern":"^\\d+(\\.\\d{1,6})?$"},"enabled":{"type":"boolean"},"vat":{"type":"string","pattern":"^\\d+(\\.\\d{1,6})?$"}},"required":["initialPurchase","enabled","vat"]},"collectionDelay":{"type":"integer","minimum":0,"maximum":3},"supplierDelay":{"type":"integer","minimum":0,"maximum":3},"tax":{"type":"object","properties":{"vatEnabled":{"type":"boolean"},"corporateRate":{"type":"string","pattern":"^\\d+(\\.\\d{1,6})?$"},"profile":{"type":"string","enum":["legacy","france-is"]},"reducedRateEligible":{"type":"boolean"},"capitalPaid":{"type":"boolean"},"ownershipEligible":{"type":"boolean"}},"required":["vatEnabled","corporateRate"]},"capacity":{"type":"object","properties":{"hoursPerMonth":{"type":"string","pattern":"^\\d+(\\.\\d{1,6})?$"},"minutesPerService":{"type":"string","pattern":"^\\d+(\\.\\d{1,6})?$"}},"required":["hoursPerMonth","minutesPerService"]}},"required":["start","months","revenues","expenses","payroll","asset","financing","stock","collectionDelay","supplierDelay","tax","capacity"]},"document":{"type":"object","properties":{"presentation":{"type":"string","maxLength":15000},"market":{"type":"string","maxLength":15000},"operations":{"type":"string","maxLength":15000},"acquisition":{"type":"string","maxLength":15000},"funding":{"type":"string","maxLength":15000},"risks":{"type":"string","maxLength":15000}},"required":["presentation","market","operations"]},"scenario":{"type":"object","properties":{"name":{"type":"string","minLength":1,"maxLength":100},"salesMultiplier":{"type":"string","pattern":"^\\d+(\\.\\d{1,6})?$"},"hiringShift":{"type":"integer","minimum":-36,"maximum":36},"revenueOverrides":{"type":"object","propertyNames":{"type":"string","minLength":1,"maxLength":120},"additionalProperties":{"type":"object","properties":{"quantity":{"type":"string","pattern":"^\\d+(\\.\\d{1,6})?$"},"price":{"type":"string","pattern":"^\\d+(\\.\\d{1,6})?$"},"newCustomers":{"type":"string","pattern":"^\\d+(\\.\\d{1,6})?$"},"churn":{"type":"string","pattern":"^\\d+(\\.\\d{1,6})?$"}},"additionalProperties":false}},"payrollShifts":{"type":"object","propertyNames":{"type":"string","minLength":1,"maxLength":120},"additionalProperties":{"type":"integer","minimum":-36,"maximum":36}},"collectionDelay":{"type":"integer","minimum":0,"maximum":3},"supplierDelay":{"type":"integer","minimum":0,"maximum":3}},"required":["name","salesMultiplier","hiringShift"],"additionalProperties":false},"scenarios":{"maxItems":19,"type":"array","items":{"type":"object","properties":{"name":{"type":"string","minLength":1,"maxLength":100},"salesMultiplier":{"type":"string","pattern":"^\\d+(\\.\\d{1,6})?$"},"hiringShift":{"type":"integer","minimum":-36,"maximum":36},"revenueOverrides":{"type":"object","propertyNames":{"type":"string","minLength":1,"maxLength":120},"additionalProperties":{"type":"object","properties":{"quantity":{"type":"string","pattern":"^\\d+(\\.\\d{1,6})?$"},"price":{"type":"string","pattern":"^\\d+(\\.\\d{1,6})?$"},"newCustomers":{"type":"string","pattern":"^\\d+(\\.\\d{1,6})?$"},"churn":{"type":"string","pattern":"^\\d+(\\.\\d{1,6})?$"}},"additionalProperties":false}},"payrollShifts":{"type":"object","propertyNames":{"type":"string","minLength":1,"maxLength":120},"additionalProperties":{"type":"integer","minimum":-36,"maximum":36}},"collectionDelay":{"type":"integer","minimum":0,"maximum":3},"supplierDelay":{"type":"integer","minimum":0,"maximum":3},"id":{"type":"string","minLength":1,"maxLength":120}},"required":["name","salesMultiplier","hiringShift","id"],"additionalProperties":false}},"assumptions":{"maxItems":400,"type":"array","items":{"type":"object","properties":{"path":{"type":"string","minLength":1,"maxLength":240},"label":{"type":"string","minLength":1,"maxLength":240},"status":{"type":"string","enum":["missing","example","estimate","confirmed"]},"source":{"type":"string","maxLength":1500},"note":{"type":"string","maxLength":3000}},"required":["path","label","status","source","note"],"additionalProperties":false}}},"required":["name","input","document","scenario"]},"commit":{"default":false,"type":"boolean"},"scenario":{"type":"object","properties":{"name":{"type":"string","minLength":1,"maxLength":100},"salesMultiplier":{"type":"string","pattern":"^\\d+(\\.\\d{1,6})?$"},"hiringShift":{"type":"integer","minimum":-36,"maximum":36},"revenueOverrides":{"type":"object","propertyNames":{"type":"string","minLength":1,"maxLength":120},"additionalProperties":{"type":"object","properties":{"quantity":{"type":"string","pattern":"^\\d+(\\.\\d{1,6})?$"},"price":{"type":"string","pattern":"^\\d+(\\.\\d{1,6})?$"},"newCustomers":{"type":"string","pattern":"^\\d+(\\.\\d{1,6})?$"},"churn":{"type":"string","pattern":"^\\d+(\\.\\d{1,6})?$"}},"additionalProperties":false}},"payrollShifts":{"type":"object","propertyNames":{"type":"string","minLength":1,"maxLength":120},"additionalProperties":{"type":"integer","minimum":-36,"maximum":36}},"collectionDelay":{"type":"integer","minimum":0,"maximum":3},"supplierDelay":{"type":"integer","minimum":0,"maximum":3},"id":{"type":"string","minLength":1,"maxLength":120}},"required":["name","salesMultiplier","hiringShift","id"],"additionalProperties":false}},"required":["projectId","expectedVersion","scenario"],"additionalProperties":false}},{"name":"share_invite","description":"Inviter un éditeur ou un lecteur au projet, avec contrôle des quotas. Aucun email n’est envoyé par cette action.","scope":"write","scopeLabel":"Modifier les projets et les partages","readOnly":false,"destructive":true,"idempotent":false,"inputSchema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"projectId":{"type":"string","minLength":1,"maxLength":120},"email":{"type":"string","maxLength":254,"format":"email","pattern":"^(?!\\.)(?!.*\\.\\.)([A-Za-z0-9_'+\\-\\.]*)[A-Za-z0-9_+-]@([A-Za-z0-9][A-Za-z0-9\\-]*\\.)+[A-Za-z]{2,}$"},"role":{"type":"string","enum":["editor","reviewer"]}},"required":["projectId","email","role"],"additionalProperties":false}},{"name":"share_revoke","description":"Retirer une invitation ou un accès au projet pour son propriétaire.","scope":"write","scopeLabel":"Modifier les projets et les partages","readOnly":false,"destructive":true,"idempotent":false,"inputSchema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"projectId":{"type":"string","minLength":1,"maxLength":120},"shareId":{"type":"string","minLength":1,"maxLength":120}},"required":["projectId","shareId"],"additionalProperties":false}},{"name":"shares_list","description":"Lister les invitations et accès du projet pour son propriétaire.","scope":"read","scopeLabel":"Lire les projets","readOnly":true,"destructive":false,"idempotent":true,"inputSchema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"projectId":{"type":"string","minLength":1,"maxLength":120}},"required":["projectId"],"additionalProperties":false}},{"name":"subscription_get","description":"Consulter l’offre effective, les droits payés, les quotas et le changement planifié.","scope":"read","scopeLabel":"Lire les projets","readOnly":true,"destructive":false,"idempotent":true,"inputSchema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{},"additionalProperties":false}},{"name":"template_get","description":"Consulter un modèle, ses activités, questions et hypothèses.","scope":"read","scopeLabel":"Lire les projets","readOnly":true,"destructive":false,"idempotent":true,"inputSchema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"templateId":{"type":"string","minLength":1,"maxLength":120}},"required":["templateId"],"additionalProperties":false}},{"name":"template_prepare","description":"Préparer un projet depuis un modèle et des valeurs fournies, sans enregistrer.","scope":"read","scopeLabel":"Lire les projets","readOnly":true,"destructive":false,"idempotent":true,"inputSchema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"templateId":{"type":"string","minLength":1,"maxLength":120},"setup":{"type":"object","properties":{"mode":{"default":"example","type":"string","enum":["blank","example"]},"revenueIds":{"minItems":1,"maxItems":30,"type":"array","items":{"type":"string","minLength":1,"maxLength":120}},"team":{"default":true,"type":"boolean"},"premises":{"default":true,"type":"boolean"},"revenueValues":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{"type":"object","properties":{"quantity":{"type":"string","pattern":"^\\d+(\\.\\d{1,6})?$"},"price":{"type":"string","pattern":"^\\d+(\\.\\d{1,6})?$"},"source":{"default":"","type":"string","maxLength":1500}},"additionalProperties":false}},"start":{"type":"string","pattern":"^20\\d{2}-(0[1-9]|1[0-2])$"}},"additionalProperties":false}},"required":["templateId","setup"],"additionalProperties":false}},{"name":"templates_list","description":"Lister les modèles métier et leurs versions. Les exemples sont fictifs.","scope":"read","scopeLabel":"Lire les projets","readOnly":true,"destructive":false,"idempotent":true,"inputSchema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"query":{"type":"string","maxLength":120}},"additionalProperties":false}}]}