diff --git a/minor-subjects.yaml b/minor-subjects.yaml
new file mode 100644
index 0000000..f76308e
--- /dev/null
+++ b/minor-subjects.yaml
@@ -0,0 +1,697 @@
+# SPDX-FileCopyrightText: 2022 David Mosbach
+#
+# SPDX-License-Identifier: AGPL-3.0-or-later
+
+nodes:
+ # Wahl des integrierten Anwendungsfachs #
+ #########################################
+
+ ####################
+ # Angabe Hauptfach #
+ ####################
+
+ "hauptfach angegeben, informatik": &hauptfach-angegeben-informatik-node
+ viewers:
+ #######
+ display-label:
+ fallback: "Fächerwahl ausstehend (Informatik)"
+ fallback-lang: de-de-formal
+ translations:
+ en-eu: "Application pending (Informatics)"
+ viewers: &view-alle
+ - &Student_in
+ tag: payload-reference
+ payload-label: "student:in"
+ - &Pruefungsamt
+ tag: authorized
+ authorized: {"dnf-terms": [[{"tag": "variable", "var": "exam-office"}]]}
+
+ payload-view: &payload-view
+ ############
+ "student:in":
+ viewers: *view-alle
+ display-label:
+ fallback: "Student:in"
+ fallback-lang: de-de-formal
+ translations:
+ en-eu: "Student"
+
+ "anwendungsfach":
+ viewers: *view-alle
+ display-label:
+ fallback: "Anwendungsfach"
+ fallback-lang: de-de-formal
+ translations:
+ en-eu: "Minor Subject"
+
+ "kommunikation":
+ viewers: *view-alle
+ display-label:
+ fallback: "Kommunikation"
+ fallback-lang: de-de-formal
+ translations:
+ en-eu: "Communication"
+
+ final: false
+
+ edges:
+ #####
+ "hauptfach angeben, informatik":
+ mode: initial
+
+ messages:
+ - viewers:
+ - *Student_in
+ - tag: initiator
+ status: warning
+ content:
+ fallback: >-
+ Nur Studierende der Medieninformatik oder der „Informatik mit integriertem Anwendungsfach“ haben im Folgenden
+ die Möglichkeit, ein geeignetes Anwendungsfach zu belegen.
+ fallback-lang: de-de-formal
+ translations:
+ en-eu: >-
+ Only students of Media Informatics or “Informatik mit integriertem Anwendungsfach” may apply for a suitable
+ minor subject (Anwendungsfach) via this form.
+
+ display-label:
+ fallback: "Hauptfach angeben: Informatik"
+ fallback-lang: de-de-formal
+ translations:
+ en-eu: "Submit Main Subject: Informatics"
+
+ actors: &alle-studierenden
+ - *Student_in
+ - tag: authorized
+ authorized: { "dnf-terms": [[{"tag": "variable", "var": "student" }]] }
+
+ view-actor: *view-alle
+
+ form: &initial-form
+ "student:in":
+ - "1":
+ tag: capture-user
+
+ "hauptfach korrigieren, informatik":
+ mode: manual
+ source: "hauptfach angegeben, medieninformatik"
+
+ display-label:
+ fallback: "Hauptfach korrigieren: Informatik"
+ fallback-lang: de-de-formal
+ translations:
+ en-eu: "Correct Main Subject: Informatics"
+
+ actors:
+ - *Student_in
+ view-actor: *view-alle
+
+ "hauptfach angegeben, medieninformatik":
+ <<: *hauptfach-angegeben-informatik-node
+
+ viewers:
+ #######
+ display-label:
+ fallback: "Fächerwahl ausstehend (Medieninformatik)"
+ fallback-lang: de-de-formal
+ translations:
+ en-eu: "Application pending (Media Informatics)"
+ viewers: *view-alle
+
+ edges:
+ #####
+ "hauptfach angeben, medieninformatik":
+ mode: initial
+
+ messages:
+ - viewers:
+ - *Student_in
+ - tag: initiator
+ status: warning
+ content:
+ fallback: >-
+ Nur Studierende der Medieninformatik oder der „Informatik mit integriertem Anwendungsfach“ haben im Folgenden
+ die Möglichkeit, ein geeignetes Anwendungsfach zu belegen.
+ fallback-lang: de-de-formal
+ translations:
+ en-eu: >-
+ Only students of Media Informatics or “Informatik mit integriertem Anwendungsfach” may apply for a suitable
+ minor subject (Anwendungsfach) via this form.
+
+ display-label:
+ fallback: "Hauptfach angeben: Medieninformatik"
+ fallback-lang: de-de-formal
+ translations:
+ en-eu: "Submit Main Subject: Media Informatics"
+
+ actors: *alle-studierenden
+ view-actor: *view-alle
+ form: *initial-form
+
+ "hauptfach korrigieren, informatik":
+ mode: manual
+ source: "hauptfach angegeben, informatik"
+
+ display-label:
+ fallback: "Hauptfach korrigieren: Medieninformatik"
+ fallback-lang: de-de-formal
+ translations:
+ en-eu: "Correct Main Subject: Media Informatics"
+
+ actors:
+ - *Student_in
+ view-actor: *view-alle
+
+
+ ###############
+ # Beantragung #
+ ###############
+
+ "antrag, informatik": &antrag-informatik-node
+ viewers:
+ ########
+ display-label:
+ fallback: "Antrag eingereicht (Informatik)"
+ fallback-lang: de-de-formal
+ translations:
+ en-eu: "Application submitted (Informatics)"
+ viewers: *view-alle
+
+ payload-view: *payload-view
+
+ edges:
+ ######
+ "beantragen, informatik":
+ mode: manual
+ source: "hauptfach angegeben, informatik"
+
+ messages:
+ - viewers:
+ - *Student_in
+ status: info
+ content:
+ fallback: >-
+ Um eines der hier wählbaren Anwendungsfächer zu belegen, müssen Sie zuvor im Studiengang
+ „Bachelor Informatik mit integriertem Anwendungsfach“ eingeschrieben sein.
+ fallback-lang: de-de-formal
+ translations:
+ en-eu: >-
+ You need to be enrolled in “Bachelor Informatik mit integriertem Anwendungsfach” before applying for
+ one of the following minor subjects.
+
+ display-label:
+ fallback: "Anwendungsfach wählen"
+ fallback-lang: de-de-formal
+ translations:
+ en-eu: "Apply for minor subject"
+
+ actors:
+ - *Student_in
+ view-actor: *view-alle
+
+ form: &fachangebot-form-informatik
+ "anwendungsfach":
+ - "1": &fachangebot-field-informatik
+ tag: text
+ label:
+ fallback: "Integriertes Anwendungsfach"
+ fallback-lang: de-de-formal
+ translations:
+ en-eu: "Integrated minor subject (integriertes Anwendungsfach)"
+ tooltip:
+ fallback: "Bitte wählen Sie Ihr gewünschtes Anwendungsfach aus."
+ fallback-lang: de-de-formal
+ translations:
+ en-eu: "Please choose your preferred minor subject."
+ default: null
+ optional: false
+ presets:
+ - text: "Computerlinguistik" #
+ label:
+ fallback: "Computerlinguistik"
+ fallback-lang: de-de-formal
+ translations:
+ en-eu: "Computational Linguistics"
+ - text: "Mathematik" #
+ label:
+ fallback: "Mathematik"
+ fallback-lang: de-de-formal
+ translations:
+ en-eu: "Mathematics"
+ - text: "Psychologie (Sondernebenfach)" #
+ label:
+ fallback: "Psychologie (Sondernebenfach)"
+ fallback-lang: de-de-formal
+ translations:
+ en-eu: "Psychology (special minor)"
+ - text: "Statistik" #
+ label:
+ fallback: "Statistik"
+ fallback-lang: de-de-formal
+ translations:
+ en-eu: "Statistics"
+
+ "korrigieren, informatik": &korrigieren-informatik-edge
+ mode: manual
+ source: "antrag, informatik"
+
+ messages:
+ - viewers:
+ - *Student_in
+ - tag: initiator
+ status: info
+ content:
+ fallback: "Solange der Antrag noch nicht bearbeitet wurde, können Sie Ihre Wahl ändern."
+ fallback-lang: de-de-formal
+ translations:
+ en-eu: "You can alter your application as long as it hasn't been processed."
+
+ display-label:
+ fallback: "Auswahl korrigieren"
+ fallback-lang: de-de-formal
+ translations:
+ en-eu: "Alter application"
+
+ actors:
+ - *Student_in
+ view-actor: *view-alle
+
+ form: *fachangebot-form-informatik
+
+ "rueckfragen beantworten, informatik": &rueckfragen-beantworten-informatik-edge
+ mode: manual
+ source: "rueckfragen, informatik"
+
+ display-label:
+ fallback: "Rückfragen beantworten"
+ fallback-lang: de-de-formal
+ translations:
+ en-eu: "Answer inquiries"
+
+ actors:
+ - *Student_in
+ view-actor: *view-alle
+
+ form:
+ "kommunikation":
+ - "1":
+ tag: text
+ large: true
+ label:
+ fallback: "Kommunikation"
+ fallback-lang: de-de-formal
+ translations:
+ en-eu: "Communication"
+ tooltip:
+ fallback: "Nachricht an Prüfungsamt"
+ fallback-lang: de-de-formal
+ translations:
+ en-eu: "Message to the examination office"
+ default: null
+ optional: false
+
+ final: false
+
+ "antrag, medieninformatik":
+ <<: *antrag-informatik-node
+
+ viewers:
+ ########
+ display-label:
+ fallback: "Antrag eingereicht (Medieninformatik)"
+ fallback-lang: de-de-formal
+ translations:
+ en-eu: "Application submitted (Media Informatics)"
+ viewers: *view-alle
+
+ edges:
+ #####
+ "beantragen, medieninformatik":
+ mode: manual
+ source: "hauptfach angegeben, medieninformatik"
+
+ messages:
+ - viewers:
+ - *Student_in
+ status: info
+ content:
+ fallback: >-
+ Um eines der hier wählbaren Anwendungsfächer zu belegen, müssen Sie zuvor im Studiengang
+ Bachelor Medieninformatik eingeschrieben sein.
+ fallback-lang: de-de-formal
+ translations:
+ en-eu: >-
+ You need to be enrolled in Media Informatics (bachelor) before applying for
+ one of the following minor subjects.
+
+ display-label:
+ fallback: "Anwendungsfach wählen"
+ fallback-lang: de-de-formal
+ translations:
+ en-eu: "Apply for minor subject"
+
+ actors:
+ - *Student_in
+ view-actor: *view-alle
+
+ form: &fachangebot-form-medieninformatik
+ "anwendungsfach":
+ - "1":
+ <<: *fachangebot-field-informatik
+ presets:
+ - text: "Medienwirtschaft" #
+ label:
+ fallback: "Medienwirtschaft"
+ fallback-lang: de-de-formal
+ translations:
+ en-eu: "Media Economics"
+ - text: "Mediengestaltung" #
+ label:
+ fallback: "Mediengestaltung"
+ fallback-lang: de-de-formal
+ translations:
+ en-eu: "Media Design"
+ - text: "Mensch-Maschine-Interaktion" #
+ label:
+ fallback: "Mensch-Maschine-Interaktion"
+ fallback-lang: de-de-formal
+ translations:
+ en-eu: "Human-Computer Interaction"
+
+ "korrigieren, medieninformatik":
+ <<: *korrigieren-informatik-edge
+ source: "antrag, medieninformatik"
+ form: *fachangebot-form-medieninformatik
+
+ "rueckfragen beantworten, medieninformatik":
+ <<: *rueckfragen-beantworten-informatik-edge
+ source: "rueckfragen, medieninformatik"
+
+ final: false
+
+
+ ###############
+ # Prüfungsamt #
+ ###############
+
+ "eingetragen, informatik": &eingetragen-informatik-node
+ viewers:
+ #######
+ display-label:
+ fallback: "Antrag erfolgreich (Informatik)"
+ fallback-lang: de-de-formal
+ translations:
+ en-eu: "Application successful (Informatics)"
+ viewers: *view-alle
+
+ payload-view: *payload-view
+ #############
+
+ messages:
+ ########
+ - viewers:
+ - *Student_in
+ status: info
+ content:
+ fallback: >-
+ Ihr Antrag wurde akzeptiert.
+
+ Um sich zu vergewissern, dass das gewählte Fach korrekt verbucht wurde, können Sie Ihren
+ aktuellen Kontoauszug überprüfen.
+ fallback-lang: de-de-formal
+ translations:
+ en-eu: >-
+ Your application has been accepted.
+
+ In order to ensure that your subject has been registered correctly, you may check your
+ current transcript of records.
+ - viewers:
+ - *Student_in
+ status: info
+ content:
+ fallback: "Sollten Sie sich bezüglich Ihres Anwendungsfaches umentscheiden, starten Sie bitte eine
+ neue Workflow-Instanz."
+ fallback-lang: de-de-formal
+ translations:
+ en-eu: "If you changed your mind regarding your minor subject, please start a new workflow
+ instance."
+
+ edges:
+ ######
+ "eintragen, informatik": &eintragen-informatik-edge
+ mode: manual
+ source: "antrag, informatik"
+
+ display-label:
+ fallback: "Anwendungsfach eintragen"
+ fallback-lang: de-de-formal
+ translations:
+ en-eu: "Register minor subject"
+
+ actors:
+ - *Pruefungsamt
+ view-actor: *view-alle
+
+ messages:
+ - viewers: *view-alle
+ status: info
+ content:
+ fallback: "Bestätigung, dass dem Antrag stattgegeben und das gewählte Anwendungsfach eingetragen wurde."
+ fallback-lang: de-de-formal
+ translations:
+ en-eu: "Confirm that the application has been accepted and the minor subject has been registered."
+
+ final: true
+
+ "eingetragen, medieninformatik":
+ <<: *eingetragen-informatik-node
+
+ viewers:
+ #######
+ display-label:
+ fallback: "Antrag erfolgreich (Medieninformatik)"
+ fallback-lang: de-de-formal
+ translations:
+ en-eu: "Application successful (Media Informatics)"
+ viewers: *view-alle
+
+ edges:
+ ######
+ "eintragen, medieninformatik":
+ <<: *eintragen-informatik-edge
+ source: "antrag, medieninformatik"
+
+
+ "abgelehnt, informatik": &abgelehnt-informatik-node
+ viewers:
+ #######
+ display-label:
+ fallback: "Antrag abgelehnt (Informatik)"
+ fallback-lang: de-de-formal
+ translations:
+ en-eu: "Application rejected (Informatics)"
+ viewers: *view-alle
+
+ payload-view: *payload-view
+ ############
+
+ messages:
+ #########
+ - viewers:
+ - *Student_in
+ status: info
+ content:
+ fallback: >-
+ Ihr Antrag wurde abgelehnt, da Sie zum aktuellen Zeitpunkt nicht im Studiengang „Bachelor Informatik mit integriertem
+ Anwendungsfach“ eingeschrieben sind.
+
+
+ - Sie können sich in den genannten Studiengang umschreiben lassen, um eines der hier zur Auswahl stehenden Anwendungsfächer
+ zu belegen.
+ - Eine Übersicht der Nebenfächer, die mit anderen Informatik-Studiengängen kompatibel sind, finden Sie auf den
+ Seiten der Studiengangskoordination.
+
+ fallback-lang: de-de-formal
+ translations:
+ en-eu: >-
+ Your application has been rejected since you are currently not enrolled in the study program “Bachelor Informatik mit
+ integriertem Anwendungsfach”.
+
+
+ - You can re-register for said study program in order to enrol in one of the minors offered here.
+ - An overview of all minor subjects compatible with the other study programs of Computer Science can be found
+ on the websites of the study coordinator.
+
+
+ edges:
+ #####
+ "ablehnen, informatik": &ablehnen-informatik-edge
+ mode: manual
+ source: "antrag, informatik"
+
+ display-label:
+ fallback: "Antrag ablehnen (falscher Studiengang)"
+ fallback-lang: de-de-formal
+ translations:
+ en-eu: "Reject application (wrong study program)"
+
+ actors:
+ - *Pruefungsamt
+ view-actor: *view-alle
+
+ messages:
+ - viewers:
+ - *Pruefungsamt
+ status: info
+ content:
+ fallback: >-
+ Antrag ablehnen, falls der:die Student:in nicht im Studiengang „Bachelor Informatik mit integriertem Anwendungsfach“
+ eingeschrieben ist.
+ fallback-lang: de-de-formal
+ translations:
+ en-eu: "Reject the application if the student is not enrolled in “Bachelor Informatik mit integriertem Anwendungsfach”."
+
+ final: not-ok
+
+ "abgelehnt, medieninformatik":
+ <<: *abgelehnt-informatik-node
+
+ viewers:
+ #######
+ display-label:
+ fallback: "Antrag abgelehnt (Medieninformatik)"
+ fallback-lang: de-de-formal
+ translations:
+ en-eu: "Application rejected (Media Informatics)"
+ viewers: *view-alle
+
+ messages:
+ #########
+ - viewers:
+ - *Student_in
+ status: info
+ content:
+ fallback: >-
+ Ihr Antrag wurde abgelehnt, da Sie zum aktuellen Zeitpunkt nicht im Studiengang „Bachelor Medieninformatik“ eingeschrieben sind.
+
+
+ - Sie können sich in den genannten Studiengang umschreiben lassen, um eines der hier zur Auswahl stehenden Anwendungsfächer
+ zu belegen.
+ - Eine Übersicht der Nebenfächer, die mit anderen Informatik-Studiengängen kompatibel sind, finden Sie auf den
+ Seiten der Studiengangskoordination.
+
+ fallback-lang: de-de-formal
+ translations:
+ en-eu: >-
+ Your application has been rejected since you are currently not enrolled in the study program “Bachelor Media Informatics”.
+
+
+ - You can re-register for said study program in order to enrol in one of the minors offered here.
+ - An overview of all minor subjects compatible with the other study programs of Computer Science can be found
+ on the websites of the study coordinator.
+
+
+ edges:
+ #####
+ "ablehnen, medieninformatik":
+ <<: *ablehnen-informatik-edge
+ source: "antrag, medieninformatik"
+
+ messages:
+ - viewers:
+ - *Pruefungsamt
+ status: info
+ content:
+ fallback: "Antrag ablehnen, falls der:die Student:in nicht im Studiengang „Bachelor Medieninformatik“ eingeschrieben ist."
+ fallback-lang: de-de-formal
+ translations:
+ en-eu: "Reject the application if the student is not enrolled in “Bachelor Media Informatics”."
+
+
+ "rueckfragen, informatik": &rueckfragen-informatik-node
+ viewers:
+ #######
+ display-label:
+ fallback: "Rückfragen zum Antrag (Informatik)"
+ fallback-lang: de-de-formal
+ translations:
+ en-eu: "Further inquiries (Informatics)"
+ viewers: *view-alle
+
+ payload-view: *payload-view
+ ############
+
+ messages:
+ ########
+ - viewers:
+ - *Student_in
+ status: info
+ content:
+ fallback: "Es gibt Rückfragen zu Ihrem Antrag."
+ fallback-lang: de-de-formal
+ translations:
+ en-eu: "There are further inquiries regarding your application."
+
+ edges:
+ #####
+ "rueckfragen stellen, informatik": &rueckfragen-stellen-informatik-edge
+ mode: manual
+ source: "antrag, informatik"
+
+ display-label:
+ fallback: "Rückfragen zum Antrag stellen"
+ fallback-lang: de-de-formal
+ translations:
+ en-eu: "Check back on the application"
+
+ actors:
+ - *Pruefungsamt
+ view-actor: *view-alle
+
+ messages:
+ - viewers:
+ - *Pruefungsamt
+ status: info
+ content:
+ fallback: "Stellen Sie Rückfragen zum Antrag."
+ fallback-lang: de-de-formal
+ translations:
+ en-eu: "If you have further inquiries, check back on the application."
+
+ form:
+ "kommunikation":
+ - "1":
+ tag: text
+ large: true
+ label:
+ fallback: "Kommunikation"
+ fallback-lang: de-de-formal
+ translations:
+ en-eu: "Communication"
+ tooltip:
+ fallback: "Nachricht an Student:in"
+ fallback-lang: de-de-formal
+ translations:
+ en-eu: "Message to the student"
+ default: null
+ optional: false
+
+ final: false
+
+ "rueckfragen, medieninformatik":
+ <<: *rueckfragen-informatik-node
+
+ viewers:
+ #######
+ display-label:
+ fallback: "Rückfragen zum Antrag (Medieninformatik)"
+ fallback-lang: de-de-formal
+ translations:
+ en-eu: "Further inquiries (Media Informatics)"
+ viewers: *view-alle
+
+ edges:
+ #####
+ "rueckfragen stellen, medieninformatik":
+ <<: *rueckfragen-stellen-informatik-edge
+ source: "antrag, medieninformatik"
\ No newline at end of file