// ── Publieke API van de modeldocumenten-datalaag ─────────────────────────────
// Alles wordt geïmporteerd via "@/data/modeldocumenten":
//  - types.ts          → typedefinities en labelmaps;
//  - onderdelen/       → seed-bibliotheek van modelonderdelen;
//  - modellen/         → seed-modeldocumenten per hoofdthema;
//  - bronnen.ts        → register van reeds verwerkte bronbestanden;
//  - samenstellen.ts   → pure functies: samenstellen, genereren, versiebeheer;
//  - overzicht.ts      → afgeleide kruisverwijzing model ↔ onderdeel (hergebruik);
//  - verrijkingsprompt.ts → AI-prompt voor het verrijken van de bibliotheek;
//  - voorstellen.ts    → wijzigingsvoorstellen valideren/opbouwen (extern aangeleverd);
//  - richtlijnen.ts    → richtlijnen voor nieuwe modelonderdelen (MCP);
//  - voorbeeldwaarden.ts → NL/FR-demowaarden en ingevulde voorbeeldweergave;
//  - onderdeel-taalkeuze.ts → NL/FR-tegenhanger-lookup voor onderdelen;
//  - parameter-catalogus.ts → bibliotheekbrede parameternaam → omschrijving/voorbeeld;
//  - bibliotheek-audit.ts → pure auditmotor (mappings/kwaliteit) voor tests, UI en voorstellen;
//  - woorddiff.ts      → woord-diff voor wijzigingsmarkering in Te-valideren.

import { seedOnderdelen } from "./onderdelen";
import { seedModellen } from "./modellen";
import { assertSeedBibliotheek } from "./schema-guard";

// Bewuste uitzondering op de zuivere-barrel-regel: de schema-guard draait bij
// het inladen van de datalaag, zodat ongeldige seed-data (lege verplichte
// velden, dubbele ids, hangende verwijzingen) dev/test/build onmiddellijk
// laat falen in plaats van pas bij een latere, aparte test. Kost: één
// doorloop over de bibliotheek (~10 ms), eenmalig per module-init.
assertSeedBibliotheek(seedOnderdelen, seedModellen);

export * from "./types";
export { seedOnderdelen, seedModellen };
export { valideerSeedBibliotheek, assertSeedBibliotheek } from "./schema-guard";
export { seedBronnen } from "./bronnen";
export * from "./samenstellen";
export * from "./overzicht";
export * from "./voorbeeldwaarden";
export * from "./voorbeeld-segmenten";
export * from "./onderdeel-taalkeuze";
export * from "./parameter-catalogus";
export * from "./parameter-register";
export * from "./bibliotheek-audit";
export * from "./rechtshandeling";
export * from "./woorddiff";
export { VERRIJKINGS_PROMPT } from "./verrijkingsprompt";
export * from "./voorstellen";
export { MODELONDERDEEL_RICHTLIJNEN, MODELDOCUMENT_RICHTLIJNEN } from "./richtlijnen";
export {
  normaliseerVoorVingerafdruk,
  berekenParallelVingerafdruk,
  detecteerParallelDivergentie,
  type ParallelProbleem,
  type ParallelProbleemSoort,
} from "./parallelle-clausules";
