{
  "$schema": "http://json-schema.org/draft-07/schema#",
  "title": "Otto Förderprogramm",
  "description": "Strukturierte Beschreibung EINES Förderprogramms. Quelle aller Agenten-Entscheidungen.",
  "type": "object",
  "required": ["id", "name", "traeger", "jurisdiktion", "foerderart", "deadline_typ", "quelle_url", "last_verified", "status"],
  "properties": {
    "id":            { "type": "string", "description": "slug, z.B. 'at-ffg-basisprogramm'" },
    "name":          { "type": "string" },
    "akronym":       { "type": "string" },
    "traeger":       { "type": "string", "description": "Förderstelle, z.B. FFG, aws, BMWK, Innosuisse, EIC" },
    "jurisdiktion":  { "type": "string", "enum": ["AT", "DE", "CH", "EU"] },
    "region":        { "type": "string", "description": "Bund / Land / Kanton, z.B. 'Wien', 'Bayern', 'Zürich'" },
    "themen":        { "type": "array", "items": { "type": "string" }, "description": "Tags: KI, Software, F&E, Digitalisierung, Klima..." },

    "antragsberechtigte": { "type": "array", "items": { "type": "string" }, "description": "KMU, Großunternehmen, Einzelunternehmen, Forschungseinrichtung, Konsortium" },
    "ausschlusskriterien": { "type": "array", "items": { "type": "string" } },

    "foerderart":    { "type": "string", "enum": ["Zuschuss", "Kredit", "Garantie", "Beteiligung", "Gutschein", "Mischform"] },
    "foerderquote_min_pct": { "type": "number" },
    "foerderquote_max_pct": { "type": "number" },
    "foerderhoehe_min_eur": { "type": "number" },
    "foerderhoehe_max_eur": { "type": "number" },

    "beihilferahmen": { "type": "string", "description": "De-minimis / AGVO (GBER) Art. X / Notifizierung", "enum": ["De-minimis", "AGVO", "Notifiziert", "Keiner", "Unbekannt"] },
    "kumulierbar_mit": { "type": "array", "items": { "type": "string" }, "description": "andere Programm-IDs oder Regeln" },

    "deadline_typ":   { "type": "string", "enum": ["laufend", "cut-off", "stichtag", "geschlossen"] },
    "naechste_deadline": { "type": "string", "format": "date", "description": "YYYY-MM-DD, null wenn laufend" },
    "projekt_laufzeit_max_monate": { "type": "number" },

    "foerderfaehige_kosten": { "type": "array", "items": { "type": "string" }, "description": "Personal, Sachkosten, Drittkosten, Investitionen..." },
    "pflichtdokumente": { "type": "array", "items": { "type": "string" }, "description": "Was muss eingereicht werden: Projektbeschreibung, Kostenplan, Firmenbuchauszug, JA..." },

    "einreichkanal":  { "type": "string", "description": "Portal-Name, z.B. 'FFG eCall'" },
    "einreich_url":   { "type": "string", "format": "uri" },

    "quelle_url":     { "type": "string", "format": "uri", "description": "Offizielle Programmseite" },
    "richtlinie_pdf": { "type": "string", "description": "lokaler Pfad zur heruntergeladenen Richtlinie" },

    "last_verified":  { "type": "string", "format": "date", "description": "wann zuletzt vom Pflege-Agent geprüft" },
    "status":         { "type": "string", "enum": ["offen", "angekündigt", "geschlossen", "unbekannt"] },
    "confidence":     { "type": "string", "enum": ["verifiziert", "auto-extrahiert", "ungeprüft"], "description": "Vertrauensstufe der Daten" }
  }
}
