{
  "fictionalPublisherAndCampaign": true,
  "providerRequests": 0,
  "messagesSent": 0,
  "placementsCreated": 0,
  "realResource": {
    "groupKey": "backlink-html",
    "practiceDirectory": "/downloads/link-mechanics/"
  },
  "candidateSource": "https://classroom.example/resources",
  "publicationVerified": null,
  "campaign": {
    "templateGroupKey": "backlink-strategy-template",
    "start": "2030-04-01",
    "checkpoints": [
      "2030-04-01",
      "2030-04-03",
      "2030-04-08",
      "2030-04-12",
      "2030-04-15",
      "2030-04-30"
    ],
    "capMinor": 40000,
    "currency": "USD",
    "plannedMinor": 32000,
    "committedMinor": null,
    "actualMinor": null,
    "results": null
  },
  "effort": {
    "hours": [
      "2",
      "1",
      "1",
      "0.5",
      "0.5"
    ],
    "rate": "25",
    "expenses": "0",
    "currency": "USD",
    "fictional": true
  },
  "locale": "fr",
  "note": "Exercice rédigé. La ressource pédagogique est réelle ; éditeur, échanges, dates et résultats sont hypothétiques. Aucun contact ni placement n’a eu lieu.",
  "first": [
    {
      "title": "Ouvrir la vraie ressource",
      "detail": "Utilisez le guide HTML existant et son éditeur local pour comprendre les ancres.",
      "check": "Vérifiez l’accès et l’utilité pour une tâche précise."
    },
    {
      "title": "Inspecter l’exercice téléchargé",
      "detail": "Comparez href et texte visible dans l’exemple hors ligne.",
      "check": "Notez l’observation ; une modification locale ne publie rien."
    },
    {
      "title": "Rechercher une page pertinente",
      "detail": "Imaginez un cours HTML débutant sur classroom.example/resources.",
      "check": "L’éditeur est hypothétique ; vérifiez une vraie page avant sélection."
    },
    {
      "title": "Vérifier permission et contact",
      "detail": "Une ressource utile n’autorise ni soumission massive ni modification du site d’autrui.",
      "check": "Lisez les vraies consignes ; aucun message n’est envoyé ici."
    },
    {
      "title": "Séparer accord et publication",
      "detail": "L’éditeur fictif peut accepter, refuser ou ne pas répondre.",
      "check": "Seule une référence publique observée est vérifiée."
    },
    {
      "title": "Consigner et entretenir",
      "detail": "Pour une vraie publication, contrôlez source, cible, ancre, rel et date.",
      "check": "Un accès impossible reste ouvert ; aucun gain de classement n’est déduit."
    }
  ],
  "campaignSteps": [
    {
      "title": "Définir le pilote",
      "detail": "2030-04-01 : le projet fictif de contrôle de vélo fixe responsable, public et plafond de 400 USD.",
      "check": "Ce sont des hypothèses, pas une autorisation de dépenser."
    },
    {
      "title": "Inspecter la destination",
      "detail": "2030-04-03 : prévoir la révision avant toute démarche éditoriale.",
      "check": "Prouver séparément la réalisation ; une ressource inachevée bloque le contact."
    },
    {
      "title": "Vérifier les illustrations",
      "detail": "2030-04-08 : prévoir le contrôle des dessins et de l’accessibilité.",
      "check": "Vérifier instructions et droits avant de déclarer la ressource prête."
    },
    {
      "title": "Qualifier la sélection",
      "detail": "2030-04-12 : rechercher un petit groupe pertinent de rédacteurs cyclistes.",
      "check": "Justifier l’intérêt du lecteur et le canal légitime pour chaque candidat."
    },
    {
      "title": "Réexaminer avant de poursuivre",
      "detail": "2030-04-15 : comparer préparation, coût prévu et échanges réels.",
      "check": "Réviser ou suspendre si preuves, budget ou permission manquent."
    },
    {
      "title": "Clore avec les observations",
      "detail": "2030-04-30 : distinguer travail, réponses, références publiques et visites mesurées.",
      "check": "Laisser les inconnues vides ; maintenir une responsabilité de suivi."
    }
  ]
}
