{
  "$schema": "https://ecorce.app/schemas/manifest@v1.json",
  "id": "ecorce:client-comptoir-8pct@v1",
  "network": "ecorce",
  "actor": {
    "id": "act_ecorce",
    "handle": "ecorce",
    "name": "Écorce — Réseau du commerce indépendant",
    "kind": "organization",
    "role": "organization",
    "sector": "Activation client en magasin & Flotte locale",
    "location": "Montréal, Canada",
    "verified_by": [
      "passkey",
      "ecorce_registry"
    ],
    "reputation_summary": {
      "verified_proofs_count": 3,
      "trusted_circles": [
        "ecorce-b2b",
        "quebec-vrac"
      ]
    }
  },
  "intent": {
    "protocol": "ecorce.counter_loyalty_8pct@v1",
    "title": "Récompenses clients croisées à la caisse: 8 % en magasin sur portefeuille mobile",
    "summary": "Offre à tes clients une remise locale instantanée (ex. 8 % en magasin) valide entre commerces indépendants participants directement dans le portefeuille mobile du téléphone — en 3 secondes au comptoir, sans intégration de caisse ni carte plastique.",
    "description": "Offre à tes clients une remise locale instantanée (ex. 8 % en magasin) valide entre commerces indépendants participants directement dans le portefeuille mobile du téléphone — en 3 secondes au comptoir, sans intégration de caisse ni carte plastique.",
    "tags": [
      "each",
      "comptoir",
      "8pct",
      "fidelite",
      "montreal",
      "ecorce"
    ],
    "sample_data_notice": "données d'exemple — inventées / invented example data — not any partner's real list or prices"
  },
  "trust_gate": {
    "visibility": "public",
    "allowed_actors": [
      "epicerie-du-parc",
      "epicerie-saint-laurent",
      "*"
    ],
    "call_policy": "draft_only_human_commit",
    "mode": "draft_only",
    "human_approval_on_commit": true,
    "scopes": [
      "client-comptoir-8pct:read",
      "client-comptoir-8pct:write"
    ],
    "required_scopes": [
      "client-comptoir-8pct:read",
      "client-comptoir-8pct:write"
    ],
    "required_proofs": []
  },
  "function": {
    "runtime": "ecorce_surface",
    "runtime_pool": "ecorce-partner-tools",
    "function_ref": "fn-ecorce--client-comptoir-8pct",
    "script_ref": "ecorce://ecorce-partner-tools/fn-ecorce--client-comptoir-8pct",
    "entrypoint": "handle",
    "limits": {
      "cpuMs": 50,
      "subRequests": 5
    },
    "stateful_rule_spec": {
      "state_key": "counter_pool",
      "quantity_input_field": "baskets_activated",
      "committed_field": "activated_baskets",
      "remaining_field": "remaining_baskets",
      "target_or_capacity_field": "target_baskets",
      "unit_price_cents_field": "perk_per_basket_cents",
      "collection_field": "activations",
      "record_type": "counter_activation"
    },
    "input_schema": {
      "type": "object",
      "properties": {
        "action": {
          "type": "string",
          "enum": [
            "status",
            "commit",
            "pledge",
            "book"
          ],
          "description": "Optional action ('status' to read state without creating a record)"
        },
        "baskets_activated": {
          "type": "number",
          "minimum": 1,
          "description": "Quantity field (baskets_activated)"
        },
        "note": {
          "type": "string",
          "description": "Optional note or reference"
        }
      }
    },
    "output_schema": {
      "type": "object",
      "properties": {
        "status": {
          "type": "string"
        },
        "record_to_commit": {
          "type": "object"
        },
        "state_patch": {
          "type": "object"
        }
      }
    }
  },
  "projection": {
    "surface_url": "https://ecorce.app/p/ecorce/client-comptoir-8pct",
    "page_url": "https://ecorce.app/p/ecorce/client-comptoir-8pct",
    "actor_url": "https://ecorce.app/p/ecorce",
    "sandbox_url": "https://ecorce.app/essayer?manifest=ecorce%3Aclient-comptoir-8pct%40v1",
    "mcp_tool_name": "ecorce_client_comptoir_8pct",
    "ui_layout": "card_form",
    "cta_label": "Simuler une remise client 8 % au comptoir",
    "cloneable": true,
    "headline": "Récompenses clients croisées à la caisse: 8 % en magasin sur portefeuille mobile",
    "story": "Offre à tes clients une remise locale instantanée (ex. 8 % en magasin) valide entre commerces indépendants participants directement dans le portefeuille mobile du téléphone — en 3 secondes au comptoir, sans intégration de caisse ni carte plastique. Producteurs, distributeurs et détaillants convertissent les frais publicitaires perdus en crédit direct pour les gens du quartier.",
    "facts": [
      {
        "label": "Remise directe au client",
        "value": "8 % au comptoir",
        "detail": "Ex.: 3,50 $ en crédit direct sur un achat de produits locaux et vrac, financé à même l'enveloppe commerciale."
      },
      {
        "label": "Portefeuille mobile du téléphone",
        "value": "0 carte plastique",
        "detail": "Aucune intégration de caisse ni terminal propriétaire: ton client ajoute son laissez-passer sur son téléphone en 3 secondes."
      },
      {
        "label": "Enveloppe active du groupe",
        "value": "600,00 $ / 900,00 $",
        "detail": "Enveloppe cofinancée active entre producteurs, distributeurs et épiceries indépendantes (données d'exemple)."
      },
      {
        "label": "Preuve vérifiée",
        "value": "100 % sur achat réel",
        "detail": "Zéro perte publicitaire: la remise ne se déclenche que lorsque tu confirmes la vente au comptoir."
      }
    ],
    "sections": [
      {
        "title": "1. Comment fonctionne le 8 % en magasin pour l'épicier et le producteur",
        "body": "Lorsqu'une épicerie commande un lot auprès d'un producteur ou d'un distributeur sur Écorce, 8 % de la valeur du lot est automatiquement réservé dans le pool d'activation du magasin.",
        "items": [
          "Étape 1: L'épicier reçoit ses caisses ou ses bidons 20 L sur la tournée régionale.",
          "Étape 2: Au comptoir, le client du quartier obtient son privilège direct Each sur preuve d'achat confirmée.",
          "Étape 3: Le client peut inviter un voisin avec le bouton Moi aussi, faisant revenir le quartier sans acheter de publicité."
        ]
      },
      {
        "title": "2. Synchronisation avec les bacs consignés et la flotte locale",
        "body": "Les camions et les bacs consignés qui livrent l'épicerie traversent déjà les rues où habitent ses clients.",
        "items": [
          "Affichage partagé sur les camions et bacs de livraison lors du réassort du quartier.",
          "Aucun budget perdu dans les régies publicitaires numériques externes.",
          "La relation client demeure à 100 % chez le commerçant indépendant."
        ]
      }
    ],
    "custom_html_card": "<style>.d,h1,h2,h3,.logo{letter-spacing:-0.018em!important;font-stretch:92%!important;line-height:1.04!important}</style><h3>Exemple concret de panier au comptoir (données d'exemple)</h3><table class=\"tb\" style=\"margin-top:12px\"><thead><tr><th>Produit au comptoir</th><th>Prix détail</th><th>Crédit direct Each (8 %)</th><th>Coût pub externe</th></tr></thead><tbody><tr><td><b>Savon à vaisselle écologique en remplissage (2 L)</b><br><small>Tiré du bidon vrac 20 L (CODE-VRAC-003)</small></td><td>13,50 $</td><td><b>1,08 $</b> crédité au client</td><td>0,00 $</td></tr><tr><td><b>Miel brut d'automne (pot 1 kg)</b><br><small>Issu du lot groupé saisonnier (CODE-MIEL-015)</small></td><td>18,00 $</td><td><b>1,44 $</b> crédité au client</td><td>0,00 $</td></tr><tr><td><b>Panier hebdomadaire frais &amp; vrac</b><br><small>Épicerie du Parc (Montréal, Canada)</small></td><td>45,00 $</td><td><b>3,60 $</b> en privilège direct</td><td>0,00 $</td></tr></tbody></table>"
  },
  "function_ref": "fn-ecorce--client-comptoir-8pct",
  "input_schema": {
    "type": "object",
    "properties": {
      "action": {
        "type": "string",
        "enum": [
          "status",
          "commit",
          "pledge",
          "book"
        ],
        "description": "Optional action ('status' to read state without creating a record)"
      },
      "baskets_activated": {
        "type": "number",
        "minimum": 1,
        "description": "Quantity field (baskets_activated)"
      },
      "note": {
        "type": "string",
        "description": "Optional note or reference"
      }
    }
  },
  "output_schema": {
    "type": "object",
    "properties": {
      "status": {
        "type": "string"
      },
      "record_to_commit": {
        "type": "object"
      },
      "state_patch": {
        "type": "object"
      }
    }
  }
}