const games: Games = [
    {
        name: "LAN Party",
        walls: [
            {
                name: "Wall 1",
                categories: [
                    {
                        name: "Category 1",
                        questions: [
                            {
                                points: 100,
                                type: "MULTIPLE_CHOICE",
                                data: {
                                    question: "Wie heißt unser Planet?",
                                    choices: [
                                        "Erde",
                                        "Sonne",
                                        "Mars",
                                        "Venus",
                                        "Saturn",
                                        "Jupiter",
                                        "Merkur",
                                        "Uranus",
                                        "Neptun"
                                    ]
                                }
                            },
                            {
                                points: 200,
                                type: "IMAGE",
                                data: {
                                    question: "Question 2?",
                                    image: "firstImage.jpg",
                                    answer: "Answer 2"
                                }
                            },
                            {
                                points: 300,
                                type: "IMAGE",
                                data: {
                                    question: "Question 3?",
                                    image: "test/secondImage.jpg",
                                    answer: "Answer 3"
                                }
                            },
                            {
                                points: 400,
                                type: "SIMPLE",
                                data: {
                                    question: "Question 4?",
                                    answer: "Answer 4"
                                }
                            },
                            {
                                points: 500,
                                type: "SIMPLE",
                                data: {
                                    question: "Question 5?",
                                    answer: "Answer 5"
                                }
                            }
                        ]
                    },
                    {
                        name: "Category 2",
                        questions: [
                            {
                                points: 100,
                                type: "SIMPLE",
                                data: {
                                    question: "Question 1?",
                                    answer: "Answer 1"
                                }
                            },
                            {
                                points: 200,
                                type: "SIMPLE",
                                data: {
                                    question: "Question 2?",
                                    answer: "Answer 2"
                                }
                            },
                            {
                                points: 300,
                                type: "SIMPLE",
                                data: {
                                    question: "Question 3?",
                                    answer: "Answer 3"
                                }
                            },
                            {
                                points: 400,
                                type: "SIMPLE",
                                data: {
                                    question: "Question 4?",
                                    answer: "Answer 4"
                                }
                            },
                            {
                                points: 500,
                                type: "SIMPLE",
                                data: {
                                    question: "Question 5?",
                                    answer: "Answer 5"
                                }
                            }
                        ]
                    },
                    {
                        name: "Category 3",
                        questions: [
                            {
                                points: 100,
                                type: "SIMPLE",
                                data: {
                                    question: "Question 1?",
                                    answer: "Answer 1"
                                }
                            },
                            {
                                points: 200,
                                type: "SIMPLE",
                                data: {
                                    question: "Question 2?",
                                    answer: "Answer 2"
                                }
                            },
                            {
                                points: 300,
                                type: "SIMPLE",
                                data: {
                                    question: "Question 3?",
                                    answer: "Answer 3"
                                }
                            },
                            {
                                points: 400,
                                type: "SIMPLE",
                                data: {
                                    question: "Question 4?",
                                    answer: "Answer 4"
                                }
                            },
                            {
                                points: 500,
                                type: "SIMPLE",
                                data: {
                                    question: "Question 5?",
                                    answer: "Answer 5"
                                }
                            }
                        ]
                    },
                    {
                        name: "Category 4",
                        questions: [
                            {
                                points: 100,
                                type: "SIMPLE",
                                data: {
                                    question: "Question 1?",
                                    answer: "Answer 1"
                                }
                            },
                            {
                                points: 200,
                                type: "SIMPLE",
                                data: {
                                    question: "Question 2?",
                                    answer: "Answer 2"
                                }
                            },
                            {
                                points: 300,
                                type: "SIMPLE",
                                data: {
                                    question: "Question 3?",
                                    answer: "Answer 3"
                                }
                            },
                            {
                                points: 400,
                                type: "SIMPLE",
                                data: {
                                    question: "Question 4?",
                                    answer: "Answer 4"
                                }
                            },
                            {
                                points: 500,
                                type: "SIMPLE",
                                data: {
                                    question: "Question 5?",
                                    answer: "Answer 5"
                                }
                            }
                        ]
                    },
                    {
                        name: "Category 5",
                        questions: [
                            {
                                points: 100,
                                type: "SIMPLE",
                                data: {
                                    question: "Question 1?",
                                    answer: "Answer 1"
                                }
                            },
                            {
                                points: 200,
                                type: "SIMPLE",
                                data: {
                                    question: "Question 2?",
                                    answer: "Answer 2"
                                }
                            },
                            {
                                points: 300,
                                type: "SIMPLE",
                                data: {
                                    question: "Question 3?",
                                    answer: "Answer 3"
                                }
                            },
                            {
                                points: 400,
                                type: "SIMPLE",
                                data: {
                                    question: "Question 4?",
                                    answer: "Answer 4"
                                }
                            },
                            {
                                points: 500,
                                type: "SIMPLE",
                                data: {
                                    question: "Question 5?",
                                    answer: "Answer 5"
                                }
                            }
                        ]
                    }
                ]
            },
            {
                name: "Wall 2",
                categories: [
                    {
                        name: "Category 1",
                        questions: [
                            {
                                points: 100,
                                type: "SIMPLE",
                                data: {
                                    question: "Question 1?",
                                    answer: "Answer 1"
                                }
                            },
                            {
                                points: 200,
                                type: "SIMPLE",
                                data: {
                                    question: "Question 2?",
                                    answer: "Answer 2"
                                }
                            },
                            {
                                points: 300,
                                type: "SIMPLE",
                                data: {
                                    question: "Question 3?",
                                    answer: "Answer 3"
                                }
                            },
                            {
                                points: 400,
                                type: "SIMPLE",
                                data: {
                                    question: "Question 4?",
                                    answer: "Answer 4"
                                }
                            },
                            {
                                points: 500,
                                type: "SIMPLE",
                                data: {
                                    question: "Question 5?",
                                    answer: "Answer 5"
                                }
                            }
                        ]
                    },
                    {
                        name: "Category 2",
                        questions: [
                            {
                                points: 100,
                                type: "SIMPLE",
                                data: {
                                    question: "Question 1?",
                                    answer: "Answer 1"
                                }
                            },
                            {
                                points: 200,
                                type: "SIMPLE",
                                data: {
                                    question: "Question 2?",
                                    answer: "Answer 2"
                                }
                            },
                            {
                                points: 300,
                                type: "SIMPLE",
                                data: {
                                    question: "Question 3?",
                                    answer: "Answer 3"
                                }
                            },
                            {
                                points: 400,
                                type: "SIMPLE",
                                data: {
                                    question: "Question 4?",
                                    answer: "Answer 4"
                                }
                            },
                            {
                                points: 500,
                                type: "SIMPLE",
                                data: {
                                    question: "Question 5?",
                                    answer: "Answer 5"
                                }
                            }
                        ]
                    },
                    {
                        name: "Category 3",
                        questions: [
                            {
                                points: 100,
                                type: "SIMPLE",
                                data: {
                                    question: "Question 1?",
                                    answer: "Answer 1"
                                }
                            },
                            {
                                points: 200,
                                type: "SIMPLE",
                                data: {
                                    question: "Question 2?",
                                    answer: "Answer 2"
                                }
                            },
                            {
                                points: 300,
                                type: "SIMPLE",
                                data: {
                                    question: "Question 3?",
                                    answer: "Answer 3"
                                }
                            },
                            {
                                points: 400,
                                type: "SIMPLE",
                                data: {
                                    question: "Question 4?",
                                    answer: "Answer 4"
                                }
                            },
                            {
                                points: 500,
                                type: "SIMPLE",
                                data: {
                                    question: "Question 5?",
                                    answer: "Answer 5"
                                }
                            }
                        ]
                    },
                    {
                        name: "Category 4",
                        questions: [
                            {
                                points: 100,
                                type: "SIMPLE",
                                data: {
                                    question: "Question 1?",
                                    answer: "Answer 1"
                                }
                            },
                            {
                                points: 200,
                                type: "SIMPLE",
                                data: {
                                    question: "Question 2?",
                                    answer: "Answer 2"
                                }
                            },
                            {
                                points: 300,
                                type: "SIMPLE",
                                data: {
                                    question: "Question 3?",
                                    answer: "Answer 3"
                                }
                            },
                            {
                                points: 400,
                                type: "SIMPLE",
                                data: {
                                    question: "Question 4?",
                                    answer: "Answer 4"
                                }
                            },
                            {
                                points: 500,
                                type: "SIMPLE",
                                data: {
                                    question: "Question 5?",
                                    answer: "Answer 5"
                                }
                            }
                        ]
                    },
                    {
                        name: "Category 5",
                        questions: [
                            {
                                points: 100,
                                type: "SIMPLE",
                                data: {
                                    question: "Question 1?",
                                    answer: "Answer 1"
                                }
                            },
                            {
                                points: 200,
                                type: "SIMPLE",
                                data: {
                                    question: "Question 2?",
                                    answer: "Answer 2"
                                }
                            },
                            {
                                points: 300,
                                type: "SIMPLE",
                                data: {
                                    question: "Question 3?",
                                    answer: "Answer 3"
                                }
                            },
                            {
                                points: 400,
                                type: "SIMPLE",
                                data: {
                                    question: "Question 4?",
                                    answer: "Answer 4"
                                }
                            },
                            {
                                points: 500,
                                type: "SIMPLE",
                                data: {
                                    question: "Question 5?",
                                    answer: "Answer 5"
                                }
                            }
                        ]
                    }
                ]
            }
        ]
    },
    {
        name: "LAN Party 2",
        walls: [
            {
                name: "Wall 1",
                categories: [
                    {
                        name: "Category 1",
                        questions: [
                            {
                                points: 100,
                                type: "SIMPLE",
                                data: {
                                    question: "Question 1?",
                                    answer: "Answer 1"
                                }
                            },
                            {
                                points: 200,
                                type: "SIMPLE",
                                data: {
                                    question: "Question 2?",
                                    answer: "Answer 2"
                                }
                            },
                            {
                                points: 300,
                                type: "SIMPLE",
                                data: {
                                    question: "Question 3?",
                                    answer: "Answer 3"
                                }
                            },
                            {
                                points: 400,
                                type: "SIMPLE",
                                data: {
                                    question: "Question 4?",
                                    answer: "Answer 4"
                                }
                            },
                            {
                                points: 500,
                                type: "SIMPLE",
                                data: {
                                    question: "Question 5?",
                                    answer: "Answer 5"
                                }
                            }
                        ]
                    },
                    {
                        name: "Category 2",
                        questions: [
                            {
                                points: 100,
                                type: "SIMPLE",
                                data: {
                                    question: "Question 1?",
                                    answer: "Answer 1"
                                }
                            },
                            {
                                points: 200,
                                type: "SIMPLE",
                                data: {
                                    question: "Question 2?",
                                    answer: "Answer 2"
                                }
                            },
                            {
                                points: 300,
                                type: "SIMPLE",
                                data: {
                                    question: "Question 3?",
                                    answer: "Answer 3"
                                }
                            },
                            {
                                points: 400,
                                type: "SIMPLE",
                                data: {
                                    question: "Question 4?",
                                    answer: "Answer 4"
                                }
                            },
                            {
                                points: 500,
                                type: "SIMPLE",
                                data: {
                                    question: "Question 5?",
                                    answer: "Answer 5"
                                }
                            }
                        ]
                    },
                    {
                        name: "Category 3",
                        questions: [
                            {
                                points: 100,
                                type: "SIMPLE",
                                data: {
                                    question: "Question 1?",
                                    answer: "Answer 1"
                                }
                            },
                            {
                                points: 200,
                                type: "SIMPLE",
                                data: {
                                    question: "Question 2?",
                                    answer: "Answer 2"
                                }
                            },
                            {
                                points: 300,
                                type: "SIMPLE",
                                data: {
                                    question: "Question 3?",
                                    answer: "Answer 3"
                                }
                            },
                            {
                                points: 400,
                                type: "SIMPLE",
                                data: {
                                    question: "Question 4?",
                                    answer: "Answer 4"
                                }
                            },
                            {
                                points: 500,
                                type: "SIMPLE",
                                data: {
                                    question: "Question 5?",
                                    answer: "Answer 5"
                                }
                            }
                        ]
                    },
                    {
                        name: "Category 4",
                        questions: [
                            {
                                points: 100,
                                type: "SIMPLE",
                                data: {
                                    question: "Question 1?",
                                    answer: "Answer 1"
                                }
                            },
                            {
                                points: 200,
                                type: "SIMPLE",
                                data: {
                                    question: "Question 2?",
                                    answer: "Answer 2"
                                }
                            },
                            {
                                points: 300,
                                type: "SIMPLE",
                                data: {
                                    question: "Question 3?",
                                    answer: "Answer 3"
                                }
                            },
                            {
                                points: 400,
                                type: "SIMPLE",
                                data: {
                                    question: "Question 4?",
                                    answer: "Answer 4"
                                }
                            },
                            {
                                points: 500,
                                type: "SIMPLE",
                                data: {
                                    question: "Question 5?",
                                    answer: "Answer 5"
                                }
                            }
                        ]
                    },
                    {
                        name: "Category 5",
                        questions: [
                            {
                                points: 100,
                                type: "SIMPLE",
                                data: {
                                    question: "Question 1?",
                                    answer: "Answer 1"
                                }
                            },
                            {
                                points: 200,
                                type: "SIMPLE",
                                data: {
                                    question: "Question 2?",
                                    answer: "Answer 2"
                                }
                            },
                            {
                                points: 300,
                                type: "SIMPLE",
                                data: {
                                    question: "Question 3?",
                                    answer: "Answer 3"
                                }
                            },
                            {
                                points: 400,
                                type: "SIMPLE",
                                data: {
                                    question: "Question 4?",
                                    answer: "Answer 4"
                                }
                            },
                            {
                                points: 500,
                                type: "SIMPLE",
                                data: {
                                    question: "Question 5?",
                                    answer: "Answer 5"
                                }
                            }
                        ]
                    }
                ]
            },
            {
                name: "Wall 2",
                categories: [
                    {
                        name: "Category 1",
                        questions: [
                            {
                                points: 100,
                                type: "SIMPLE",
                                data: {
                                    question: "Question 1?",
                                    answer: "Answer 1"
                                }
                            },
                            {
                                points: 200,
                                type: "SIMPLE",
                                data: {
                                    question: "Question 2?",
                                    answer: "Answer 2"
                                }
                            },
                            {
                                points: 300,
                                type: "SIMPLE",
                                data: {
                                    question: "Question 3?",
                                    answer: "Answer 3"
                                }
                            },
                            {
                                points: 400,
                                type: "SIMPLE",
                                data: {
                                    question: "Question 4?",
                                    answer: "Answer 4"
                                }
                            },
                            {
                                points: 500,
                                type: "SIMPLE",
                                data: {
                                    question: "Question 5?",
                                    answer: "Answer 5"
                                }
                            }
                        ]
                    },
                    {
                        name: "Category 2",
                        questions: [
                            {
                                points: 100,
                                type: "SIMPLE",
                                data: {
                                    question: "Question 1?",
                                    answer: "Answer 1"
                                }
                            },
                            {
                                points: 200,
                                type: "SIMPLE",
                                data: {
                                    question: "Question 2?",
                                    answer: "Answer 2"
                                }
                            },
                            {
                                points: 300,
                                type: "SIMPLE",
                                data: {
                                    question: "Question 3?",
                                    answer: "Answer 3"
                                }
                            },
                            {
                                points: 400,
                                type: "SIMPLE",
                                data: {
                                    question: "Question 4?",
                                    answer: "Answer 4"
                                }
                            },
                            {
                                points: 500,
                                type: "SIMPLE",
                                data: {
                                    question: "Question 5?",
                                    answer: "Answer 5"
                                }
                            }
                        ]
                    },
                    {
                        name: "Category 3",
                        questions: [
                            {
                                points: 100,
                                type: "SIMPLE",
                                data: {
                                    question: "Question 1?",
                                    answer: "Answer 1"
                                }
                            },
                            {
                                points: 200,
                                type: "SIMPLE",
                                data: {
                                    question: "Question 2?",
                                    answer: "Answer 2"
                                }
                            },
                            {
                                points: 300,
                                type: "SIMPLE",
                                data: {
                                    question: "Question 3?",
                                    answer: "Answer 3"
                                }
                            },
                            {
                                points: 400,
                                type: "SIMPLE",
                                data: {
                                    question: "Question 4?",
                                    answer: "Answer 4"
                                }
                            },
                            {
                                points: 500,
                                type: "SIMPLE",
                                data: {
                                    question: "Question 5?",
                                    answer: "Answer 5"
                                }
                            }
                        ]
                    },
                    {
                        name: "Category 4",
                        questions: [
                            {
                                points: 100,
                                type: "SIMPLE",
                                data: {
                                    question: "Question 1?",
                                    answer: "Answer 1"
                                }
                            },
                            {
                                points: 200,
                                type: "SIMPLE",
                                data: {
                                    question: "Question 2?",
                                    answer: "Answer 2"
                                }
                            },
                            {
                                points: 300,
                                type: "SIMPLE",
                                data: {
                                    question: "Question 3?",
                                    answer: "Answer 3"
                                }
                            },
                            {
                                points: 400,
                                type: "SIMPLE",
                                data: {
                                    question: "Question 4?",
                                    answer: "Answer 4"
                                }
                            },
                            {
                                points: 500,
                                type: "SIMPLE",
                                data: {
                                    question: "Question 5?",
                                    answer: "Answer 5"
                                }
                            }
                        ]
                    },
                    {
                        name: "Category 5",
                        questions: [
                            {
                                points: 100,
                                type: "SIMPLE",
                                data: {
                                    question: "Question 1?",
                                    answer: "Answer 1"
                                }
                            },
                            {
                                points: 200,
                                type: "SIMPLE",
                                data: {
                                    question: "Question 2?",
                                    answer: "Answer 2"
                                }
                            },
                            {
                                points: 300,
                                type: "SIMPLE",
                                data: {
                                    question: "Question 3?",
                                    answer: "Answer 3"
                                }
                            },
                            {
                                points: 400,
                                type: "SIMPLE",
                                data: {
                                    question: "Question 4?",
                                    answer: "Answer 4"
                                }
                            },
                            {
                                points: 500,
                                type: "SIMPLE",
                                data: {
                                    question: "Question 5?",
                                    answer: "Answer 5"
                                }
                            }
                        ]
                    }
                ]
            }
        ]
    },
    {
        name: "Ich gehe zur Schule",
        walls: [
            {
                name: "Schulfächer",
                categories: [
                    {
                        name: "Deutsch",
                        questions: [
                            {
                                type: "SIMPLE",
                                points: 100,
                                data: {
                                    question: "Wie viele Fälle gibt es in der deutschen Sprache?",
                                    answer: "4"
                                }
                            },
                            {
                                type: "MULTIPLE_CHOICE",
                                points: 200,
                                data: {
                                    question:
                                        "Mein Sohn, was birgst du so bang dein Gesicht? - Wie geht es weiter?",
                                    choices: [
                                        "Siehst, Vater, du den Erlkönig nicht?",
                                        "Was Erlkönig mir leise verspricht?",
                                        "Mein Vater, mein Vater, und hörest du nicht,",
                                        "Den Erlkönig mit Kron und Schweif?"
                                    ]
                                }
                            },
                            {
                                type: "SIMPLE",
                                points: 300,
                                data: {
                                    question: 'Bilde das Futur II Passiv von "Ich frage ihn."',
                                    answer: "Er wird von mir gefragt worden sein."
                                }
                            },
                            {
                                type: "SIMPLE",
                                points: 400,
                                data: {
                                    question:
                                        'Bilde das Plusquamperfekt Passiv von "Ich frage ihn."',
                                    answer: "Er war von mir gefragt worden."
                                }
                            },
                            {
                                type: "MULTIPLE_CHOICE",
                                points: 500,
                                data: {
                                    question: "Welche Szene gibt es nicht in Faust",
                                    choices: [
                                        "Abend. Offen Feld",
                                        "Nacht",
                                        "Abend",
                                        "Nacht. Offen Feld"
                                    ]
                                }
                            }
                        ]
                    },
                    {
                        name: "Biologie",
                        questions: [
                            {
                                type: "SIMPLE",
                                points: 100,
                                data: {
                                    question:
                                        "Welches Tierchen kann man sich über die Füße ziehen?",
                                    answer: "Pantoffeltierchen"
                                }
                            },
                            {
                                type: "SIMPLE",
                                points: 200,
                                data: {
                                    question: "Welches ist das größte Säugetier an Land?",
                                    answer: "Afrikanischer Elefant"
                                }
                            },
                            {
                                type: "SIMPLE",
                                points: 0,
                                data: {
                                    question: "Frage 3",
                                    answer: "Antwort 3"
                                }
                            },
                            {
                                type: "MULTIPLE_CHOICE",
                                points: 400,
                                data: {
                                    question:
                                        "Welche der folgenden Pflanzen betreibt keine Photosynthese (und existiert)?",
                                    choices: [
                                        "Fichtenspargel",
                                        "Buchenmöhre",
                                        "Eichensellerie",
                                        "Erlenrübe"
                                    ]
                                }
                            },
                            {
                                type: "SIMPLE",
                                points: 0,
                                data: {
                                    question: "Frage 5",
                                    answer: "Antwort 5"
                                }
                            }
                        ]
                    },
                    {
                        name: "Religion",
                        questions: [
                            {
                                type: "SIMPLE",
                                points: 100,
                                data: {
                                    question: "Nenne die 5 größten Religionen.",
                                    answer: "Christentum, Judentum, Islam, Hinduismus, Buddhismus"
                                }
                            },
                            {
                                type: "MULTIPLE_CHOICE",
                                points: 200,
                                data: {
                                    question:
                                        "In welchem Jahrhundert wurde der Buddhismus gegründet?",
                                    choices: ["6. v. Chr", "3. n. Chr", "12. v. Chr", "7. n. Chr"]
                                }
                            },
                            {
                                type: "MULTIPLE_CHOICE",
                                points: 300,
                                data: {
                                    question: "Welchen Gott gibt es nicht im Hinduismus?",
                                    choices: [
                                        "Haathi",
                                        "Skanda",
                                        "Surya",
                                        "Indra",
                                        "Garuda",
                                        "Kali",
                                        "Durga",
                                        "Hanuman"
                                    ]
                                }
                            },
                            {
                                type: "MULTIPLE_CHOICE",
                                points: 400,
                                data: {
                                    question: "Welches ist keine der 5 Säulen des Islams?",
                                    choices: ["Hubb", "Shahada", "Salah", "Zakat", "Sawm", "Hadsch"]
                                }
                            },
                            {
                                type: "SIMPLE",
                                points: 500,
                                data: {
                                    question: "Welche Abkürzung stand über dem Kreuz von Jesus?",
                                    answer: "INRI"
                                }
                            }
                        ]
                    },
                    {
                        name: "Mathematik",
                        questions: [
                            {
                                type: "SIMPLE",
                                points: 100,
                                data: {
                                    question: "Was ist das Ergebnis von 2 + 2 * 4?",
                                    answer: "10"
                                }
                            },
                            {
                                type: "SIMPLE",
                                points: 200,
                                data: {
                                    question: "Wer wird als Vater der Geometrie bezeichnet?",
                                    answer: "Euklid von Alexandria"
                                }
                            },
                            {
                                type: "SIMPLE",
                                points: 300,
                                data: {
                                    question:
                                        "Wie werden die drei Seiten eines rechtwinkligen Dreiecks genannt?",
                                    answer: "Hypotenuse, Ankathete, Gegenkathete"
                                }
                            },
                            {
                                type: "MULTIPLE_CHOICE",
                                points: 400,
                                data: {
                                    question: "Welche der Aantworten stellt PI am besten dar?",
                                    choices: [
                                        "3,141592653589",
                                        "3,141522653589",
                                        "3,142592653589",
                                        "3,141592657589",
                                        "3,141562653589"
                                    ]
                                }
                            },
                            {
                                type: "SIMPLE",
                                points: 500,
                                data: {
                                    question: "(6 + 58 * 0,4 * 5 - 2) / 5!",
                                    answer: "1"
                                }
                            }
                        ]
                    },
                    {
                        name: "Sport",
                        questions: [
                            {
                                type: "SIMPLE",
                                points: 100,
                                data: {
                                    question:
                                        "Wie viele Berührungen sind beim Volleyball in der eigenen Hälfte erlaubt?",
                                    answer: "3"
                                }
                            },
                            {
                                type: "SIMPLE",
                                points: 200,
                                data: {
                                    question:
                                        "Wie viele Schritte darf man mit einem Basketball machen ohne zu prellen?",
                                    answer: "2"
                                }
                            },
                            {
                                type: "MULTIPLE_CHOICE",
                                points: 300,
                                data: {
                                    question: "Wie groß ist ein Handballfeld mit Sicherheitszone?",
                                    choices: ["43m x 23m", "40m x 20m", "45m x 30m", "34m x 19m"]
                                }
                            },
                            {
                                type: "SIMPLE",
                                points: 400,
                                data: {
                                    question:
                                        "Was ist der wichtigste Unterschied zwischen American Football und Rugby?",
                                    answer: "Der Ball darf im Rugby nur nach hinten gepasst werden. Im Football sind alle Richtungen erlaubt."
                                }
                            },
                            {
                                type: "MULTIPLE_CHOICE",
                                points: 500,
                                data: {
                                    question:
                                        "Wer hat die Snookerweltmeisterschaft in 2025 gewonnen?",
                                    choices: [
                                        "Zhao Xintong",
                                        "Mark Williams",
                                        "Jackson Page",
                                        "Lei Peifan",
                                        "Xiao Guodong"
                                    ]
                                }
                            }
                        ]
                    }
                ]
            }
        ]
    }
];

export type QuestionType = "SIMPLE" | "MULTIPLE_CHOICE" | "IMAGE";

export type Question = {
    points: number;
    type: QuestionType;
};

export type SimpleQuestion = Question & {
    type: "SIMPLE";
    data: {
        question: string;
        answer: string;
    };
};

/**
 * First choice is correct answer. Choices need to be shuffled in component
 */
export type MultipleChoiceQuestion = Question & {
    type: "MULTIPLE_CHOICE";
    data: {
        question: string;
        choices: string[];
    };
};

export type ImageQuestion = Question & {
    type: "IMAGE";
    data: {
        question: string;
        image: string;
        answer: string;
    };
};

export function isSimpleQuestion(question: Question): question is SimpleQuestion {
    return (question as SimpleQuestion).type === "SIMPLE";
}
export function isMultipleChoiceQuestion(question: Question): question is MultipleChoiceQuestion {
    return (question as MultipleChoiceQuestion).type === "MULTIPLE_CHOICE";
}
export function isImageQuestion(question: Question): question is ImageQuestion {
    return (question as ImageQuestion).type === "IMAGE";
}

export type Category = {
    name: string;
    questions: (SimpleQuestion | MultipleChoiceQuestion | ImageQuestion)[];
};

export type Wall = {
    name: string;
    categories: Category[];
};

export type Game = {
    name: string;
    walls: Wall[];
};

export type Games = Game[];

export default games;
