{
  "tool": "calculateur-juridique",
  "name": "Le Calculateur juridique",
  "apiVersion": "1",
  "kind": "op",
  "description": "Oracle juridique déterministe : calcule des délais (calendaires, jours francs CPC, ouvrés, ouvrables) en tenant compte des jours fériés français, calcule l'écart en années/mois/jours entre deux dates, et valide IBAN/SIREN/SIRET/TVA/RIB. 100 % local, résultats reproductibles.",
  "url": "https://sui-juris.fr/p2p-tools/calculateur-juridique/",
  "heavy": false,
  "ops": {
    "delai": {
      "summary": "Calcule l'échéance d'un délai à partir d'une date de départ.",
      "args": {
        "from": { "type": "string", "required": true, "description": "Date de départ au format YYYY-MM-DD." },
        "count": { "type": "string", "required": true, "description": "Nombre de jours/mois/ans (entier)." },
        "unit": { "type": "string", "required": false, "enum": ["jours", "mois", "ans"], "description": "Unité du délai (défaut jours)." },
        "type": { "type": "string", "required": false, "enum": ["calendaires", "francs", "ouvres", "ouvrables"], "description": "Mode de calcul : calendaires (défaut), francs (jours francs CPC, dies a quo exclu + prorogation WE/férié), ouvres (lun-ven hors fériés), ouvrables (lun-sam hors fériés)." }
      },
      "returns": { "result": "date d'échéance YYYY-MM-DD", "weekday": "jour de la semaine", "explanation": "règle appliquée et prorogation éventuelle" }
    },
    "ecart": {
      "summary": "Calcule l'écart civil (années, mois, jours) entre deux dates, comme un calcul d'âge.",
      "args": {
        "dateA": { "type": "string", "required": true, "description": "Première date au format YYYY-MM-DD." },
        "dateB": { "type": "string", "required": true, "description": "Seconde date au format YYYY-MM-DD (l'ordre des deux dates n'a pas d'importance)." }
      },
      "returns": { "years": "nombre d'années entières", "months": "nombre de mois entiers restants (0-11)", "days": "nombre de jours restants", "totalDays": "nombre total de jours entre les deux dates", "swapped": "vrai si les dates ont dû être réordonnées", "result": "texte court ex. '2 ans, 3 mois, 29 jours'", "explanation": "phrase complète avec le total en jours" }
    },
    "valider": {
      "summary": "Valide un identifiant officiel (IBAN, SIREN, SIRET, TVA intra FR, RIB).",
      "args": {
        "kind": { "type": "string", "required": true, "enum": ["iban", "siren", "siret", "tva", "rib"], "description": "Type d'identifiant à contrôler." },
        "value": { "type": "string", "required": true, "description": "La valeur à vérifier (espaces tolérés)." }
      },
      "returns": { "valid": "booléen", "normalized": "forme normalisée/formatée", "detail": "explication du contrôle" }
    },
    "feries": {
      "summary": "Liste les jours fériés français (métropole) d'une année.",
      "args": {
        "annee": { "type": "string", "required": true, "description": "Année sur 4 chiffres, ex. 2024." }
      },
      "returns": { "text": "liste des dates fériées YYYY-MM-DD séparées par des virgules" }
    }
  }
}
