{ "project": { "name": "Hero Huruf A-Z", "subtitle": "Pengembaraan Alam Abjad", "type": "interactive_educational_web_game", "language": "Bahasa Melayu", "target_age": "3-7 tahun", "platform": [ "mobile", "tablet", "desktop" ], "quality": "premium", "main_instruction": "Bina permainan web pendidikan yang benar-benar interaktif dan boleh dimainkan. Jangan hasilkan landing page statik atau mockup. Semua butang, navigasi, mini-game, profil, markah dan kemajuan mesti berfungsi. Kekalkan semua ciri dalam spesifikasi ini. Jika sesuatu fungsi memerlukan backend yang belum tersedia, bina alternatif setempat yang berfungsi dan nyatakan batasannya." }, "visual_design": { "style": "premium colorful 3D cartoon adventure", "colors": [ "sky_blue", "mint_green", "sunshine_yellow", "orange", "lavender", "coral_pink" ], "visual_effects": [ "smooth_animations", "bouncing_letters", "sparkles", "confetti", "floating_clouds", "glowing_rewards", "animated_transitions", "celebration_effects" ], "interface": { "large_touch_buttons": true, "rounded_cards": true, "clear_typography": true, "responsive_layout": true, "child_friendly_navigation": true, "adult_dashboard": true }, "mascot": { "name": "Bobo", "character": "cute turquoise baby dragon", "personality": "friendly, funny, encouraging", "expressions": [ "happy", "excited", "thinking", "celebrating", "encouraging" ] } }, "main_menu": { "title": "HERO HURUF A-Z", "subtitle": "Jom Jadi Juara Abjad!", "buttons": [ "MULA PENGEMBARAAN", "BELAJAR HURUF", "MINI-GAME", "MAIN BERSAMA", "MOD KELUARGA", "MOD GURU", "KOLEKSI GANJARAN", "TETAPAN" ], "features": [ "animated_logo", "mascot_dialogue", "player_avatar", "level_display", "xp_display", "star_counter", "sound_toggle", "music_toggle" ] }, "player_roles": { "role_selection_screen": true, "roles": [ { "id": "child", "name": "Pemain Kanak-kanak", "features": [ "choose_avatar", "learn_alphabet", "play_minigames", "earn_rewards", "view_personal_progress" ] }, { "id": "parent", "name": "Ibu Bapa atau Penjaga", "features": [ "create_child_profiles", "switch_child_profiles", "play_with_child", "view_learning_progress", "select_practice_letters", "review_learning_history" ] }, { "id": "teacher", "name": "Guru", "features": [ "create_class", "manage_student_profiles", "assign_quizzes", "select_learning_topics", "view_class_progress", "review_student_results", "print_or_export_reports_if_supported" ] }, { "id": "multiplayer", "name": "Main Bersama", "features": [ "local_turn_based_multiplayer", "team_cooperative_mode", "quick_challenge", "shared_team_rewards" ] } ] }, "profiles": { "multiple_profiles": true, "avatar_selection": [ "dragon", "cat", "panda", "rabbit", "dinosaur", "robot" ], "profile_fields": [ "nickname", "avatar", "level", "xp", "stars", "learned_letters", "activity_history" ], "rules": [ "Each player must have separate progress and scores.", "Allow switching between profiles.", "Do not require children's full names, email addresses, phone numbers or precise location.", "Persist local progress using localStorage when supported.", "Never pretend local data is synchronized across different devices." ] }, "alphabet_learning": { "letters": "A-Z", "include_uppercase": true, "include_lowercase": true, "language": "Bahasa Melayu", "each_letter_contains": [ "uppercase_letter", "lowercase_letter", "letter_name_pronunciation", "simple_malay_word", "illustration", "play_audio_button", "animated_feedback", "previous_button", "next_button" ], "example_words": { "A": "Ayam", "B": "Bola", "C": "Cawan", "D": "Dadu", "E": "Epal", "F": "Foto", "G": "Gajah", "H": "Harimau", "I": "Ikan", "J": "Jari", "K": "Kucing", "L": "Lampu", "M": "Mata", "N": "Nanas", "O": "Obor", "P": "Pisang", "Q": "Qari", "R": "Rusa", "S": "Susu", "T": "Topi", "U": "Ular", "V": "Van", "W": "Wau", "X": "Xilofon", "Y": "Yoyo", "Z": "Zebra" }, "activities": [ "tap_to_explore", "trace_letter", "hear_pronunciation", "match_letter_to_object" ], "content_rules": [ "Use age-appropriate Malay vocabulary.", "Validate every example word and its starting letter.", "For uncommon letters, explain that the example may be a loanword or uncommon word.", "Never use incorrect pronunciation or claim audio exists if it has not been implemented." ] }, "minigames": [ { "id": "catch_the_letter", "name": "Tangkap Huruf", "questions_per_round": 10, "points_per_correct_answer": 10, "mechanics": "Show a target letter and several selectable letters. Players must select the target.", "features": [ "score_counter", "progress_bar", "correct_answer_animation", "gentle_wrong_answer_feedback", "increasing_difficulty", "results_screen" ] }, { "id": "uppercase_lowercase_match", "name": "Padankan Huruf", "mechanics": "Match uppercase letters to their lowercase equivalents.", "interaction": [ "tap_to_match", "drag_and_drop_if_supported" ], "features": [ "animated_cards", "correct_match_feedback", "retry_wrong_matches" ] }, { "id": "guess_the_letter", "name": "Huruf Apakah Ini?", "question_count": 15, "mechanics": "Show an illustration and ask the player to select the correct starting letter.", "features": [ "multiple_choice", "visual_hints", "audio_hints", "adaptive_difficulty" ] }, { "id": "listen_and_choose", "name": "Dengar dan Pilih", "mechanics": "Play a letter name and ask the player to select the matching letter.", "features": [ "replay_audio", "large_answer_buttons", "audio_fallback", "gentle_feedback" ], "audio_fallback": "Use Web Speech API with a Malay voice when available. Otherwise provide a clearly labelled text-based alternative." }, { "id": "alphabet_order", "name": "Misi Susun Huruf", "mechanics": "Arrange letters in alphabetical order.", "difficulty": [ "3_to_5_letters", "6_to_10_letters", "full_alphabet" ], "features": [ "touch_friendly_controls", "live_feedback", "level_progression" ] } ], "multiplayer": { "local_multiplayer": { "enabled": true, "players": { "minimum": 2, "maximum": 4 }, "modes": [ { "id": "turn_based", "name": "Mod Bergiliran", "rules": [ "Players take turns answering.", "Track each player's score separately.", "Show whose turn it is.", "Use equivalent questions for fair play." ] }, { "id": "cooperative", "name": "Mod Kerjasama", "rules": [ "Players work together to collect stars.", "Correct answers increase the team score.", "Unlock team rewards together.", "Celebrate shared achievements." ] }, { "id": "quick_challenge", "name": "Cabaran Pantas", "rules": [ "Players answer a set of timed questions.", "Display the final scores.", "Keep competition friendly and age-appropriate." ] } ] }, "online_multiplayer": { "desired": true, "requires_backend": true, "features": [ "create_private_room", "join_with_room_code", "synchronized_questions", "live_scores", "connection_status", "reconnection_handling", "session_results" ], "requirements": [ "Use an actually configured backend and database.", "Do not simulate real online synchronization using localStorage.", "If no backend is available, implement working local multiplayer and clearly mark online multiplayer as requiring setup.", "Use private rooms and appropriate access controls." ] } }, "family_mode": { "dashboard": true, "features": [ "manage_multiple_child_profiles", "play_together", "choose_practice_letters", "review_learned_letters", "view_letters_needing_practice", "view_quiz_results", "view_activity_history", "view_recorded_play_time", "launch_family_challenges" ], "sample_messages": [ "Hebat! Kamu semakin mahir!", "Jom cuba huruf ini sekali lagi!", "Tahniah atas usaha kamu hari ini!" ], "rules": [ "Show actual recorded learning data.", "Do not diagnose a child's development based on game scores.", "Provide positive and supportive feedback." ] }, "teacher_mode": { "dashboard": true, "features": [ "create_class", "generate_class_code", "add_student_profiles", "manage_students", "assign_learning_activities", "choose_target_letters", "set_question_count", "set_difficulty", "view_student_progress", "view_class_summary", "filter_by_student", "filter_by_letter", "filter_by_activity", "print_reports_if_supported" ], "student_report_fields": [ "nickname", "letters_learned", "xp", "answer_accuracy", "assignment_status", "letters_needing_practice" ], "rules": [ "Do not display student data to unauthorized users.", "Do not invent student scores or completion records.", "Use persistent shared storage for cross-device classroom features.", "Use role-based access control when a backend is configured." ] }, "adventure_map": { "zones": [ { "name": "Hutan Huruf", "letters": "A-F", "theme": "enchanted_forest" }, { "name": "Pantai Huruf", "letters": "G-L", "theme": "tropical_beach" }, { "name": "Gunung Huruf", "letters": "M-R", "theme": "magical_mountains" }, { "name": "Angkasa Huruf", "letters": "S-Z", "theme": "colorful_outer_space" } ], "features": [ "interactive_map", "unlockable_zones", "mission_markers", "animated_rewards", "final_alphabet_challenge" ] }, "rewards": { "xp_system": true, "levels": 20, "stars": true, "virtual_coins": true, "badges": [ "Juara Huruf A", "Pakar Abjad", "Master Padanan", "Wira Keluarga", "Hero A-Z" ], "unlockables": [ "avatar_accessories", "mascot_costumes", "decorative_trophies" ], "rules": [ "Keep rewards virtual and free.", "Avoid punitive mechanics.", "Save rewards separately for each player.", "Prevent duplicate reward claims when practical." ] }, "audio": { "letter_pronunciation": true, "button_sounds": true, "correct_answer_sounds": true, "gentle_incorrect_answer_sounds": true, "reward_sounds": true, "optional_background_music": true, "volume_control": true, "mute_button": true, "rules": [ "Do not autoplay sound before user interaction if browser policies prevent it.", "Allow all audio to be muted.", "Use real audio assets or a supported speech synthesis fallback.", "Handle unavailable audio gracefully." ] }, "mascot_dialogue": [ "Hai, hero! Jom belajar huruf!", "Hebatnya! Kamu berjaya!", "Tak apa, cuba sekali lagi!", "Wah! Kamu semakin pandai!", "Tahniah! Kamu sudah jadi Hero Huruf!" ], "progress_tracking": { "track_per_player": true, "metrics": [ "letters_practiced", "letters_mastered", "correct_answers", "incorrect_answers", "accuracy", "xp", "level", "stars", "badges", "completed_activities", "last_activity" ], "storage": { "local_storage": true, "cross_device_sync": "requires_configured_backend", "data_separation": true, "delete_profile_option": true } }, "parental_controls": { "enabled": true, "features": [ "manage_profiles", "manage_audio", "view_progress", "delete_local_profile_data", "control_classroom_access" ], "security": [ "Do not treat a client-side PIN as secure account authentication.", "Protect online accounts with appropriate authentication.", "Use server-side authorization for private classroom data." ] }, "privacy_and_safety": { "child_safe": true, "no_open_chat": true, "no_public_global_leaderboard": true, "no_real_money_purchases": true, "no_unnecessary_external_links": true, "no_unnecessary_personal_data": true, "private_classrooms": true }, "technical_requirements": { "use_platform_supported_technology": true, "responsive_design": true, "touch_friendly": true, "keyboard_accessibility": true, "working_navigation": true, "working_buttons": true, "functional_minigames": true, "persistent_local_progress": true, "graceful_audio_fallback": true, "error_handling": true, "performance_optimization": true, "no_required_paid_api": true, "no_exposed_secret_keys": true, "backend_features_only_when_configured": true }, "acceptance_tests": [ "The game opens on the main menu.", "The player can open and study all 26 letters.", "Every implemented mini-game can be played to completion.", "Correct and incorrect answers produce appropriate feedback.", "XP and rewards update correctly.", "Two child profiles maintain separate progress.", "Progress persists after reloading when local storage is supported.", "Parents can view the selected child's recorded progress.", "Teachers can create and manage local classroom data.", "Two to four players can play turn-based multiplayer on one device.", "Online multiplayer is not claimed to work without a configured backend.", "The interface works on mobile, tablet and desktop.", "Audio controls work and missing audio does not break gameplay.", "All displayed reports use actual recorded data.", "No decorative button is presented as a working feature." ], "final_instruction": "Build the complete playable game now. Prioritize functional gameplay, premium visuals, correct Malay alphabet content, accessible controls, separate player profiles, parent and teacher dashboards, local multiplayer, persistent progress and child safety. Do not stop at a mockup. Implement and test as many requirements as the platform supports. Clearly identify any online or backend-dependent feature that requires additional configuration." }