{
  "format": "zenject.protocol",
  "version": 1,
  "instructions": [
    "HOW TO USE THIS FILE WITH AN AI (Claude, ChatGPT, etc.):",
    "1. Give this file to the AI together with your protocol (paste it, or attach a PDF / photo).",
    "2. Ask it to fill in the 'protocols' array using the same structure as the example below, then return the completed JSON.",
    "3. Save the AI's result as a file ending in '.zenject.json', then open it on your iPhone to import into Zenject. It previews before anything is saved.",
    "",
    "RULES FOR THE AI:",
    "- Keep 'format' and 'version' exactly as they are.",
    "- Dates ('exportedAt', 'startDate', 'endDate') must be ISO-8601 anchored to noon UTC, e.g. 2026-01-01T12:00:00Z. Use null for an open-ended 'endDate'.",
    "- 'days' is the weekly schedule as numbers, 1=Sunday … 7=Saturday. Use null for 'every day' or omit if not scheduled.",
    "- 'timeOfDay' is the time to take it, 24-hour 'HH:mm' (e.g. 08:00, 20:30). Use null for no set time.",
    "- 'doseUnit' must be one of: mg, mcg, iu.",
    "- Reconstitution: 'vialMg' = mg of compound in the vial, 'bacMl' = mL of bacteriostatic water added. Use null if not applicable (e.g. oral or pre-mixed).",
    "- 'components' is for blends only: an array of { name, mg } per ingredient, else null.",
    "- 'titration' is an optional stepped schedule: an array of { weeks, dose, unit } run in order; the last step holds until the protocol ends. Use null for a fixed dose.",
    "- 'startDate'/'endDate' on a compound are optional per-compound overrides (ISO-8601 at noon UTC). Set them ONLY when that compound runs on its own dates instead of the protocol's, e.g. it begins a few weeks in. Use null to follow the protocol.",
    "- 'fasted' is optional: true if the dose is taken fasted, else false. 'workout' is optional: 'pre' or 'post' if the dose is tied to a workout, else null.",
    "- Leave 'libraryId' as null. Zenject matches compounds to its library by name automatically.",
    "- 'colorHex' on a protocol is optional (a bamboo green like #6d9579 is fine); compound 'colorHex' can be null.",
    "- You may delete this 'instructions' field; Zenject ignores it either way.",
    "- Output ONLY valid JSON.",
    "",
    "The 'protocols' below is a filled-in EXAMPLE. Replace it with the user's real data."
  ],
  "exportedAt": "2026-01-01T12:00:00Z",
  "source": "Provider or your name",
  "protocols": [
    {
      "name": "Example Protocol",
      "colorHex": "#6d9579",
      "startDate": "2026-01-01T12:00:00Z",
      "endDate": null,
      "notes": null,
      "compounds": [
        {
          "name": "Testosterone Cypionate",
          "libraryId": null,
          "colorHex": null,
          "timeOfDay": "08:00",
          "days": [2, 5],
          "vialMg": 2000,
          "bacMl": null,
          "doseValue": 100,
          "doseUnit": "mg",
          "notes": null,
          "components": null,
          "titration": null,
          "startDate": null,
          "endDate": null,
          "fasted": false,
          "workout": null
        },
        {
          "name": "CJC-1295 / Ipamorelin",
          "libraryId": null,
          "colorHex": null,
          "timeOfDay": "22:00",
          "days": [1, 2, 3, 4, 5, 6, 7],
          "vialMg": 10,
          "bacMl": 2,
          "doseValue": 300,
          "doseUnit": "mcg",
          "notes": null,
          "components": [
            { "name": "CJC-1295", "mg": 5 },
            { "name": "Ipamorelin", "mg": 5 }
          ],
          "titration": [
            { "weeks": 4, "dose": 200, "unit": "mcg" },
            { "weeks": 4, "dose": 300, "unit": "mcg" }
          ],
          "startDate": "2026-01-29T12:00:00Z",
          "endDate": null,
          "fasted": true,
          "workout": "post"
        }
      ]
    }
  ]
}
