# wcs/games/content/__init__.py
"""Where the Millionaire game gets its words: a content source.

MillionaireGameController asks its content source for everything the moderator says and for the questions, and
never talks to an AI provider itself. A source offers

    name, badge, rules_note, voice
    begin()                                         start of a game session
    welcome()                                       -> {"moderator_welcome", "rules_summary"}
    question(round_num)                             -> {"moderator_intro", "question", "options": {"A".."D"},
                                                        "correct": "A", "explanation"}
    feedback(round_num, answer_index, is_correct, question)
                                                    -> {"result_announcement", "transition_text"}
    tip(question)                                   -> text of the Tip lifeline

`question` is the controller's normalized question ({"question", "options": [4], "correct": index, ...}); the dicts
returned above have the JSON shape of the AI chat answers. Sources: `ai.AiContent` (live AI chat) and
`demo.DemoContent` (the offline demo pack of wcs/games/demo).
"""
