Fichiers .modpack

Un projet MODPACK = un fichier .modpack : du JSON UTF-8, indenté, à l'ordre de champs stable — lisible à l'œil et diffable dans Git, l'esprit draw.io. C'est la seule source de vérité.

Nouveau, Ouvrir, Enregistrer

Jamais de perte silencieuse

Le schéma

Le format est volontairement simple — le voici en entier, commentaires compris. Un champ inconnu est ignoré ; un champ invalide est refusé à l'ouverture avec un message précis, sans toucher au projet en cours. Les champs marqués « optionnel » peuvent être omis.

{
  "version": 1,
  "name": "Mon projet",
  "accentColor": "#3F51B5",         // optionnel : teinte du projet
  "mode": "free",                   // optionnel : "free" | "tetris"
  "tetrisEnabled": false,           // optionnel : proposer le mode Tétris
  "defaults": {                     // optionnel : défauts des nouveaux sprints
    "sprintName": "Sprint",
    "sprintCapacity": 45
  },
  "unitScale": {
    "name": "T-shirt",              // libellé de l'échelle
    "unitLabel": "pts",             // libellé de l'unité affichée
    "sizes": [                      // ordonnée par valeur croissante
      { "label": "XS", "value": 5 },
      { "label": "S",  "value": 10 },
      { "label": "M",  "value": 20 },
      { "label": "L",  "value": 40 },
      { "label": "XL", "value": 80 }
    ]
  },
  "tasks": [
    {
      "id": "t-001",
      "title": "Composant carto : configuration du workspace",
      "scope": "Cartographie",       // périmètre fonctionnel (optionnel)
      "description": "Fond de plan IGN + couches métier.", // optionnel
      "value": 10,                   // chiffrage en points = nombre de cellules
      "color": "#90CAF9",            // optionnel : couleur du bloc
      "dependsOn": ["t-000"],        // optionnel : tâches préalables
      "position": { "x": 720, "y": 96 }, // optionnel : bloc posé sur le plan
      "width": 5                     // optionnel : silhouette choisie sur le plan
    }
  ],
  "sprints": [
    {
      "id": "s-001",
      "name": "Sprint 1",
      "capacity": 45,                // points = cellules de la grille
      "position": { "x": 96, "y": 48 }, // optionnel : position sur le plan
      "dependsOn": ["s-000"],        // optionnel : sprints préalables
      "placements": [
        // anchor : cellule d'ancrage ; width : largeur choisie au
        // redimensionnement — tous deux omis si automatiques.
        { "taskId": "t-001", "anchor": 5, "width": 5 }
      ]
    }
  ]
}

L'échelle ci-dessus est celle d'un nouveau projet (t-shirt, XS=5 … XL=80, sprints de 45 pts).

Local-first, par choix

Il n'y a pas de sauvegarde automatique ni de stockage dans le navigateur : le fichier est la seule source de vérité, vous le gardez, le versionnez et le partagez comme vous voulez. Seules les préférences d'interface (thème, langue) vivent sur votre poste. Rien ne part sur un serveur — voir Vos données.