ViewSet for sub-levels.

GET /api/sub-levels/?format=api&page=5
HTTP 200 OK
Allow: GET, POST, HEAD, OPTIONS
Content-Type: application/json
Vary: Accept

{
    "count": 96,
    "next": null,
    "previous": "http://roskov.driad.fr/api/sub-levels/?format=api&page=4",
    "results": [
        {
            "id": 81,
            "level": 17,
            "level_display": "Adverbes",
            "sub_level": 3,
            "title": "Adverbes exprimant la quantité",
            "description": "Adverbes de quantité",
            "order": 3,
            "word_pairs": [
                {
                    "id": 382,
                    "french_word": "assez",
                    "russian_word": "достаточно",
                    "category": "adverb",
                    "category_display": "Adverb",
                    "level": 5,
                    "level_display": "Small Phrases",
                    "comment": "Enough",
                    "tags": [
                        {
                            "id": 27,
                            "name": "adverb",
                            "category": "category",
                            "category_display": "category",
                            "description": "",
                            "is_active": true,
                            "created_at": "2026-01-17T18:41:53.615110Z",
                            "updated_at": "2026-01-17T18:41:53.615125Z"
                        }
                    ],
                    "created_at": "2026-01-17T18:41:48.238455Z",
                    "updated_at": "2026-01-17T18:41:53.784611Z",
                    "is_active": true
                },
                {
                    "id": 52,
                    "french_word": "beaucoup",
                    "russian_word": "много",
                    "category": "adverb",
                    "category_display": "Adverb",
                    "level": 2,
                    "level_display": "Basic Words",
                    "comment": "Much/Many",
                    "tags": [
                        {
                            "id": 27,
                            "name": "adverb",
                            "category": "category",
                            "category_display": "category",
                            "description": "",
                            "is_active": true,
                            "created_at": "2026-01-17T18:41:53.615110Z",
                            "updated_at": "2026-01-17T18:41:53.615125Z"
                        }
                    ],
                    "created_at": "2026-01-17T18:41:46.014668Z",
                    "updated_at": "2026-01-17T18:41:53.769119Z",
                    "is_active": true
                },
                {
                    "id": 1014,
                    "french_word": "complètement",
                    "russian_word": "полностью",
                    "category": "adverb",
                    "category_display": "Adverb",
                    "level": 10,
                    "level_display": "Adverbes",
                    "comment": "Completely",
                    "tags": [
                        {
                            "id": 27,
                            "name": "adverb",
                            "category": "category",
                            "category_display": "category",
                            "description": "",
                            "is_active": true,
                            "created_at": "2026-01-17T18:41:53.615110Z",
                            "updated_at": "2026-01-17T18:41:53.615125Z"
                        }
                    ],
                    "created_at": "2026-01-17T18:41:53.810222Z",
                    "updated_at": "2026-01-17T18:41:53.810235Z",
                    "is_active": true
                },
                {
                    "id": 53,
                    "french_word": "peu",
                    "russian_word": "мало",
                    "category": "adverb",
                    "category_display": "Adverb",
                    "level": 2,
                    "level_display": "Basic Words",
                    "comment": "Little/Few",
                    "tags": [
                        {
                            "id": 27,
                            "name": "adverb",
                            "category": "category",
                            "category_display": "category",
                            "description": "",
                            "is_active": true,
                            "created_at": "2026-01-17T18:41:53.615110Z",
                            "updated_at": "2026-01-17T18:41:53.615125Z"
                        }
                    ],
                    "created_at": "2026-01-17T18:41:46.017462Z",
                    "updated_at": "2026-01-17T18:41:53.775001Z",
                    "is_active": true
                },
                {
                    "id": 1012,
                    "french_word": "plutôt",
                    "russian_word": "скорее",
                    "category": "adverb",
                    "category_display": "Adverb",
                    "level": 10,
                    "level_display": "Adverbes",
                    "comment": "Rather",
                    "tags": [
                        {
                            "id": 27,
                            "name": "adverb",
                            "category": "category",
                            "category_display": "category",
                            "description": "",
                            "is_active": true,
                            "created_at": "2026-01-17T18:41:53.615110Z",
                            "updated_at": "2026-01-17T18:41:53.615125Z"
                        }
                    ],
                    "created_at": "2026-01-17T18:41:53.800462Z",
                    "updated_at": "2026-01-17T18:41:53.800475Z",
                    "is_active": true
                },
                {
                    "id": 1013,
                    "french_word": "presque",
                    "russian_word": "почти",
                    "category": "adverb",
                    "category_display": "Adverb",
                    "level": 10,
                    "level_display": "Adverbes",
                    "comment": "Almost",
                    "tags": [
                        {
                            "id": 27,
                            "name": "adverb",
                            "category": "category",
                            "category_display": "category",
                            "description": "",
                            "is_active": true,
                            "created_at": "2026-01-17T18:41:53.615110Z",
                            "updated_at": "2026-01-17T18:41:53.615125Z"
                        }
                    ],
                    "created_at": "2026-01-17T18:41:53.805344Z",
                    "updated_at": "2026-01-17T18:41:53.805357Z",
                    "is_active": true
                },
                {
                    "id": 383,
                    "french_word": "trop",
                    "russian_word": "слишком",
                    "category": "adverb",
                    "category_display": "Adverb",
                    "level": 5,
                    "level_display": "Small Phrases",
                    "comment": "Too much",
                    "tags": [
                        {
                            "id": 27,
                            "name": "adverb",
                            "category": "category",
                            "category_display": "category",
                            "description": "",
                            "is_active": true,
                            "created_at": "2026-01-17T18:41:53.615110Z",
                            "updated_at": "2026-01-17T18:41:53.615125Z"
                        }
                    ],
                    "created_at": "2026-01-17T18:41:48.241200Z",
                    "updated_at": "2026-01-17T18:41:53.790154Z",
                    "is_active": true
                },
                {
                    "id": 1011,
                    "french_word": "très",
                    "russian_word": "очень",
                    "category": "adverb",
                    "category_display": "Adverb",
                    "level": 10,
                    "level_display": "Adverbes",
                    "comment": "Very",
                    "tags": [
                        {
                            "id": 27,
                            "name": "adverb",
                            "category": "category",
                            "category_display": "category",
                            "description": "",
                            "is_active": true,
                            "created_at": "2026-01-17T18:41:53.615110Z",
                            "updated_at": "2026-01-17T18:41:53.615125Z"
                        }
                    ],
                    "created_at": "2026-01-17T18:41:53.795300Z",
                    "updated_at": "2026-01-17T18:41:53.795314Z",
                    "is_active": true
                }
            ],
            "steps": [
                {
                    "id": 320,
                    "sub_level": 81,
                    "order": 1,
                    "step_type": "learning_card",
                    "step_type_display": "Learning Card",
                    "title": "Introduction à Adverbes exprimant la quantité",
                    "description": "Adverbes de quantité\n\nApprenez les adverbes en russe.",
                    "is_required": true,
                    "config": {
                        "content": "Adverbes de quantité\n\nApprenez les adverbes en russe.",
                        "concept_type": "vocabulary"
                    },
                    "is_active": true,
                    "is_completed": false,
                    "progress": {
                        "is_completed": false,
                        "completed_at": null,
                        "score": null,
                        "attempts": 0,
                        "best_score": null
                    },
                    "created_at": "2026-01-17T18:41:53.912174Z",
                    "updated_at": "2026-01-17T18:41:53.912186Z"
                },
                {
                    "id": 321,
                    "sub_level": 81,
                    "order": 2,
                    "step_type": "game_flashcard",
                    "step_type_display": "Game - Flashcard",
                    "title": "Exercice 1 - Flashcard",
                    "description": "Exercice 1 - Flashcard",
                    "is_required": false,
                    "config": {
                        "game_mode": "flashcard",
                        "instructions": "Pratiquez les adverbes avec le mode flashcard.",
                        "min_score": 70,
                        "level": 10,
                        "sub_level": 3
                    },
                    "is_active": true,
                    "is_completed": false,
                    "progress": {
                        "is_completed": false,
                        "completed_at": null,
                        "score": null,
                        "attempts": 0,
                        "best_score": null
                    },
                    "created_at": "2026-01-17T18:41:53.915866Z",
                    "updated_at": "2026-01-17T18:41:53.915877Z"
                },
                {
                    "id": 322,
                    "sub_level": 81,
                    "order": 3,
                    "step_type": "game_matching",
                    "step_type_display": "Game - Matching",
                    "title": "Exercice 2 - Matching",
                    "description": "Exercice 2 - Matching",
                    "is_required": false,
                    "config": {
                        "game_mode": "matching",
                        "instructions": "Pratiquez les adverbes avec le mode matching.",
                        "min_score": 70,
                        "level": 10,
                        "sub_level": 3
                    },
                    "is_active": true,
                    "is_completed": false,
                    "progress": {
                        "is_completed": false,
                        "completed_at": null,
                        "score": null,
                        "attempts": 0,
                        "best_score": null
                    },
                    "created_at": "2026-01-17T18:41:53.919283Z",
                    "updated_at": "2026-01-17T18:41:53.919293Z"
                },
                {
                    "id": 323,
                    "sub_level": 81,
                    "order": 4,
                    "step_type": "game_multiple_choice",
                    "step_type_display": "Game - Multiple Choice",
                    "title": "Exercice 3 - Multiple Choice",
                    "description": "Exercice 3 - Multiple Choice",
                    "is_required": false,
                    "config": {
                        "game_mode": "multiple_choice",
                        "instructions": "Pratiquez les adverbes avec le mode multiple_choice.",
                        "min_score": 70,
                        "level": 10,
                        "sub_level": 3
                    },
                    "is_active": true,
                    "is_completed": false,
                    "progress": {
                        "is_completed": false,
                        "completed_at": null,
                        "score": null,
                        "attempts": 0,
                        "best_score": null
                    },
                    "created_at": "2026-01-17T18:41:53.922726Z",
                    "updated_at": "2026-01-17T18:41:53.922736Z"
                }
            ],
            "videos": [],
            "learning_cards": [
                {
                    "id": 320,
                    "sub_level": 81,
                    "order": 1,
                    "step_type": "learning_card",
                    "step_type_display": "Learning Card",
                    "title": "Introduction à Adverbes exprimant la quantité",
                    "description": "Adverbes de quantité\n\nApprenez les adverbes en russe.",
                    "is_required": true,
                    "config": {
                        "content": "Adverbes de quantité\n\nApprenez les adverbes en russe.",
                        "concept_type": "vocabulary"
                    },
                    "is_active": true,
                    "is_completed": false,
                    "progress": {
                        "is_completed": false,
                        "completed_at": null,
                        "score": null,
                        "attempts": 0,
                        "best_score": null
                    },
                    "created_at": "2026-01-17T18:41:53.912174Z",
                    "updated_at": "2026-01-17T18:41:53.912186Z"
                }
            ],
            "exercises": [],
            "total_words": 8,
            "is_unlocked": false,
            "is_completed": false,
            "progress": {
                "words_mastered": 0,
                "total_words": 8,
                "completion_percentage": 0.0,
                "steps": []
            },
            "is_active": true,
            "created_at": "2026-01-17T18:41:53.905087Z",
            "updated_at": "2026-01-17T18:41:53.905097Z"
        },
        {
            "id": 82,
            "level": 17,
            "level_display": "Adverbes",
            "sub_level": 4,
            "title": "Adverbes exprimant la manière",
            "description": "Adverbes de manière",
            "order": 4,
            "word_pairs": [
                {
                    "id": 995,
                    "french_word": "bien",
                    "russian_word": "хорошо",
                    "category": "adverb",
                    "category_display": "Adverb",
                    "level": 10,
                    "level_display": "Adverbes",
                    "comment": "Well",
                    "tags": [
                        {
                            "id": 27,
                            "name": "adverb",
                            "category": "category",
                            "category_display": "category",
                            "description": "",
                            "is_active": true,
                            "created_at": "2026-01-17T18:41:53.615110Z",
                            "updated_at": "2026-01-17T18:41:53.615125Z"
                        }
                    ],
                    "created_at": "2026-01-17T18:41:53.647091Z",
                    "updated_at": "2026-01-17T18:41:53.647116Z",
                    "is_active": true
                },
                {
                    "id": 998,
                    "french_word": "lentement",
                    "russian_word": "медленно",
                    "category": "adverb",
                    "category_display": "Adverb",
                    "level": 10,
                    "level_display": "Adverbes",
                    "comment": "Slowly",
                    "tags": [
                        {
                            "id": 27,
                            "name": "adverb",
                            "category": "category",
                            "category_display": "category",
                            "description": "",
                            "is_active": true,
                            "created_at": "2026-01-17T18:41:53.615110Z",
                            "updated_at": "2026-01-17T18:41:53.615125Z"
                        }
                    ],
                    "created_at": "2026-01-17T18:41:53.663248Z",
                    "updated_at": "2026-01-17T18:41:53.663270Z",
                    "is_active": true
                },
                {
                    "id": 996,
                    "french_word": "mal",
                    "russian_word": "плохо",
                    "category": "adverb",
                    "category_display": "Adverb",
                    "level": 10,
                    "level_display": "Adverbes",
                    "comment": "Badly",
                    "tags": [
                        {
                            "id": 27,
                            "name": "adverb",
                            "category": "category",
                            "category_display": "category",
                            "description": "",
                            "is_active": true,
                            "created_at": "2026-01-17T18:41:53.615110Z",
                            "updated_at": "2026-01-17T18:41:53.615125Z"
                        }
                    ],
                    "created_at": "2026-01-17T18:41:53.652588Z",
                    "updated_at": "2026-01-17T18:41:53.652607Z",
                    "is_active": true
                },
                {
                    "id": 997,
                    "french_word": "vite",
                    "russian_word": "быстро",
                    "category": "adverb",
                    "category_display": "Adverb",
                    "level": 10,
                    "level_display": "Adverbes",
                    "comment": "Quickly",
                    "tags": [
                        {
                            "id": 27,
                            "name": "adverb",
                            "category": "category",
                            "category_display": "category",
                            "description": "",
                            "is_active": true,
                            "created_at": "2026-01-17T18:41:53.615110Z",
                            "updated_at": "2026-01-17T18:41:53.615125Z"
                        }
                    ],
                    "created_at": "2026-01-17T18:41:53.657908Z",
                    "updated_at": "2026-01-17T18:41:53.657930Z",
                    "is_active": true
                },
                {
                    "id": 1015,
                    "french_word": "vraiment",
                    "russian_word": "действительно",
                    "category": "adverb",
                    "category_display": "Adverb",
                    "level": 10,
                    "level_display": "Adverbes",
                    "comment": "Really",
                    "tags": [
                        {
                            "id": 27,
                            "name": "adverb",
                            "category": "category",
                            "category_display": "category",
                            "description": "",
                            "is_active": true,
                            "created_at": "2026-01-17T18:41:53.615110Z",
                            "updated_at": "2026-01-17T18:41:53.615125Z"
                        }
                    ],
                    "created_at": "2026-01-17T18:41:53.815160Z",
                    "updated_at": "2026-01-17T18:41:53.815175Z",
                    "is_active": true
                }
            ],
            "steps": [
                {
                    "id": 324,
                    "sub_level": 82,
                    "order": 1,
                    "step_type": "learning_card",
                    "step_type_display": "Learning Card",
                    "title": "Introduction à Adverbes exprimant la manière",
                    "description": "Adverbes de manière\n\nApprenez les adverbes en russe.",
                    "is_required": true,
                    "config": {
                        "content": "Adverbes de manière\n\nApprenez les adverbes en russe.",
                        "concept_type": "vocabulary"
                    },
                    "is_active": true,
                    "is_completed": false,
                    "progress": {
                        "is_completed": false,
                        "completed_at": null,
                        "score": null,
                        "attempts": 0,
                        "best_score": null
                    },
                    "created_at": "2026-01-17T18:41:53.933773Z",
                    "updated_at": "2026-01-17T18:41:53.933787Z"
                },
                {
                    "id": 325,
                    "sub_level": 82,
                    "order": 2,
                    "step_type": "game_flashcard",
                    "step_type_display": "Game - Flashcard",
                    "title": "Exercice 1 - Flashcard",
                    "description": "Exercice 1 - Flashcard",
                    "is_required": false,
                    "config": {
                        "game_mode": "flashcard",
                        "instructions": "Pratiquez les adverbes avec le mode flashcard.",
                        "min_score": 70,
                        "level": 10,
                        "sub_level": 4
                    },
                    "is_active": true,
                    "is_completed": false,
                    "progress": {
                        "is_completed": false,
                        "completed_at": null,
                        "score": null,
                        "attempts": 0,
                        "best_score": null
                    },
                    "created_at": "2026-01-17T18:41:53.937572Z",
                    "updated_at": "2026-01-17T18:41:53.937585Z"
                },
                {
                    "id": 326,
                    "sub_level": 82,
                    "order": 3,
                    "step_type": "game_matching",
                    "step_type_display": "Game - Matching",
                    "title": "Exercice 2 - Matching",
                    "description": "Exercice 2 - Matching",
                    "is_required": false,
                    "config": {
                        "game_mode": "matching",
                        "instructions": "Pratiquez les adverbes avec le mode matching.",
                        "min_score": 70,
                        "level": 10,
                        "sub_level": 4
                    },
                    "is_active": true,
                    "is_completed": false,
                    "progress": {
                        "is_completed": false,
                        "completed_at": null,
                        "score": null,
                        "attempts": 0,
                        "best_score": null
                    },
                    "created_at": "2026-01-17T18:41:53.940898Z",
                    "updated_at": "2026-01-17T18:41:53.940911Z"
                },
                {
                    "id": 327,
                    "sub_level": 82,
                    "order": 4,
                    "step_type": "game_multiple_choice",
                    "step_type_display": "Game - Multiple Choice",
                    "title": "Exercice 3 - Multiple Choice",
                    "description": "Exercice 3 - Multiple Choice",
                    "is_required": false,
                    "config": {
                        "game_mode": "multiple_choice",
                        "instructions": "Pratiquez les adverbes avec le mode multiple_choice.",
                        "min_score": 70,
                        "level": 10,
                        "sub_level": 4
                    },
                    "is_active": true,
                    "is_completed": false,
                    "progress": {
                        "is_completed": false,
                        "completed_at": null,
                        "score": null,
                        "attempts": 0,
                        "best_score": null
                    },
                    "created_at": "2026-01-17T18:41:53.944362Z",
                    "updated_at": "2026-01-17T18:41:53.944374Z"
                }
            ],
            "videos": [],
            "learning_cards": [
                {
                    "id": 324,
                    "sub_level": 82,
                    "order": 1,
                    "step_type": "learning_card",
                    "step_type_display": "Learning Card",
                    "title": "Introduction à Adverbes exprimant la manière",
                    "description": "Adverbes de manière\n\nApprenez les adverbes en russe.",
                    "is_required": true,
                    "config": {
                        "content": "Adverbes de manière\n\nApprenez les adverbes en russe.",
                        "concept_type": "vocabulary"
                    },
                    "is_active": true,
                    "is_completed": false,
                    "progress": {
                        "is_completed": false,
                        "completed_at": null,
                        "score": null,
                        "attempts": 0,
                        "best_score": null
                    },
                    "created_at": "2026-01-17T18:41:53.933773Z",
                    "updated_at": "2026-01-17T18:41:53.933787Z"
                }
            ],
            "exercises": [],
            "total_words": 5,
            "is_unlocked": false,
            "is_completed": false,
            "progress": {
                "words_mastered": 0,
                "total_words": 5,
                "completion_percentage": 0.0,
                "steps": []
            },
            "is_active": true,
            "created_at": "2026-01-17T18:41:53.925559Z",
            "updated_at": "2026-01-17T18:41:53.925575Z"
        },
        {
            "id": 83,
            "level": 17,
            "level_display": "Adverbes",
            "sub_level": 5,
            "title": "Adverbes exprimant la fréquence",
            "description": "Adverbes de fréquence",
            "order": 5,
            "word_pairs": [
                {
                    "id": 1002,
                    "french_word": "jamais",
                    "russian_word": "никогда",
                    "category": "adverb",
                    "category_display": "Adverb",
                    "level": 10,
                    "level_display": "Adverbes",
                    "comment": "Never",
                    "tags": [
                        {
                            "id": 27,
                            "name": "adverb",
                            "category": "category",
                            "category_display": "category",
                            "description": "",
                            "is_active": true,
                            "created_at": "2026-01-17T18:41:53.615110Z",
                            "updated_at": "2026-01-17T18:41:53.615125Z"
                        }
                    ],
                    "created_at": "2026-01-17T18:41:53.685412Z",
                    "updated_at": "2026-01-17T18:41:53.685441Z",
                    "is_active": true
                },
                {
                    "id": 1003,
                    "french_word": "parfois",
                    "russian_word": "иногда",
                    "category": "adverb",
                    "category_display": "Adverb",
                    "level": 10,
                    "level_display": "Adverbes",
                    "comment": "Sometimes",
                    "tags": [
                        {
                            "id": 27,
                            "name": "adverb",
                            "category": "category",
                            "category_display": "category",
                            "description": "",
                            "is_active": true,
                            "created_at": "2026-01-17T18:41:53.615110Z",
                            "updated_at": "2026-01-17T18:41:53.615125Z"
                        }
                    ],
                    "created_at": "2026-01-17T18:41:53.692684Z",
                    "updated_at": "2026-01-17T18:41:53.692710Z",
                    "is_active": true
                },
                {
                    "id": 1000,
                    "french_word": "rarement",
                    "russian_word": "редко",
                    "category": "adverb",
                    "category_display": "Adverb",
                    "level": 10,
                    "level_display": "Adverbes",
                    "comment": "Rarely",
                    "tags": [
                        {
                            "id": 27,
                            "name": "adverb",
                            "category": "category",
                            "category_display": "category",
                            "description": "",
                            "is_active": true,
                            "created_at": "2026-01-17T18:41:53.615110Z",
                            "updated_at": "2026-01-17T18:41:53.615125Z"
                        }
                    ],
                    "created_at": "2026-01-17T18:41:53.674432Z",
                    "updated_at": "2026-01-17T18:41:53.674454Z",
                    "is_active": true
                },
                {
                    "id": 999,
                    "french_word": "souvent",
                    "russian_word": "часто",
                    "category": "adverb",
                    "category_display": "Adverb",
                    "level": 10,
                    "level_display": "Adverbes",
                    "comment": "Often",
                    "tags": [
                        {
                            "id": 27,
                            "name": "adverb",
                            "category": "category",
                            "category_display": "category",
                            "description": "",
                            "is_active": true,
                            "created_at": "2026-01-17T18:41:53.615110Z",
                            "updated_at": "2026-01-17T18:41:53.615125Z"
                        }
                    ],
                    "created_at": "2026-01-17T18:41:53.668861Z",
                    "updated_at": "2026-01-17T18:41:53.668885Z",
                    "is_active": true
                },
                {
                    "id": 1001,
                    "french_word": "toujours",
                    "russian_word": "всегда",
                    "category": "adverb",
                    "category_display": "Adverb",
                    "level": 10,
                    "level_display": "Adverbes",
                    "comment": "Always",
                    "tags": [
                        {
                            "id": 27,
                            "name": "adverb",
                            "category": "category",
                            "category_display": "category",
                            "description": "",
                            "is_active": true,
                            "created_at": "2026-01-17T18:41:53.615110Z",
                            "updated_at": "2026-01-17T18:41:53.615125Z"
                        }
                    ],
                    "created_at": "2026-01-17T18:41:53.679883Z",
                    "updated_at": "2026-01-17T18:41:53.679904Z",
                    "is_active": true
                }
            ],
            "steps": [
                {
                    "id": 328,
                    "sub_level": 83,
                    "order": 1,
                    "step_type": "learning_card",
                    "step_type_display": "Learning Card",
                    "title": "Introduction à Adverbes exprimant la fréquence",
                    "description": "Adverbes de fréquence\n\nApprenez les adverbes en russe.",
                    "is_required": true,
                    "config": {
                        "content": "Adverbes de fréquence\n\nApprenez les adverbes en russe.",
                        "concept_type": "vocabulary"
                    },
                    "is_active": true,
                    "is_completed": false,
                    "progress": {
                        "is_completed": false,
                        "completed_at": null,
                        "score": null,
                        "attempts": 0,
                        "best_score": null
                    },
                    "created_at": "2026-01-17T18:41:53.954119Z",
                    "updated_at": "2026-01-17T18:41:53.954134Z"
                },
                {
                    "id": 329,
                    "sub_level": 83,
                    "order": 2,
                    "step_type": "game_flashcard",
                    "step_type_display": "Game - Flashcard",
                    "title": "Exercice 1 - Flashcard",
                    "description": "Exercice 1 - Flashcard",
                    "is_required": false,
                    "config": {
                        "game_mode": "flashcard",
                        "instructions": "Pratiquez les adverbes avec le mode flashcard.",
                        "min_score": 70,
                        "level": 10,
                        "sub_level": 5
                    },
                    "is_active": true,
                    "is_completed": false,
                    "progress": {
                        "is_completed": false,
                        "completed_at": null,
                        "score": null,
                        "attempts": 0,
                        "best_score": null
                    },
                    "created_at": "2026-01-17T18:41:53.957693Z",
                    "updated_at": "2026-01-17T18:41:53.957706Z"
                },
                {
                    "id": 330,
                    "sub_level": 83,
                    "order": 3,
                    "step_type": "game_matching",
                    "step_type_display": "Game - Matching",
                    "title": "Exercice 2 - Matching",
                    "description": "Exercice 2 - Matching",
                    "is_required": false,
                    "config": {
                        "game_mode": "matching",
                        "instructions": "Pratiquez les adverbes avec le mode matching.",
                        "min_score": 70,
                        "level": 10,
                        "sub_level": 5
                    },
                    "is_active": true,
                    "is_completed": false,
                    "progress": {
                        "is_completed": false,
                        "completed_at": null,
                        "score": null,
                        "attempts": 0,
                        "best_score": null
                    },
                    "created_at": "2026-01-17T18:41:53.960990Z",
                    "updated_at": "2026-01-17T18:41:53.961001Z"
                },
                {
                    "id": 331,
                    "sub_level": 83,
                    "order": 4,
                    "step_type": "game_multiple_choice",
                    "step_type_display": "Game - Multiple Choice",
                    "title": "Exercice 3 - Multiple Choice",
                    "description": "Exercice 3 - Multiple Choice",
                    "is_required": false,
                    "config": {
                        "game_mode": "multiple_choice",
                        "instructions": "Pratiquez les adverbes avec le mode multiple_choice.",
                        "min_score": 70,
                        "level": 10,
                        "sub_level": 5
                    },
                    "is_active": true,
                    "is_completed": false,
                    "progress": {
                        "is_completed": false,
                        "completed_at": null,
                        "score": null,
                        "attempts": 0,
                        "best_score": null
                    },
                    "created_at": "2026-01-17T18:41:53.964232Z",
                    "updated_at": "2026-01-17T18:41:53.964243Z"
                }
            ],
            "videos": [],
            "learning_cards": [
                {
                    "id": 328,
                    "sub_level": 83,
                    "order": 1,
                    "step_type": "learning_card",
                    "step_type_display": "Learning Card",
                    "title": "Introduction à Adverbes exprimant la fréquence",
                    "description": "Adverbes de fréquence\n\nApprenez les adverbes en russe.",
                    "is_required": true,
                    "config": {
                        "content": "Adverbes de fréquence\n\nApprenez les adverbes en russe.",
                        "concept_type": "vocabulary"
                    },
                    "is_active": true,
                    "is_completed": false,
                    "progress": {
                        "is_completed": false,
                        "completed_at": null,
                        "score": null,
                        "attempts": 0,
                        "best_score": null
                    },
                    "created_at": "2026-01-17T18:41:53.954119Z",
                    "updated_at": "2026-01-17T18:41:53.954134Z"
                }
            ],
            "exercises": [],
            "total_words": 5,
            "is_unlocked": false,
            "is_completed": false,
            "progress": {
                "words_mastered": 0,
                "total_words": 5,
                "completion_percentage": 0.0,
                "steps": []
            },
            "is_active": true,
            "created_at": "2026-01-17T18:41:53.947127Z",
            "updated_at": "2026-01-17T18:41:53.947140Z"
        },
        {
            "id": 84,
            "level": 17,
            "level_display": "Adverbes",
            "sub_level": 6,
            "title": "Autres adverbes utiles",
            "description": "Adverbes supplémentaires",
            "order": 6,
            "word_pairs": [
                {
                    "id": 1017,
                    "french_word": "aussi",
                    "russian_word": "тоже",
                    "category": "adverb",
                    "category_display": "Adverb",
                    "level": 10,
                    "level_display": "Adverbes",
                    "comment": "Also",
                    "tags": [
                        {
                            "id": 27,
                            "name": "adverb",
                            "category": "category",
                            "category_display": "category",
                            "description": "",
                            "is_active": true,
                            "created_at": "2026-01-17T18:41:53.615110Z",
                            "updated_at": "2026-01-17T18:41:53.615125Z"
                        }
                    ],
                    "created_at": "2026-01-17T18:41:53.826582Z",
                    "updated_at": "2026-01-17T18:41:53.826614Z",
                    "is_active": true
                },
                {
                    "id": 1022,
                    "french_word": "certainement",
                    "russian_word": "конечно",
                    "category": "adverb",
                    "category_display": "Adverb",
                    "level": 10,
                    "level_display": "Adverbes",
                    "comment": "Certainly",
                    "tags": [
                        {
                            "id": 27,
                            "name": "adverb",
                            "category": "category",
                            "category_display": "category",
                            "description": "",
                            "is_active": true,
                            "created_at": "2026-01-17T18:41:53.615110Z",
                            "updated_at": "2026-01-17T18:41:53.615125Z"
                        }
                    ],
                    "created_at": "2026-01-17T18:41:53.856611Z",
                    "updated_at": "2026-01-17T18:41:53.856624Z",
                    "is_active": true
                },
                {
                    "id": 1018,
                    "french_word": "même",
                    "russian_word": "даже",
                    "category": "adverb",
                    "category_display": "Adverb",
                    "level": 10,
                    "level_display": "Adverbes",
                    "comment": "Even",
                    "tags": [
                        {
                            "id": 27,
                            "name": "adverb",
                            "category": "category",
                            "category_display": "category",
                            "description": "",
                            "is_active": true,
                            "created_at": "2026-01-17T18:41:53.615110Z",
                            "updated_at": "2026-01-17T18:41:53.615125Z"
                        }
                    ],
                    "created_at": "2026-01-17T18:41:53.832852Z",
                    "updated_at": "2026-01-17T18:41:53.832886Z",
                    "is_active": true
                },
                {
                    "id": 1020,
                    "french_word": "peut-être",
                    "russian_word": "возможно",
                    "category": "adverb",
                    "category_display": "Adverb",
                    "level": 10,
                    "level_display": "Adverbes",
                    "comment": "Perhaps/Maybe",
                    "tags": [
                        {
                            "id": 27,
                            "name": "adverb",
                            "category": "category",
                            "category_display": "category",
                            "description": "",
                            "is_active": true,
                            "created_at": "2026-01-17T18:41:53.615110Z",
                            "updated_at": "2026-01-17T18:41:53.615125Z"
                        }
                    ],
                    "created_at": "2026-01-17T18:41:53.845502Z",
                    "updated_at": "2026-01-17T18:41:53.845531Z",
                    "is_active": true
                },
                {
                    "id": 1021,
                    "french_word": "probablement",
                    "russian_word": "вероятно",
                    "category": "adverb",
                    "category_display": "Adverb",
                    "level": 10,
                    "level_display": "Adverbes",
                    "comment": "Probably",
                    "tags": [
                        {
                            "id": 27,
                            "name": "adverb",
                            "category": "category",
                            "category_display": "category",
                            "description": "",
                            "is_active": true,
                            "created_at": "2026-01-17T18:41:53.615110Z",
                            "updated_at": "2026-01-17T18:41:53.615125Z"
                        }
                    ],
                    "created_at": "2026-01-17T18:41:53.851049Z",
                    "updated_at": "2026-01-17T18:41:53.851073Z",
                    "is_active": true
                },
                {
                    "id": 1016,
                    "french_word": "seulement",
                    "russian_word": "только",
                    "category": "adverb",
                    "category_display": "Adverb",
                    "level": 10,
                    "level_display": "Adverbes",
                    "comment": "Only",
                    "tags": [
                        {
                            "id": 27,
                            "name": "adverb",
                            "category": "category",
                            "category_display": "category",
                            "description": "",
                            "is_active": true,
                            "created_at": "2026-01-17T18:41:53.615110Z",
                            "updated_at": "2026-01-17T18:41:53.615125Z"
                        }
                    ],
                    "created_at": "2026-01-17T18:41:53.820650Z",
                    "updated_at": "2026-01-17T18:41:53.820679Z",
                    "is_active": true
                },
                {
                    "id": 1019,
                    "french_word": "surtout",
                    "russian_word": "особенно",
                    "category": "adverb",
                    "category_display": "Adverb",
                    "level": 10,
                    "level_display": "Adverbes",
                    "comment": "Especially",
                    "tags": [
                        {
                            "id": 27,
                            "name": "adverb",
                            "category": "category",
                            "category_display": "category",
                            "description": "",
                            "is_active": true,
                            "created_at": "2026-01-17T18:41:53.615110Z",
                            "updated_at": "2026-01-17T18:41:53.615125Z"
                        }
                    ],
                    "created_at": "2026-01-17T18:41:53.838753Z",
                    "updated_at": "2026-01-17T18:41:53.838791Z",
                    "is_active": true
                }
            ],
            "steps": [
                {
                    "id": 332,
                    "sub_level": 84,
                    "order": 1,
                    "step_type": "learning_card",
                    "step_type_display": "Learning Card",
                    "title": "Introduction à Autres adverbes utiles",
                    "description": "Adverbes supplémentaires\n\nApprenez les adverbes en russe.",
                    "is_required": true,
                    "config": {
                        "content": "Adverbes supplémentaires\n\nApprenez les adverbes en russe.",
                        "concept_type": "vocabulary"
                    },
                    "is_active": true,
                    "is_completed": false,
                    "progress": {
                        "is_completed": false,
                        "completed_at": null,
                        "score": null,
                        "attempts": 0,
                        "best_score": null
                    },
                    "created_at": "2026-01-17T18:41:53.973967Z",
                    "updated_at": "2026-01-17T18:41:53.973979Z"
                },
                {
                    "id": 333,
                    "sub_level": 84,
                    "order": 2,
                    "step_type": "game_flashcard",
                    "step_type_display": "Game - Flashcard",
                    "title": "Exercice 1 - Flashcard",
                    "description": "Exercice 1 - Flashcard",
                    "is_required": false,
                    "config": {
                        "game_mode": "flashcard",
                        "instructions": "Pratiquez les adverbes avec le mode flashcard.",
                        "min_score": 70,
                        "level": 10,
                        "sub_level": 6
                    },
                    "is_active": true,
                    "is_completed": false,
                    "progress": {
                        "is_completed": false,
                        "completed_at": null,
                        "score": null,
                        "attempts": 0,
                        "best_score": null
                    },
                    "created_at": "2026-01-17T18:41:53.977521Z",
                    "updated_at": "2026-01-17T18:41:53.977531Z"
                },
                {
                    "id": 334,
                    "sub_level": 84,
                    "order": 3,
                    "step_type": "game_matching",
                    "step_type_display": "Game - Matching",
                    "title": "Exercice 2 - Matching",
                    "description": "Exercice 2 - Matching",
                    "is_required": false,
                    "config": {
                        "game_mode": "matching",
                        "instructions": "Pratiquez les adverbes avec le mode matching.",
                        "min_score": 70,
                        "level": 10,
                        "sub_level": 6
                    },
                    "is_active": true,
                    "is_completed": false,
                    "progress": {
                        "is_completed": false,
                        "completed_at": null,
                        "score": null,
                        "attempts": 0,
                        "best_score": null
                    },
                    "created_at": "2026-01-17T18:41:53.981273Z",
                    "updated_at": "2026-01-17T18:41:53.981284Z"
                },
                {
                    "id": 335,
                    "sub_level": 84,
                    "order": 4,
                    "step_type": "game_multiple_choice",
                    "step_type_display": "Game - Multiple Choice",
                    "title": "Exercice 3 - Multiple Choice",
                    "description": "Exercice 3 - Multiple Choice",
                    "is_required": false,
                    "config": {
                        "game_mode": "multiple_choice",
                        "instructions": "Pratiquez les adverbes avec le mode multiple_choice.",
                        "min_score": 70,
                        "level": 10,
                        "sub_level": 6
                    },
                    "is_active": true,
                    "is_completed": false,
                    "progress": {
                        "is_completed": false,
                        "completed_at": null,
                        "score": null,
                        "attempts": 0,
                        "best_score": null
                    },
                    "created_at": "2026-01-17T18:41:53.985098Z",
                    "updated_at": "2026-01-17T18:41:53.985108Z"
                }
            ],
            "videos": [],
            "learning_cards": [
                {
                    "id": 332,
                    "sub_level": 84,
                    "order": 1,
                    "step_type": "learning_card",
                    "step_type_display": "Learning Card",
                    "title": "Introduction à Autres adverbes utiles",
                    "description": "Adverbes supplémentaires\n\nApprenez les adverbes en russe.",
                    "is_required": true,
                    "config": {
                        "content": "Adverbes supplémentaires\n\nApprenez les adverbes en russe.",
                        "concept_type": "vocabulary"
                    },
                    "is_active": true,
                    "is_completed": false,
                    "progress": {
                        "is_completed": false,
                        "completed_at": null,
                        "score": null,
                        "attempts": 0,
                        "best_score": null
                    },
                    "created_at": "2026-01-17T18:41:53.973967Z",
                    "updated_at": "2026-01-17T18:41:53.973979Z"
                }
            ],
            "exercises": [],
            "total_words": 7,
            "is_unlocked": false,
            "is_completed": false,
            "progress": {
                "words_mastered": 0,
                "total_words": 7,
                "completion_percentage": 0.0,
                "steps": []
            },
            "is_active": true,
            "created_at": "2026-01-17T18:41:53.966904Z",
            "updated_at": "2026-01-17T18:41:53.966917Z"
        },
        {
            "id": 85,
            "level": 18,
            "level_display": "Conjonctions",
            "sub_level": 1,
            "title": "Conjonctions de coordination",
            "description": "Conjonctions de coordination",
            "order": 1,
            "word_pairs": [
                {
                    "id": 1029,
                    "french_word": "car",
                    "russian_word": "так как",
                    "category": "conjunction",
                    "category_display": "Conjunction",
                    "level": 11,
                    "level_display": "Conjonctions",
                    "comment": "For/Because",
                    "tags": [
                        {
                            "id": 28,
                            "name": "conjunction",
                            "category": "category",
                            "category_display": "category",
                            "description": "",
                            "is_active": true,
                            "created_at": "2026-01-17T18:41:53.991245Z",
                            "updated_at": "2026-01-17T18:41:53.991261Z"
                        }
                    ],
                    "created_at": "2026-01-17T18:41:54.029863Z",
                    "updated_at": "2026-01-17T18:41:54.029879Z",
                    "is_active": true
                },
                {
                    "id": 1028,
                    "french_word": "donc",
                    "russian_word": "поэтому",
                    "category": "conjunction",
                    "category_display": "Conjunction",
                    "level": 11,
                    "level_display": "Conjonctions",
                    "comment": "Therefore",
                    "tags": [
                        {
                            "id": 28,
                            "name": "conjunction",
                            "category": "category",
                            "category_display": "category",
                            "description": "",
                            "is_active": true,
                            "created_at": "2026-01-17T18:41:53.991245Z",
                            "updated_at": "2026-01-17T18:41:53.991261Z"
                        }
                    ],
                    "created_at": "2026-01-17T18:41:54.024613Z",
                    "updated_at": "2026-01-17T18:41:54.024629Z",
                    "is_active": true
                },
                {
                    "id": 1023,
                    "french_word": "et",
                    "russian_word": "и",
                    "category": "conjunction",
                    "category_display": "Conjunction",
                    "level": 11,
                    "level_display": "Conjonctions",
                    "comment": "And",
                    "tags": [
                        {
                            "id": 28,
                            "name": "conjunction",
                            "category": "category",
                            "category_display": "category",
                            "description": "",
                            "is_active": true,
                            "created_at": "2026-01-17T18:41:53.991245Z",
                            "updated_at": "2026-01-17T18:41:53.991261Z"
                        }
                    ],
                    "created_at": "2026-01-17T18:41:53.993924Z",
                    "updated_at": "2026-01-17T18:41:53.993940Z",
                    "is_active": true
                },
                {
                    "id": 1025,
                    "french_word": "mais",
                    "russian_word": "но",
                    "category": "conjunction",
                    "category_display": "Conjunction",
                    "level": 11,
                    "level_display": "Conjonctions",
                    "comment": "But",
                    "tags": [
                        {
                            "id": 28,
                            "name": "conjunction",
                            "category": "category",
                            "category_display": "category",
                            "description": "",
                            "is_active": true,
                            "created_at": "2026-01-17T18:41:53.991245Z",
                            "updated_at": "2026-01-17T18:41:53.991261Z"
                        }
                    ],
                    "created_at": "2026-01-17T18:41:54.003992Z",
                    "updated_at": "2026-01-17T18:41:54.004006Z",
                    "is_active": true
                },
                {
                    "id": 1024,
                    "french_word": "ou",
                    "russian_word": "или",
                    "category": "conjunction",
                    "category_display": "Conjunction",
                    "level": 11,
                    "level_display": "Conjonctions",
                    "comment": "Or",
                    "tags": [
                        {
                            "id": 28,
                            "name": "conjunction",
                            "category": "category",
                            "category_display": "category",
                            "description": "",
                            "is_active": true,
                            "created_at": "2026-01-17T18:41:53.991245Z",
                            "updated_at": "2026-01-17T18:41:53.991261Z"
                        }
                    ],
                    "created_at": "2026-01-17T18:41:53.998967Z",
                    "updated_at": "2026-01-17T18:41:53.998981Z",
                    "is_active": true
                }
            ],
            "steps": [
                {
                    "id": 336,
                    "sub_level": 85,
                    "order": 1,
                    "step_type": "learning_card",
                    "step_type_display": "Learning Card",
                    "title": "Introduction à Conjonctions de coordination",
                    "description": "Conjonctions de coordination\n\nApprenez les conjonctions en russe.",
                    "is_required": true,
                    "config": {
                        "content": "Conjonctions de coordination\n\nApprenez les conjonctions en russe.",
                        "concept_type": "vocabulary"
                    },
                    "is_active": true,
                    "is_completed": false,
                    "progress": {
                        "is_completed": false,
                        "completed_at": null,
                        "score": null,
                        "attempts": 0,
                        "best_score": null
                    },
                    "created_at": "2026-01-17T18:41:54.143067Z",
                    "updated_at": "2026-01-17T18:41:54.143078Z"
                },
                {
                    "id": 337,
                    "sub_level": 85,
                    "order": 2,
                    "step_type": "game_flashcard",
                    "step_type_display": "Game - Flashcard",
                    "title": "Exercice 1 - Flashcard",
                    "description": "Exercice 1 - Flashcard",
                    "is_required": false,
                    "config": {
                        "game_mode": "flashcard",
                        "instructions": "Pratiquez les conjonctions avec le mode flashcard.",
                        "min_score": 70,
                        "level": 11,
                        "sub_level": 1
                    },
                    "is_active": true,
                    "is_completed": false,
                    "progress": {
                        "is_completed": false,
                        "completed_at": null,
                        "score": null,
                        "attempts": 0,
                        "best_score": null
                    },
                    "created_at": "2026-01-17T18:41:54.146534Z",
                    "updated_at": "2026-01-17T18:41:54.146544Z"
                },
                {
                    "id": 338,
                    "sub_level": 85,
                    "order": 3,
                    "step_type": "game_matching",
                    "step_type_display": "Game - Matching",
                    "title": "Exercice 2 - Matching",
                    "description": "Exercice 2 - Matching",
                    "is_required": false,
                    "config": {
                        "game_mode": "matching",
                        "instructions": "Pratiquez les conjonctions avec le mode matching.",
                        "min_score": 70,
                        "level": 11,
                        "sub_level": 1
                    },
                    "is_active": true,
                    "is_completed": false,
                    "progress": {
                        "is_completed": false,
                        "completed_at": null,
                        "score": null,
                        "attempts": 0,
                        "best_score": null
                    },
                    "created_at": "2026-01-17T18:41:54.149639Z",
                    "updated_at": "2026-01-17T18:41:54.149649Z"
                },
                {
                    "id": 339,
                    "sub_level": 85,
                    "order": 4,
                    "step_type": "game_multiple_choice",
                    "step_type_display": "Game - Multiple Choice",
                    "title": "Exercice 3 - Multiple Choice",
                    "description": "Exercice 3 - Multiple Choice",
                    "is_required": false,
                    "config": {
                        "game_mode": "multiple_choice",
                        "instructions": "Pratiquez les conjonctions avec le mode multiple_choice.",
                        "min_score": 70,
                        "level": 11,
                        "sub_level": 1
                    },
                    "is_active": true,
                    "is_completed": false,
                    "progress": {
                        "is_completed": false,
                        "completed_at": null,
                        "score": null,
                        "attempts": 0,
                        "best_score": null
                    },
                    "created_at": "2026-01-17T18:41:54.152698Z",
                    "updated_at": "2026-01-17T18:41:54.152709Z"
                }
            ],
            "videos": [],
            "learning_cards": [
                {
                    "id": 336,
                    "sub_level": 85,
                    "order": 1,
                    "step_type": "learning_card",
                    "step_type_display": "Learning Card",
                    "title": "Introduction à Conjonctions de coordination",
                    "description": "Conjonctions de coordination\n\nApprenez les conjonctions en russe.",
                    "is_required": true,
                    "config": {
                        "content": "Conjonctions de coordination\n\nApprenez les conjonctions en russe.",
                        "concept_type": "vocabulary"
                    },
                    "is_active": true,
                    "is_completed": false,
                    "progress": {
                        "is_completed": false,
                        "completed_at": null,
                        "score": null,
                        "attempts": 0,
                        "best_score": null
                    },
                    "created_at": "2026-01-17T18:41:54.143067Z",
                    "updated_at": "2026-01-17T18:41:54.143078Z"
                }
            ],
            "exercises": [],
            "total_words": 5,
            "is_unlocked": false,
            "is_completed": false,
            "progress": {
                "words_mastered": 0,
                "total_words": 5,
                "completion_percentage": 0.0,
                "steps": []
            },
            "is_active": true,
            "created_at": "2026-01-17T18:41:54.135935Z",
            "updated_at": "2026-01-17T18:41:54.135951Z"
        },
        {
            "id": 86,
            "level": 18,
            "level_display": "Conjonctions",
            "sub_level": 2,
            "title": "Conjonctions exprimant la cause",
            "description": "Conjonctions de cause",
            "order": 2,
            "word_pairs": [
                {
                    "id": 1029,
                    "french_word": "car",
                    "russian_word": "так как",
                    "category": "conjunction",
                    "category_display": "Conjunction",
                    "level": 11,
                    "level_display": "Conjonctions",
                    "comment": "For/Because",
                    "tags": [
                        {
                            "id": 28,
                            "name": "conjunction",
                            "category": "category",
                            "category_display": "category",
                            "description": "",
                            "is_active": true,
                            "created_at": "2026-01-17T18:41:53.991245Z",
                            "updated_at": "2026-01-17T18:41:53.991261Z"
                        }
                    ],
                    "created_at": "2026-01-17T18:41:54.029863Z",
                    "updated_at": "2026-01-17T18:41:54.029879Z",
                    "is_active": true
                },
                {
                    "id": 1026,
                    "french_word": "parce que",
                    "russian_word": "потому что",
                    "category": "conjunction",
                    "category_display": "Conjunction",
                    "level": 11,
                    "level_display": "Conjonctions",
                    "comment": "Because",
                    "tags": [
                        {
                            "id": 28,
                            "name": "conjunction",
                            "category": "category",
                            "category_display": "category",
                            "description": "",
                            "is_active": true,
                            "created_at": "2026-01-17T18:41:53.991245Z",
                            "updated_at": "2026-01-17T18:41:53.991261Z"
                        }
                    ],
                    "created_at": "2026-01-17T18:41:54.009070Z",
                    "updated_at": "2026-01-17T18:41:54.009087Z",
                    "is_active": true
                },
                {
                    "id": 1030,
                    "french_word": "puisque",
                    "russian_word": "поскольку",
                    "category": "conjunction",
                    "category_display": "Conjunction",
                    "level": 11,
                    "level_display": "Conjonctions",
                    "comment": "Since",
                    "tags": [
                        {
                            "id": 28,
                            "name": "conjunction",
                            "category": "category",
                            "category_display": "category",
                            "description": "",
                            "is_active": true,
                            "created_at": "2026-01-17T18:41:53.991245Z",
                            "updated_at": "2026-01-17T18:41:53.991261Z"
                        }
                    ],
                    "created_at": "2026-01-17T18:41:54.035047Z",
                    "updated_at": "2026-01-17T18:41:54.035062Z",
                    "is_active": true
                }
            ],
            "steps": [
                {
                    "id": 340,
                    "sub_level": 86,
                    "order": 1,
                    "step_type": "learning_card",
                    "step_type_display": "Learning Card",
                    "title": "Introduction à Conjonctions exprimant la cause",
                    "description": "Conjonctions de cause\n\nApprenez les conjonctions en russe.",
                    "is_required": true,
                    "config": {
                        "content": "Conjonctions de cause\n\nApprenez les conjonctions en russe.",
                        "concept_type": "vocabulary"
                    },
                    "is_active": true,
                    "is_completed": false,
                    "progress": {
                        "is_completed": false,
                        "completed_at": null,
                        "score": null,
                        "attempts": 0,
                        "best_score": null
                    },
                    "created_at": "2026-01-17T18:41:54.162055Z",
                    "updated_at": "2026-01-17T18:41:54.162066Z"
                },
                {
                    "id": 341,
                    "sub_level": 86,
                    "order": 2,
                    "step_type": "game_flashcard",
                    "step_type_display": "Game - Flashcard",
                    "title": "Exercice 1 - Flashcard",
                    "description": "Exercice 1 - Flashcard",
                    "is_required": false,
                    "config": {
                        "game_mode": "flashcard",
                        "instructions": "Pratiquez les conjonctions avec le mode flashcard.",
                        "min_score": 70,
                        "level": 11,
                        "sub_level": 2
                    },
                    "is_active": true,
                    "is_completed": false,
                    "progress": {
                        "is_completed": false,
                        "completed_at": null,
                        "score": null,
                        "attempts": 0,
                        "best_score": null
                    },
                    "created_at": "2026-01-17T18:41:54.165363Z",
                    "updated_at": "2026-01-17T18:41:54.165373Z"
                },
                {
                    "id": 342,
                    "sub_level": 86,
                    "order": 3,
                    "step_type": "game_matching",
                    "step_type_display": "Game - Matching",
                    "title": "Exercice 2 - Matching",
                    "description": "Exercice 2 - Matching",
                    "is_required": false,
                    "config": {
                        "game_mode": "matching",
                        "instructions": "Pratiquez les conjonctions avec le mode matching.",
                        "min_score": 70,
                        "level": 11,
                        "sub_level": 2
                    },
                    "is_active": true,
                    "is_completed": false,
                    "progress": {
                        "is_completed": false,
                        "completed_at": null,
                        "score": null,
                        "attempts": 0,
                        "best_score": null
                    },
                    "created_at": "2026-01-17T18:41:54.168503Z",
                    "updated_at": "2026-01-17T18:41:54.168513Z"
                },
                {
                    "id": 343,
                    "sub_level": 86,
                    "order": 4,
                    "step_type": "game_multiple_choice",
                    "step_type_display": "Game - Multiple Choice",
                    "title": "Exercice 3 - Multiple Choice",
                    "description": "Exercice 3 - Multiple Choice",
                    "is_required": false,
                    "config": {
                        "game_mode": "multiple_choice",
                        "instructions": "Pratiquez les conjonctions avec le mode multiple_choice.",
                        "min_score": 70,
                        "level": 11,
                        "sub_level": 2
                    },
                    "is_active": true,
                    "is_completed": false,
                    "progress": {
                        "is_completed": false,
                        "completed_at": null,
                        "score": null,
                        "attempts": 0,
                        "best_score": null
                    },
                    "created_at": "2026-01-17T18:41:54.171590Z",
                    "updated_at": "2026-01-17T18:41:54.171600Z"
                }
            ],
            "videos": [],
            "learning_cards": [
                {
                    "id": 340,
                    "sub_level": 86,
                    "order": 1,
                    "step_type": "learning_card",
                    "step_type_display": "Learning Card",
                    "title": "Introduction à Conjonctions exprimant la cause",
                    "description": "Conjonctions de cause\n\nApprenez les conjonctions en russe.",
                    "is_required": true,
                    "config": {
                        "content": "Conjonctions de cause\n\nApprenez les conjonctions en russe.",
                        "concept_type": "vocabulary"
                    },
                    "is_active": true,
                    "is_completed": false,
                    "progress": {
                        "is_completed": false,
                        "completed_at": null,
                        "score": null,
                        "attempts": 0,
                        "best_score": null
                    },
                    "created_at": "2026-01-17T18:41:54.162055Z",
                    "updated_at": "2026-01-17T18:41:54.162066Z"
                }
            ],
            "exercises": [],
            "total_words": 3,
            "is_unlocked": false,
            "is_completed": false,
            "progress": {
                "words_mastered": 0,
                "total_words": 3,
                "completion_percentage": 0.0,
                "steps": []
            },
            "is_active": true,
            "created_at": "2026-01-17T18:41:54.155213Z",
            "updated_at": "2026-01-17T18:41:54.155224Z"
        },
        {
            "id": 87,
            "level": 18,
            "level_display": "Conjonctions",
            "sub_level": 3,
            "title": "Conjonctions exprimant le temps",
            "description": "Conjonctions temporelles",
            "order": 3,
            "word_pairs": [
                {
                    "id": 1031,
                    "french_word": "alors",
                    "russian_word": "тогда",
                    "category": "conjunction",
                    "category_display": "Conjunction",
                    "level": 11,
                    "level_display": "Conjonctions",
                    "comment": "Then",
                    "tags": [
                        {
                            "id": 28,
                            "name": "conjunction",
                            "category": "category",
                            "category_display": "category",
                            "description": "",
                            "is_active": true,
                            "created_at": "2026-01-17T18:41:53.991245Z",
                            "updated_at": "2026-01-17T18:41:53.991261Z"
                        }
                    ],
                    "created_at": "2026-01-17T18:41:54.040404Z",
                    "updated_at": "2026-01-17T18:41:54.040420Z",
                    "is_active": true
                },
                {
                    "id": 1045,
                    "french_word": "après que",
                    "russian_word": "после того как",
                    "category": "conjunction",
                    "category_display": "Conjunction",
                    "level": 11,
                    "level_display": "Conjonctions",
                    "comment": "After",
                    "tags": [
                        {
                            "id": 28,
                            "name": "conjunction",
                            "category": "category",
                            "category_display": "category",
                            "description": "",
                            "is_active": true,
                            "created_at": "2026-01-17T18:41:53.991245Z",
                            "updated_at": "2026-01-17T18:41:53.991261Z"
                        }
                    ],
                    "created_at": "2026-01-17T18:41:54.115725Z",
                    "updated_at": "2026-01-17T18:41:54.115742Z",
                    "is_active": true
                },
                {
                    "id": 1046,
                    "french_word": "avant que",
                    "russian_word": "до того как",
                    "category": "conjunction",
                    "category_display": "Conjunction",
                    "level": 11,
                    "level_display": "Conjonctions",
                    "comment": "Before",
                    "tags": [
                        {
                            "id": 28,
                            "name": "conjunction",
                            "category": "category",
                            "category_display": "category",
                            "description": "",
                            "is_active": true,
                            "created_at": "2026-01-17T18:41:53.991245Z",
                            "updated_at": "2026-01-17T18:41:53.991261Z"
                        }
                    ],
                    "created_at": "2026-01-17T18:41:54.120947Z",
                    "updated_at": "2026-01-17T18:41:54.120958Z",
                    "is_active": true
                },
                {
                    "id": 1044,
                    "french_word": "dès que",
                    "russian_word": "как только",
                    "category": "conjunction",
                    "category_display": "Conjunction",
                    "level": 11,
                    "level_display": "Conjonctions",
                    "comment": "As soon as",
                    "tags": [
                        {
                            "id": 28,
                            "name": "conjunction",
                            "category": "category",
                            "category_display": "category",
                            "description": "",
                            "is_active": true,
                            "created_at": "2026-01-17T18:41:53.991245Z",
                            "updated_at": "2026-01-17T18:41:53.991261Z"
                        }
                    ],
                    "created_at": "2026-01-17T18:41:54.110494Z",
                    "updated_at": "2026-01-17T18:41:54.110509Z",
                    "is_active": true
                },
                {
                    "id": 1032,
                    "french_word": "ensuite",
                    "russian_word": "затем",
                    "category": "conjunction",
                    "category_display": "Conjunction",
                    "level": 11,
                    "level_display": "Conjonctions",
                    "comment": "Then/Next",
                    "tags": [
                        {
                            "id": 28,
                            "name": "conjunction",
                            "category": "category",
                            "category_display": "category",
                            "description": "",
                            "is_active": true,
                            "created_at": "2026-01-17T18:41:53.991245Z",
                            "updated_at": "2026-01-17T18:41:53.991261Z"
                        }
                    ],
                    "created_at": "2026-01-17T18:41:54.045776Z",
                    "updated_at": "2026-01-17T18:41:54.045793Z",
                    "is_active": true
                },
                {
                    "id": 1042,
                    "french_word": "jusqu'à ce que",
                    "russian_word": "пока",
                    "category": "conjunction",
                    "category_display": "Conjunction",
                    "level": 11,
                    "level_display": "Conjonctions",
                    "comment": "Until",
                    "tags": [
                        {
                            "id": 28,
                            "name": "conjunction",
                            "category": "category",
                            "category_display": "category",
                            "description": "",
                            "is_active": true,
                            "created_at": "2026-01-17T18:41:53.991245Z",
                            "updated_at": "2026-01-17T18:41:53.991261Z"
                        }
                    ],
                    "created_at": "2026-01-17T18:41:54.100090Z",
                    "updated_at": "2026-01-17T18:41:54.100106Z",
                    "is_active": true
                },
                {
                    "id": 1043,
                    "french_word": "pendant que",
                    "russian_word": "пока",
                    "category": "conjunction",
                    "category_display": "Conjunction",
                    "level": 11,
                    "level_display": "Conjonctions",
                    "comment": "While",
                    "tags": [
                        {
                            "id": 28,
                            "name": "conjunction",
                            "category": "category",
                            "category_display": "category",
                            "description": "",
                            "is_active": true,
                            "created_at": "2026-01-17T18:41:53.991245Z",
                            "updated_at": "2026-01-17T18:41:53.991261Z"
                        }
                    ],
                    "created_at": "2026-01-17T18:41:54.105279Z",
                    "updated_at": "2026-01-17T18:41:54.105295Z",
                    "is_active": true
                },
                {
                    "id": 1033,
                    "french_word": "puis",
                    "russian_word": "потом",
                    "category": "conjunction",
                    "category_display": "Conjunction",
                    "level": 11,
                    "level_display": "Conjonctions",
                    "comment": "Then",
                    "tags": [
                        {
                            "id": 28,
                            "name": "conjunction",
                            "category": "category",
                            "category_display": "category",
                            "description": "",
                            "is_active": true,
                            "created_at": "2026-01-17T18:41:53.991245Z",
                            "updated_at": "2026-01-17T18:41:53.991261Z"
                        }
                    ],
                    "created_at": "2026-01-17T18:41:54.051521Z",
                    "updated_at": "2026-01-17T18:41:54.051534Z",
                    "is_active": true
                },
                {
                    "id": 45,
                    "french_word": "quand",
                    "russian_word": "когда",
                    "category": "conjunction",
                    "category_display": "Conjunction",
                    "level": 2,
                    "level_display": "Basic Words",
                    "comment": "When",
                    "tags": [
                        {
                            "id": 28,
                            "name": "conjunction",
                            "category": "category",
                            "category_display": "category",
                            "description": "",
                            "is_active": true,
                            "created_at": "2026-01-17T18:41:53.991245Z",
                            "updated_at": "2026-01-17T18:41:53.991261Z"
                        }
                    ],
                    "created_at": "2026-01-17T18:41:45.995997Z",
                    "updated_at": "2026-01-17T18:41:54.014311Z",
                    "is_active": true
                }
            ],
            "steps": [
                {
                    "id": 344,
                    "sub_level": 87,
                    "order": 1,
                    "step_type": "learning_card",
                    "step_type_display": "Learning Card",
                    "title": "Introduction à Conjonctions exprimant le temps",
                    "description": "Conjonctions temporelles\n\nApprenez les conjonctions en russe.",
                    "is_required": true,
                    "config": {
                        "content": "Conjonctions temporelles\n\nApprenez les conjonctions en russe.",
                        "concept_type": "vocabulary"
                    },
                    "is_active": true,
                    "is_completed": false,
                    "progress": {
                        "is_completed": false,
                        "completed_at": null,
                        "score": null,
                        "attempts": 0,
                        "best_score": null
                    },
                    "created_at": "2026-01-17T18:41:54.181168Z",
                    "updated_at": "2026-01-17T18:41:54.181178Z"
                },
                {
                    "id": 345,
                    "sub_level": 87,
                    "order": 2,
                    "step_type": "game_flashcard",
                    "step_type_display": "Game - Flashcard",
                    "title": "Exercice 1 - Flashcard",
                    "description": "Exercice 1 - Flashcard",
                    "is_required": false,
                    "config": {
                        "game_mode": "flashcard",
                        "instructions": "Pratiquez les conjonctions avec le mode flashcard.",
                        "min_score": 70,
                        "level": 11,
                        "sub_level": 3
                    },
                    "is_active": true,
                    "is_completed": false,
                    "progress": {
                        "is_completed": false,
                        "completed_at": null,
                        "score": null,
                        "attempts": 0,
                        "best_score": null
                    },
                    "created_at": "2026-01-17T18:41:54.184565Z",
                    "updated_at": "2026-01-17T18:41:54.184575Z"
                },
                {
                    "id": 346,
                    "sub_level": 87,
                    "order": 3,
                    "step_type": "game_matching",
                    "step_type_display": "Game - Matching",
                    "title": "Exercice 2 - Matching",
                    "description": "Exercice 2 - Matching",
                    "is_required": false,
                    "config": {
                        "game_mode": "matching",
                        "instructions": "Pratiquez les conjonctions avec le mode matching.",
                        "min_score": 70,
                        "level": 11,
                        "sub_level": 3
                    },
                    "is_active": true,
                    "is_completed": false,
                    "progress": {
                        "is_completed": false,
                        "completed_at": null,
                        "score": null,
                        "attempts": 0,
                        "best_score": null
                    },
                    "created_at": "2026-01-17T18:41:54.187959Z",
                    "updated_at": "2026-01-17T18:41:54.187970Z"
                },
                {
                    "id": 347,
                    "sub_level": 87,
                    "order": 4,
                    "step_type": "game_multiple_choice",
                    "step_type_display": "Game - Multiple Choice",
                    "title": "Exercice 3 - Multiple Choice",
                    "description": "Exercice 3 - Multiple Choice",
                    "is_required": false,
                    "config": {
                        "game_mode": "multiple_choice",
                        "instructions": "Pratiquez les conjonctions avec le mode multiple_choice.",
                        "min_score": 70,
                        "level": 11,
                        "sub_level": 3
                    },
                    "is_active": true,
                    "is_completed": false,
                    "progress": {
                        "is_completed": false,
                        "completed_at": null,
                        "score": null,
                        "attempts": 0,
                        "best_score": null
                    },
                    "created_at": "2026-01-17T18:41:54.191258Z",
                    "updated_at": "2026-01-17T18:41:54.191268Z"
                }
            ],
            "videos": [],
            "learning_cards": [
                {
                    "id": 344,
                    "sub_level": 87,
                    "order": 1,
                    "step_type": "learning_card",
                    "step_type_display": "Learning Card",
                    "title": "Introduction à Conjonctions exprimant le temps",
                    "description": "Conjonctions temporelles\n\nApprenez les conjonctions en russe.",
                    "is_required": true,
                    "config": {
                        "content": "Conjonctions temporelles\n\nApprenez les conjonctions en russe.",
                        "concept_type": "vocabulary"
                    },
                    "is_active": true,
                    "is_completed": false,
                    "progress": {
                        "is_completed": false,
                        "completed_at": null,
                        "score": null,
                        "attempts": 0,
                        "best_score": null
                    },
                    "created_at": "2026-01-17T18:41:54.181168Z",
                    "updated_at": "2026-01-17T18:41:54.181178Z"
                }
            ],
            "exercises": [],
            "total_words": 9,
            "is_unlocked": false,
            "is_completed": false,
            "progress": {
                "words_mastered": 0,
                "total_words": 9,
                "completion_percentage": 0.0,
                "steps": []
            },
            "is_active": true,
            "created_at": "2026-01-17T18:41:54.174106Z",
            "updated_at": "2026-01-17T18:41:54.174116Z"
        },
        {
            "id": 88,
            "level": 18,
            "level_display": "Conjonctions",
            "sub_level": 4,
            "title": "Conjonctions exprimant la condition",
            "description": "Conjonctions de condition",
            "order": 4,
            "word_pairs": [
                {
                    "id": 1039,
                    "french_word": "même si",
                    "russian_word": "даже если",
                    "category": "conjunction",
                    "category_display": "Conjunction",
                    "level": 11,
                    "level_display": "Conjonctions",
                    "comment": "Even if",
                    "tags": [
                        {
                            "id": 28,
                            "name": "conjunction",
                            "category": "category",
                            "category_display": "category",
                            "description": "",
                            "is_active": true,
                            "created_at": "2026-01-17T18:41:53.991245Z",
                            "updated_at": "2026-01-17T18:41:53.991261Z"
                        }
                    ],
                    "created_at": "2026-01-17T18:41:54.083620Z",
                    "updated_at": "2026-01-17T18:41:54.083636Z",
                    "is_active": true
                },
                {
                    "id": 1027,
                    "french_word": "si",
                    "russian_word": "если",
                    "category": "conjunction",
                    "category_display": "Conjunction",
                    "level": 11,
                    "level_display": "Conjonctions",
                    "comment": "If",
                    "tags": [
                        {
                            "id": 28,
                            "name": "conjunction",
                            "category": "category",
                            "category_display": "category",
                            "description": "",
                            "is_active": true,
                            "created_at": "2026-01-17T18:41:53.991245Z",
                            "updated_at": "2026-01-17T18:41:53.991261Z"
                        }
                    ],
                    "created_at": "2026-01-17T18:41:54.019490Z",
                    "updated_at": "2026-01-17T18:41:54.019506Z",
                    "is_active": true
                },
                {
                    "id": 1048,
                    "french_word": "à moins que",
                    "russian_word": "если только не",
                    "category": "conjunction",
                    "category_display": "Conjunction",
                    "level": 11,
                    "level_display": "Conjonctions",
                    "comment": "Unless",
                    "tags": [
                        {
                            "id": 28,
                            "name": "conjunction",
                            "category": "category",
                            "category_display": "category",
                            "description": "",
                            "is_active": true,
                            "created_at": "2026-01-17T18:41:53.991245Z",
                            "updated_at": "2026-01-17T18:41:53.991261Z"
                        }
                    ],
                    "created_at": "2026-01-17T18:41:54.130455Z",
                    "updated_at": "2026-01-17T18:41:54.130471Z",
                    "is_active": true
                }
            ],
            "steps": [
                {
                    "id": 348,
                    "sub_level": 88,
                    "order": 1,
                    "step_type": "learning_card",
                    "step_type_display": "Learning Card",
                    "title": "Introduction à Conjonctions exprimant la condition",
                    "description": "Conjonctions de condition\n\nApprenez les conjonctions en russe.",
                    "is_required": true,
                    "config": {
                        "content": "Conjonctions de condition\n\nApprenez les conjonctions en russe.",
                        "concept_type": "vocabulary"
                    },
                    "is_active": true,
                    "is_completed": false,
                    "progress": {
                        "is_completed": false,
                        "completed_at": null,
                        "score": null,
                        "attempts": 0,
                        "best_score": null
                    },
                    "created_at": "2026-01-17T18:41:54.201752Z",
                    "updated_at": "2026-01-17T18:41:54.201764Z"
                },
                {
                    "id": 349,
                    "sub_level": 88,
                    "order": 2,
                    "step_type": "game_flashcard",
                    "step_type_display": "Game - Flashcard",
                    "title": "Exercice 1 - Flashcard",
                    "description": "Exercice 1 - Flashcard",
                    "is_required": false,
                    "config": {
                        "game_mode": "flashcard",
                        "instructions": "Pratiquez les conjonctions avec le mode flashcard.",
                        "min_score": 70,
                        "level": 11,
                        "sub_level": 4
                    },
                    "is_active": true,
                    "is_completed": false,
                    "progress": {
                        "is_completed": false,
                        "completed_at": null,
                        "score": null,
                        "attempts": 0,
                        "best_score": null
                    },
                    "created_at": "2026-01-17T18:41:54.205332Z",
                    "updated_at": "2026-01-17T18:41:54.205343Z"
                },
                {
                    "id": 350,
                    "sub_level": 88,
                    "order": 3,
                    "step_type": "game_matching",
                    "step_type_display": "Game - Matching",
                    "title": "Exercice 2 - Matching",
                    "description": "Exercice 2 - Matching",
                    "is_required": false,
                    "config": {
                        "game_mode": "matching",
                        "instructions": "Pratiquez les conjonctions avec le mode matching.",
                        "min_score": 70,
                        "level": 11,
                        "sub_level": 4
                    },
                    "is_active": true,
                    "is_completed": false,
                    "progress": {
                        "is_completed": false,
                        "completed_at": null,
                        "score": null,
                        "attempts": 0,
                        "best_score": null
                    },
                    "created_at": "2026-01-17T18:41:54.208635Z",
                    "updated_at": "2026-01-17T18:41:54.208645Z"
                },
                {
                    "id": 351,
                    "sub_level": 88,
                    "order": 4,
                    "step_type": "game_multiple_choice",
                    "step_type_display": "Game - Multiple Choice",
                    "title": "Exercice 3 - Multiple Choice",
                    "description": "Exercice 3 - Multiple Choice",
                    "is_required": false,
                    "config": {
                        "game_mode": "multiple_choice",
                        "instructions": "Pratiquez les conjonctions avec le mode multiple_choice.",
                        "min_score": 70,
                        "level": 11,
                        "sub_level": 4
                    },
                    "is_active": true,
                    "is_completed": false,
                    "progress": {
                        "is_completed": false,
                        "completed_at": null,
                        "score": null,
                        "attempts": 0,
                        "best_score": null
                    },
                    "created_at": "2026-01-17T18:41:54.211972Z",
                    "updated_at": "2026-01-17T18:41:54.211982Z"
                }
            ],
            "videos": [],
            "learning_cards": [
                {
                    "id": 348,
                    "sub_level": 88,
                    "order": 1,
                    "step_type": "learning_card",
                    "step_type_display": "Learning Card",
                    "title": "Introduction à Conjonctions exprimant la condition",
                    "description": "Conjonctions de condition\n\nApprenez les conjonctions en russe.",
                    "is_required": true,
                    "config": {
                        "content": "Conjonctions de condition\n\nApprenez les conjonctions en russe.",
                        "concept_type": "vocabulary"
                    },
                    "is_active": true,
                    "is_completed": false,
                    "progress": {
                        "is_completed": false,
                        "completed_at": null,
                        "score": null,
                        "attempts": 0,
                        "best_score": null
                    },
                    "created_at": "2026-01-17T18:41:54.201752Z",
                    "updated_at": "2026-01-17T18:41:54.201764Z"
                }
            ],
            "exercises": [],
            "total_words": 3,
            "is_unlocked": false,
            "is_completed": false,
            "progress": {
                "words_mastered": 0,
                "total_words": 3,
                "completion_percentage": 0.0,
                "steps": []
            },
            "is_active": true,
            "created_at": "2026-01-17T18:41:54.194527Z",
            "updated_at": "2026-01-17T18:41:54.194542Z"
        },
        {
            "id": 89,
            "level": 18,
            "level_display": "Conjonctions",
            "sub_level": 5,
            "title": "Conjonctions exprimant l'opposition",
            "description": "Conjonctions d'opposition",
            "order": 5,
            "word_pairs": [
                {
                    "id": 1038,
                    "french_word": "bien que",
                    "russian_word": "хотя",
                    "category": "conjunction",
                    "category_display": "Conjunction",
                    "level": 11,
                    "level_display": "Conjonctions",
                    "comment": "Although",
                    "tags": [
                        {
                            "id": 28,
                            "name": "conjunction",
                            "category": "category",
                            "category_display": "category",
                            "description": "",
                            "is_active": true,
                            "created_at": "2026-01-17T18:41:53.991245Z",
                            "updated_at": "2026-01-17T18:41:53.991261Z"
                        }
                    ],
                    "created_at": "2026-01-17T18:41:54.078052Z",
                    "updated_at": "2026-01-17T18:41:54.078069Z",
                    "is_active": true
                },
                {
                    "id": 1034,
                    "french_word": "cependant",
                    "russian_word": "однако",
                    "category": "conjunction",
                    "category_display": "Conjunction",
                    "level": 11,
                    "level_display": "Conjonctions",
                    "comment": "However",
                    "tags": [
                        {
                            "id": 28,
                            "name": "conjunction",
                            "category": "category",
                            "category_display": "category",
                            "description": "",
                            "is_active": true,
                            "created_at": "2026-01-17T18:41:53.991245Z",
                            "updated_at": "2026-01-17T18:41:53.991261Z"
                        }
                    ],
                    "created_at": "2026-01-17T18:41:54.056778Z",
                    "updated_at": "2026-01-17T18:41:54.056794Z",
                    "is_active": true
                },
                {
                    "id": 1035,
                    "french_word": "néanmoins",
                    "russian_word": "тем не менее",
                    "category": "conjunction",
                    "category_display": "Conjunction",
                    "level": 11,
                    "level_display": "Conjonctions",
                    "comment": "Nevertheless",
                    "tags": [
                        {
                            "id": 28,
                            "name": "conjunction",
                            "category": "category",
                            "category_display": "category",
                            "description": "",
                            "is_active": true,
                            "created_at": "2026-01-17T18:41:53.991245Z",
                            "updated_at": "2026-01-17T18:41:53.991261Z"
                        }
                    ],
                    "created_at": "2026-01-17T18:41:54.062036Z",
                    "updated_at": "2026-01-17T18:41:54.062052Z",
                    "is_active": true
                },
                {
                    "id": 1036,
                    "french_word": "pourtant",
                    "russian_word": "всё же",
                    "category": "conjunction",
                    "category_display": "Conjunction",
                    "level": 11,
                    "level_display": "Conjonctions",
                    "comment": "Yet",
                    "tags": [
                        {
                            "id": 28,
                            "name": "conjunction",
                            "category": "category",
                            "category_display": "category",
                            "description": "",
                            "is_active": true,
                            "created_at": "2026-01-17T18:41:53.991245Z",
                            "updated_at": "2026-01-17T18:41:53.991261Z"
                        }
                    ],
                    "created_at": "2026-01-17T18:41:54.067386Z",
                    "updated_at": "2026-01-17T18:41:54.067402Z",
                    "is_active": true
                },
                {
                    "id": 1037,
                    "french_word": "toutefois",
                    "russian_word": "однако",
                    "category": "conjunction",
                    "category_display": "Conjunction",
                    "level": 11,
                    "level_display": "Conjonctions",
                    "comment": "However",
                    "tags": [
                        {
                            "id": 28,
                            "name": "conjunction",
                            "category": "category",
                            "category_display": "category",
                            "description": "",
                            "is_active": true,
                            "created_at": "2026-01-17T18:41:53.991245Z",
                            "updated_at": "2026-01-17T18:41:53.991261Z"
                        }
                    ],
                    "created_at": "2026-01-17T18:41:54.072738Z",
                    "updated_at": "2026-01-17T18:41:54.072754Z",
                    "is_active": true
                }
            ],
            "steps": [
                {
                    "id": 352,
                    "sub_level": 89,
                    "order": 1,
                    "step_type": "learning_card",
                    "step_type_display": "Learning Card",
                    "title": "Introduction à Conjonctions exprimant l'opposition",
                    "description": "Conjonctions d'opposition\n\nApprenez les conjonctions en russe.",
                    "is_required": true,
                    "config": {
                        "content": "Conjonctions d'opposition\n\nApprenez les conjonctions en russe.",
                        "concept_type": "vocabulary"
                    },
                    "is_active": true,
                    "is_completed": false,
                    "progress": {
                        "is_completed": false,
                        "completed_at": null,
                        "score": null,
                        "attempts": 0,
                        "best_score": null
                    },
                    "created_at": "2026-01-17T18:41:54.221784Z",
                    "updated_at": "2026-01-17T18:41:54.221795Z"
                },
                {
                    "id": 353,
                    "sub_level": 89,
                    "order": 2,
                    "step_type": "game_flashcard",
                    "step_type_display": "Game - Flashcard",
                    "title": "Exercice 1 - Flashcard",
                    "description": "Exercice 1 - Flashcard",
                    "is_required": false,
                    "config": {
                        "game_mode": "flashcard",
                        "instructions": "Pratiquez les conjonctions avec le mode flashcard.",
                        "min_score": 70,
                        "level": 11,
                        "sub_level": 5
                    },
                    "is_active": true,
                    "is_completed": false,
                    "progress": {
                        "is_completed": false,
                        "completed_at": null,
                        "score": null,
                        "attempts": 0,
                        "best_score": null
                    },
                    "created_at": "2026-01-17T18:41:54.225355Z",
                    "updated_at": "2026-01-17T18:41:54.225366Z"
                },
                {
                    "id": 354,
                    "sub_level": 89,
                    "order": 3,
                    "step_type": "game_matching",
                    "step_type_display": "Game - Matching",
                    "title": "Exercice 2 - Matching",
                    "description": "Exercice 2 - Matching",
                    "is_required": false,
                    "config": {
                        "game_mode": "matching",
                        "instructions": "Pratiquez les conjonctions avec le mode matching.",
                        "min_score": 70,
                        "level": 11,
                        "sub_level": 5
                    },
                    "is_active": true,
                    "is_completed": false,
                    "progress": {
                        "is_completed": false,
                        "completed_at": null,
                        "score": null,
                        "attempts": 0,
                        "best_score": null
                    },
                    "created_at": "2026-01-17T18:41:54.228768Z",
                    "updated_at": "2026-01-17T18:41:54.228779Z"
                },
                {
                    "id": 355,
                    "sub_level": 89,
                    "order": 4,
                    "step_type": "game_multiple_choice",
                    "step_type_display": "Game - Multiple Choice",
                    "title": "Exercice 3 - Multiple Choice",
                    "description": "Exercice 3 - Multiple Choice",
                    "is_required": false,
                    "config": {
                        "game_mode": "multiple_choice",
                        "instructions": "Pratiquez les conjonctions avec le mode multiple_choice.",
                        "min_score": 70,
                        "level": 11,
                        "sub_level": 5
                    },
                    "is_active": true,
                    "is_completed": false,
                    "progress": {
                        "is_completed": false,
                        "completed_at": null,
                        "score": null,
                        "attempts": 0,
                        "best_score": null
                    },
                    "created_at": "2026-01-17T18:41:54.232080Z",
                    "updated_at": "2026-01-17T18:41:54.232091Z"
                }
            ],
            "videos": [],
            "learning_cards": [
                {
                    "id": 352,
                    "sub_level": 89,
                    "order": 1,
                    "step_type": "learning_card",
                    "step_type_display": "Learning Card",
                    "title": "Introduction à Conjonctions exprimant l'opposition",
                    "description": "Conjonctions d'opposition\n\nApprenez les conjonctions en russe.",
                    "is_required": true,
                    "config": {
                        "content": "Conjonctions d'opposition\n\nApprenez les conjonctions en russe.",
                        "concept_type": "vocabulary"
                    },
                    "is_active": true,
                    "is_completed": false,
                    "progress": {
                        "is_completed": false,
                        "completed_at": null,
                        "score": null,
                        "attempts": 0,
                        "best_score": null
                    },
                    "created_at": "2026-01-17T18:41:54.221784Z",
                    "updated_at": "2026-01-17T18:41:54.221795Z"
                }
            ],
            "exercises": [],
            "total_words": 5,
            "is_unlocked": false,
            "is_completed": false,
            "progress": {
                "words_mastered": 0,
                "total_words": 5,
                "completion_percentage": 0.0,
                "steps": []
            },
            "is_active": true,
            "created_at": "2026-01-17T18:41:54.214685Z",
            "updated_at": "2026-01-17T18:41:54.214699Z"
        },
        {
            "id": 90,
            "level": 18,
            "level_display": "Conjonctions",
            "sub_level": 6,
            "title": "Conjonctions exprimant le but",
            "description": "Conjonctions de but",
            "order": 6,
            "word_pairs": [
                {
                    "id": 1040,
                    "french_word": "afin que",
                    "russian_word": "чтобы",
                    "category": "conjunction",
                    "category_display": "Conjunction",
                    "level": 11,
                    "level_display": "Conjonctions",
                    "comment": "So that",
                    "tags": [
                        {
                            "id": 28,
                            "name": "conjunction",
                            "category": "category",
                            "category_display": "category",
                            "description": "",
                            "is_active": true,
                            "created_at": "2026-01-17T18:41:53.991245Z",
                            "updated_at": "2026-01-17T18:41:53.991261Z"
                        }
                    ],
                    "created_at": "2026-01-17T18:41:54.089451Z",
                    "updated_at": "2026-01-17T18:41:54.089467Z",
                    "is_active": true
                },
                {
                    "id": 1041,
                    "french_word": "pour que",
                    "russian_word": "чтобы",
                    "category": "conjunction",
                    "category_display": "Conjunction",
                    "level": 11,
                    "level_display": "Conjonctions",
                    "comment": "So that",
                    "tags": [
                        {
                            "id": 28,
                            "name": "conjunction",
                            "category": "category",
                            "category_display": "category",
                            "description": "",
                            "is_active": true,
                            "created_at": "2026-01-17T18:41:53.991245Z",
                            "updated_at": "2026-01-17T18:41:53.991261Z"
                        }
                    ],
                    "created_at": "2026-01-17T18:41:54.094848Z",
                    "updated_at": "2026-01-17T18:41:54.094865Z",
                    "is_active": true
                },
                {
                    "id": 1047,
                    "french_word": "sans que",
                    "russian_word": "без того чтобы",
                    "category": "conjunction",
                    "category_display": "Conjunction",
                    "level": 11,
                    "level_display": "Conjonctions",
                    "comment": "Without",
                    "tags": [
                        {
                            "id": 28,
                            "name": "conjunction",
                            "category": "category",
                            "category_display": "category",
                            "description": "",
                            "is_active": true,
                            "created_at": "2026-01-17T18:41:53.991245Z",
                            "updated_at": "2026-01-17T18:41:53.991261Z"
                        }
                    ],
                    "created_at": "2026-01-17T18:41:54.125707Z",
                    "updated_at": "2026-01-17T18:41:54.125722Z",
                    "is_active": true
                }
            ],
            "steps": [
                {
                    "id": 356,
                    "sub_level": 90,
                    "order": 1,
                    "step_type": "learning_card",
                    "step_type_display": "Learning Card",
                    "title": "Introduction à Conjonctions exprimant le but",
                    "description": "Conjonctions de but\n\nApprenez les conjonctions en russe.",
                    "is_required": true,
                    "config": {
                        "content": "Conjonctions de but\n\nApprenez les conjonctions en russe.",
                        "concept_type": "vocabulary"
                    },
                    "is_active": true,
                    "is_completed": false,
                    "progress": {
                        "is_completed": false,
                        "completed_at": null,
                        "score": null,
                        "attempts": 0,
                        "best_score": null
                    },
                    "created_at": "2026-01-17T18:41:54.242234Z",
                    "updated_at": "2026-01-17T18:41:54.242246Z"
                },
                {
                    "id": 357,
                    "sub_level": 90,
                    "order": 2,
                    "step_type": "game_flashcard",
                    "step_type_display": "Game - Flashcard",
                    "title": "Exercice 1 - Flashcard",
                    "description": "Exercice 1 - Flashcard",
                    "is_required": false,
                    "config": {
                        "game_mode": "flashcard",
                        "instructions": "Pratiquez les conjonctions avec le mode flashcard.",
                        "min_score": 70,
                        "level": 11,
                        "sub_level": 6
                    },
                    "is_active": true,
                    "is_completed": false,
                    "progress": {
                        "is_completed": false,
                        "completed_at": null,
                        "score": null,
                        "attempts": 0,
                        "best_score": null
                    },
                    "created_at": "2026-01-17T18:41:54.245859Z",
                    "updated_at": "2026-01-17T18:41:54.245870Z"
                },
                {
                    "id": 358,
                    "sub_level": 90,
                    "order": 3,
                    "step_type": "game_matching",
                    "step_type_display": "Game - Matching",
                    "title": "Exercice 2 - Matching",
                    "description": "Exercice 2 - Matching",
                    "is_required": false,
                    "config": {
                        "game_mode": "matching",
                        "instructions": "Pratiquez les conjonctions avec le mode matching.",
                        "min_score": 70,
                        "level": 11,
                        "sub_level": 6
                    },
                    "is_active": true,
                    "is_completed": false,
                    "progress": {
                        "is_completed": false,
                        "completed_at": null,
                        "score": null,
                        "attempts": 0,
                        "best_score": null
                    },
                    "created_at": "2026-01-17T18:41:54.249274Z",
                    "updated_at": "2026-01-17T18:41:54.249284Z"
                },
                {
                    "id": 359,
                    "sub_level": 90,
                    "order": 4,
                    "step_type": "game_multiple_choice",
                    "step_type_display": "Game - Multiple Choice",
                    "title": "Exercice 3 - Multiple Choice",
                    "description": "Exercice 3 - Multiple Choice",
                    "is_required": false,
                    "config": {
                        "game_mode": "multiple_choice",
                        "instructions": "Pratiquez les conjonctions avec le mode multiple_choice.",
                        "min_score": 70,
                        "level": 11,
                        "sub_level": 6
                    },
                    "is_active": true,
                    "is_completed": false,
                    "progress": {
                        "is_completed": false,
                        "completed_at": null,
                        "score": null,
                        "attempts": 0,
                        "best_score": null
                    },
                    "created_at": "2026-01-17T18:41:54.252668Z",
                    "updated_at": "2026-01-17T18:41:54.252678Z"
                }
            ],
            "videos": [],
            "learning_cards": [
                {
                    "id": 356,
                    "sub_level": 90,
                    "order": 1,
                    "step_type": "learning_card",
                    "step_type_display": "Learning Card",
                    "title": "Introduction à Conjonctions exprimant le but",
                    "description": "Conjonctions de but\n\nApprenez les conjonctions en russe.",
                    "is_required": true,
                    "config": {
                        "content": "Conjonctions de but\n\nApprenez les conjonctions en russe.",
                        "concept_type": "vocabulary"
                    },
                    "is_active": true,
                    "is_completed": false,
                    "progress": {
                        "is_completed": false,
                        "completed_at": null,
                        "score": null,
                        "attempts": 0,
                        "best_score": null
                    },
                    "created_at": "2026-01-17T18:41:54.242234Z",
                    "updated_at": "2026-01-17T18:41:54.242246Z"
                }
            ],
            "exercises": [],
            "total_words": 3,
            "is_unlocked": false,
            "is_completed": false,
            "progress": {
                "words_mastered": 0,
                "total_words": 3,
                "completion_percentage": 0.0,
                "steps": []
            },
            "is_active": true,
            "created_at": "2026-01-17T18:41:54.234902Z",
            "updated_at": "2026-01-17T18:41:54.234917Z"
        },
        {
            "id": 91,
            "level": 19,
            "level_display": "Interjections",
            "sub_level": 1,
            "title": "Interjections de salutation",
            "description": "Salutations",
            "order": 1,
            "word_pairs": [
                {
                    "id": 37,
                    "french_word": "au revoir",
                    "russian_word": "до свидания",
                    "category": "interjection",
                    "category_display": "Interjection",
                    "level": 2,
                    "level_display": "Basic Words",
                    "comment": "Goodbye",
                    "tags": [
                        {
                            "id": 29,
                            "name": "interjection",
                            "category": "category",
                            "category_display": "category",
                            "description": "",
                            "is_active": true,
                            "created_at": "2026-01-17T18:41:54.259134Z",
                            "updated_at": "2026-01-17T18:41:54.259150Z"
                        }
                    ],
                    "created_at": "2026-01-17T18:41:45.974137Z",
                    "updated_at": "2026-01-17T18:41:54.272608Z",
                    "is_active": true
                },
                {
                    "id": 34,
                    "french_word": "bonjour",
                    "russian_word": "здравствуйте",
                    "category": "interjection",
                    "category_display": "Interjection",
                    "level": 2,
                    "level_display": "Basic Words",
                    "comment": "Hello/Good day",
                    "tags": [
                        {
                            "id": 29,
                            "name": "interjection",
                            "category": "category",
                            "category_display": "category",
                            "description": "",
                            "is_active": true,
                            "created_at": "2026-01-17T18:41:54.259134Z",
                            "updated_at": "2026-01-17T18:41:54.259150Z"
                        }
                    ],
                    "created_at": "2026-01-17T18:41:45.966456Z",
                    "updated_at": "2026-01-17T18:41:54.267344Z",
                    "is_active": true
                },
                {
                    "id": 1049,
                    "french_word": "salut",
                    "russian_word": "привет",
                    "category": "interjection",
                    "category_display": "Interjection",
                    "level": 12,
                    "level_display": "Interjections",
                    "comment": "Hi/Hello (informal)",
                    "tags": [
                        {
                            "id": 29,
                            "name": "interjection",
                            "category": "category",
                            "category_display": "category",
                            "description": "",
                            "is_active": true,
                            "created_at": "2026-01-17T18:41:54.259134Z",
                            "updated_at": "2026-01-17T18:41:54.259150Z"
                        }
                    ],
                    "created_at": "2026-01-17T18:41:54.261929Z",
                    "updated_at": "2026-01-17T18:41:54.261945Z",
                    "is_active": true
                }
            ],
            "steps": [
                {
                    "id": 360,
                    "sub_level": 91,
                    "order": 1,
                    "step_type": "learning_card",
                    "step_type_display": "Learning Card",
                    "title": "Introduction à Interjections de salutation",
                    "description": "Salutations\n\nApprenez les interjections en russe.",
                    "is_required": true,
                    "config": {
                        "content": "Salutations\n\nApprenez les interjections en russe.",
                        "concept_type": "vocabulary"
                    },
                    "is_active": true,
                    "is_completed": false,
                    "progress": {
                        "is_completed": false,
                        "completed_at": null,
                        "score": null,
                        "attempts": 0,
                        "best_score": null
                    },
                    "created_at": "2026-01-17T18:41:54.395914Z",
                    "updated_at": "2026-01-17T18:41:54.395926Z"
                },
                {
                    "id": 361,
                    "sub_level": 91,
                    "order": 2,
                    "step_type": "game_flashcard",
                    "step_type_display": "Game - Flashcard",
                    "title": "Exercice 1 - Flashcard",
                    "description": "Exercice 1 - Flashcard",
                    "is_required": false,
                    "config": {
                        "game_mode": "flashcard",
                        "instructions": "Pratiquez les interjections avec le mode flashcard.",
                        "min_score": 70,
                        "level": 12,
                        "sub_level": 1
                    },
                    "is_active": true,
                    "is_completed": false,
                    "progress": {
                        "is_completed": false,
                        "completed_at": null,
                        "score": null,
                        "attempts": 0,
                        "best_score": null
                    },
                    "created_at": "2026-01-17T18:41:54.399224Z",
                    "updated_at": "2026-01-17T18:41:54.399234Z"
                },
                {
                    "id": 362,
                    "sub_level": 91,
                    "order": 3,
                    "step_type": "game_matching",
                    "step_type_display": "Game - Matching",
                    "title": "Exercice 2 - Matching",
                    "description": "Exercice 2 - Matching",
                    "is_required": false,
                    "config": {
                        "game_mode": "matching",
                        "instructions": "Pratiquez les interjections avec le mode matching.",
                        "min_score": 70,
                        "level": 12,
                        "sub_level": 1
                    },
                    "is_active": true,
                    "is_completed": false,
                    "progress": {
                        "is_completed": false,
                        "completed_at": null,
                        "score": null,
                        "attempts": 0,
                        "best_score": null
                    },
                    "created_at": "2026-01-17T18:41:54.402826Z",
                    "updated_at": "2026-01-17T18:41:54.402836Z"
                },
                {
                    "id": 363,
                    "sub_level": 91,
                    "order": 4,
                    "step_type": "game_multiple_choice",
                    "step_type_display": "Game - Multiple Choice",
                    "title": "Exercice 3 - Multiple Choice",
                    "description": "Exercice 3 - Multiple Choice",
                    "is_required": false,
                    "config": {
                        "game_mode": "multiple_choice",
                        "instructions": "Pratiquez les interjections avec le mode multiple_choice.",
                        "min_score": 70,
                        "level": 12,
                        "sub_level": 1
                    },
                    "is_active": true,
                    "is_completed": false,
                    "progress": {
                        "is_completed": false,
                        "completed_at": null,
                        "score": null,
                        "attempts": 0,
                        "best_score": null
                    },
                    "created_at": "2026-01-17T18:41:54.405928Z",
                    "updated_at": "2026-01-17T18:41:54.405938Z"
                }
            ],
            "videos": [],
            "learning_cards": [
                {
                    "id": 360,
                    "sub_level": 91,
                    "order": 1,
                    "step_type": "learning_card",
                    "step_type_display": "Learning Card",
                    "title": "Introduction à Interjections de salutation",
                    "description": "Salutations\n\nApprenez les interjections en russe.",
                    "is_required": true,
                    "config": {
                        "content": "Salutations\n\nApprenez les interjections en russe.",
                        "concept_type": "vocabulary"
                    },
                    "is_active": true,
                    "is_completed": false,
                    "progress": {
                        "is_completed": false,
                        "completed_at": null,
                        "score": null,
                        "attempts": 0,
                        "best_score": null
                    },
                    "created_at": "2026-01-17T18:41:54.395914Z",
                    "updated_at": "2026-01-17T18:41:54.395926Z"
                }
            ],
            "exercises": [],
            "total_words": 3,
            "is_unlocked": false,
            "is_completed": false,
            "progress": {
                "words_mastered": 0,
                "total_words": 3,
                "completion_percentage": 0.0,
                "steps": []
            },
            "is_active": true,
            "created_at": "2026-01-17T18:41:54.388903Z",
            "updated_at": "2026-01-17T18:41:54.388915Z"
        },
        {
            "id": 92,
            "level": 19,
            "level_display": "Interjections",
            "sub_level": 2,
            "title": "Interjections de réponse courante",
            "description": "Réponses courantes",
            "order": 2,
            "word_pairs": [
                {
                    "id": 338,
                    "french_word": "de rien",
                    "russian_word": "пожалуйста",
                    "category": "interjection",
                    "category_display": "Interjection",
                    "level": 5,
                    "level_display": "Small Phrases",
                    "comment": "You're welcome",
                    "tags": [
                        {
                            "id": 29,
                            "name": "interjection",
                            "category": "category",
                            "category_display": "category",
                            "description": "",
                            "is_active": true,
                            "created_at": "2026-01-17T18:41:54.259134Z",
                            "updated_at": "2026-01-17T18:41:54.259150Z"
                        }
                    ],
                    "created_at": "2026-01-17T18:41:48.105554Z",
                    "updated_at": "2026-01-17T18:41:54.293527Z",
                    "is_active": true
                },
                {
                    "id": 39,
                    "french_word": "excusez-moi",
                    "russian_word": "извините",
                    "category": "interjection",
                    "category_display": "Interjection",
                    "level": 2,
                    "level_display": "Basic Words",
                    "comment": "Excuse me",
                    "tags": [
                        {
                            "id": 29,
                            "name": "interjection",
                            "category": "category",
                            "category_display": "category",
                            "description": "",
                            "is_active": true,
                            "created_at": "2026-01-17T18:41:54.259134Z",
                            "updated_at": "2026-01-17T18:41:54.259150Z"
                        }
                    ],
                    "created_at": "2026-01-17T18:41:45.979369Z",
                    "updated_at": "2026-01-17T18:41:54.303967Z",
                    "is_active": true
                },
                {
                    "id": 36,
                    "french_word": "merci",
                    "russian_word": "спасибо",
                    "category": "interjection",
                    "category_display": "Interjection",
                    "level": 2,
                    "level_display": "Basic Words",
                    "comment": "Thank you",
                    "tags": [
                        {
                            "id": 29,
                            "name": "interjection",
                            "category": "category",
                            "category_display": "category",
                            "description": "",
                            "is_active": true,
                            "created_at": "2026-01-17T18:41:54.259134Z",
                            "updated_at": "2026-01-17T18:41:54.259150Z"
                        }
                    ],
                    "created_at": "2026-01-17T18:41:45.971527Z",
                    "updated_at": "2026-01-17T18:41:54.288155Z",
                    "is_active": true
                },
                {
                    "id": 347,
                    "french_word": "non",
                    "russian_word": "нет",
                    "category": "interjection",
                    "category_display": "Interjection",
                    "level": 5,
                    "level_display": "Small Phrases",
                    "comment": "No",
                    "tags": [
                        {
                            "id": 29,
                            "name": "interjection",
                            "category": "category",
                            "category_display": "category",
                            "description": "",
                            "is_active": true,
                            "created_at": "2026-01-17T18:41:54.259134Z",
                            "updated_at": "2026-01-17T18:41:54.259150Z"
                        }
                    ],
                    "created_at": "2026-01-17T18:41:48.133517Z",
                    "updated_at": "2026-01-17T18:41:54.282927Z",
                    "is_active": true
                },
                {
                    "id": 346,
                    "french_word": "oui",
                    "russian_word": "да",
                    "category": "interjection",
                    "category_display": "Interjection",
                    "level": 5,
                    "level_display": "Small Phrases",
                    "comment": "Yes",
                    "tags": [
                        {
                            "id": 29,
                            "name": "interjection",
                            "category": "category",
                            "category_display": "category",
                            "description": "",
                            "is_active": true,
                            "created_at": "2026-01-17T18:41:54.259134Z",
                            "updated_at": "2026-01-17T18:41:54.259150Z"
                        }
                    ],
                    "created_at": "2026-01-17T18:41:48.131005Z",
                    "updated_at": "2026-01-17T18:41:54.277823Z",
                    "is_active": true
                },
                {
                    "id": 339,
                    "french_word": "pardon",
                    "russian_word": "простите",
                    "category": "interjection",
                    "category_display": "Interjection",
                    "level": 5,
                    "level_display": "Small Phrases",
                    "comment": "Sorry",
                    "tags": [
                        {
                            "id": 29,
                            "name": "interjection",
                            "category": "category",
                            "category_display": "category",
                            "description": "",
                            "is_active": true,
                            "created_at": "2026-01-17T18:41:54.259134Z",
                            "updated_at": "2026-01-17T18:41:54.259150Z"
                        }
                    ],
                    "created_at": "2026-01-17T18:41:48.113195Z",
                    "updated_at": "2026-01-17T18:41:54.309270Z",
                    "is_active": true
                },
                {
                    "id": 38,
                    "french_word": "s'il vous plaît",
                    "russian_word": "пожалуйста",
                    "category": "interjection",
                    "category_display": "Interjection",
                    "level": 2,
                    "level_display": "Basic Words",
                    "comment": "Please",
                    "tags": [
                        {
                            "id": 29,
                            "name": "interjection",
                            "category": "category",
                            "category_display": "category",
                            "description": "",
                            "is_active": true,
                            "created_at": "2026-01-17T18:41:54.259134Z",
                            "updated_at": "2026-01-17T18:41:54.259150Z"
                        }
                    ],
                    "created_at": "2026-01-17T18:41:45.976728Z",
                    "updated_at": "2026-01-17T18:41:54.298752Z",
                    "is_active": true
                }
            ],
            "steps": [
                {
                    "id": 364,
                    "sub_level": 92,
                    "order": 1,
                    "step_type": "learning_card",
                    "step_type_display": "Learning Card",
                    "title": "Introduction à Interjections de réponse courante",
                    "description": "Réponses courantes\n\nApprenez les interjections en russe.",
                    "is_required": true,
                    "config": {
                        "content": "Réponses courantes\n\nApprenez les interjections en russe.",
                        "concept_type": "vocabulary"
                    },
                    "is_active": true,
                    "is_completed": false,
                    "progress": {
                        "is_completed": false,
                        "completed_at": null,
                        "score": null,
                        "attempts": 0,
                        "best_score": null
                    },
                    "created_at": "2026-01-17T18:41:54.415819Z",
                    "updated_at": "2026-01-17T18:41:54.415832Z"
                },
                {
                    "id": 365,
                    "sub_level": 92,
                    "order": 2,
                    "step_type": "game_flashcard",
                    "step_type_display": "Game - Flashcard",
                    "title": "Exercice 1 - Flashcard",
                    "description": "Exercice 1 - Flashcard",
                    "is_required": false,
                    "config": {
                        "game_mode": "flashcard",
                        "instructions": "Pratiquez les interjections avec le mode flashcard.",
                        "min_score": 70,
                        "level": 12,
                        "sub_level": 2
                    },
                    "is_active": true,
                    "is_completed": false,
                    "progress": {
                        "is_completed": false,
                        "completed_at": null,
                        "score": null,
                        "attempts": 0,
                        "best_score": null
                    },
                    "created_at": "2026-01-17T18:41:54.419459Z",
                    "updated_at": "2026-01-17T18:41:54.419471Z"
                },
                {
                    "id": 366,
                    "sub_level": 92,
                    "order": 3,
                    "step_type": "game_matching",
                    "step_type_display": "Game - Matching",
                    "title": "Exercice 2 - Matching",
                    "description": "Exercice 2 - Matching",
                    "is_required": false,
                    "config": {
                        "game_mode": "matching",
                        "instructions": "Pratiquez les interjections avec le mode matching.",
                        "min_score": 70,
                        "level": 12,
                        "sub_level": 2
                    },
                    "is_active": true,
                    "is_completed": false,
                    "progress": {
                        "is_completed": false,
                        "completed_at": null,
                        "score": null,
                        "attempts": 0,
                        "best_score": null
                    },
                    "created_at": "2026-01-17T18:41:54.422795Z",
                    "updated_at": "2026-01-17T18:41:54.422807Z"
                },
                {
                    "id": 367,
                    "sub_level": 92,
                    "order": 4,
                    "step_type": "game_multiple_choice",
                    "step_type_display": "Game - Multiple Choice",
                    "title": "Exercice 3 - Multiple Choice",
                    "description": "Exercice 3 - Multiple Choice",
                    "is_required": false,
                    "config": {
                        "game_mode": "multiple_choice",
                        "instructions": "Pratiquez les interjections avec le mode multiple_choice.",
                        "min_score": 70,
                        "level": 12,
                        "sub_level": 2
                    },
                    "is_active": true,
                    "is_completed": false,
                    "progress": {
                        "is_completed": false,
                        "completed_at": null,
                        "score": null,
                        "attempts": 0,
                        "best_score": null
                    },
                    "created_at": "2026-01-17T18:41:54.426227Z",
                    "updated_at": "2026-01-17T18:41:54.426239Z"
                }
            ],
            "videos": [],
            "learning_cards": [
                {
                    "id": 364,
                    "sub_level": 92,
                    "order": 1,
                    "step_type": "learning_card",
                    "step_type_display": "Learning Card",
                    "title": "Introduction à Interjections de réponse courante",
                    "description": "Réponses courantes\n\nApprenez les interjections en russe.",
                    "is_required": true,
                    "config": {
                        "content": "Réponses courantes\n\nApprenez les interjections en russe.",
                        "concept_type": "vocabulary"
                    },
                    "is_active": true,
                    "is_completed": false,
                    "progress": {
                        "is_completed": false,
                        "completed_at": null,
                        "score": null,
                        "attempts": 0,
                        "best_score": null
                    },
                    "created_at": "2026-01-17T18:41:54.415819Z",
                    "updated_at": "2026-01-17T18:41:54.415832Z"
                }
            ],
            "exercises": [],
            "total_words": 7,
            "is_unlocked": false,
            "is_completed": false,
            "progress": {
                "words_mastered": 0,
                "total_words": 7,
                "completion_percentage": 0.0,
                "steps": []
            },
            "is_active": true,
            "created_at": "2026-01-17T18:41:54.408481Z",
            "updated_at": "2026-01-17T18:41:54.408492Z"
        },
        {
            "id": 93,
            "level": 19,
            "level_display": "Interjections",
            "sub_level": 3,
            "title": "Interjections de félicitation",
            "description": "Expressions de félicitation",
            "order": 3,
            "word_pairs": [
                {
                    "id": 1050,
                    "french_word": "bonne chance",
                    "russian_word": "удачи",
                    "category": "interjection",
                    "category_display": "Interjection",
                    "level": 12,
                    "level_display": "Interjections",
                    "comment": "Good luck",
                    "tags": [
                        {
                            "id": 29,
                            "name": "interjection",
                            "category": "category",
                            "category_display": "category",
                            "description": "",
                            "is_active": true,
                            "created_at": "2026-01-17T18:41:54.259134Z",
                            "updated_at": "2026-01-17T18:41:54.259150Z"
                        }
                    ],
                    "created_at": "2026-01-17T18:41:54.314088Z",
                    "updated_at": "2026-01-17T18:41:54.314101Z",
                    "is_active": true
                },
                {
                    "id": 1052,
                    "french_word": "bravo",
                    "russian_word": "браво",
                    "category": "interjection",
                    "category_display": "Interjection",
                    "level": 12,
                    "level_display": "Interjections",
                    "comment": "Bravo",
                    "tags": [
                        {
                            "id": 29,
                            "name": "interjection",
                            "category": "category",
                            "category_display": "category",
                            "description": "",
                            "is_active": true,
                            "created_at": "2026-01-17T18:41:54.259134Z",
                            "updated_at": "2026-01-17T18:41:54.259150Z"
                        }
                    ],
                    "created_at": "2026-01-17T18:41:54.323577Z",
                    "updated_at": "2026-01-17T18:41:54.323587Z",
                    "is_active": true
                },
                {
                    "id": 1051,
                    "french_word": "félicitations",
                    "russian_word": "поздравляю",
                    "category": "interjection",
                    "category_display": "Interjection",
                    "level": 12,
                    "level_display": "Interjections",
                    "comment": "Congratulations",
                    "tags": [
                        {
                            "id": 29,
                            "name": "interjection",
                            "category": "category",
                            "category_display": "category",
                            "description": "",
                            "is_active": true,
                            "created_at": "2026-01-17T18:41:54.259134Z",
                            "updated_at": "2026-01-17T18:41:54.259150Z"
                        }
                    ],
                    "created_at": "2026-01-17T18:41:54.319023Z",
                    "updated_at": "2026-01-17T18:41:54.319036Z",
                    "is_active": true
                },
                {
                    "id": 1064,
                    "french_word": "génial",
                    "russian_word": "отлично",
                    "category": "interjection",
                    "category_display": "Interjection",
                    "level": 12,
                    "level_display": "Interjections",
                    "comment": "Great",
                    "tags": [
                        {
                            "id": 29,
                            "name": "interjection",
                            "category": "category",
                            "category_display": "category",
                            "description": "",
                            "is_active": true,
                            "created_at": "2026-01-17T18:41:54.259134Z",
                            "updated_at": "2026-01-17T18:41:54.259150Z"
                        }
                    ],
                    "created_at": "2026-01-17T18:41:54.383492Z",
                    "updated_at": "2026-01-17T18:41:54.383503Z",
                    "is_active": true
                },
                {
                    "id": 1063,
                    "french_word": "super",
                    "russian_word": "супер",
                    "category": "interjection",
                    "category_display": "Interjection",
                    "level": 12,
                    "level_display": "Interjections",
                    "comment": "Super",
                    "tags": [
                        {
                            "id": 29,
                            "name": "interjection",
                            "category": "category",
                            "category_display": "category",
                            "description": "",
                            "is_active": true,
                            "created_at": "2026-01-17T18:41:54.259134Z",
                            "updated_at": "2026-01-17T18:41:54.259150Z"
                        }
                    ],
                    "created_at": "2026-01-17T18:41:54.378532Z",
                    "updated_at": "2026-01-17T18:41:54.378546Z",
                    "is_active": true
                }
            ],
            "steps": [
                {
                    "id": 368,
                    "sub_level": 93,
                    "order": 1,
                    "step_type": "learning_card",
                    "step_type_display": "Learning Card",
                    "title": "Introduction à Interjections de félicitation",
                    "description": "Expressions de félicitation\n\nApprenez les interjections en russe.",
                    "is_required": true,
                    "config": {
                        "content": "Expressions de félicitation\n\nApprenez les interjections en russe.",
                        "concept_type": "vocabulary"
                    },
                    "is_active": true,
                    "is_completed": false,
                    "progress": {
                        "is_completed": false,
                        "completed_at": null,
                        "score": null,
                        "attempts": 0,
                        "best_score": null
                    },
                    "created_at": "2026-01-17T18:41:54.436457Z",
                    "updated_at": "2026-01-17T18:41:54.436470Z"
                },
                {
                    "id": 369,
                    "sub_level": 93,
                    "order": 2,
                    "step_type": "game_flashcard",
                    "step_type_display": "Game - Flashcard",
                    "title": "Exercice 1 - Flashcard",
                    "description": "Exercice 1 - Flashcard",
                    "is_required": false,
                    "config": {
                        "game_mode": "flashcard",
                        "instructions": "Pratiquez les interjections avec le mode flashcard.",
                        "min_score": 70,
                        "level": 12,
                        "sub_level": 3
                    },
                    "is_active": true,
                    "is_completed": false,
                    "progress": {
                        "is_completed": false,
                        "completed_at": null,
                        "score": null,
                        "attempts": 0,
                        "best_score": null
                    },
                    "created_at": "2026-01-17T18:41:54.440150Z",
                    "updated_at": "2026-01-17T18:41:54.440162Z"
                },
                {
                    "id": 370,
                    "sub_level": 93,
                    "order": 3,
                    "step_type": "game_matching",
                    "step_type_display": "Game - Matching",
                    "title": "Exercice 2 - Matching",
                    "description": "Exercice 2 - Matching",
                    "is_required": false,
                    "config": {
                        "game_mode": "matching",
                        "instructions": "Pratiquez les interjections avec le mode matching.",
                        "min_score": 70,
                        "level": 12,
                        "sub_level": 3
                    },
                    "is_active": true,
                    "is_completed": false,
                    "progress": {
                        "is_completed": false,
                        "completed_at": null,
                        "score": null,
                        "attempts": 0,
                        "best_score": null
                    },
                    "created_at": "2026-01-17T18:41:54.443502Z",
                    "updated_at": "2026-01-17T18:41:54.443512Z"
                },
                {
                    "id": 371,
                    "sub_level": 93,
                    "order": 4,
                    "step_type": "game_multiple_choice",
                    "step_type_display": "Game - Multiple Choice",
                    "title": "Exercice 3 - Multiple Choice",
                    "description": "Exercice 3 - Multiple Choice",
                    "is_required": false,
                    "config": {
                        "game_mode": "multiple_choice",
                        "instructions": "Pratiquez les interjections avec le mode multiple_choice.",
                        "min_score": 70,
                        "level": 12,
                        "sub_level": 3
                    },
                    "is_active": true,
                    "is_completed": false,
                    "progress": {
                        "is_completed": false,
                        "completed_at": null,
                        "score": null,
                        "attempts": 0,
                        "best_score": null
                    },
                    "created_at": "2026-01-17T18:41:54.446669Z",
                    "updated_at": "2026-01-17T18:41:54.446679Z"
                }
            ],
            "videos": [],
            "learning_cards": [
                {
                    "id": 368,
                    "sub_level": 93,
                    "order": 1,
                    "step_type": "learning_card",
                    "step_type_display": "Learning Card",
                    "title": "Introduction à Interjections de félicitation",
                    "description": "Expressions de félicitation\n\nApprenez les interjections en russe.",
                    "is_required": true,
                    "config": {
                        "content": "Expressions de félicitation\n\nApprenez les interjections en russe.",
                        "concept_type": "vocabulary"
                    },
                    "is_active": true,
                    "is_completed": false,
                    "progress": {
                        "is_completed": false,
                        "completed_at": null,
                        "score": null,
                        "attempts": 0,
                        "best_score": null
                    },
                    "created_at": "2026-01-17T18:41:54.436457Z",
                    "updated_at": "2026-01-17T18:41:54.436470Z"
                }
            ],
            "exercises": [],
            "total_words": 5,
            "is_unlocked": false,
            "is_completed": false,
            "progress": {
                "words_mastered": 0,
                "total_words": 5,
                "completion_percentage": 0.0,
                "steps": []
            },
            "is_active": true,
            "created_at": "2026-01-17T18:41:54.428913Z",
            "updated_at": "2026-01-17T18:41:54.428925Z"
        },
        {
            "id": 94,
            "level": 19,
            "level_display": "Interjections",
            "sub_level": 4,
            "title": "Interjections exprimant des émotions",
            "description": "Interjections émotionnelles",
            "order": 4,
            "word_pairs": [
                {
                    "id": 1054,
                    "french_word": "ah",
                    "russian_word": "ах",
                    "category": "interjection",
                    "category_display": "Interjection",
                    "level": 12,
                    "level_display": "Interjections",
                    "comment": "Ah",
                    "tags": [
                        {
                            "id": 29,
                            "name": "interjection",
                            "category": "category",
                            "category_display": "category",
                            "description": "",
                            "is_active": true,
                            "created_at": "2026-01-17T18:41:54.259134Z",
                            "updated_at": "2026-01-17T18:41:54.259150Z"
                        }
                    ],
                    "created_at": "2026-01-17T18:41:54.333299Z",
                    "updated_at": "2026-01-17T18:41:54.333309Z",
                    "is_active": true
                },
                {
                    "id": 1061,
                    "french_word": "aïe",
                    "russian_word": "ай",
                    "category": "interjection",
                    "category_display": "Interjection",
                    "level": 12,
                    "level_display": "Interjections",
                    "comment": "Ouch",
                    "tags": [
                        {
                            "id": 29,
                            "name": "interjection",
                            "category": "category",
                            "category_display": "category",
                            "description": "",
                            "is_active": true,
                            "created_at": "2026-01-17T18:41:54.259134Z",
                            "updated_at": "2026-01-17T18:41:54.259150Z"
                        }
                    ],
                    "created_at": "2026-01-17T18:41:54.368760Z",
                    "updated_at": "2026-01-17T18:41:54.368775Z",
                    "is_active": true
                },
                {
                    "id": 1055,
                    "french_word": "eh",
                    "russian_word": "эх",
                    "category": "interjection",
                    "category_display": "Interjection",
                    "level": 12,
                    "level_display": "Interjections",
                    "comment": "Eh",
                    "tags": [
                        {
                            "id": 29,
                            "name": "interjection",
                            "category": "category",
                            "category_display": "category",
                            "description": "",
                            "is_active": true,
                            "created_at": "2026-01-17T18:41:54.259134Z",
                            "updated_at": "2026-01-17T18:41:54.259150Z"
                        }
                    ],
                    "created_at": "2026-01-17T18:41:54.338153Z",
                    "updated_at": "2026-01-17T18:41:54.338165Z",
                    "is_active": true
                },
                {
                    "id": 1056,
                    "french_word": "hélas",
                    "russian_word": "увы",
                    "category": "interjection",
                    "category_display": "Interjection",
                    "level": 12,
                    "level_display": "Interjections",
                    "comment": "Alas",
                    "tags": [
                        {
                            "id": 29,
                            "name": "interjection",
                            "category": "category",
                            "category_display": "category",
                            "description": "",
                            "is_active": true,
                            "created_at": "2026-01-17T18:41:54.259134Z",
                            "updated_at": "2026-01-17T18:41:54.259150Z"
                        }
                    ],
                    "created_at": "2026-01-17T18:41:54.342986Z",
                    "updated_at": "2026-01-17T18:41:54.342998Z",
                    "is_active": true
                },
                {
                    "id": 1053,
                    "french_word": "oh",
                    "russian_word": "о",
                    "category": "interjection",
                    "category_display": "Interjection",
                    "level": 12,
                    "level_display": "Interjections",
                    "comment": "Oh",
                    "tags": [
                        {
                            "id": 29,
                            "name": "interjection",
                            "category": "category",
                            "category_display": "category",
                            "description": "",
                            "is_active": true,
                            "created_at": "2026-01-17T18:41:54.259134Z",
                            "updated_at": "2026-01-17T18:41:54.259150Z"
                        }
                    ],
                    "created_at": "2026-01-17T18:41:54.328552Z",
                    "updated_at": "2026-01-17T18:41:54.328565Z",
                    "is_active": true
                },
                {
                    "id": 1057,
                    "french_word": "ouf",
                    "russian_word": "уф",
                    "category": "interjection",
                    "category_display": "Interjection",
                    "level": 12,
                    "level_display": "Interjections",
                    "comment": "Phew",
                    "tags": [
                        {
                            "id": 29,
                            "name": "interjection",
                            "category": "category",
                            "category_display": "category",
                            "description": "",
                            "is_active": true,
                            "created_at": "2026-01-17T18:41:54.259134Z",
                            "updated_at": "2026-01-17T18:41:54.259150Z"
                        }
                    ],
                    "created_at": "2026-01-17T18:41:54.348324Z",
                    "updated_at": "2026-01-17T18:41:54.348334Z",
                    "is_active": true
                },
                {
                    "id": 1062,
                    "french_word": "zut",
                    "russian_word": "чёрт",
                    "category": "interjection",
                    "category_display": "Interjection",
                    "level": 12,
                    "level_display": "Interjections",
                    "comment": "Darn",
                    "tags": [
                        {
                            "id": 29,
                            "name": "interjection",
                            "category": "category",
                            "category_display": "category",
                            "description": "",
                            "is_active": true,
                            "created_at": "2026-01-17T18:41:54.259134Z",
                            "updated_at": "2026-01-17T18:41:54.259150Z"
                        }
                    ],
                    "created_at": "2026-01-17T18:41:54.373691Z",
                    "updated_at": "2026-01-17T18:41:54.373706Z",
                    "is_active": true
                }
            ],
            "steps": [
                {
                    "id": 372,
                    "sub_level": 94,
                    "order": 1,
                    "step_type": "learning_card",
                    "step_type_display": "Learning Card",
                    "title": "Introduction à Interjections exprimant des émotions",
                    "description": "Interjections émotionnelles\n\nApprenez les interjections en russe.",
                    "is_required": true,
                    "config": {
                        "content": "Interjections émotionnelles\n\nApprenez les interjections en russe.",
                        "concept_type": "vocabulary"
                    },
                    "is_active": true,
                    "is_completed": false,
                    "progress": {
                        "is_completed": false,
                        "completed_at": null,
                        "score": null,
                        "attempts": 0,
                        "best_score": null
                    },
                    "created_at": "2026-01-17T18:41:54.456446Z",
                    "updated_at": "2026-01-17T18:41:54.456457Z"
                },
                {
                    "id": 373,
                    "sub_level": 94,
                    "order": 2,
                    "step_type": "game_flashcard",
                    "step_type_display": "Game - Flashcard",
                    "title": "Exercice 1 - Flashcard",
                    "description": "Exercice 1 - Flashcard",
                    "is_required": false,
                    "config": {
                        "game_mode": "flashcard",
                        "instructions": "Pratiquez les interjections avec le mode flashcard.",
                        "min_score": 70,
                        "level": 12,
                        "sub_level": 4
                    },
                    "is_active": true,
                    "is_completed": false,
                    "progress": {
                        "is_completed": false,
                        "completed_at": null,
                        "score": null,
                        "attempts": 0,
                        "best_score": null
                    },
                    "created_at": "2026-01-17T18:41:54.459990Z",
                    "updated_at": "2026-01-17T18:41:54.460000Z"
                },
                {
                    "id": 374,
                    "sub_level": 94,
                    "order": 3,
                    "step_type": "game_matching",
                    "step_type_display": "Game - Matching",
                    "title": "Exercice 2 - Matching",
                    "description": "Exercice 2 - Matching",
                    "is_required": false,
                    "config": {
                        "game_mode": "matching",
                        "instructions": "Pratiquez les interjections avec le mode matching.",
                        "min_score": 70,
                        "level": 12,
                        "sub_level": 4
                    },
                    "is_active": true,
                    "is_completed": false,
                    "progress": {
                        "is_completed": false,
                        "completed_at": null,
                        "score": null,
                        "attempts": 0,
                        "best_score": null
                    },
                    "created_at": "2026-01-17T18:41:54.463021Z",
                    "updated_at": "2026-01-17T18:41:54.463031Z"
                },
                {
                    "id": 375,
                    "sub_level": 94,
                    "order": 4,
                    "step_type": "game_multiple_choice",
                    "step_type_display": "Game - Multiple Choice",
                    "title": "Exercice 3 - Multiple Choice",
                    "description": "Exercice 3 - Multiple Choice",
                    "is_required": false,
                    "config": {
                        "game_mode": "multiple_choice",
                        "instructions": "Pratiquez les interjections avec le mode multiple_choice.",
                        "min_score": 70,
                        "level": 12,
                        "sub_level": 4
                    },
                    "is_active": true,
                    "is_completed": false,
                    "progress": {
                        "is_completed": false,
                        "completed_at": null,
                        "score": null,
                        "attempts": 0,
                        "best_score": null
                    },
                    "created_at": "2026-01-17T18:41:54.466105Z",
                    "updated_at": "2026-01-17T18:41:54.466115Z"
                }
            ],
            "videos": [],
            "learning_cards": [
                {
                    "id": 372,
                    "sub_level": 94,
                    "order": 1,
                    "step_type": "learning_card",
                    "step_type_display": "Learning Card",
                    "title": "Introduction à Interjections exprimant des émotions",
                    "description": "Interjections émotionnelles\n\nApprenez les interjections en russe.",
                    "is_required": true,
                    "config": {
                        "content": "Interjections émotionnelles\n\nApprenez les interjections en russe.",
                        "concept_type": "vocabulary"
                    },
                    "is_active": true,
                    "is_completed": false,
                    "progress": {
                        "is_completed": false,
                        "completed_at": null,
                        "score": null,
                        "attempts": 0,
                        "best_score": null
                    },
                    "created_at": "2026-01-17T18:41:54.456446Z",
                    "updated_at": "2026-01-17T18:41:54.456457Z"
                }
            ],
            "exercises": [],
            "total_words": 7,
            "is_unlocked": false,
            "is_completed": false,
            "progress": {
                "words_mastered": 0,
                "total_words": 7,
                "completion_percentage": 0.0,
                "steps": []
            },
            "is_active": true,
            "created_at": "2026-01-17T18:41:54.449331Z",
            "updated_at": "2026-01-17T18:41:54.449341Z"
        },
        {
            "id": 95,
            "level": 19,
            "level_display": "Interjections",
            "sub_level": 5,
            "title": "Interjections pour attirer l'attention",
            "description": "Interjections d'attention",
            "order": 5,
            "word_pairs": [
                {
                    "id": 1059,
                    "french_word": "attention",
                    "russian_word": "внимание",
                    "category": "interjection",
                    "category_display": "Interjection",
                    "level": 12,
                    "level_display": "Interjections",
                    "comment": "Attention",
                    "tags": [
                        {
                            "id": 29,
                            "name": "interjection",
                            "category": "category",
                            "category_display": "category",
                            "description": "",
                            "is_active": true,
                            "created_at": "2026-01-17T18:41:54.259134Z",
                            "updated_at": "2026-01-17T18:41:54.259150Z"
                        }
                    ],
                    "created_at": "2026-01-17T18:41:54.358211Z",
                    "updated_at": "2026-01-17T18:41:54.358224Z",
                    "is_active": true
                },
                {
                    "id": 1058,
                    "french_word": "chut",
                    "russian_word": "тсс",
                    "category": "interjection",
                    "category_display": "Interjection",
                    "level": 12,
                    "level_display": "Interjections",
                    "comment": "Shh",
                    "tags": [
                        {
                            "id": 29,
                            "name": "interjection",
                            "category": "category",
                            "category_display": "category",
                            "description": "",
                            "is_active": true,
                            "created_at": "2026-01-17T18:41:54.259134Z",
                            "updated_at": "2026-01-17T18:41:54.259150Z"
                        }
                    ],
                    "created_at": "2026-01-17T18:41:54.353265Z",
                    "updated_at": "2026-01-17T18:41:54.353284Z",
                    "is_active": true
                },
                {
                    "id": 1060,
                    "french_word": "stop",
                    "russian_word": "стоп",
                    "category": "interjection",
                    "category_display": "Interjection",
                    "level": 12,
                    "level_display": "Interjections",
                    "comment": "Stop",
                    "tags": [
                        {
                            "id": 29,
                            "name": "interjection",
                            "category": "category",
                            "category_display": "category",
                            "description": "",
                            "is_active": true,
                            "created_at": "2026-01-17T18:41:54.259134Z",
                            "updated_at": "2026-01-17T18:41:54.259150Z"
                        }
                    ],
                    "created_at": "2026-01-17T18:41:54.363379Z",
                    "updated_at": "2026-01-17T18:41:54.363389Z",
                    "is_active": true
                }
            ],
            "steps": [
                {
                    "id": 376,
                    "sub_level": 95,
                    "order": 1,
                    "step_type": "learning_card",
                    "step_type_display": "Learning Card",
                    "title": "Introduction à Interjections pour attirer l'attention",
                    "description": "Interjections d'attention\n\nApprenez les interjections en russe.",
                    "is_required": true,
                    "config": {
                        "content": "Interjections d'attention\n\nApprenez les interjections en russe.",
                        "concept_type": "vocabulary"
                    },
                    "is_active": true,
                    "is_completed": false,
                    "progress": {
                        "is_completed": false,
                        "completed_at": null,
                        "score": null,
                        "attempts": 0,
                        "best_score": null
                    },
                    "created_at": "2026-01-17T18:41:54.476207Z",
                    "updated_at": "2026-01-17T18:41:54.476218Z"
                },
                {
                    "id": 377,
                    "sub_level": 95,
                    "order": 2,
                    "step_type": "game_flashcard",
                    "step_type_display": "Game - Flashcard",
                    "title": "Exercice 1 - Flashcard",
                    "description": "Exercice 1 - Flashcard",
                    "is_required": false,
                    "config": {
                        "game_mode": "flashcard",
                        "instructions": "Pratiquez les interjections avec le mode flashcard.",
                        "min_score": 70,
                        "level": 12,
                        "sub_level": 5
                    },
                    "is_active": true,
                    "is_completed": false,
                    "progress": {
                        "is_completed": false,
                        "completed_at": null,
                        "score": null,
                        "attempts": 0,
                        "best_score": null
                    },
                    "created_at": "2026-01-17T18:41:54.479403Z",
                    "updated_at": "2026-01-17T18:41:54.479413Z"
                },
                {
                    "id": 378,
                    "sub_level": 95,
                    "order": 3,
                    "step_type": "game_matching",
                    "step_type_display": "Game - Matching",
                    "title": "Exercice 2 - Matching",
                    "description": "Exercice 2 - Matching",
                    "is_required": false,
                    "config": {
                        "game_mode": "matching",
                        "instructions": "Pratiquez les interjections avec le mode matching.",
                        "min_score": 70,
                        "level": 12,
                        "sub_level": 5
                    },
                    "is_active": true,
                    "is_completed": false,
                    "progress": {
                        "is_completed": false,
                        "completed_at": null,
                        "score": null,
                        "attempts": 0,
                        "best_score": null
                    },
                    "created_at": "2026-01-17T18:41:54.482286Z",
                    "updated_at": "2026-01-17T18:41:54.482297Z"
                },
                {
                    "id": 379,
                    "sub_level": 95,
                    "order": 4,
                    "step_type": "game_multiple_choice",
                    "step_type_display": "Game - Multiple Choice",
                    "title": "Exercice 3 - Multiple Choice",
                    "description": "Exercice 3 - Multiple Choice",
                    "is_required": false,
                    "config": {
                        "game_mode": "multiple_choice",
                        "instructions": "Pratiquez les interjections avec le mode multiple_choice.",
                        "min_score": 70,
                        "level": 12,
                        "sub_level": 5
                    },
                    "is_active": true,
                    "is_completed": false,
                    "progress": {
                        "is_completed": false,
                        "completed_at": null,
                        "score": null,
                        "attempts": 0,
                        "best_score": null
                    },
                    "created_at": "2026-01-17T18:41:54.485198Z",
                    "updated_at": "2026-01-17T18:41:54.485208Z"
                }
            ],
            "videos": [],
            "learning_cards": [
                {
                    "id": 376,
                    "sub_level": 95,
                    "order": 1,
                    "step_type": "learning_card",
                    "step_type_display": "Learning Card",
                    "title": "Introduction à Interjections pour attirer l'attention",
                    "description": "Interjections d'attention\n\nApprenez les interjections en russe.",
                    "is_required": true,
                    "config": {
                        "content": "Interjections d'attention\n\nApprenez les interjections en russe.",
                        "concept_type": "vocabulary"
                    },
                    "is_active": true,
                    "is_completed": false,
                    "progress": {
                        "is_completed": false,
                        "completed_at": null,
                        "score": null,
                        "attempts": 0,
                        "best_score": null
                    },
                    "created_at": "2026-01-17T18:41:54.476207Z",
                    "updated_at": "2026-01-17T18:41:54.476218Z"
                }
            ],
            "exercises": [],
            "total_words": 3,
            "is_unlocked": false,
            "is_completed": false,
            "progress": {
                "words_mastered": 0,
                "total_words": 3,
                "completion_percentage": 0.0,
                "steps": []
            },
            "is_active": true,
            "created_at": "2026-01-17T18:41:54.469370Z",
            "updated_at": "2026-01-17T18:41:54.469381Z"
        },
        {
            "id": 96,
            "level": 20,
            "level_display": "В АЭРОПОРТУ - Урок 1",
            "sub_level": 1,
            "title": "Сцена 1: Диалог 1",
            "description": "Изучаем базовый словарь для аэропорта: документы, билет, паспорт и другие предметы",
            "order": 1,
            "word_pairs": [
                {
                    "id": 1076,
                    "french_word": "apple",
                    "russian_word": "яблоко",
                    "category": "noun",
                    "category_display": "Noun",
                    "level": 1,
                    "level_display": "В АЭРОПОРТУ - Урок 1",
                    "comment": "Neuter, singular",
                    "tags": [
                        {
                            "id": 30,
                            "name": "travel",
                            "category": "other",
                            "category_display": "Other",
                            "description": "Travel-related vocabulary",
                            "is_active": true,
                            "created_at": "2026-01-17T18:41:55.923432Z",
                            "updated_at": "2026-01-17T18:41:55.923444Z"
                        }
                    ],
                    "created_at": "2026-01-17T18:41:55.982391Z",
                    "updated_at": "2026-01-17T18:41:55.982402Z",
                    "is_active": true
                },
                {
                    "id": 1074,
                    "french_word": "book",
                    "russian_word": "книга",
                    "category": "noun",
                    "category_display": "Noun",
                    "level": 1,
                    "level_display": "В АЭРОПОРТУ - Урок 1",
                    "comment": "Feminine, singular",
                    "tags": [
                        {
                            "id": 30,
                            "name": "travel",
                            "category": "other",
                            "category_display": "Other",
                            "description": "Travel-related vocabulary",
                            "is_active": true,
                            "created_at": "2026-01-17T18:41:55.923432Z",
                            "updated_at": "2026-01-17T18:41:55.923444Z"
                        }
                    ],
                    "created_at": "2026-01-17T18:41:55.972239Z",
                    "updated_at": "2026-01-17T18:41:55.972253Z",
                    "is_active": true
                },
                {
                    "id": 1077,
                    "french_word": "computer",
                    "russian_word": "компьютер",
                    "category": "noun",
                    "category_display": "Noun",
                    "level": 1,
                    "level_display": "В АЭРОПОРТУ - Урок 1",
                    "comment": "Masculine, singular",
                    "tags": [
                        {
                            "id": 30,
                            "name": "travel",
                            "category": "other",
                            "category_display": "Other",
                            "description": "Travel-related vocabulary",
                            "is_active": true,
                            "created_at": "2026-01-17T18:41:55.923432Z",
                            "updated_at": "2026-01-17T18:41:55.923444Z"
                        }
                    ],
                    "created_at": "2026-01-17T18:41:55.987404Z",
                    "updated_at": "2026-01-17T18:41:55.987414Z",
                    "is_active": true
                },
                {
                    "id": 1065,
                    "french_word": "documents",
                    "russian_word": "документы",
                    "category": "noun",
                    "category_display": "Noun",
                    "level": 1,
                    "level_display": "В АЭРОПОРТУ - Урок 1",
                    "comment": "Plural form",
                    "tags": [
                        {
                            "id": 30,
                            "name": "travel",
                            "category": "other",
                            "category_display": "Other",
                            "description": "Travel-related vocabulary",
                            "is_active": true,
                            "created_at": "2026-01-17T18:41:55.923432Z",
                            "updated_at": "2026-01-17T18:41:55.923444Z"
                        }
                    ],
                    "created_at": "2026-01-17T18:41:55.926118Z",
                    "updated_at": "2026-01-17T18:41:55.926129Z",
                    "is_active": true
                },
                {
                    "id": 1072,
                    "french_word": "glasses",
                    "russian_word": "очки",
                    "category": "noun",
                    "category_display": "Noun",
                    "level": 1,
                    "level_display": "В АЭРОПОРТУ - Урок 1",
                    "comment": "Plural form",
                    "tags": [
                        {
                            "id": 30,
                            "name": "travel",
                            "category": "other",
                            "category_display": "Other",
                            "description": "Travel-related vocabulary",
                            "is_active": true,
                            "created_at": "2026-01-17T18:41:55.923432Z",
                            "updated_at": "2026-01-17T18:41:55.923444Z"
                        }
                    ],
                    "created_at": "2026-01-17T18:41:55.961893Z",
                    "updated_at": "2026-01-17T18:41:55.961905Z",
                    "is_active": true
                },
                {
                    "id": 1068,
                    "french_word": "key",
                    "russian_word": "ключ",
                    "category": "noun",
                    "category_display": "Noun",
                    "level": 1,
                    "level_display": "В АЭРОПОРТУ - Урок 1",
                    "comment": "Masculine, singular",
                    "tags": [
                        {
                            "id": 30,
                            "name": "travel",
                            "category": "other",
                            "category_display": "Other",
                            "description": "Travel-related vocabulary",
                            "is_active": true,
                            "created_at": "2026-01-17T18:41:55.923432Z",
                            "updated_at": "2026-01-17T18:41:55.923444Z"
                        }
                    ],
                    "created_at": "2026-01-17T18:41:55.941550Z",
                    "updated_at": "2026-01-17T18:41:55.941560Z",
                    "is_active": true
                },
                {
                    "id": 1073,
                    "french_word": "magazine",
                    "russian_word": "журнал",
                    "category": "noun",
                    "category_display": "Noun",
                    "level": 1,
                    "level_display": "В АЭРОПОРТУ - Урок 1",
                    "comment": "Masculine, singular",
                    "tags": [
                        {
                            "id": 30,
                            "name": "travel",
                            "category": "other",
                            "category_display": "Other",
                            "description": "Travel-related vocabulary",
                            "is_active": true,
                            "created_at": "2026-01-17T18:41:55.923432Z",
                            "updated_at": "2026-01-17T18:41:55.923444Z"
                        }
                    ],
                    "created_at": "2026-01-17T18:41:55.967214Z",
                    "updated_at": "2026-01-17T18:41:55.967227Z",
                    "is_active": true
                },
                {
                    "id": 1069,
                    "french_word": "map",
                    "russian_word": "карта",
                    "category": "noun",
                    "category_display": "Noun",
                    "level": 1,
                    "level_display": "В АЭРОПОРТУ - Урок 1",
                    "comment": "Feminine, singular",
                    "tags": [
                        {
                            "id": 30,
                            "name": "travel",
                            "category": "other",
                            "category_display": "Other",
                            "description": "Travel-related vocabulary",
                            "is_active": true,
                            "created_at": "2026-01-17T18:41:55.923432Z",
                            "updated_at": "2026-01-17T18:41:55.923444Z"
                        }
                    ],
                    "created_at": "2026-01-17T18:41:55.946545Z",
                    "updated_at": "2026-01-17T18:41:55.946556Z",
                    "is_active": true
                },
                {
                    "id": 1070,
                    "french_word": "money",
                    "russian_word": "деньги",
                    "category": "noun",
                    "category_display": "Noun",
                    "level": 1,
                    "level_display": "В АЭРОПОРТУ - Урок 1",
                    "comment": "Plural only",
                    "tags": [
                        {
                            "id": 30,
                            "name": "travel",
                            "category": "other",
                            "category_display": "Other",
                            "description": "Travel-related vocabulary",
                            "is_active": true,
                            "created_at": "2026-01-17T18:41:55.923432Z",
                            "updated_at": "2026-01-17T18:41:55.923444Z"
                        }
                    ],
                    "created_at": "2026-01-17T18:41:55.951627Z",
                    "updated_at": "2026-01-17T18:41:55.951641Z",
                    "is_active": true
                },
                {
                    "id": 1075,
                    "french_word": "newspaper",
                    "russian_word": "газета",
                    "category": "noun",
                    "category_display": "Noun",
                    "level": 1,
                    "level_display": "В АЭРОПОРТУ - Урок 1",
                    "comment": "Feminine, singular",
                    "tags": [
                        {
                            "id": 30,
                            "name": "travel",
                            "category": "other",
                            "category_display": "Other",
                            "description": "Travel-related vocabulary",
                            "is_active": true,
                            "created_at": "2026-01-17T18:41:55.923432Z",
                            "updated_at": "2026-01-17T18:41:55.923444Z"
                        }
                    ],
                    "created_at": "2026-01-17T18:41:55.977361Z",
                    "updated_at": "2026-01-17T18:41:55.977374Z",
                    "is_active": true
                },
                {
                    "id": 1066,
                    "french_word": "passport",
                    "russian_word": "паспорт",
                    "category": "noun",
                    "category_display": "Noun",
                    "level": 1,
                    "level_display": "В АЭРОПОРТУ - Урок 1",
                    "comment": "Masculine, singular",
                    "tags": [
                        {
                            "id": 30,
                            "name": "travel",
                            "category": "other",
                            "category_display": "Other",
                            "description": "Travel-related vocabulary",
                            "is_active": true,
                            "created_at": "2026-01-17T18:41:55.923432Z",
                            "updated_at": "2026-01-17T18:41:55.923444Z"
                        }
                    ],
                    "created_at": "2026-01-17T18:41:55.931358Z",
                    "updated_at": "2026-01-17T18:41:55.931368Z",
                    "is_active": true
                },
                {
                    "id": 1071,
                    "french_word": "telephone",
                    "russian_word": "телефон",
                    "category": "noun",
                    "category_display": "Noun",
                    "level": 1,
                    "level_display": "В АЭРОПОРТУ - Урок 1",
                    "comment": "Masculine, singular",
                    "tags": [
                        {
                            "id": 30,
                            "name": "travel",
                            "category": "other",
                            "category_display": "Other",
                            "description": "Travel-related vocabulary",
                            "is_active": true,
                            "created_at": "2026-01-17T18:41:55.923432Z",
                            "updated_at": "2026-01-17T18:41:55.923444Z"
                        }
                    ],
                    "created_at": "2026-01-17T18:41:55.956675Z",
                    "updated_at": "2026-01-17T18:41:55.956687Z",
                    "is_active": true
                },
                {
                    "id": 1067,
                    "french_word": "ticket",
                    "russian_word": "билет",
                    "category": "noun",
                    "category_display": "Noun",
                    "level": 1,
                    "level_display": "В АЭРОПОРТУ - Урок 1",
                    "comment": "Masculine, singular",
                    "tags": [
                        {
                            "id": 30,
                            "name": "travel",
                            "category": "other",
                            "category_display": "Other",
                            "description": "Travel-related vocabulary",
                            "is_active": true,
                            "created_at": "2026-01-17T18:41:55.923432Z",
                            "updated_at": "2026-01-17T18:41:55.923444Z"
                        }
                    ],
                    "created_at": "2026-01-17T18:41:55.936585Z",
                    "updated_at": "2026-01-17T18:41:55.936598Z",
                    "is_active": true
                }
            ],
            "steps": [
                {
                    "id": 386,
                    "sub_level": 96,
                    "order": 1,
                    "step_type": "video",
                    "step_type_display": "Video",
                    "title": "В АЭРОПОРТУ: Урок 1 Сцена 1 Диалог 1",
                    "description": "Урок русского языка для начинаants - диалог в аэропорту",
                    "is_required": true,
                    "config": {
                        "video_url": "https://www.youtube.com/watch?v=7ypFfk2ZsxY",
                        "duration": 58
                    },
                    "is_active": true,
                    "is_completed": false,
                    "progress": {
                        "is_completed": false,
                        "completed_at": null,
                        "score": null,
                        "attempts": 0,
                        "best_score": null
                    },
                    "created_at": "2026-01-17T18:41:55.997781Z",
                    "updated_at": "2026-01-17T18:41:55.997801Z"
                },
                {
                    "id": 387,
                    "sub_level": 96,
                    "order": 2,
                    "step_type": "learning_card",
                    "step_type_display": "Learning Card",
                    "title": "Словарь урока",
                    "description": "В этом уроке вы изучите следующие слова:\n\n• Документы (documents)\n• Паспорт (passport)\n• Билет (ticket)\n• Ключ (key)\n• Карта (map)\n• Деньги (money)\n• Телефон (telephone)\n• Очки (glasses)\n• Журнал (mag",
                    "is_required": true,
                    "config": {
                        "content": "В этом уроке вы изучите следующие слова:\n\n• Документы (documents)\n• Паспорт (passport)\n• Билет (ticket)\n• Ключ (key)\n• Карта (map)\n• Деньги (money)\n• Телефон (telephone)\n• Очки (glasses)\n• Журнал (magazine)\n• Книга (book)\n• Газета (newspaper)\n• Яблоко (apple)\n• Компьютер (computer)",
                        "concept_type": "vocabulary"
                    },
                    "is_active": true,
                    "is_completed": false,
                    "progress": {
                        "is_completed": false,
                        "completed_at": null,
                        "score": null,
                        "attempts": 0,
                        "best_score": null
                    },
                    "created_at": "2026-01-17T18:41:56.001523Z",
                    "updated_at": "2026-01-17T18:41:56.001537Z"
                },
                {
                    "id": 388,
                    "sub_level": 96,
                    "order": 3,
                    "step_type": "game_flashcard",
                    "step_type_display": "Game - Flashcard",
                    "title": "Карточки - Словарь аэропорта",
                    "description": "Изучите слова с помощью карточек",
                    "is_required": true,
                    "config": {
                        "game_mode": "flashcard",
                        "instructions": "Просмотрите карточки и запомните слова из урока.",
                        "min_score": 70,
                        "level": 1,
                        "sub_level": 1
                    },
                    "is_active": true,
                    "is_completed": false,
                    "progress": {
                        "is_completed": false,
                        "completed_at": null,
                        "score": null,
                        "attempts": 0,
                        "best_score": null
                    },
                    "created_at": "2026-01-17T18:41:56.004825Z",
                    "updated_at": "2026-01-17T18:41:56.004837Z"
                },
                {
                    "id": 389,
                    "sub_level": 96,
                    "order": 4,
                    "step_type": "game_matching",
                    "step_type_display": "Game - Matching",
                    "title": "Сопоставление - Слова и переводы",
                    "description": "Сопоставьте русские слова с их переводами",
                    "is_required": true,
                    "config": {
                        "game_mode": "matching",
                        "instructions": "Сопоставьте каждое русское слово с его французским переводом.",
                        "min_score": 80,
                        "level": 1,
                        "sub_level": 1
                    },
                    "is_active": true,
                    "is_completed": false,
                    "progress": {
                        "is_completed": false,
                        "completed_at": null,
                        "score": null,
                        "attempts": 0,
                        "best_score": null
                    },
                    "created_at": "2026-01-17T18:41:56.008338Z",
                    "updated_at": "2026-01-17T18:41:56.008353Z"
                },
                {
                    "id": 390,
                    "sub_level": 96,
                    "order": 5,
                    "step_type": "game_multiple_choice",
                    "step_type_display": "Game - Multiple Choice",
                    "title": "Выбор правильного ответа",
                    "description": "Выберите правильный перевод для каждого слова",
                    "is_required": false,
                    "config": {
                        "game_mode": "multiple_choice",
                        "instructions": "Выберите правильный перевод для каждого русского слова.",
                        "min_score": 75,
                        "level": 1,
                        "sub_level": 1
                    },
                    "is_active": true,
                    "is_completed": false,
                    "progress": {
                        "is_completed": false,
                        "completed_at": null,
                        "score": null,
                        "attempts": 0,
                        "best_score": null
                    },
                    "created_at": "2026-01-17T18:41:56.012183Z",
                    "updated_at": "2026-01-17T18:41:56.012194Z"
                }
            ],
            "videos": [
                {
                    "id": 386,
                    "sub_level": 96,
                    "title": "В АЭРОПОРТУ: Урок 1 Сцена 1 Диалог 1",
                    "description": "Урок русского языка для начинаants - диалог в аэропорту",
                    "video_url": "https://www.youtube.com/watch?v=7ypFfk2ZsxY",
                    "duration": 58,
                    "order": 1,
                    "is_required": true,
                    "is_active": true
                }
            ],
            "learning_cards": [
                {
                    "id": 387,
                    "sub_level": 96,
                    "order": 2,
                    "step_type": "learning_card",
                    "step_type_display": "Learning Card",
                    "title": "Словарь урока",
                    "description": "В этом уроке вы изучите следующие слова:\n\n• Документы (documents)\n• Паспорт (passport)\n• Билет (ticket)\n• Ключ (key)\n• Карта (map)\n• Деньги (money)\n• Телефон (telephone)\n• Очки (glasses)\n• Журнал (mag",
                    "is_required": true,
                    "config": {
                        "content": "В этом уроке вы изучите следующие слова:\n\n• Документы (documents)\n• Паспорт (passport)\n• Билет (ticket)\n• Ключ (key)\n• Карта (map)\n• Деньги (money)\n• Телефон (telephone)\n• Очки (glasses)\n• Журнал (magazine)\n• Книга (book)\n• Газета (newspaper)\n• Яблоко (apple)\n• Компьютер (computer)",
                        "concept_type": "vocabulary"
                    },
                    "is_active": true,
                    "is_completed": false,
                    "progress": {
                        "is_completed": false,
                        "completed_at": null,
                        "score": null,
                        "attempts": 0,
                        "best_score": null
                    },
                    "created_at": "2026-01-17T18:41:56.001523Z",
                    "updated_at": "2026-01-17T18:41:56.001537Z"
                }
            ],
            "exercises": [],
            "total_words": 13,
            "is_unlocked": false,
            "is_completed": false,
            "progress": {
                "words_mastered": 0,
                "total_words": 13,
                "completion_percentage": 0.0,
                "steps": []
            },
            "is_active": true,
            "created_at": "2026-01-17T18:41:55.920359Z",
            "updated_at": "2026-01-17T18:41:55.920371Z"
        }
    ]
}
Niveau parent
Numéro du sous-niveau (1, 2, 3, etc.)
Titre du sous-niveau (ex: "Présent", "Passé")
Description du sous-niveau
Ordre d'affichage dans le niveau