# mdg-filius Netzwerksimulation nach [FILIUS](https://www.lernsoftware-filius.de) für den Browser — als App „Filius" im MDG-Dashboard, gemeinsam bearbeitbar. > Based on Filius by Dr. Stefan Freischlad and the Filius project. > > Dieses Projekt ist unabhängig. Es wird weder vom ursprünglichen > Filius-Projekt (Universität Siegen) noch von `filius-project` > (Filius on iPad) herausgegeben, betrieben oder unterstützt. ## Herkunft Der Simulationskern ist eine Übertragung nach TypeScript aus * [`filius-project/filius-ipad`](https://github.com/filius-project/filius-ipad) (Swift, GPLv2 oder GPLv3) — Vorlage für Kern, `.fls`-Codec und Tests, * [`filius1/filius`](https://gitlab.com/filius1/filius) (Java, GPLv2 oder GPLv3) — Referenz für Dateiformat und Verhalten. Jede übertragene Datei nennt in ihrem Kopf die Quelldatei. `CHANGES.md` führt die Herkunft je Paket. Lizenz dieses Repos: **GPL-3.0** (`LICENSE`). ## Aufbau | Pfad | Inhalt | | --- | --- | | `packages/core` | Simulationskern: Modell, Ereignis-Warteschlange, Protokolle, Anwendungen — ohne DOM, ohne Node | | `packages/fls` | `.fls` lesen, schreiben, Unbekanntes bewahren | | `packages/doc` | gemeinsames Dokument (Yjs): Projekt ⇄ Dokument, Schnappschuss des Kerns, Hausmeister, die Änderungen der Werkzeuge und des Geräte-Blatts (mit Javas Eingabeprüfung) | | `packages/protocol` | die eine Nachrichtenliste zwischen Editor und Simulationsraum (`/sim`) | | `packages/sim` | Simulationsraum (für Server F und den Web Worker) und `LocalSimHost` | | `packages/editor` | Oberfläche im Iframe des Dashboards (React, Vite): Fläche, Palette, Werkzeuge des Entwurfs, Geräte-Blatt, Aktionsmodus (Desktops, Anwendungen, Datenaustausch), Dokumentationsmodus (Text, Gliederungsfläche, Bild exportieren, Bericht als PDF); `npm run dev -w @mdg-filius/editor` öffnet die Entwicklungsseite | | `server` | Filius-Dienst auf Server F *(folgt)* | Plan und Entscheidungen: `knowledge/plans/FILIUS_WEB_PLAN.md` im Dashboard. ## Entwickeln ```bash npm install npm run hooks # Sprachprüfung vor jedem Commit (braucht das Dashboard drumherum) npm run check # Typprüfung + Tests npm run test:browser # Tests im echten Browser (Playwright, Chromium aus dem Cache) ``` Code, Kommentare und Testnamen sind englisch; sichtbare Texte stehen hinter i18n-Schlüsseln (Deutsch/Englisch).