{
  "schemaVersion": "1.1",
  "event": {
    "id": "nature-one-2026",
    "name": "NATURE ONE 2026",
    "type": "floor-lineup-collection",
    "timezone": "Europe/Berlin",
    "dayProfiles": {
      "pydna": [
        { "id": "friday", "labelDe": "Freitag", "date": "2026-07-31" },
        { "id": "saturday", "labelDe": "Samstag", "date": "2026-08-01" }
      ],
      "camping": [
        { "id": "thursday", "labelDe": "Donnerstag", "date": "2026-07-30" },
        { "id": "friday", "labelDe": "Freitag", "date": "2026-07-31" },
        { "id": "saturday", "labelDe": "Samstag", "date": "2026-08-01" },
        { "id": "sunday", "labelDe": "Sonntag", "date": "2026-08-02" }
      ]
    },
    "existingSources": {
      "pydna": "/nature-floors-2026/nature-one-2026-chatgpt-lineup.json",
      "individualLineups": "/tech/timetable/data/lineup{stageNumber}.json"
    }
  },
  "gptInstruction": {
    "role": "Collect, read and normalize lineup data for official Pydna floors and Nature One camping floors.",
    "language": "German",
    "task": "First determine venueType. Use venueType=pydna for official stages on the Raketenbasis and venueType=camping for Camping Village floors. Pydna schedules contain Friday and Saturday only. Camping schedules contain Thursday, Friday, Saturday and Sunday. Return only valid JSON matching submissionTemplate. Never invent missing data.",
    "operatorPromptDe": "Bitte sende mir den offiziellen Floor-Namen, die zugewiesene Stage-Nummer und den vollständigen Zeitplan. Bei einem Pydna-Floor brauche ich Freitag und Samstag. Bei einem Camping-Floor brauche ich Donnerstag bis Sonntag. Für jeden Programmpunkt brauche ich Startzeit, Endzeit und Artist beziehungsweise Titel. Bitte gib auch Tage ohne Programm an.",
    "conversationFlow": [
      "Determine whether the timetable belongs to a Pydna floor or a Camping Village floor.",
      "Ask for the official floor name.",
      "Ask for the assigned numeric stage number.",
      "For venueType=pydna collect Friday and Saturday only.",
      "For venueType=camping collect Thursday through Sunday only.",
      "For each applicable day ask whether the floor is active.",
      "For each active day collect all entries with start time, end time, artist or title.",
      "Clarify entries crossing midnight.",
      "Reject overlapping or incomplete entries and ask for correction.",
      "Summarize the collected schedule for confirmation.",
      "After confirmation output only the completed JSON object."
    ],
    "validationRules": [
      "venueType must be pydna or camping.",
      "stageNumber must be a positive integer.",
      "campingFloor must equal true only when venueType=camping.",
      "floorName must not be empty.",
      "Pydna schedules must contain exactly Friday and Saturday.",
      "Camping schedules must contain exactly Thursday, Friday, Saturday and Sunday.",
      "Times must use 24-hour HH:MM format.",
      "Keep artist and floor names exactly as supplied.",
      "Do not translate artist names.",
      "Inactive days must use active=false and an empty entries array.",
      "Active days must contain at least one entry.",
      "Each timed entry requires start, end, title and type.",
      "Entries such as all-night hosts may use start=null and end=null when notes contains the supplied time label.",
      "Use type=artist for DJ or live performances, type=host for hosts and type=program for other items.",
      "Do not silently resolve overlapping entries.",
      "Use null for unknown optional values."
    ],
    "outputRule": "Return only JSON without Markdown fences."
  },
  "submissionTemplate": {
    "festivalId": "nature-one-2026",
    "venueType": "camping",
    "campingFloor": true,
    "stageNumber": null,
    "floorName": "",
    "floorSlug": "",
    "contact": {
      "name": null,
      "email": null,
      "phone": null
    },
    "schedule": [],
    "entryTemplate": {
      "start": "20:00",
      "end": "22:00",
      "title": "",
      "type": "artist",
      "notes": null
    },
    "metadata": {
      "submittedAt": null,
      "confirmedByOperator": false,
      "source": "floor-operator",
      "status": "draft"
    }
  },
  "scheduleTemplates": {
    "pydna": [
      { "day": "friday", "date": "2026-07-31", "active": false, "entries": [] },
      { "day": "saturday", "date": "2026-08-01", "active": false, "entries": [] }
    ],
    "camping": [
      { "day": "thursday", "date": "2026-07-30", "active": false, "entries": [] },
      { "day": "friday", "date": "2026-07-31", "active": false, "entries": [] },
      { "day": "saturday", "date": "2026-08-01", "active": false, "entries": [] },
      { "day": "sunday", "date": "2026-08-02", "active": false, "entries": [] }
    ]
  }
}
