{
  "blocks": [
    {
      "id": "cadre",
      "title": "0. Cadre",
      "summary": "Périmètre UC3, stack et principe produit.",
      "mockupRef": "admin"
    },
    {
      "id": "host-onboarding",
      "title": "2.1 Onboarding lieu hôte",
      "summary": "Création du site, machines, QR, restos associés.",
      "mockupRef": "admin"
    },
    {
      "id": "restaurant-onboarding",
      "title": "2.2 Onboarding restaurant",
      "summary": "Éligibilité, rattachement, catalogue, Lyra, abonnement.",
      "mockupRef": "restaurant"
    },
    {
      "id": "client-onboarding",
      "title": "2.3 Onboarding client",
      "summary": "QR, compte obligatoire, OTP SMS, suivi.",
      "mockupRef": "storefront"
    },
    {
      "id": "order-flow",
      "title": "3. Commande",
      "summary": "Découverte, panier, créneau, paiement, routage.",
      "mockupRef": "storefront"
    },
    {
      "id": "restaurant-delivery",
      "title": "4. Livraison restaurant",
      "summary": "Livraison directe, batch déjeuner, réservation casiers.",
      "mockupRef": "restaurant"
    },
    {
      "id": "uber-direct",
      "title": "5. Uber Direct",
      "summary": "Course white label, instructions, suivi, divergences.",
      "mockupRef": "tracking"
    },
    {
      "id": "pkup",
      "title": "6. P-KUP",
      "summary": "Ouverture QR/code, état casiers, mode dégradé.",
      "mockupRef": "locker"
    },
    {
      "id": "payment",
      "title": "7. Paiement et litiges",
      "summary": "Lyra, titres-restaurant, capture différée, crédit.",
      "mockupRef": "credit"
    },
    {
      "id": "interfaces",
      "title": "8. Interfaces",
      "summary": "Admin, restaurant, client, lieu hôte, support.",
      "mockupRef": "host"
    },
    {
      "id": "annexes",
      "title": "Annexes",
      "summary": "Uber, alternatives, Frichti, subvention employeur.",
      "mockupRef": "admin"
    }
  ],
  "items": [
    {
      "id": "0-D1",
      "groupId": "cadre",
      "section": "0. Cadre",
      "type": "decision",
      "status": "a_valider",
      "title": "Use case UC3 marketplace complète",
      "description": "Machine P-KUP posée gratuitement chez un lieu hôte, 8 à 10 restaurants référencés par site, commande INORES, livraison par le restaurant ou Uber Direct, dépôt et retrait au casier.",
      "defaultOrientation": "Confirmer UC3 marketplace complète comme périmètre de cadrage.",
      "options": ["Confirmer UC3 complet", "Réduire au pilote restaurant", "Découper en MVP puis extensions"],
      "mockupRef": "admin"
    },
    {
      "id": "0-D2",
      "groupId": "cadre",
      "section": "0. Cadre",
      "type": "decision",
      "status": "a_valider",
      "title": "Stack et principe plateforme",
      "description": "Medusa.js 2.0, Next.js storefront, Lyra Collect Marketplace, Uber Direct, API P-KUP. Toute l'intelligence est côté plateforme, le casier ouvre, ferme et remonte son état.",
      "defaultOrientation": "Valider l'architecture Medusa, Lyra, Uber Direct et P-KUP comme base produit.",
      "options": ["Valider la stack proposée", "Décaler certains choix techniques", "Revenir à un périmètre sans Uber Direct"],
      "mockupRef": "admin"
    },
    {
      "id": "2.1-P1",
      "groupId": "host-onboarding",
      "section": "2.1 Onboarding lieu hôte",
      "type": "parcours",
      "status": "a_valider",
      "title": "Création du compte lieu hôte",
      "description": "Admin INORES crée le compte lieu hôte avec raison sociale, adresse, contact, type de site et informations utiles pour l'installation.",
      "defaultOrientation": "Inclure les champs de base, plus un commentaire libre pour informations terrain.",
      "options": ["Valider tel quel", "Ajouter des champs contractuels", "Ajouter des champs sécurité accès"],
      "mockupRef": "admin"
    },
    {
      "id": "2.1-P2",
      "groupId": "host-onboarding",
      "section": "2.1 Onboarding lieu hôte",
      "type": "parcours",
      "status": "a_valider",
      "title": "Déclaration des machines",
      "description": "Admin déclare les machines P-KUP du site : numéro unique, emplacement, casiers, éventuel chaud/froid, accès livreur. Prévoir aussi des sites très grands avec plusieurs entrées ou zones.",
      "defaultOrientation": "Prévoir plusieurs machines par site, chacune avec son emplacement et son QR, et décider séparément du split chaud/froid.",
      "options": ["Plusieurs machines par site", "Une machine pilote seulement", "Machines couplées et zones distinctes dès v1"],
      "mockupRef": "admin"
    },
    {
      "id": "2.1-P3",
      "groupId": "host-onboarding",
      "section": "2.1 Onboarding lieu hôte",
      "type": "parcours",
      "status": "a_valider",
      "title": "Association des restaurants",
      "description": "Admin associe les restaurants éligibles au site selon la zone de livraison, la capacité et l'accord commercial.",
      "defaultOrientation": "Référencer 8 à 10 restaurants par site pilote.",
      "options": ["8 à 10 restaurants", "Moins pour le pilote", "Plus avec catégories"],
      "mockupRef": "admin"
    },
    {
      "id": "2.1-P4",
      "groupId": "host-onboarding",
      "section": "2.1 Onboarding lieu hôte",
      "type": "parcours",
      "status": "a_valider",
      "title": "Génération du QR machine",
      "description": "La plateforme génère un QR par machine ou par paire couplée. Le QR scanné identifie directement la machine où la commande sera livrée.",
      "defaultOrientation": "QR par machine logique.",
      "options": ["QR par machine", "QR unique site", "QR par zone du site"],
      "mockupRef": "admin"
    },
    {
      "id": "2.1-P5",
      "groupId": "host-onboarding",
      "section": "2.1 Onboarding lieu hôte",
      "type": "parcours",
      "status": "a_valider",
      "title": "Affichage physique du QR",
      "description": "Le QR est affiché directement sur ou à côté de la machine pour servir de point d'entrée naturel.",
      "defaultOrientation": "Afficher le QR sur la machine.",
      "options": ["Sur la machine", "À côté de la machine", "Signalétique site en complément"],
      "mockupRef": "locker"
    },
    {
      "id": "2.1-P6",
      "groupId": "host-onboarding",
      "section": "2.1 Onboarding lieu hôte",
      "type": "parcours",
      "status": "a_valider",
      "title": "Accès reporting lieu hôte",
      "description": "Le lieu hôte reçoit une interface légère pour suivre l'activité de sa machine sans gérer l'opérationnel.",
      "defaultOrientation": "Reporting léger en lecture seule.",
      "options": ["Lecture seule", "Demandes ajout retrait restos", "Pas d'interface en MVP"],
      "mockupRef": "host"
    },
    {
      "id": "2.1-D1",
      "groupId": "host-onboarding",
      "section": "2.1 Onboarding lieu hôte",
      "type": "decision",
      "status": "a_arbitrer",
      "title": "Modèle machines",
      "description": "Un lieu peut avoir plusieurs machines, soit couplées comme un seul pool, soit à des emplacements distincts. Les grands sites peuvent nécessiter plusieurs zones et entrées.",
      "defaultOrientation": "Une paire couplée compte comme une machine logique ; les emplacements distincts sont des machines séparées avec QR distinct.",
      "options": ["Pool logique pour machines couplées", "Tout traiter comme machines séparées", "Limiter à une machine en v1"],
      "mockupRef": "admin"
    },
    {
      "id": "2.1-D2",
      "groupId": "host-onboarding",
      "section": "2.1 Onboarding lieu hôte",
      "type": "decision",
      "status": "a_valider",
      "title": "Numéro machine et description d'accès",
      "description": "Chaque machine doit avoir un numéro unique rattaché au lieu et une description d'accès claire pour les livreurs.",
      "defaultOrientation": "Intégrer numéro machine, emplacement et instructions livreur dans le modèle de données.",
      "options": ["Valider tel quel", "Ajouter contact sécurité", "Ajouter plan d'accès"],
      "mockupRef": "admin"
    },
    {
      "id": "2.1-D4",
      "groupId": "host-onboarding",
      "section": "2.1 Onboarding lieu hôte",
      "type": "decision",
      "status": "deja_arbitre",
      "title": "QR par machine",
      "description": "Le QR par machine est retenu. Une paire couplée a un seul QR, plusieurs machines non couplées ont des QR distincts.",
      "defaultOrientation": "QR par machine logique.",
      "options": ["Valider tel quel", "Rouvrir"],
      "mockupRef": "locker"
    },
    {
      "id": "2.1-D5",
      "groupId": "host-onboarding",
      "section": "2.1 Onboarding lieu hôte",
      "type": "decision",
      "status": "a_arbitrer",
      "title": "Restaurant rattaché à plusieurs lieux",
      "description": "Un même restaurant peut-il servir plusieurs lieux hôtes selon sa zone et sa capacité ?",
      "defaultOrientation": "Oui, un restaurant peut être rattaché à plusieurs lieux hôtes.",
      "options": ["Oui", "Non", "Oui avec plafond de sites"],
      "mockupRef": "restaurant"
    },
    {
      "id": "2.1-D6",
      "groupId": "host-onboarding",
      "section": "2.1 Onboarding lieu hôte",
      "type": "decision",
      "status": "a_arbitrer",
      "title": "Droit de regard du lieu hôte sur les restaurants",
      "description": "Faut-il permettre au lieu hôte d'accepter ou refuser des restaurants, ou INORES garde-t-il la main complète ?",
      "defaultOrientation": "Le lieu hôte voit les restaurants et peut demander un retrait, INORES garde la validation opérationnelle.",
      "options": ["Droit de retrait a posteriori", "Validation préalable par le lieu", "Aucun droit de regard"],
      "mockupRef": "host"
    },
    {
      "id": "2.1-D7",
      "groupId": "host-onboarding",
      "section": "2.1 Onboarding lieu hôte",
      "type": "decision",
      "status": "a_arbitrer",
      "title": "Créneaux de commande",
      "description": "Les créneaux disponibles croisent horaires du site, horaires du restaurant, capacité et disponibilité machine. Le modèle groupé façon Frichti doit aussi être prévu.",
      "defaultOrientation": "Le restaurant propose ses créneaux, INORES borne par la machine et le site ; le batch déjeuner est un mode dédié.",
      "options": ["Créneaux resto bornés par INORES", "Créneaux fixes INORES", "Batch déjeuner prioritaire"],
      "mockupRef": "storefront"
    },
    {
      "id": "2.1-D8",
      "groupId": "host-onboarding",
      "section": "2.1 Onboarding lieu hôte",
      "type": "question",
      "status": "pour_thierry",
      "title": "Heartbeat machine",
      "description": "La plateforme doit savoir en temps réel qu'une machine est installée et en ligne pour la retirer du pool si elle est hors service.",
      "defaultOrientation": "Confirmer l'existence d'un heartbeat API P-KUP.",
      "options": [],
      "mockupRef": "locker"
    },
    {
      "id": "2.1-D9",
      "groupId": "host-onboarding",
      "section": "2.1 Onboarding lieu hôte",
      "type": "decision",
      "status": "a_arbitrer",
      "title": "Split chaud / froid",
      "description": "Le split chaud/froid complique la préparation et peut imposer plusieurs sacs ou casiers pour une commande. Faut-il le garder en v1 ?",
      "defaultOrientation": "Décider en séance ; par défaut, limiter les cas multi-températures en v1.",
      "options": ["Limiter en v1", "Garder chaud/froid complet", "Abandonner le split"],
      "mockupRef": "locker"
    },
    {
      "id": "2.2-P1",
      "groupId": "restaurant-onboarding",
      "section": "2.2 Onboarding restaurant",
      "type": "parcours",
      "status": "a_valider",
      "title": "Vérification d'éligibilité restaurant",
      "description": "Admin vérifie zone de livraison, KYC, SIRET, capacité à livrer chaud, acceptation titres-restaurant et contrat CONECS e-commerce.",
      "defaultOrientation": "Contrôle manuel INORES au lancement.",
      "options": ["Valider tel quel", "Alléger pour MVP", "Ajouter grille de scoring"],
      "mockupRef": "restaurant"
    },
    {
      "id": "2.2-P2",
      "groupId": "restaurant-onboarding",
      "section": "2.2 Onboarding restaurant",
      "type": "parcours",
      "status": "a_valider",
      "title": "Validation et rattachement",
      "description": "Admin valide le compte restaurant et le rattache à un ou plusieurs lieux hôtes.",
      "defaultOrientation": "Rattachement multi-lieux possible.",
      "options": ["Valider tel quel", "Limiter à un site pilote", "Rattachement selon capacité"],
      "mockupRef": "admin"
    },
    {
      "id": "2.2-P3",
      "groupId": "restaurant-onboarding",
      "section": "2.2 Onboarding restaurant",
      "type": "parcours",
      "status": "a_valider",
      "title": "Configuration restaurant",
      "description": "Le restaurateur configure catalogue, menus, prix, photos, allergènes, températures, horaires, capacité par créneau, modes de livraison et ruptures.",
      "defaultOrientation": "Prévoir gestion catalogue et ruptures dès v1.",
      "options": ["Catalogue complet", "Catalogue simplifié", "INORES saisit le catalogue"],
      "mockupRef": "restaurant"
    },
    {
      "id": "2.2-P4",
      "groupId": "restaurant-onboarding",
      "section": "2.2 Onboarding restaurant",
      "type": "parcours",
      "status": "a_valider",
      "title": "Enrôlement Lyra",
      "description": "Le restaurateur est enrôlé comme sous-marchand Lyra avec KYC et contrat TRD CONECS e-commerce affecté via trd_contract.",
      "defaultOrientation": "Lyra Collect Marketplace comme parcours cible.",
      "options": ["Valider tel quel", "Accompagnement INORES renforcé", "Décaler TR au post-MVP"],
      "mockupRef": "credit"
    },
    {
      "id": "2.2-P5",
      "groupId": "restaurant-onboarding",
      "section": "2.2 Onboarding restaurant",
      "type": "parcours",
      "status": "a_valider",
      "title": "Choix du mode de livraison",
      "description": "Le restaurateur choisit livraison interne, Uber Direct si éligible, ou les deux selon le site.",
      "defaultOrientation": "Livraison restaurant en v1, Uber Direct activable par site en v2.",
      "options": ["Resto d'abord", "Uber dès v1", "Deux modes dès v1"],
      "mockupRef": "restaurant"
    },
    {
      "id": "2.2-P6",
      "groupId": "restaurant-onboarding",
      "section": "2.2 Onboarding restaurant",
      "type": "parcours",
      "status": "a_valider",
      "title": "Souscription abonnement INORES",
      "description": "Si le modèle abonnement est retenu, le restaurant souscrit un abonnement mensuel avec paiement récurrent ou mode de facturation alternatif.",
      "defaultOrientation": "Prévoir l'abonnement mais le figer avec le modèle business.",
      "options": ["Abonnement mensuel", "Commission seulement", "Mixte"],
      "mockupRef": "admin"
    },
    {
      "id": "2.2-P7",
      "groupId": "restaurant-onboarding",
      "section": "2.2 Onboarding restaurant",
      "type": "parcours",
      "status": "a_valider",
      "title": "Publication storefront",
      "description": "Le restaurant passe actif et apparaît dans les storefronts des sites auxquels il est rattaché.",
      "defaultOrientation": "Publication après validation INORES et configuration minimale.",
      "options": ["Valider tel quel", "Publication manuelle", "Publication automatique"],
      "mockupRef": "storefront"
    },
    {
      "id": "2.2-D1",
      "groupId": "restaurant-onboarding",
      "section": "2.2 Onboarding restaurant",
      "type": "decision",
      "status": "a_arbitrer",
      "title": "Canal d'entrée restaurant",
      "description": "Le restaurant candidate-t-il via formulaire public ou est-il démarché par INORES ?",
      "defaultOrientation": "Démarchage INORES au lancement, formulaire candidature plus tard.",
      "options": ["Démarchage INORES", "Formulaire public", "Les deux"],
      "mockupRef": "restaurant"
    },
    {
      "id": "2.2-D2",
      "groupId": "restaurant-onboarding",
      "section": "2.2 Onboarding restaurant",
      "type": "decision",
      "status": "a_arbitrer",
      "title": "Validation restaurant",
      "description": "Validation 100% manuelle par INORES ou self-service avec contrôle a posteriori ?",
      "defaultOrientation": "Validation manuelle au lancement.",
      "options": ["Manuelle", "Self-service contrôlé", "Self-service complet"],
      "mockupRef": "admin"
    },
    {
      "id": "2.2-D3",
      "groupId": "restaurant-onboarding",
      "section": "2.2 Onboarding restaurant",
      "type": "decision",
      "status": "a_arbitrer",
      "title": "Modèle d'abonnement restaurant",
      "description": "Forfait fixe, commission sur ventes, ou les deux. C'est le coeur du business model restaurant.",
      "defaultOrientation": "Mixte : abonnement léger plus commission.",
      "options": ["Mixte", "Commission seulement", "Forfait seulement"],
      "mockupRef": "admin"
    },
    {
      "id": "2.2-D4",
      "groupId": "restaurant-onboarding",
      "section": "2.2 Onboarding restaurant",
      "type": "decision",
      "status": "a_arbitrer",
      "title": "Encaissement de l'abonnement",
      "description": "Faut-il une passerelle CB récurrente, et faut-il gérer SEPA ou virement pour les restaurants qui ne veulent pas payer par carte ?",
      "defaultOrientation": "CB récurrent par défaut, SEPA en option.",
      "options": ["CB récurrent + SEPA", "CB seulement", "Facturation manuelle"],
      "mockupRef": "credit"
    },
    {
      "id": "2.2-D5",
      "groupId": "restaurant-onboarding",
      "section": "2.2 Onboarding restaurant",
      "type": "decision",
      "status": "a_arbitrer",
      "title": "Défaut de paiement abonnement",
      "description": "Définir relances, masquage storefront, suspension et délais en cas d'impayé.",
      "defaultOrientation": "Relance automatique, masquage storefront, puis suspension.",
      "options": ["Relance puis masquage", "Suspension immédiate", "Traitement manuel"],
      "mockupRef": "admin"
    },
    {
      "id": "2.2-D6",
      "groupId": "restaurant-onboarding",
      "section": "2.2 Onboarding restaurant",
      "type": "decision",
      "status": "a_arbitrer",
      "title": "Clés Uber Direct",
      "description": "Le restaurant charge-t-il ses propres clés Uber Direct ou INORES utilise-t-il un compte unique ?",
      "defaultOrientation": "Compte unique INORES.",
      "options": ["Compte INORES unique", "Compte par restaurant", "Décision par site"],
      "mockupRef": "tracking"
    },
    {
      "id": "2.2-D7",
      "groupId": "restaurant-onboarding",
      "section": "2.2 Onboarding restaurant",
      "type": "decision",
      "status": "a_arbitrer",
      "title": "Capacité par créneau",
      "description": "Le restaurant peut-il bloquer les commandes au-delà d'un plafond par créneau pour ne pas être débordé ?",
      "defaultOrientation": "Oui, plafond par créneau paramétrable.",
      "options": ["Oui", "Non", "Oui avec seuil INORES"],
      "mockupRef": "restaurant"
    },
    {
      "id": "2.2-D8",
      "groupId": "restaurant-onboarding",
      "section": "2.2 Onboarding restaurant",
      "type": "decision",
      "status": "a_arbitrer",
      "title": "Qualité photos et fiches produits",
      "description": "INORES impose-t-il un gabarit ou une validation qualité sur les fiches produits ?",
      "defaultOrientation": "Gabarit léger plus validation.",
      "options": ["Gabarit + validation", "Liberté restaurant", "INORES produit les fiches"],
      "mockupRef": "restaurant"
    },
    {
      "id": "2.3-D1",
      "groupId": "client-onboarding",
      "section": "2.3 Onboarding client",
      "type": "decision",
      "status": "deja_arbitre",
      "title": "Compte client obligatoire",
      "description": "La commande invitée est écartée pour rattacher remboursements, avoirs seller-scoped, historique et litiges.",
      "defaultOrientation": "Compte obligatoire.",
      "options": ["Valider tel quel", "Rouvrir"],
      "mockupRef": "storefront"
    },
    {
      "id": "2.3-P1",
      "groupId": "client-onboarding",
      "section": "2.3 Onboarding client",
      "type": "parcours",
      "status": "a_valider",
      "title": "Scan QR client",
      "description": "Le client scanne le QR sur site et arrive sur le storefront PWA, sans app à installer.",
      "defaultOrientation": "PWA via QR.",
      "options": ["Valider tel quel", "Ajouter URL courte", "Ajouter NFC plus tard"],
      "mockupRef": "storefront"
    },
    {
      "id": "2.3-P2",
      "groupId": "client-onboarding",
      "section": "2.3 Onboarding client",
      "type": "parcours",
      "status": "a_valider",
      "title": "Détection du site",
      "description": "La plateforme détecte la machine via le QR et n'affiche que les restaurants rattachés et ouverts.",
      "defaultOrientation": "Filtrer par machine scannée.",
      "options": ["Valider tel quel", "Filtrer par site", "Laisser choisir la machine"],
      "mockupRef": "storefront"
    },
    {
      "id": "2.3-P3",
      "groupId": "client-onboarding",
      "section": "2.3 Onboarding client",
      "type": "parcours",
      "status": "a_valider",
      "title": "Connexion ou création de compte",
      "description": "Compte léger avec mobile et OTP SMS, éventuellement e-mail et prénom, sans mot de passe à retenir.",
      "defaultOrientation": "OTP SMS comme création rapide.",
      "options": ["OTP SMS", "Email magic link", "SMS + email obligatoire"],
      "mockupRef": "storefront"
    },
    {
      "id": "2.3-P4",
      "groupId": "client-onboarding",
      "section": "2.3 Onboarding client",
      "type": "parcours",
      "status": "a_valider",
      "title": "Composition du panier",
      "description": "Le client choisit un restaurant, des plats, des options et consulte les allergènes.",
      "defaultOrientation": "Parcours panier PWA classique.",
      "options": ["Valider tel quel", "Ajouter favoris", "Ajouter commande précédente"],
      "mockupRef": "storefront"
    },
    {
      "id": "2.3-P5",
      "groupId": "client-onboarding",
      "section": "2.3 Onboarding client",
      "type": "parcours",
      "status": "a_valider",
      "title": "Rattachement du suivi et du code",
      "description": "Au paiement, le code de retrait et le suivi sont rattachés au compte et envoyés par le canal choisi.",
      "defaultOrientation": "Code disponible SMS, e-mail et compte.",
      "options": ["Valider tel quel", "SMS seulement", "PWA prioritaire"],
      "mockupRef": "tracking"
    },
    {
      "id": "2.3-D2",
      "groupId": "client-onboarding",
      "section": "2.3 Onboarding client",
      "type": "decision",
      "status": "deja_arbitre",
      "title": "OTP SMS",
      "description": "Le SMS est le contact principal du client pour suivi et code de retrait.",
      "defaultOrientation": "Création de compte par numéro mobile et OTP SMS.",
      "options": ["Valider tel quel", "Rouvrir"],
      "mockupRef": "storefront"
    },
    {
      "id": "2.3-D3",
      "groupId": "client-onboarding",
      "section": "2.3 Onboarding client",
      "type": "decision",
      "status": "deja_arbitre",
      "title": "Code de retrait partout",
      "description": "Le code de retrait s'affiche dans SMS, e-mail et PWA pour être retrouvable.",
      "defaultOrientation": "SMS, e-mail et PWA.",
      "options": ["Valider tel quel", "Rouvrir"],
      "mockupRef": "tracking"
    },
    {
      "id": "2.3-D5",
      "groupId": "client-onboarding",
      "section": "2.3 Onboarding client",
      "type": "decision",
      "status": "a_valider",
      "title": "Compliance RGPD",
      "description": "Minimisation des données, consentement explicite, droits d'accès et effacement, durées de conservation, registre des traitements.",
      "defaultOrientation": "RGPD comme exigence transverse.",
      "options": ["Valider tel quel", "Ajouter DPA prestataires", "Ajouter audit juridique"],
      "mockupRef": "admin"
    },
    {
      "id": "3-P1",
      "groupId": "order-flow",
      "section": "3. Commande",
      "type": "parcours",
      "status": "a_valider",
      "title": "Accès storefront",
      "description": "Le client scanne le QR et arrive sur le storefront du site ou de la machine.",
      "defaultOrientation": "Accès direct par QR machine.",
      "options": ["Valider tel quel", "Ajouter URL de secours", "Ajouter NFC"],
      "mockupRef": "storefront"
    },
    {
      "id": "3-P2",
      "groupId": "order-flow",
      "section": "3. Commande",
      "type": "parcours",
      "status": "a_valider",
      "title": "Découverte restaurants",
      "description": "La plateforme affiche les restaurants rattachés et ouverts, avec filtres, catégories et éventuellement plats du jour.",
      "defaultOrientation": "Liste simple en v1, découverte enrichie ensuite.",
      "options": ["Liste simple", "Catégories v1", "Merchandising complet"],
      "mockupRef": "storefront"
    },
    {
      "id": "3-P3",
      "groupId": "order-flow",
      "section": "3. Commande",
      "type": "parcours",
      "status": "a_valider",
      "title": "Sélection et panier",
      "description": "Le client choisit un restaurant, compose son panier, voit options et allergènes.",
      "defaultOrientation": "Panier mono-restaurant.",
      "options": ["Mono-restaurant", "Multi-restaurants", "Menus imposés"],
      "mockupRef": "storefront"
    },
    {
      "id": "3-P4",
      "groupId": "order-flow",
      "section": "3. Commande",
      "type": "parcours",
      "status": "a_valider",
      "title": "Créneau de retrait",
      "description": "Le client choisit au plus vite uniquement pour Uber Direct, ou un créneau de retrait. La plateforme vérifie capacité restaurant et casier disponible.",
      "defaultOrientation": "Créneaux planifiés par défaut ; ASAP réservé à Uber Direct.",
      "options": ["Planifié par défaut", "ASAP partout", "Batch déjeuner uniquement"],
      "mockupRef": "storefront"
    },
    {
      "id": "3-P5",
      "groupId": "order-flow",
      "section": "3. Commande",
      "type": "parcours",
      "status": "a_valider",
      "title": "Récapitulatif et titres-restaurant",
      "description": "Le panier isole part alimentaire et frais non éligibles TR. Le restaurant peut absorber la livraison dans ses prix pour permettre une commande 100% titres-restaurant.",
      "defaultOrientation": "Afficher clairement part TR éligible et part CB.",
      "options": ["Valider tel quel", "Absorption livraison mise en avant", "Frais explicites par défaut"],
      "mockupRef": "credit"
    },
    {
      "id": "3-P6",
      "groupId": "order-flow",
      "section": "3. Commande",
      "type": "parcours",
      "status": "a_valider",
      "title": "Paiement Lyra",
      "description": "Paiement via Lyra en CB et/ou titres-restaurant CONECS, avec split natif. La part non alimentaire n'est pas réglable en TR.",
      "defaultOrientation": "Lyra en redirection avec split TR/CB.",
      "options": ["Valider tel quel", "CB d'abord", "TR post-MVP"],
      "mockupRef": "credit"
    },
    {
      "id": "3-P7",
      "groupId": "order-flow",
      "section": "3. Commande",
      "type": "parcours",
      "status": "a_valider",
      "title": "Confirmation et routage",
      "description": "La commande est confirmée, l'autorisation de paiement est prise, puis la commande est routée vers le restaurant et le mode de livraison choisi.",
      "defaultOrientation": "Autorisation à la commande, capture plus tard au retrait.",
      "options": ["Valider tel quel", "Capture immédiate", "Autorisation uniquement CB"],
      "mockupRef": "restaurant"
    },
    {
      "id": "3-P8",
      "groupId": "order-flow",
      "section": "3. Commande",
      "type": "parcours",
      "status": "a_valider",
      "title": "Préparation restaurant",
      "description": "Le restaurant reçoit la commande sur dashboard, app et notification, puis accepte et prépare.",
      "defaultOrientation": "Dashboard restaurant et notification en v1.",
      "options": ["Valider tel quel", "Impression ticket obligatoire", "POS en v1"],
      "mockupRef": "restaurant"
    },
    {
      "id": "3-D1",
      "groupId": "order-flow",
      "section": "3. Commande",
      "type": "decision",
      "status": "a_arbitrer",
      "title": "Merchandising v1",
      "description": "Simple liste de restaurants ou découverte enrichie avec catégories, mises en avant, suggestions et plat du jour ?",
      "defaultOrientation": "Liste simple en v1, découverte enrichie en v2.",
      "options": ["Liste simple v1", "Catégories v1", "Découverte enrichie v1"],
      "mockupRef": "storefront"
    },
    {
      "id": "3-D2",
      "groupId": "order-flow",
      "section": "3. Commande",
      "type": "decision",
      "status": "a_arbitrer",
      "title": "Frais livraison et titres-restaurant",
      "description": "Pour être 100% payable en titres-restaurant, la livraison doit être absorbée dans les prix alimentaires plutôt qu'affichée comme frais non alimentaire.",
      "defaultOrientation": "Laisser le choix au restaurant, avec option absorbée mise en avant.",
      "options": ["Choix restaurant", "Absorption obligatoire", "Frais explicites obligatoires"],
      "mockupRef": "credit"
    },
    {
      "id": "3-D3",
      "groupId": "order-flow",
      "section": "3. Commande",
      "type": "decision",
      "status": "deja_arbitre",
      "title": "Commande acceptée à honorer",
      "description": "Une fois acceptée par le restaurant, la commande doit être honorée. Le paiement n'étant capturé qu'au retrait, il n'y a pas de remboursement bancaire à gérer avant capture.",
      "defaultOrientation": "Pas de refus après acceptation, sauf incident traité comme litige.",
      "options": ["Valider tel quel", "Rouvrir"],
      "mockupRef": "restaurant"
    },
    {
      "id": "3-D4",
      "groupId": "order-flow",
      "section": "3. Commande",
      "type": "decision",
      "status": "a_arbitrer",
      "title": "Rupture après commande",
      "description": "Qui prévient le client, qui décide de remplacer ou annuler, et comment le restaurant met-il les articles en rupture en temps réel ?",
      "defaultOrientation": "Le restaurant met l'article en rupture ; annulation ou crédit selon moment.",
      "options": ["Restaurant responsable", "INORES support", "Annulation automatique"],
      "mockupRef": "restaurant"
    },
    {
      "id": "3-D5",
      "groupId": "order-flow",
      "section": "3. Commande",
      "type": "decision",
      "status": "a_arbitrer",
      "title": "Timeout d'acceptation",
      "description": "Si le restaurant n'accepte pas dans X minutes, que fait la plateforme ?",
      "defaultOrientation": "Annulation sans débit et réorientation client après un délai à fixer.",
      "options": ["Annulation + réorientation", "Relance restaurant", "Support manuel"],
      "mockupRef": "tracking"
    },
    {
      "id": "3-D6",
      "groupId": "order-flow",
      "section": "3. Commande",
      "type": "decision",
      "status": "a_arbitrer",
      "title": "Aucun casier disponible",
      "description": "Bloquer la commande en amont au choix de créneau ou gérer la pénurie après paiement ?",
      "defaultOrientation": "Bloquer en amont dès qu'aucun casier adapté n'est disponible.",
      "options": ["Bloquer en amont", "Liste d'attente", "Gérer en aval"],
      "mockupRef": "locker"
    },
    {
      "id": "3-D7",
      "groupId": "order-flow",
      "section": "3. Commande",
      "type": "decision",
      "status": "a_arbitrer",
      "title": "Livraison groupée façon Frichti",
      "description": "Commande avant une heure limite, préparation du lot, un seul trajet restaurant vers la machine. Uber Direct reste plutôt un-pour-un.",
      "defaultOrientation": "Livraison groupée portée par le restaurant ; Uber Direct en un-pour-un à la demande.",
      "options": ["Batch restaurant", "Uber multi-commandes", "Pas de batch v1"],
      "mockupRef": "restaurant"
    },
    {
      "id": "4-P1",
      "groupId": "restaurant-delivery",
      "section": "4. Livraison restaurant",
      "type": "parcours",
      "status": "a_valider",
      "title": "Commande reçue",
      "description": "La commande arrive dans le dashboard et l'app mobile du restaurant avec notification.",
      "defaultOrientation": "Dashboard plus notification.",
      "options": ["Valider tel quel", "Impression obligatoire", "App mobile post-MVP"],
      "mockupRef": "restaurant"
    },
    {
      "id": "4-P2",
      "groupId": "restaurant-delivery",
      "section": "4. Livraison restaurant",
      "type": "parcours",
      "status": "a_valider",
      "title": "Acceptation et préparation",
      "description": "Le restaurant accepte la commande et la prépare.",
      "defaultOrientation": "Acceptation manuelle en v1.",
      "options": ["Valider tel quel", "Acceptation automatique", "Acceptation par délai"],
      "mockupRef": "restaurant"
    },
    {
      "id": "4-P3",
      "groupId": "restaurant-delivery",
      "section": "4. Livraison restaurant",
      "type": "parcours",
      "status": "a_valider",
      "title": "Prêt à livrer",
      "description": "Quand la commande est prête, le restaurant marque prêt à livrer. La plateforme génère QR/code de chargement lié à un casier.",
      "defaultOrientation": "QR/code généré au statut prêt.",
      "options": ["Valider tel quel", "Code dès acceptation", "Code au départ livreur"],
      "mockupRef": "restaurant"
    },
    {
      "id": "4-P4",
      "groupId": "restaurant-delivery",
      "section": "4. Livraison restaurant",
      "type": "parcours",
      "status": "a_valider",
      "title": "Déplacement livreur",
      "description": "Le livreur du restaurant se déplace jusqu'à la machine cible.",
      "defaultOrientation": "Instructions machine visibles côté livreur.",
      "options": ["Valider tel quel", "Carte intégrée", "Tournée multi-sites"],
      "mockupRef": "tracking"
    },
    {
      "id": "4-P5",
      "groupId": "restaurant-delivery",
      "section": "4. Livraison restaurant",
      "type": "parcours",
      "status": "a_valider",
      "title": "Ouverture chargement",
      "description": "À la machine, le livreur présente le QR de chargement ou saisit le code de secours. Le casier assigné s'ouvre.",
      "defaultOrientation": "QR d'abord, code en secours.",
      "options": ["Valider tel quel", "Code seulement", "QR seulement"],
      "mockupRef": "locker"
    },
    {
      "id": "4-P6",
      "groupId": "restaurant-delivery",
      "section": "4. Livraison restaurant",
      "type": "parcours",
      "status": "a_valider",
      "title": "Dépôt et fermeture",
      "description": "Le livreur dépose le repas, referme, et le P-KUP confirme la fermeture à la plateforme.",
      "defaultOrientation": "Fermeture P-KUP comme source de vérité.",
      "options": ["Valider tel quel", "Photo en plus", "Validation livreur seulement"],
      "mockupRef": "locker"
    },
    {
      "id": "4-P7",
      "groupId": "restaurant-delivery",
      "section": "4. Livraison restaurant",
      "type": "parcours",
      "status": "a_valider",
      "title": "Envoi du code client",
      "description": "La plateforme envoie QR/code de retrait au client par SMS, e-mail et PWA après fermeture confirmée.",
      "defaultOrientation": "Envoi après fermeture casier.",
      "options": ["Valider tel quel", "Envoi dès départ livreur", "PWA uniquement"],
      "mockupRef": "tracking"
    },
    {
      "id": "4-P8",
      "groupId": "restaurant-delivery",
      "section": "4. Livraison restaurant",
      "type": "parcours",
      "status": "a_valider",
      "title": "Retrait client",
      "description": "Le client présente son QR de retrait ou saisit le code, récupère le repas et referme.",
      "defaultOrientation": "QR d'abord, code en secours.",
      "options": ["Valider tel quel", "Code seulement", "QR seulement"],
      "mockupRef": "locker"
    },
    {
      "id": "4-P9",
      "groupId": "restaurant-delivery",
      "section": "4. Livraison restaurant",
      "type": "parcours",
      "status": "a_valider",
      "title": "Commande terminée",
      "description": "La plateforme marque la commande terminée et libère le casier après fermeture confirmée.",
      "defaultOrientation": "Libération après retrait et fermeture.",
      "options": ["Valider tel quel", "Libération à l'ouverture", "Contrôle manuel"],
      "mockupRef": "locker"
    },
    {
      "id": "4-PG1",
      "groupId": "restaurant-delivery",
      "section": "4. Livraison groupée",
      "type": "parcours",
      "status": "a_valider",
      "title": "Heure limite batch",
      "description": "Les commandes du créneau sont prises jusqu'à une heure de coupure paramétrable et rattachées au même lot de livraison.",
      "defaultOrientation": "Heure limite paramétrable.",
      "options": ["Valider tel quel", "Fixe pour tous", "Par site seulement"],
      "mockupRef": "restaurant"
    },
    {
      "id": "4-PG2",
      "groupId": "restaurant-delivery",
      "section": "4. Livraison groupée",
      "type": "parcours",
      "status": "a_valider",
      "title": "Consolidation du lot",
      "description": "Le restaurant voit le lot consolidé à préparer et livrer ensemble dans une vue tournée.",
      "defaultOrientation": "Vue lot/tournée dans le dashboard.",
      "options": ["Valider tel quel", "Export papier", "App livreur dédiée"],
      "mockupRef": "restaurant"
    },
    {
      "id": "4-PG3",
      "groupId": "restaurant-delivery",
      "section": "4. Livraison groupée",
      "type": "parcours",
      "status": "a_valider",
      "title": "Réservation des casiers du lot",
      "description": "La plateforme réserve N casiers sur la machine cible et vérifie qu'il y a assez de places avant le départ.",
      "defaultOrientation": "Réserver le lot selon le créneau de livraison groupé.",
      "options": ["Valider tel quel", "Réserver dès commande", "Réserver au départ livreur"],
      "mockupRef": "locker"
    },
    {
      "id": "4-PG4",
      "groupId": "restaurant-delivery",
      "section": "4. Livraison groupée",
      "type": "parcours",
      "status": "deja_arbitre",
      "title": "Chargement un casier par commande",
      "description": "Un casier par commande, chacun ouvert avec son propre QR/code. Le restaurant doit étiqueter chaque sac avec le code livreur pour éviter les erreurs.",
      "defaultOrientation": "Un casier et un code par commande, étiquette obligatoire en volume.",
      "options": ["Valider tel quel", "Rouvrir"],
      "mockupRef": "restaurant"
    },
    {
      "id": "4-PG5",
      "groupId": "restaurant-delivery",
      "section": "4. Livraison groupée",
      "type": "parcours",
      "status": "a_valider",
      "title": "Confirmation au fil du chargement",
      "description": "Chaque fermeture confirmée déclenche le statut déposée et l'envoi du code client pour la commande correspondante.",
      "defaultOrientation": "Envoyer les codes au fil des fermetures.",
      "options": ["Valider tel quel", "Envoyer tout le lot à la fin", "Envoyer avant chargement"],
      "mockupRef": "tracking"
    },
    {
      "id": "4-PG6",
      "groupId": "restaurant-delivery",
      "section": "4. Livraison groupée",
      "type": "parcours",
      "status": "a_valider",
      "title": "Retrait individuel",
      "description": "Chaque client récupère sa commande avec son propre QR/code.",
      "defaultOrientation": "Retrait individuel inchangé.",
      "options": ["Valider tel quel", "Retrait groupé", "Support sur site"],
      "mockupRef": "locker"
    },
    {
      "id": "4-D1",
      "groupId": "restaurant-delivery",
      "section": "4. Livraison restaurant",
      "type": "decision",
      "status": "deja_arbitre",
      "title": "Réservation casier",
      "description": "Un casier est réservé dès la commande passée et autorisée. Si la commande est annulée, il est libéré.",
      "defaultOrientation": "Réservation liée au cycle de vie de commande.",
      "options": ["Valider tel quel", "Rouvrir"],
      "mockupRef": "locker"
    },
    {
      "id": "4-D2",
      "groupId": "restaurant-delivery",
      "section": "4. Livraison restaurant",
      "type": "decision",
      "status": "a_arbitrer",
      "title": "Identification du livreur restaurant",
      "description": "Code de chargement sans compte pour coursier variable, ou comptes livreurs si employés du restaurant.",
      "defaultOrientation": "QR/code sans compte par défaut, comptes livreurs si besoin.",
      "options": ["Code sans compte", "Comptes livreurs", "Deux modes"],
      "mockupRef": "restaurant"
    },
    {
      "id": "4-D3",
      "groupId": "restaurant-delivery",
      "section": "4. Livraison restaurant",
      "type": "decision",
      "status": "a_arbitrer",
      "title": "Gestion de tournée restaurant",
      "description": "Attribuer plusieurs commandes à un livreur, éventuellement vers plusieurs sites, avec regroupement et ordre des arrêts.",
      "defaultOrientation": "Vue tournée simple pour le batch, gestion multi-sites en v2.",
      "options": ["Vue tournée simple", "Gestion complète v1", "Hors périmètre v1"],
      "mockupRef": "restaurant"
    },
    {
      "id": "4-D4",
      "groupId": "restaurant-delivery",
      "section": "4. Livraison restaurant",
      "type": "decision",
      "status": "a_arbitrer",
      "title": "Heure de livraison estimée",
      "description": "Saisie par le livreur ou déduction progressive par l'app selon les temps observés.",
      "defaultOrientation": "Saisie livreur au lancement, apprentissage ensuite.",
      "options": ["Saisie livreur", "Calcul automatique", "Créneau fixe uniquement"],
      "mockupRef": "tracking"
    },
    {
      "id": "4-D5",
      "groupId": "restaurant-delivery",
      "section": "4. Livraison restaurant",
      "type": "decision",
      "status": "deja_arbitre",
      "title": "Pas de livreur trop tôt",
      "description": "Le casier est réservé dès la commande. Le vrai risque est une commande qui n'arrive jamais : le casier doit être libéré après un délai.",
      "defaultOrientation": "Timeout à fixer, exemple 4h.",
      "options": ["Valider tel quel", "Rouvrir"],
      "mockupRef": "locker"
    },
    {
      "id": "4-D6",
      "groupId": "restaurant-delivery",
      "section": "4. Livraison groupée",
      "type": "decision",
      "status": "a_valider",
      "title": "Fenêtre de réservation du batch",
      "description": "En livraison groupée, la réservation des casiers se cale sur le créneau du lot, pas sur un timeout par commande individuelle.",
      "defaultOrientation": "Fenêtre calée sur le créneau groupé.",
      "options": ["Valider tel quel", "Réserver dès chaque commande", "Réserver au départ"],
      "mockupRef": "locker"
    },
    {
      "id": "4-D7",
      "groupId": "restaurant-delivery",
      "section": "4. Livraison restaurant",
      "type": "decision",
      "status": "a_arbitrer",
      "title": "Dispatch des casiers",
      "description": "Casiers fixes par restaurant ou pool dynamique partagé selon le volume de commandes.",
      "defaultOrientation": "Pool dynamique partagé, avec blocage commande si plus de casier libre.",
      "options": ["Pool dynamique", "Casiers fixes par restaurant", "Hybride"],
      "mockupRef": "locker"
    },
    {
      "id": "4-D9",
      "groupId": "restaurant-delivery",
      "section": "4. Livraison groupée",
      "type": "decision",
      "status": "a_arbitrer",
      "title": "Heure de coupure groupé",
      "description": "Heure fixe pour tous ou paramétrable par restaurant, site ou créneau.",
      "defaultOrientation": "Paramétrable par restaurant.",
      "options": ["Par restaurant", "Par site", "Fixe pour tous"],
      "mockupRef": "restaurant"
    },
    {
      "id": "4-D10",
      "groupId": "restaurant-delivery",
      "section": "4. Livraison groupée",
      "type": "decision",
      "status": "a_arbitrer",
      "title": "Étiquetage commande / casier",
      "description": "Le P-KUP ne peut pas porter toute l'identification de commande à l'écran. Pour le batch, le restaurant doit imprimer une étiquette avec le code livreur sur chaque commande.",
      "defaultOrientation": "Étiqueteuse obligatoire dès qu'il y a du volume groupé.",
      "options": ["Étiqueteuse obligatoire", "Ticket papier manuel", "Code écrit à la main"],
      "mockupRef": "restaurant"
    },
    {
      "id": "4-D11",
      "groupId": "restaurant-delivery",
      "section": "4. Livraison groupée",
      "type": "decision",
      "status": "a_arbitrer",
      "title": "Commande non prête dans un batch",
      "description": "Avant le départ, le restaurant valide le transfert cuisine vers livreur. Si une commande n'est pas prête et que le batch part, on annule côté client et on libère le casier.",
      "defaultOrientation": "Annuler la commande non prête avant départ du batch et libérer le casier.",
      "options": ["Annuler + libérer", "Reporter au batch suivant", "Livraison séparée"],
      "mockupRef": "restaurant"
    },
    {
      "id": "5-P1",
      "groupId": "uber-direct",
      "section": "5. Uber Direct",
      "type": "parcours",
      "status": "a_valider",
      "title": "Commande acceptée par le restaurant",
      "description": "La commande arrive au restaurant, il accepte et prépare.",
      "defaultOrientation": "Même début que livraison restaurant.",
      "options": ["Valider tel quel", "Déclencher devis avant acceptation", "Uber seulement après prêt"],
      "mockupRef": "restaurant"
    },
    {
      "id": "5-P2",
      "groupId": "uber-direct",
      "section": "5. Uber Direct",
      "type": "parcours",
      "status": "a_valider",
      "title": "Création livraison Uber Direct",
      "description": "Après devis d'éligibilité, la plateforme crée la livraison du restaurant vers la machine avec instructions d'accès et QR/code de chargement.",
      "defaultOrientation": "Create Delivery à prêt, avec dropoff LEAVE_AT_DOOR.",
      "options": ["Valider tel quel", "Créer à acceptation", "Créer à créneau planifié"],
      "mockupRef": "tracking"
    },
    {
      "id": "5-P3",
      "groupId": "uber-direct",
      "section": "5. Uber Direct",
      "type": "parcours",
      "status": "a_valider",
      "title": "Suivi Uber",
      "description": "Uber renvoie identifiant, URL de suivi et webhooks. La position coursier peut être envoyée toutes les 20 secondes.",
      "defaultOrientation": "Afficher le suivi côté client.",
      "options": ["Valider tel quel", "Suivi simplifié", "Pas de suivi v1"],
      "mockupRef": "tracking"
    },
    {
      "id": "5-P4",
      "groupId": "uber-direct",
      "section": "5. Uber Direct",
      "type": "parcours",
      "status": "a_valider",
      "title": "Assignation coursier",
      "description": "Un coursier Uber est assigné automatiquement et récupère le repas au restaurant.",
      "defaultOrientation": "Process Uber standard.",
      "options": ["Valider tel quel", "Contact restaurant visible", "Contrôle INORES"],
      "mockupRef": "tracking"
    },
    {
      "id": "5-P5",
      "groupId": "uber-direct",
      "section": "5. Uber Direct",
      "type": "parcours",
      "status": "deja_arbitre",
      "title": "Ouverture P-KUP par le coursier",
      "description": "Le coursier ouvre avec QR et/ou code transmis dans les instructions. Le code court reste le plus fiable pour un coursier tiers.",
      "defaultOrientation": "QR plus code dans les instructions Uber.",
      "options": ["Valider tel quel", "Rouvrir"],
      "mockupRef": "locker"
    },
    {
      "id": "5-P6",
      "groupId": "uber-direct",
      "section": "5. Uber Direct",
      "type": "parcours",
      "status": "a_valider",
      "title": "Dépôt Uber dans le casier",
      "description": "Le coursier présente le QR ou saisit le code, le P-KUP ouvre, il dépose et referme.",
      "defaultOrientation": "Fermeture casier obligatoire.",
      "options": ["Valider tel quel", "Photo en plus", "PIN en plus"],
      "mockupRef": "locker"
    },
    {
      "id": "5-P7",
      "groupId": "uber-direct",
      "section": "5. Uber Direct",
      "type": "parcours",
      "status": "deja_arbitre",
      "title": "Source de vérité dépôt",
      "description": "La fermeture confirmée par le P-KUP prime sur le statut delivered Uber. Le code client part seulement après fermeture P-KUP.",
      "defaultOrientation": "P-KUP source de vérité.",
      "options": ["Valider tel quel", "Rouvrir"],
      "mockupRef": "locker"
    },
    {
      "id": "5-P8",
      "groupId": "uber-direct",
      "section": "5. Uber Direct",
      "type": "parcours",
      "status": "a_valider",
      "title": "Récupération client",
      "description": "Le retrait client est identique au parcours restaurant.",
      "defaultOrientation": "Réutiliser le même parcours de retrait.",
      "options": ["Valider tel quel", "Parcours spécifique Uber", "Support renforcé"],
      "mockupRef": "locker"
    },
    {
      "id": "5-D1",
      "groupId": "uber-direct",
      "section": "5. Uber Direct",
      "type": "decision",
      "status": "a_arbitrer",
      "title": "Qui paie la course Uber Direct",
      "description": "Compte INORES unique avec marge et pilotage central, ou compte par restaurant avec facturation directe.",
      "defaultOrientation": "Compte INORES unique.",
      "options": ["Compte INORES unique", "Compte par restaurant", "Décision par restaurant"],
      "mockupRef": "tracking"
    },
    {
      "id": "5-D2",
      "groupId": "uber-direct",
      "section": "5. Uber Direct",
      "type": "decision",
      "status": "a_arbitrer",
      "title": "ASAP ou planifié",
      "description": "Déclencher la course dès prêt ou planifier le retrait sur le créneau client.",
      "defaultOrientation": "Planifié sur le créneau client pour le déjeuner.",
      "options": ["Planifié", "ASAP", "Selon restaurant"],
      "mockupRef": "tracking"
    },
    {
      "id": "5-D3",
      "groupId": "uber-direct",
      "section": "5. Uber Direct",
      "type": "decision",
      "status": "deja_arbitre",
      "title": "Réconciliation Uber / P-KUP",
      "description": "Si Uber indique delivered sans fermeture casier, on lève une alerte et on n'acte pas le dépôt.",
      "defaultOrientation": "Dépôt acté uniquement sur événement P-KUP.",
      "options": ["Valider tel quel", "Rouvrir"],
      "mockupRef": "tracking"
    },
    {
      "id": "5-D4",
      "groupId": "uber-direct",
      "section": "5. Uber Direct",
      "type": "decision",
      "status": "a_arbitrer",
      "title": "Coursier ne trouve pas la machine",
      "description": "Protocole de secours pour sites à plusieurs P-KUP, halls fermés, descriptions d'accès insuffisantes.",
      "defaultOrientation": "Instructions très soignées plus contact support.",
      "options": ["Instructions + support", "Ouverture support temps réel", "Pas d'Uber sur sites complexes"],
      "mockupRef": "tracking"
    },
    {
      "id": "5-D5",
      "groupId": "uber-direct",
      "section": "5. Uber Direct",
      "type": "decision",
      "status": "a_arbitrer",
      "title": "Coursier n'ouvre pas le casier",
      "description": "Gérer code expiré, mauvaise machine, machine hors ligne, instructions non lues ou pas de réseau.",
      "defaultOrientation": "QR + code, fenêtre large, ouverture à distance admin, réémission via suivi.",
      "options": ["Plan de secours complet", "Support manuel", "Annulation retour resto"],
      "mockupRef": "locker"
    },
    {
      "id": "5-D6",
      "groupId": "uber-direct",
      "section": "5. Uber Direct",
      "type": "decision",
      "status": "a_arbitrer",
      "title": "Livraison impossible",
      "description": "Si rien n'est déposé ni récupéré, aucun débit client. Il faut fixer délai d'échec, notification et relance.",
      "defaultOrientation": "Pas de débit, relance ou annulation selon délai à fixer.",
      "options": ["Annuler après délai", "Relancer Uber", "Basculer livreur restaurant"],
      "mockupRef": "tracking"
    },
    {
      "id": "5-D7",
      "groupId": "uber-direct",
      "section": "5. Uber Direct",
      "type": "decision",
      "status": "a_arbitrer",
      "title": "Course annulée et réassignation",
      "description": "Uber réassigne avant pickup si possible ; après annulation ferme, il faut recréer une livraison. Retour restaurant par défaut.",
      "defaultOrientation": "Laisser Uber réassigner, recréer après annulation ferme, retour resto.",
      "options": ["Réessayer Uber", "Retour resto", "Annulation client"],
      "mockupRef": "tracking"
    },
    {
      "id": "5-D8",
      "groupId": "uber-direct",
      "section": "5. Uber Direct",
      "type": "decision",
      "status": "a_arbitrer",
      "title": "Fiabilité des instructions coursier",
      "description": "Les coursiers ne lisent pas toujours les instructions. Le code doit être court, très visible, avec QR en renfort.",
      "defaultOrientation": "Code court visible plus QR en renfort.",
      "options": ["Code + QR", "Code seulement", "QR seulement"],
      "mockupRef": "tracking"
    },
    {
      "id": "6-D1",
      "groupId": "pkup",
      "section": "6. P-KUP",
      "type": "decision",
      "status": "deja_arbitre",
      "title": "Capacités confirmées P-KUP",
      "description": "Assigner un casier, ouvrir par QR ou code, confirmer fermeture, remonter état casier et état machine. QR d'abord, code en secours.",
      "defaultOrientation": "Utiliser QR + code pour chargement et retrait.",
      "options": ["Valider tel quel", "Rouvrir"],
      "mockupRef": "locker"
    },
    {
      "id": "6-P1",
      "groupId": "pkup",
      "section": "6. P-KUP",
      "type": "parcours",
      "status": "a_valider",
      "title": "Code de retrait envoyé",
      "description": "La plateforme a envoyé au client son QR de retrait et son code de secours.",
      "defaultOrientation": "QR + code envoyé après dépôt.",
      "options": ["Valider tel quel", "Code seulement", "QR seulement"],
      "mockupRef": "tracking"
    },
    {
      "id": "6-P2",
      "groupId": "pkup",
      "section": "6. P-KUP",
      "type": "parcours",
      "status": "a_valider",
      "title": "Présentation QR ou code",
      "description": "Le client présente le QR au lecteur ou saisit le code sur l'écran.",
      "defaultOrientation": "QR d'abord, code secours.",
      "options": ["Valider tel quel", "Code d'abord", "QR uniquement"],
      "mockupRef": "locker"
    },
    {
      "id": "6-P3",
      "groupId": "pkup",
      "section": "6. P-KUP",
      "type": "parcours",
      "status": "a_valider",
      "title": "Ouverture et capture paiement",
      "description": "Le P-KUP valide et ouvre le casier. Cet événement déclenche la capture du paiement.",
      "defaultOrientation": "Capture au retrait confirmé.",
      "options": ["Valider tel quel", "Capture après fermeture", "Capture à la commande"],
      "mockupRef": "locker"
    },
    {
      "id": "6-P4",
      "groupId": "pkup",
      "section": "6. P-KUP",
      "type": "parcours",
      "status": "a_valider",
      "title": "Récupération et fermeture",
      "description": "Le client récupère, puis referme la porte.",
      "defaultOrientation": "Fermeture obligatoire.",
      "options": ["Valider tel quel", "Ouverture suffit", "Alerte si porte ouverte"],
      "mockupRef": "locker"
    },
    {
      "id": "6-P5",
      "groupId": "pkup",
      "section": "6. P-KUP",
      "type": "parcours",
      "status": "a_valider",
      "title": "Commande terminée côté machine",
      "description": "Le P-KUP confirme la fermeture, la plateforme termine la commande et libère le casier.",
      "defaultOrientation": "Libération après fermeture.",
      "options": ["Valider tel quel", "Libération après ouverture", "Contrôle support"],
      "mockupRef": "locker"
    },
    {
      "id": "6-D2",
      "groupId": "pkup",
      "section": "6. P-KUP",
      "type": "question",
      "status": "pour_thierry",
      "title": "API ou SDK P-KUP",
      "description": "Existe-t-il une API documentée et un SDK, ou faut-il tout construire avec Thierry ?",
      "defaultOrientation": "Point bloquant du chiffrage.",
      "options": [],
      "mockupRef": "locker"
    },
    {
      "id": "6-D3",
      "groupId": "pkup",
      "section": "6. P-KUP",
      "type": "question",
      "status": "pour_thierry",
      "title": "Validation QR/code",
      "description": "La validation se fait-elle côté plateforme par appel API, ou côté machine avec codes pré-poussés ?",
      "defaultOrientation": "Impact mode hors ligne.",
      "options": [],
      "mockupRef": "locker"
    },
    {
      "id": "6-D4",
      "groupId": "pkup",
      "section": "6. P-KUP",
      "type": "decision",
      "status": "a_arbitrer",
      "title": "Casier chargé trop longtemps",
      "description": "Au bout de combien de temps relance-t-on, capture-t-on, vide-t-on, donne-t-on ou jette-t-on le repas ?",
      "defaultOrientation": "Relances puis libération après une durée à fixer, exemple 4h.",
      "options": ["4h puis libération", "Jusqu'à fin de journée", "Traitement manuel"],
      "mockupRef": "locker"
    },
    {
      "id": "6-D5",
      "groupId": "pkup",
      "section": "6. P-KUP",
      "type": "decision",
      "status": "a_arbitrer",
      "title": "Porte mal refermée ou forcée",
      "description": "Définir alerte, responsable et blocage du casier.",
      "defaultOrientation": "Alerte admin et blocage jusqu'à vérification.",
      "options": ["Alerte + blocage", "Alerte seulement", "Traitement lieu hôte"],
      "mockupRef": "locker"
    },
    {
      "id": "6-D6",
      "groupId": "pkup",
      "section": "6. P-KUP",
      "type": "decision",
      "status": "a_arbitrer",
      "title": "Casier hors service",
      "description": "La plateforme retire-t-elle automatiquement le casier du pool disponible ?",
      "defaultOrientation": "Oui, retrait automatique.",
      "options": ["Retrait automatique", "Retrait manuel", "Alerte seulement"],
      "mockupRef": "locker"
    },
    {
      "id": "6-D7",
      "groupId": "pkup",
      "section": "6. P-KUP",
      "type": "decision",
      "status": "a_arbitrer",
      "title": "Hygiène et nettoyage",
      "description": "Définir le responsable du nettoyage : lieu hôte, INORES, restaurant ou prestataire.",
      "defaultOrientation": "À définir avec le lieu hôte au contrat.",
      "options": ["Lieu hôte", "INORES", "Prestataire"],
      "mockupRef": "locker"
    },
    {
      "id": "6-D8",
      "groupId": "pkup",
      "section": "6. P-KUP",
      "type": "question",
      "status": "pour_thierry",
      "title": "Mode dégradé hors ligne",
      "description": "Si la machine perd le réseau, peut-elle continuer à ouvrir sur QR ou codes déjà connus ?",
      "defaultOrientation": "À confirmer côté Thierry.",
      "options": [],
      "mockupRef": "locker"
    },
    {
      "id": "7-D1",
      "groupId": "payment",
      "section": "7. Paiement",
      "type": "decision",
      "status": "deja_arbitre",
      "title": "Lyra Collect Marketplace",
      "description": "Lyra est le PSP unique : CB et titres-restaurant via CONECS, multi-vendeurs, contrat TRD par restaurant, split TR/CB.",
      "defaultOrientation": "Plus de Stripe dans le flux.",
      "options": ["Valider tel quel", "Rouvrir"],
      "mockupRef": "credit"
    },
    {
      "id": "7-D2",
      "groupId": "payment",
      "section": "7. Paiement",
      "type": "decision",
      "status": "deja_arbitre",
      "title": "Décisions techniques paiement",
      "description": "Redirection Lyra, IPN signé HMAC comme source de vérité, provider Medusa custom, store credit seller-scoped.",
      "defaultOrientation": "Intégration custom Lyra dans Medusa.",
      "options": ["Valider tel quel", "Rouvrir"],
      "mockupRef": "credit"
    },
    {
      "id": "7-D3",
      "groupId": "payment",
      "section": "7. Paiement",
      "type": "decision",
      "status": "a_verifier",
      "title": "Capture différée TR",
      "description": "Autorisation à la commande et capture au retrait. À vérifier côté CONECS/TR, notamment durée de validité pour commande planifiée.",
      "defaultOrientation": "Vérifier support autorisation puis capture au retrait.",
      "options": ["À vérifier Lyra/CONECS", "Capture immédiate", "TR post-MVP"],
      "mockupRef": "credit"
    },
    {
      "id": "7-D4",
      "groupId": "payment",
      "section": "7. Paiement",
      "type": "decision",
      "status": "a_arbitrer",
      "title": "Contrat CONECS e-commerce",
      "description": "Seuls les contrats e-commerce fonctionnent en ligne. Qui pilote CNTR, Edenred, rattachement plateforme et SIRET ?",
      "defaultOrientation": "INORES accompagne, le restaurant reste titulaire.",
      "options": ["INORES accompagne", "Restaurant autonome", "Prestataire onboarding"],
      "mockupRef": "credit"
    },
    {
      "id": "7-D5",
      "groupId": "payment",
      "section": "7. Paiement",
      "type": "decision",
      "status": "a_arbitrer",
      "title": "Flux financier",
      "description": "Paiement direct au restaurant sous-marchand, pas d'encaissement centralisé INORES, rémunération par commission et/ou abonnement.",
      "defaultOrientation": "Paiement direct restaurant, rémunération INORES mixte.",
      "options": ["Paiement direct resto", "Encaissement centralisé", "À valider juridique"],
      "mockupRef": "credit"
    },
    {
      "id": "7-D6",
      "groupId": "payment",
      "section": "7. Paiement",
      "type": "decision",
      "status": "a_valider",
      "title": "Crédit restaurant",
      "description": "Le crédit compense les litiges après capture. Pour un litige restaurant, il est d'abord utilisable chez le restaurant concerné.",
      "defaultOrientation": "Avoir seller-scoped pour litiges restaurant.",
      "options": ["Valider seller-scoped", "Crédit plateforme", "Deux portées selon cause"],
      "mockupRef": "credit"
    },
    {
      "id": "7-D7",
      "groupId": "payment",
      "section": "7. Paiement",
      "type": "decision",
      "status": "a_verifier",
      "title": "Crédit et règles titres-restaurant",
      "description": "Vérifier que transformer un TR capturé en avoir alimentaire ne constitue pas une conversion interdite.",
      "defaultOrientation": "À valider juridiquement avec CONECS/Lyra.",
      "options": ["À vérifier", "Limiter aux CB", "Crédit alimentaire strict"],
      "mockupRef": "credit"
    },
    {
      "id": "7-D8",
      "groupId": "payment",
      "section": "7. Paiement",
      "type": "decision",
      "status": "a_arbitrer",
      "title": "Portée du crédit",
      "description": "Seller-scoped pour erreur restaurant, crédit plateforme pour défaillance machine ou INORES.",
      "defaultOrientation": "Les deux portées selon l'origine de l'échec.",
      "options": ["Deux portées", "Seller-scoped uniquement", "Plateforme uniquement"],
      "mockupRef": "credit"
    },
    {
      "id": "7-D9",
      "groupId": "payment",
      "section": "7. Paiement",
      "type": "decision",
      "status": "a_valider",
      "title": "Pas de prélèvement sans récupération",
      "description": "Une commande non livrée ou jamais récupérée n'est pas débitée, sauf cas no-show défini.",
      "defaultOrientation": "Capture au retrait, no-show à part.",
      "options": ["Valider tel quel", "Capture au dépôt", "Capture à la commande"],
      "mockupRef": "credit"
    },
    {
      "id": "7-D10",
      "groupId": "payment",
      "section": "7. Paiement",
      "type": "decision",
      "status": "a_valider",
      "title": "Preuve par le casier",
      "description": "Logs P-KUP d'ouverture et fermeture comme source de vérité. Pas de photo client requise pour prouver un problème de réception.",
      "defaultOrientation": "Log casier prime.",
      "options": ["Valider tel quel", "Photo Uber en complément", "Support manuel"],
      "mockupRef": "locker"
    },
    {
      "id": "7-D11",
      "groupId": "payment",
      "section": "7. Paiement",
      "type": "decision",
      "status": "a_valider",
      "title": "Fenêtre d'annulation client",
      "description": "Annulation libre avant acceptation restaurant. Après préparation, pas de remboursement dû, au plus un geste en crédit.",
      "defaultOrientation": "Annulation libre avant acceptation.",
      "options": ["Valider tel quel", "Annulation jusqu'au dépôt", "Aucune annulation"],
      "mockupRef": "tracking"
    },
    {
      "id": "7-D12",
      "groupId": "payment",
      "section": "7. Paiement",
      "type": "decision",
      "status": "a_valider",
      "title": "Signalement et coût responsable",
      "description": "Litige signalé sous délai court, coût refacturé au responsable de l'erreur plutôt que supporté systématiquement par INORES.",
      "defaultOrientation": "48h comme référence, refacturation au responsable.",
      "options": ["Valider tel quel", "Délai plus court", "Traitement manuel"],
      "mockupRef": "admin"
    },
    {
      "id": "7-D13",
      "groupId": "payment",
      "section": "7. Paiement",
      "type": "decision",
      "status": "a_arbitrer",
      "title": "Délais litige et no-show",
      "description": "Fixer délai de signalement litige et délai de déclaration no-show ou échec livraison.",
      "defaultOrientation": "48h pour litige, 4h pour no-show.",
      "options": ["48h / 4h", "24h / 2h", "Traitement par site"],
      "mockupRef": "tracking"
    },
    {
      "id": "7-D14",
      "groupId": "payment",
      "section": "7. Paiement",
      "type": "decision",
      "status": "a_arbitrer",
      "title": "Remboursement ou crédit",
      "description": "Définir remboursement vs crédit selon les cas, automatique sous seuil ou manuel pour anti-fraude.",
      "defaultOrientation": "Crédit par défaut après capture, automatique sous seuil, manuel au-delà.",
      "options": ["Crédit sous seuil", "Manuel partout", "Remboursement prioritaire"],
      "mockupRef": "credit"
    },
    {
      "id": "7-D15",
      "groupId": "payment",
      "section": "7. Paiement",
      "type": "decision",
      "status": "a_arbitrer",
      "title": "Refacturation au responsable",
      "description": "Retenue sur reversement restaurant pour erreur restaurant et réclamation Uber pour échec de course.",
      "defaultOrientation": "Retenue automatique restaurant, réclamation Uber sur preuve.",
      "options": ["Automatique", "Manuel", "Pas de refacturation v1"],
      "mockupRef": "admin"
    },
    {
      "id": "7-D16",
      "groupId": "payment",
      "section": "7. Paiement",
      "type": "decision",
      "status": "a_arbitrer",
      "title": "Fraude client",
      "description": "Détection des litiges abusifs, notamment pas reçu répété malgré logs d'ouverture casier.",
      "defaultOrientation": "Seuil d'alerte basé sur logs casier, revue manuelle au-delà.",
      "options": ["Seuil + revue", "Manuel", "Blocage automatique"],
      "mockupRef": "admin"
    },
    {
      "id": "8-P1",
      "groupId": "interfaces",
      "section": "8. Interfaces",
      "type": "parcours",
      "status": "a_valider",
      "title": "Back-office admin INORES",
      "description": "Gestion lieux, restaurants, machines, commandes, finances, litiges, crédits et Uber Direct si compte unique.",
      "defaultOrientation": "Back-office minimal mais couvrant les opérations critiques.",
      "options": ["Valider tel quel", "Admin minimal MVP", "Admin avancé v1"],
      "mockupRef": "admin"
    },
    {
      "id": "8-P2",
      "groupId": "interfaces",
      "section": "8. Interfaces",
      "type": "parcours",
      "status": "a_valider",
      "title": "Dashboard restaurant",
      "description": "Catalogue, menus, ruptures, horaires, capacité, commandes, prêt, dépôt, livraison, stats, équipe RBAC, paiement.",
      "defaultOrientation": "Inclure menus et ruptures dès v1.",
      "options": ["Valider tel quel", "Dashboard très minimal", "POS prioritaire"],
      "mockupRef": "restaurant"
    },
    {
      "id": "8-P3",
      "groupId": "interfaces",
      "section": "8. Interfaces",
      "type": "parcours",
      "status": "a_valider",
      "title": "Interface client",
      "description": "Storefront, suivi temps réel, QR/code de retrait, crédit/avoir, aide et support.",
      "defaultOrientation": "PWA client complète pour commande et récupération.",
      "options": ["Valider tel quel", "Support minimal", "Crédit post-MVP"],
      "mockupRef": "storefront"
    },
    {
      "id": "8-P4",
      "groupId": "interfaces",
      "section": "8. Interfaces",
      "type": "parcours",
      "status": "a_valider",
      "title": "Interface lieu hôte",
      "description": "Reporting volume, occupation casiers, créneaux de pointe, sans gestion opérationnelle.",
      "defaultOrientation": "Reporting léger en lecture seule.",
      "options": ["Valider tel quel", "Ajouter demandes restos", "Post-MVP"],
      "mockupRef": "host"
    },
    {
      "id": "8-D1",
      "groupId": "interfaces",
      "section": "8. Interfaces",
      "type": "decision",
      "status": "a_arbitrer",
      "title": "Réception commandes restaurant",
      "description": "Dashboard/app INORES ou intégration caisse POS. L'intégration POS réduit la friction mais demande un chantier par caisse.",
      "defaultOrientation": "Dashboard plus impression ticket/étiquette en v1, POS en v2.",
      "options": ["Dashboard + impression", "POS v1", "Dashboard seul"],
      "mockupRef": "restaurant"
    },
    {
      "id": "8-D2",
      "groupId": "interfaces",
      "section": "8. Interfaces",
      "type": "decision",
      "status": "a_arbitrer",
      "title": "SAV et interface d'aide",
      "description": "Qui répond au client et quel niveau d'automatisation pour code manquant, casier bloqué, plat manquant, annulation, crédit ?",
      "defaultOrientation": "Self-service avec réouverture automatisée, escalade INORES.",
      "options": ["Self-service + INORES", "Support humain INORES", "Restaurant répond"],
      "mockupRef": "tracking"
    },
    {
      "id": "8-D3",
      "groupId": "interfaces",
      "section": "8. Interfaces",
      "type": "decision",
      "status": "a_arbitrer",
      "title": "Demandes restaurant côté lieu hôte",
      "description": "Le lieu hôte voit-il les restaurants référencés et peut-il demander ajout ou retrait ?",
      "defaultOrientation": "Visibilité et droit de retrait a posteriori.",
      "options": ["Visibilité + retrait", "Validation préalable", "Aucune action"],
      "mockupRef": "host"
    },
    {
      "id": "8-D4",
      "groupId": "interfaces",
      "section": "8. Interfaces",
      "type": "decision",
      "status": "a_arbitrer",
      "title": "Contrepartie lieu hôte",
      "description": "Le lieu hôte reçoit-il une commission, des données, ou seulement la machine gratuite ?",
      "defaultOrientation": "Machine gratuite, avec option subvention employeur.",
      "options": ["Machine gratuite", "Commission", "Subvention employeur"],
      "mockupRef": "host"
    },
    {
      "id": "A-D1",
      "groupId": "annexes",
      "section": "Annexe A. Uber Direct",
      "type": "decision",
      "status": "a_arbitrer",
      "title": "Identifiants Uber Direct",
      "description": "Un seul jeu d'identifiants côté INORES ou un par restaurant, avec impact API, facturation et marge.",
      "defaultOrientation": "Compte unique INORES.",
      "options": ["Compte unique", "Compte par restaurant", "Selon site"],
      "mockupRef": "tracking"
    },
    {
      "id": "A-D2",
      "groupId": "annexes",
      "section": "Annexe A. Uber Direct",
      "type": "question",
      "status": "pour_thierry",
      "title": "Événement fermeture fiable",
      "description": "L'API P-KUP renvoie-t-elle bien un événement de fermeture de porte fiable pour servir de source de vérité ?",
      "defaultOrientation": "À confirmer côté Thierry.",
      "options": [],
      "mockupRef": "locker"
    },
    {
      "id": "A-D3",
      "groupId": "annexes",
      "section": "Annexe A. Uber Direct",
      "type": "question",
      "status": "pour_thierry",
      "title": "Format du code de chargement",
      "description": "Quelle longueur et quel format pour le code saisi par le coursier, entre sécurité et facilité de saisie ?",
      "defaultOrientation": "Code court à 4 chiffres plus QR.",
      "options": [],
      "mockupRef": "locker"
    },
    {
      "id": "A-D4",
      "groupId": "annexes",
      "section": "Annexe A. Uber Direct",
      "type": "decision",
      "status": "a_arbitrer",
      "title": "Échec coursier Uber",
      "description": "Politique en cas de FAILED ou canceled : retour des items au restaurant, pas de débit, relance ou annulation.",
      "defaultOrientation": "Retour au restaurant par défaut, pas de débit, relance selon délai.",
      "options": ["Retour resto", "Relance Uber", "Annulation directe"],
      "mockupRef": "tracking"
    },
    {
      "id": "A-D5",
      "groupId": "annexes",
      "section": "Annexe A. Uber Direct",
      "type": "decision",
      "status": "a_verifier",
      "title": "Couverture Uber Direct",
      "description": "Tester la couverture réelle des sites cibles via devis avant de promettre Uber Direct aux restaurants.",
      "defaultOrientation": "À vérifier terrain par site.",
      "options": ["Tester tous les sites", "Pilote site unique", "Reporter Uber"],
      "mockupRef": "tracking"
    },
    {
      "id": "B-D1",
      "groupId": "annexes",
      "section": "Annexe B. Alternatives livraison",
      "type": "decision",
      "status": "a_arbitrer",
      "title": "Stratégie transporteur",
      "description": "Un transporteur food en direct pour le MVP ou un orchestrateur comme Woop dès le départ.",
      "defaultOrientation": "Direct en MVP, orchestrateur plus tard si multi-sites.",
      "options": ["Direct MVP", "Orchestrateur v1", "Resto uniquement"],
      "mockupRef": "tracking"
    },
    {
      "id": "B-D2",
      "groupId": "annexes",
      "section": "Annexe B. Alternatives livraison",
      "type": "decision",
      "status": "a_verifier",
      "title": "Couverture et tarifs Uber / Stuart",
      "description": "Comparer devis réels Uber Direct et Stuart sur les sites cibles, avec contrainte repas chaud et zone.",
      "defaultOrientation": "À vérifier par devis comparatifs.",
      "options": ["Tester Uber + Stuart", "Uber seulement", "Stuart seulement"],
      "mockupRef": "tracking"
    },
    {
      "id": "C-D1",
      "groupId": "annexes",
      "section": "Annexe C. Business model",
      "type": "decision",
      "status": "a_arbitrer",
      "title": "Revenu côté lieu hôte",
      "description": "Machine gratuite seule ou machine gratuite plus offre de subvention employeur facturée mensuellement.",
      "defaultOrientation": "Machine gratuite au lancement, subvention employeur comme option différenciante.",
      "options": ["Machine gratuite", "Subvention employeur optionnelle", "Hôte payant"],
      "mockupRef": "host"
    },
    {
      "id": "C-D2",
      "groupId": "annexes",
      "section": "Annexe C. Business model",
      "type": "decision",
      "status": "a_verifier",
      "title": "Qualification cantine URSSAF",
      "description": "INORES peut-il bénéficier du régime restaurant d'entreprise ou seulement du régime titres-restaurant ?",
      "defaultOrientation": "À valider juridiquement.",
      "options": ["À vérifier", "Régime cantine", "TR seulement"],
      "mockupRef": "host"
    },
    {
      "id": "C-D3",
      "groupId": "annexes",
      "section": "Annexe C. Business model",
      "type": "decision",
      "status": "a_verifier",
      "title": "Cumul subvention employeur + TR",
      "description": "Valider si le cumul subvention employeur et titres-restaurant est autorisé sur une même commande.",
      "defaultOrientation": "À valider juridiquement.",
      "options": ["À vérifier", "Autoriser si validé", "Interdire le cumul"],
      "mockupRef": "credit"
    },
    {
      "id": "C-D4",
      "groupId": "annexes",
      "section": "Annexe C. Business model",
      "type": "decision",
      "status": "a_verifier",
      "title": "Facturation mensuelle hôte",
      "description": "Flux distinct du paiement client pour facturer la subvention à l'hôte, via Lyra ou outil de facturation récurrente.",
      "defaultOrientation": "À chiffrer avec l'abonnement restaurant.",
      "options": ["Lyra", "Outil facturation", "Manuel MVP"],
      "mockupRef": "host"
    }
  ]
}
