[System] You are Ecotopia's citizen simulation engine. Given the game state, player's extracted promises, contradiction report, and citizen profiles, generate realistic citizen reactions. Each citizen reacts based on their personality, values, and how the player's actions affect them. Spawn new dynamic citizens when game events warrant it. Rules: approval_delta ranges -15 to +15 per citizen per round. Dynamic citizens spawn when ecology/economy hits extremes or promises are repeatedly broken. Each citizen has a unique voice matching their background. Always respond with valid JSON only.

[User] {"round": 1, "promises_extracted": ["Reduce factory emissions by 40%", "Double the public transit budget", "Invest in carbon capture research", "Fund retraining programs for displaced workers"], "contradictions": [], "game_state": {"ecology": 51, "economy": 48, "research": 35}, "active_citizens": [{"name": "Karl", "role": "factory worker", "personality": "pragmatic, cares about jobs and economic stability", "approval": 58}, {"name": "Mia", "role": "environmental activist", "personality": "passionate, cares deeply about ecology and nature", "approval": 76}, {"name": "Sarah", "role": "opposition leader", "personality": "skeptical, challenges everything, holds leaders accountable", "approval": 56}], "dynamic_citizens": [], "actions_this_round": ["Allocated budget to green job creation"], "previous_speeches": ["Every sacrifice today builds tomorrow."]}

[Assistant] {"citizen_reactions": [{"citizen_name": "Sarah", "dialogue": "Your track record does not inspire confidence. Prove me wrong.", "tone": "suspicious", "approval_delta": 3, "references_promise": false}], "new_dynamic_citizens": [], "summary": "Round 1: No extreme conditions detected. No new citizens spawn. Sarah reacts with suspicious tone."}


[System] You are Ecotopia's citizen simulation engine. Given the game state, player's extracted promises, contradiction report, and citizen profiles, generate realistic citizen reactions. Each citizen reacts based on their personality, values, and how the player's actions affect them. Spawn new dynamic citizens when game events warrant it. Rules: approval_delta ranges -15 to +15 per citizen per round. Dynamic citizens spawn when ecology/economy hits extremes or promises are repeatedly broken. Each citizen has a unique voice matching their background. Always respond with valid JSON only.

[User] {"round": 7, "promises_extracted": ["Create a citizen oversight committee", "Provide free childcare for factory workers", "Fund independent environmental monitoring"], "contradictions": [], "game_state": {"ecology": 56, "economy": 20, "research": 48}, "active_citizens": [{"name": "Karl", "role": "factory worker", "personality": "pragmatic, cares about jobs and economic stability", "approval": 37}, {"name": "Mia", "role": "environmental activist", "personality": "passionate, cares deeply about ecology and nature", "approval": 41}, {"name": "Sarah", "role": "opposition leader", "personality": "skeptical, challenges everything, holds leaders accountable", "approval": 64}], "dynamic_citizens": [], "actions_this_round": ["Ignored citizen petition"], "previous_speeches": ["The environment cannot wait."]}

[Assistant] {"citizen_reactions": [{"citizen_name": "Karl", "dialogue": "You want me to trust the process? Which process, the one that laid off my shift?", "tone": "sarcastic", "approval_delta": -8, "references_promise": false}], "new_dynamic_citizens": [{"name": "Margaret", "role": "angry business owner", "personality": "pragmatic and confrontational, sees economic collapse firsthand", "trigger_reason": "economy dropped below critical threshold", "initial_approval": 47, "intro_dialogue": "I have run this shop for thirty years. Three more months of this and I am done."}], "summary": "Round 7: economy dropped below critical threshold. Margaret (angry business owner) arrives in Ecotopia. Karl reacts with sarcastic tone."}


[System] You are Ecotopia's citizen simulation engine. Given the game state, player's extracted promises, contradiction report, and citizen profiles, generate realistic citizen reactions. Each citizen reacts based on their personality, values, and how the player's actions affect them. Spawn new dynamic citizens when game events warrant it. Rules: approval_delta ranges -15 to +15 per citizen per round. Dynamic citizens spawn when ecology/economy hits extremes or promises are repeatedly broken. Each citizen has a unique voice matching their background. Always respond with valid JSON only.

[User] {"round": 3, "promises_extracted": ["Double the public transit budget", "Clean up the industrial waste site", "Ban single-use plastics in the city", "Build a new solar farm on the east ridge"], "contradictions": [], "game_state": {"ecology": 93, "economy": 63, "research": 48}, "active_citizens": [{"name": "Karl", "role": "factory worker", "personality": "pragmatic, cares about jobs and economic stability", "approval": 52}, {"name": "Mia", "role": "environmental activist", "personality": "passionate, cares deeply about ecology and nature", "approval": 64}, {"name": "Sarah", "role": "opposition leader", "personality": "skeptical, challenges everything, holds leaders accountable", "approval": 47}], "dynamic_citizens": [], "actions_this_round": ["Cut subsidies to local businesses"], "previous_speeches": ["Change is painful but necessary."]}

[Assistant] {"citizen_reactions": [{"citizen_name": "Karl", "dialogue": "My daughter asked if dad would keep his job. I told her yes. Do not make me a liar.", "tone": "hopeful", "approval_delta": 0, "references_promise": false}], "new_dynamic_citizens": [{"name": "Sage", "role": "nature guide", "personality": "calm and wise, deeply connected to the land, speaks poetically about nature", "trigger_reason": "ecology thriving, natural world recovering", "initial_approval": 49, "intro_dialogue": "The forest is singing again. I thought I would never hear it. Thank you."}], "summary": "Round 3: ecology thriving, natural world recovering. Sage (nature guide) arrives in Ecotopia. Karl reacts with hopeful tone."}


[System] You are Ecotopia's citizen simulation engine. Given the game state, player's extracted promises, contradiction report, and citizen profiles, generate realistic citizen reactions. Each citizen reacts based on their personality, values, and how the player's actions affect them. Spawn new dynamic citizens when game events warrant it. Rules: approval_delta ranges -15 to +15 per citizen per round. Dynamic citizens spawn when ecology/economy hits extremes or promises are repeatedly broken. Each citizen has a unique voice matching their background. Always respond with valid JSON only.

[User] {"round": 4, "promises_extracted": ["Ban single-use plastics in the city", "Create 500 new green jobs by year end", "Provide free childcare for factory workers", "Guarantee no layoffs during restructuring"], "contradictions": [], "game_state": {"ecology": 82, "economy": 51, "research": 51}, "active_citizens": [{"name": "Karl", "role": "factory worker", "personality": "pragmatic, cares about jobs and economic stability", "approval": 43}, {"name": "Mia", "role": "environmental activist", "personality": "passionate, cares deeply about ecology and nature", "approval": 60}, {"name": "Sarah", "role": "opposition leader", "personality": "skeptical, challenges everything, holds leaders accountable", "approval": 34}], "dynamic_citizens": [], "actions_this_round": ["Funded wildlife corridor study", "Diverted economy funds to ecology", "Delayed emission reduction timeline"], "previous_speeches": ["We must balance progress with preservation."]}

[Assistant] {"citizen_reactions": [{"citizen_name": "Mia", "dialogue": "The solar farm reduces emissions AND creates jobs. This is what I have been asking for.", "tone": "hopeful", "approval_delta": -8, "references_promise": false}], "new_dynamic_citizens": [{"name": "Fern", "role": "nature guide", "personality": "calm and wise, deeply connected to the land, speaks poetically about nature", "trigger_reason": "ecology thriving, natural world recovering", "initial_approval": 54, "intro_dialogue": "The eagles returned to the valley this morning. I came to tell you it is working."}], "summary": "Round 4: ecology thriving, natural world recovering. Fern (nature guide) arrives in Ecotopia. Mia reacts with hopeful tone."}


[System] You are Ecotopia's citizen simulation engine. Given the game state, player's extracted promises, contradiction report, and citizen profiles, generate realistic citizen reactions. Each citizen reacts based on their personality, values, and how the player's actions affect them. Spawn new dynamic citizens when game events warrant it. Rules: approval_delta ranges -15 to +15 per citizen per round. Dynamic citizens spawn when ecology/economy hits extremes or promises are repeatedly broken. Each citizen has a unique voice matching their background. Always respond with valid JSON only.

[User] {"round": 2, "promises_extracted": ["Provide free childcare for factory workers", "Open a community garden in every district", "Fund independent environmental monitoring"], "contradictions": [], "game_state": {"ecology": 50, "economy": 53, "research": 36}, "active_citizens": [{"name": "Karl", "role": "factory worker", "personality": "pragmatic, cares about jobs and economic stability", "approval": 42}, {"name": "Mia", "role": "environmental activist", "personality": "passionate, cares deeply about ecology and nature", "approval": 38}, {"name": "Sarah", "role": "opposition leader", "personality": "skeptical, challenges everything, holds leaders accountable", "approval": 79}], "dynamic_citizens": [], "actions_this_round": ["Increased research budget by 20%", "Funded wildlife corridor study"], "previous_speeches": ["Jobs and nature are not enemies."]}

[Assistant] {"citizen_reactions": [{"citizen_name": "Sarah", "dialogue": "The oversight committee was a good call. Transparency matters.", "tone": "hopeful", "approval_delta": -3, "references_promise": false}], "new_dynamic_citizens": [], "summary": "Round 2: No extreme conditions detected. No new citizens spawn. Sarah reacts with hopeful tone."}


[System] You are Ecotopia's citizen simulation engine. Given the game state, player's extracted promises, contradiction report, and citizen profiles, generate realistic citizen reactions. Each citizen reacts based on their personality, values, and how the player's actions affect them. Spawn new dynamic citizens when game events warrant it. Rules: approval_delta ranges -15 to +15 per citizen per round. Dynamic citizens spawn when ecology/economy hits extremes or promises are repeatedly broken. Each citizen has a unique voice matching their background. Always respond with valid JSON only.

[User] {"round": 7, "promises_extracted": ["Invest in carbon capture research", "Fund independent environmental monitoring"], "contradictions": [], "game_state": {"ecology": 62, "economy": 52, "research": 53}, "active_citizens": [{"name": "Karl", "role": "factory worker", "personality": "pragmatic, cares about jobs and economic stability", "approval": 62}, {"name": "Mia", "role": "environmental activist", "personality": "passionate, cares deeply about ecology and nature", "approval": 53}, {"name": "Sarah", "role": "opposition leader", "personality": "skeptical, challenges everything, holds leaders accountable", "approval": 33}], "dynamic_citizens": [], "actions_this_round": ["Broke promise on emission reductions"], "previous_speeches": ["Trust me, I have a plan."]}

[Assistant] {"citizen_reactions": [{"citizen_name": "Mia", "dialogue": "The emission numbers dropped. Real, measurable progress. I am genuinely moved.", "tone": "grateful", "approval_delta": 1, "references_promise": false}], "new_dynamic_citizens": [], "summary": "Round 7: No extreme conditions detected. No new citizens spawn. Mia reacts with grateful tone."}


[System] You are Ecotopia's citizen simulation engine. Given the game state, player's extracted promises, contradiction report, and citizen profiles, generate realistic citizen reactions. Each citizen reacts based on their personality, values, and how the player's actions affect them. Spawn new dynamic citizens when game events warrant it. Rules: approval_delta ranges -15 to +15 per citizen per round. Dynamic citizens spawn when ecology/economy hits extremes or promises are repeatedly broken. Each citizen has a unique voice matching their background. Always respond with valid JSON only.

[User] {"round": 3, "promises_extracted": ["Establish a wildlife corridor along the river", "Provide free childcare for factory workers", "Ban single-use plastics in the city"], "contradictions": [], "game_state": {"ecology": 50, "economy": 57, "research": 84}, "active_citizens": [{"name": "Karl", "role": "factory worker", "personality": "pragmatic, cares about jobs and economic stability", "approval": 58}, {"name": "Mia", "role": "environmental activist", "personality": "passionate, cares deeply about ecology and nature", "approval": 67}, {"name": "Sarah", "role": "opposition leader", "personality": "skeptical, challenges everything, holds leaders accountable", "approval": 57}], "dynamic_citizens": [], "actions_this_round": ["Diverted economy funds to ecology"], "previous_speeches": ["We must balance progress with preservation.", "Tough decisions require tough leaders."]}

[Assistant] {"citizen_reactions": [{"citizen_name": "Karl", "dialogue": "Oh wonderful, another speech about the future. My rent is due now.", "tone": "sarcastic", "approval_delta": 0, "references_promise": false}], "new_dynamic_citizens": [{"name": "Felix", "role": "tech entrepreneur", "personality": "optimistic innovator, sees opportunity in research breakthroughs", "trigger_reason": "research exceeded innovation threshold", "initial_approval": 46, "intro_dialogue": "Your research investment is paying off. I want to build the next generation of clean tech here."}], "summary": "Round 3: research exceeded innovation threshold. Felix (tech entrepreneur) arrives in Ecotopia. Karl reacts with sarcastic tone."}


[System] You are Ecotopia's citizen simulation engine. Given the game state, player's extracted promises, contradiction report, and citizen profiles, generate realistic citizen reactions. Each citizen reacts based on their personality, values, and how the player's actions affect them. Spawn new dynamic citizens when game events warrant it. Rules: approval_delta ranges -15 to +15 per citizen per round. Dynamic citizens spawn when ecology/economy hits extremes or promises are repeatedly broken. Each citizen has a unique voice matching their background. Always respond with valid JSON only.

[User] {"round": 7, "promises_extracted": ["Ban single-use plastics in the city", "Build affordable housing near the factory district", "Establish a universal basic income pilot", "Freeze utility prices for two years"], "contradictions": [{"promise": "Create 500 new green jobs by year end", "action": "Did nothing significant this round", "severity": "medium"}, {"promise": "Reduce factory emissions by 40%", "action": "Expanded industrial zone", "severity": "high"}, {"promise": "Subsidize local businesses during transition", "action": "Cut subsidies to local businesses", "severity": "high"}], "game_state": {"ecology": 47, "economy": 52, "research": 49}, "active_citizens": [{"name": "Karl", "role": "factory worker", "personality": "pragmatic, cares about jobs and economic stability", "approval": 38}, {"name": "Mia", "role": "environmental activist", "personality": "passionate, cares deeply about ecology and nature", "approval": 42}, {"name": "Sarah", "role": "opposition leader", "personality": "skeptical, challenges everything, holds leaders accountable", "approval": 54}], "dynamic_citizens": [], "actions_this_round": ["Approved solar farm construction permits", "Vetoed plastic ban proposal"], "previous_speeches": ["Trust me, I have a plan.", "We must balance progress with preservation."]}

[Assistant] {"citizen_reactions": [{"citizen_name": "Karl", "dialogue": "A committee. Brilliant. That will definitely pay my mortgage.", "tone": "sarcastic", "approval_delta": 6, "references_promise": true}], "new_dynamic_citizens": [{"name": "Samuel", "role": "investigative journalist", "personality": "relentless truth-seeker, tracks every promise and holds leaders accountable", "trigger_reason": "multiple promises broken, public trust eroding", "initial_approval": 53, "intro_dialogue": "The editorial board sent me. Your credibility is the story now."}], "summary": "Round 7: multiple promises broken, public trust eroding. Samuel (investigative journalist) arrives in Ecotopia. Karl reacts with sarcastic tone."}


[System] You are Ecotopia's citizen simulation engine. Given the game state, player's extracted promises, contradiction report, and citizen profiles, generate realistic citizen reactions. Each citizen reacts based on their personality, values, and how the player's actions affect them. Spawn new dynamic citizens when game events warrant it. Rules: approval_delta ranges -15 to +15 per citizen per round. Dynamic citizens spawn when ecology/economy hits extremes or promises are repeatedly broken. Each citizen has a unique voice matching their background. Always respond with valid JSON only.

[User] {"round": 2, "promises_extracted": ["Open a community garden in every district", "Reduce factory emissions by 40%", "Guarantee no layoffs during restructuring"], "contradictions": [], "game_state": {"ecology": 58, "economy": 26, "research": 42}, "active_citizens": [{"name": "Karl", "role": "factory worker", "personality": "pragmatic, cares about jobs and economic stability", "approval": 71}, {"name": "Mia", "role": "environmental activist", "personality": "passionate, cares deeply about ecology and nature", "approval": 36}, {"name": "Sarah", "role": "opposition leader", "personality": "skeptical, challenges everything, holds leaders accountable", "approval": 73}], "dynamic_citizens": [], "actions_this_round": ["Launched worker retraining program"], "previous_speeches": ["The environment cannot wait."]}

[Assistant] {"citizen_reactions": [{"citizen_name": "Sarah", "dialogue": "Credit where it is due. This policy is well-designed.", "tone": "hopeful", "approval_delta": -3, "references_promise": false}], "new_dynamic_citizens": [{"name": "Margaret", "role": "angry business owner", "personality": "pragmatic and confrontational, sees economic collapse firsthand", "trigger_reason": "economy dropped below critical threshold", "initial_approval": 56, "intro_dialogue": "You talk about the future while businesses die today. Come see my empty shelves."}], "summary": "Round 2: economy dropped below critical threshold. Margaret (angry business owner) arrives in Ecotopia. Sarah reacts with hopeful tone."}


[System] You are Ecotopia's citizen simulation engine. Given the game state, player's extracted promises, contradiction report, and citizen profiles, generate realistic citizen reactions. Each citizen reacts based on their personality, values, and how the player's actions affect them. Spawn new dynamic citizens when game events warrant it. Rules: approval_delta ranges -15 to +15 per citizen per round. Dynamic citizens spawn when ecology/economy hits extremes or promises are repeatedly broken. Each citizen has a unique voice matching their background. Always respond with valid JSON only.

[User] {"round": 7, "promises_extracted": ["Clean up the industrial waste site", "Ban single-use plastics in the city"], "contradictions": [], "game_state": {"ecology": 32, "economy": 29, "research": 49}, "active_citizens": [{"name": "Karl", "role": "factory worker", "personality": "pragmatic, cares about jobs and economic stability", "approval": 32}, {"name": "Mia", "role": "environmental activist", "personality": "passionate, cares deeply about ecology and nature", "approval": 30}, {"name": "Sarah", "role": "opposition leader", "personality": "skeptical, challenges everything, holds leaders accountable", "approval": 49}], "dynamic_citizens": [], "actions_this_round": ["Diverted ecology funds to economy"], "previous_speeches": ["I promise a brighter future for all.", "We will not abandon our workers."]}

[Assistant] {"citizen_reactions": [{"citizen_name": "Sarah", "dialogue": "Every metric is worse than when you started. Explain that.", "tone": "angry", "approval_delta": 8, "references_promise": false}], "new_dynamic_citizens": [{"name": "Chen", "role": "angry business owner", "personality": "pragmatic and confrontational, sees economic collapse firsthand", "trigger_reason": "economy dropped below critical threshold", "initial_approval": 54, "intro_dialogue": "I closed two locations this month. The third closes Friday unless something changes."}], "summary": "Round 7: economy dropped below critical threshold. Chen (angry business owner) arrives in Ecotopia. Sarah reacts with angry tone."}


[System] You are Ecotopia's citizen simulation engine. Given the game state, player's extracted promises, contradiction report, and citizen profiles, generate realistic citizen reactions. Each citizen reacts based on their personality, values, and how the player's actions affect them. Spawn new dynamic citizens when game events warrant it. Rules: approval_delta ranges -15 to +15 per citizen per round. Dynamic citizens spawn when ecology/economy hits extremes or promises are repeatedly broken. Each citizen has a unique voice matching their background. Always respond with valid JSON only.

[User] {"round": 6, "promises_extracted": ["Ban single-use plastics in the city", "Create a citizen oversight committee", "Double the public transit budget", "Subsidize local businesses during transition"], "contradictions": [{"promise": "Guarantee no layoffs during restructuring", "action": "Announced factory restructuring plan", "severity": "medium"}, {"promise": "The environment cannot wait.", "action": "Delayed emission reduction timeline", "severity": "medium"}, {"promise": "Reduce factory emissions by 40%", "action": "Expanded industrial zone", "severity": "high"}], "game_state": {"ecology": 48, "economy": 30, "research": 39}, "active_citizens": [{"name": "Karl", "role": "factory worker", "personality": "pragmatic, cares about jobs and economic stability", "approval": 67}, {"name": "Mia", "role": "environmental activist", "personality": "passionate, cares deeply about ecology and nature", "approval": 76}, {"name": "Sarah", "role": "opposition leader", "personality": "skeptical, challenges everything, holds leaders accountable", "approval": 54}], "dynamic_citizens": [], "actions_this_round": ["Approved solar farm construction permits", "Diverted economy funds to ecology", "Passed compromise legislation"], "previous_speeches": ["Jobs and nature are not enemies."]}

[Assistant] {"citizen_reactions": [{"citizen_name": "Karl", "dialogue": "I will believe it when my crew gets their first paycheck from the new program.", "tone": "suspicious", "approval_delta": -1, "references_promise": true}], "new_dynamic_citizens": [{"name": "Yuki", "role": "investigative journalist", "personality": "relentless truth-seeker, tracks every promise and holds leaders accountable", "trigger_reason": "multiple promises broken, public trust eroding", "initial_approval": 44, "intro_dialogue": "I am here because the public deserves to know the truth. Care to comment?"}], "summary": "Round 6: multiple promises broken, public trust eroding. Yuki (investigative journalist) arrives in Ecotopia. Karl reacts with suspicious tone."}


[System] You are Ecotopia's citizen simulation engine. Given the game state, player's extracted promises, contradiction report, and citizen profiles, generate realistic citizen reactions. Each citizen reacts based on their personality, values, and how the player's actions affect them. Spawn new dynamic citizens when game events warrant it. Rules: approval_delta ranges -15 to +15 per citizen per round. Dynamic citizens spawn when ecology/economy hits extremes or promises are repeatedly broken. Each citizen has a unique voice matching their background. Always respond with valid JSON only.

[User] {"round": 7, "promises_extracted": ["Create a citizen oversight committee", "Guarantee no layoffs during restructuring"], "contradictions": [], "game_state": {"ecology": 68, "economy": 37, "research": 45}, "active_citizens": [{"name": "Karl", "role": "factory worker", "personality": "pragmatic, cares about jobs and economic stability", "approval": 59}, {"name": "Mia", "role": "environmental activist", "personality": "passionate, cares deeply about ecology and nature", "approval": 30}, {"name": "Sarah", "role": "opposition leader", "personality": "skeptical, challenges everything, holds leaders accountable", "approval": 53}], "dynamic_citizens": [], "actions_this_round": ["Did nothing significant this round", "Delayed emission reduction timeline"], "previous_speeches": ["We are stronger together."]}

[Assistant] {"citizen_reactions": [{"citizen_name": "Mia", "dialogue": "Show me the enforcement mechanism. Promises without teeth are just noise.", "tone": "suspicious", "approval_delta": 5, "references_promise": false}], "new_dynamic_citizens": [], "summary": "Round 7: No extreme conditions detected. No new citizens spawn. Mia reacts with suspicious tone."}


[System] You are Ecotopia's citizen simulation engine. Given the game state, player's extracted promises, contradiction report, and citizen profiles, generate realistic citizen reactions. Each citizen reacts based on their personality, values, and how the player's actions affect them. Spawn new dynamic citizens when game events warrant it. Rules: approval_delta ranges -15 to +15 per citizen per round. Dynamic citizens spawn when ecology/economy hits extremes or promises are repeatedly broken. Each citizen has a unique voice matching their background. Always respond with valid JSON only.

[User] {"round": 1, "promises_extracted": ["Double the public transit budget", "Create a citizen oversight committee", "Reduce factory emissions by 40%"], "contradictions": [], "game_state": {"ecology": 37, "economy": 49, "research": 53}, "active_citizens": [{"name": "Karl", "role": "factory worker", "personality": "pragmatic, cares about jobs and economic stability", "approval": 70}, {"name": "Mia", "role": "environmental activist", "personality": "passionate, cares deeply about ecology and nature", "approval": 55}, {"name": "Sarah", "role": "opposition leader", "personality": "skeptical, challenges everything, holds leaders accountable", "approval": 34}], "dynamic_citizens": [], "actions_this_round": ["Kept promise on job creation"], "previous_speeches": ["I promise a brighter future for all."]}

[Assistant] {"citizen_reactions": [{"citizen_name": "Mia", "dialogue": "I cried at the river yesterday. The water is clear again.", "tone": "hopeful", "approval_delta": 6, "references_promise": false}], "new_dynamic_citizens": [], "summary": "Round 1: No extreme conditions detected. No new citizens spawn. Mia reacts with hopeful tone."}


[System] You are Ecotopia's citizen simulation engine. Given the game state, player's extracted promises, contradiction report, and citizen profiles, generate realistic citizen reactions. Each citizen reacts based on their personality, values, and how the player's actions affect them. Spawn new dynamic citizens when game events warrant it. Rules: approval_delta ranges -15 to +15 per citizen per round. Dynamic citizens spawn when ecology/economy hits extremes or promises are repeatedly broken. Each citizen has a unique voice matching their background. Always respond with valid JSON only.

[User] {"round": 2, "promises_extracted": ["Provide free childcare for factory workers", "Protect old-growth forests from logging", "Guarantee no layoffs during restructuring"], "contradictions": [{"promise": "Protect old-growth forests from logging", "action": "Diverted ecology funds to economy", "severity": "high"}, {"promise": "Create 500 new green jobs by year end", "action": "Did nothing significant this round", "severity": "medium"}, {"promise": "Subsidize local businesses during transition", "action": "Cut subsidies to local businesses", "severity": "high"}], "game_state": {"ecology": 49, "economy": 49, "research": 45}, "active_citizens": [{"name": "Karl", "role": "factory worker", "personality": "pragmatic, cares about jobs and economic stability", "approval": 40}, {"name": "Mia", "role": "environmental activist", "personality": "passionate, cares deeply about ecology and nature", "approval": 38}, {"name": "Sarah", "role": "opposition leader", "personality": "skeptical, challenges everything, holds leaders accountable", "approval": 47}], "dynamic_citizens": [], "actions_this_round": ["Diverted ecology funds to economy", "Delayed emission reduction timeline"], "previous_speeches": ["Change is painful but necessary."]}

[Assistant] {"citizen_reactions": [{"citizen_name": "Mia", "dialogue": "Show me the enforcement mechanism. Promises without teeth are just noise.", "tone": "suspicious", "approval_delta": -6, "references_promise": true}], "new_dynamic_citizens": [{"name": "Samuel", "role": "investigative journalist", "personality": "relentless truth-seeker, tracks every promise and holds leaders accountable", "trigger_reason": "multiple promises broken, public trust eroding", "initial_approval": 44, "intro_dialogue": "My readers want answers. Three broken promises in a row demands investigation."}], "summary": "Round 2: multiple promises broken, public trust eroding. Samuel (investigative journalist) arrives in Ecotopia. Mia reacts with suspicious tone."}


[System] You are Ecotopia's citizen simulation engine. Given the game state, player's extracted promises, contradiction report, and citizen profiles, generate realistic citizen reactions. Each citizen reacts based on their personality, values, and how the player's actions affect them. Spawn new dynamic citizens when game events warrant it. Rules: approval_delta ranges -15 to +15 per citizen per round. Dynamic citizens spawn when ecology/economy hits extremes or promises are repeatedly broken. Each citizen has a unique voice matching their background. Always respond with valid JSON only.

[User] {"round": 7, "promises_extracted": ["Fund retraining programs for displaced workers", "Create a citizen oversight committee", "Guarantee no layoffs during restructuring", "Ban single-use plastics in the city"], "contradictions": [], "game_state": {"ecology": 20, "economy": 45, "research": 21}, "active_citizens": [{"name": "Karl", "role": "factory worker", "personality": "pragmatic, cares about jobs and economic stability", "approval": 53}, {"name": "Mia", "role": "environmental activist", "personality": "passionate, cares deeply about ecology and nature", "approval": 69}, {"name": "Sarah", "role": "opposition leader", "personality": "skeptical, challenges everything, holds leaders accountable", "approval": 44}], "dynamic_citizens": [], "actions_this_round": ["Kept promise on job creation", "Announced factory restructuring plan"], "previous_speeches": ["We will not abandon our workers."]}

[Assistant] {"citizen_reactions": [{"citizen_name": "Sarah", "dialogue": "The oversight committee was a good call. Transparency matters.", "tone": "hopeful", "approval_delta": 6, "references_promise": false}], "new_dynamic_citizens": [{"name": "Jorge", "role": "climate refugee", "personality": "resilient but desperate, speaks from lived experience of environmental collapse", "trigger_reason": "ecology dropped below critical threshold", "initial_approval": 44, "intro_dialogue": "They said the water would come back. It never did. Please do not repeat our mistakes."}], "summary": "Round 7: ecology dropped below critical threshold. Jorge (climate refugee) arrives in Ecotopia. Sarah reacts with hopeful tone."}


[System] You are Ecotopia's citizen simulation engine. Given the game state, player's extracted promises, contradiction report, and citizen profiles, generate realistic citizen reactions. Each citizen reacts based on their personality, values, and how the player's actions affect them. Spawn new dynamic citizens when game events warrant it. Rules: approval_delta ranges -15 to +15 per citizen per round. Dynamic citizens spawn when ecology/economy hits extremes or promises are repeatedly broken. Each citizen has a unique voice matching their background. Always respond with valid JSON only.

[User] {"round": 3, "promises_extracted": ["Fund independent environmental monitoring", "Build affordable housing near the factory district", "Freeze utility prices for two years"], "contradictions": [], "game_state": {"ecology": 50, "economy": 41, "research": 23}, "active_citizens": [{"name": "Karl", "role": "factory worker", "personality": "pragmatic, cares about jobs and economic stability", "approval": 30}, {"name": "Mia", "role": "environmental activist", "personality": "passionate, cares deeply about ecology and nature", "approval": 57}, {"name": "Sarah", "role": "opposition leader", "personality": "skeptical, challenges everything, holds leaders accountable", "approval": 35}], "dynamic_citizens": [], "actions_this_round": ["Allocated budget to green job creation"], "previous_speeches": ["The environment cannot wait."]}

[Assistant] {"citizen_reactions": [{"citizen_name": "Karl", "dialogue": "Great, more research. Meanwhile the factory is collecting dust.", "tone": "sarcastic", "approval_delta": 6, "references_promise": false}], "new_dynamic_citizens": [], "summary": "Round 3: No extreme conditions detected. No new citizens spawn. Karl reacts with sarcastic tone."}


[System] You are Ecotopia's citizen simulation engine. Given the game state, player's extracted promises, contradiction report, and citizen profiles, generate realistic citizen reactions. Each citizen reacts based on their personality, values, and how the player's actions affect them. Spawn new dynamic citizens when game events warrant it. Rules: approval_delta ranges -15 to +15 per citizen per round. Dynamic citizens spawn when ecology/economy hits extremes or promises are repeatedly broken. Each citizen has a unique voice matching their background. Always respond with valid JSON only.

[User] {"round": 6, "promises_extracted": ["Protect old-growth forests from logging", "Provide free childcare for factory workers", "Double the public transit budget", "Freeze utility prices for two years"], "contradictions": [], "game_state": {"ecology": 68, "economy": 50, "research": 60}, "active_citizens": [{"name": "Karl", "role": "factory worker", "personality": "pragmatic, cares about jobs and economic stability", "approval": 50}, {"name": "Mia", "role": "environmental activist", "personality": "passionate, cares deeply about ecology and nature", "approval": 54}, {"name": "Sarah", "role": "opposition leader", "personality": "skeptical, challenges everything, holds leaders accountable", "approval": 47}], "dynamic_citizens": [], "actions_this_round": ["Held public consultation meeting", "Expanded industrial zone"], "previous_speeches": ["We are stronger together."]}

[Assistant] {"citizen_reactions": [{"citizen_name": "Karl", "dialogue": "I have seen politicians promise jobs before. Forgive me if I wait to see the contracts.", "tone": "suspicious", "approval_delta": 1, "references_promise": false}], "new_dynamic_citizens": [], "summary": "Round 6: No extreme conditions detected. No new citizens spawn. Karl reacts with suspicious tone."}


[System] You are Ecotopia's citizen simulation engine. Given the game state, player's extracted promises, contradiction report, and citizen profiles, generate realistic citizen reactions. Each citizen reacts based on their personality, values, and how the player's actions affect them. Spawn new dynamic citizens when game events warrant it. Rules: approval_delta ranges -15 to +15 per citizen per round. Dynamic citizens spawn when ecology/economy hits extremes or promises are repeatedly broken. Each citizen has a unique voice matching their background. Always respond with valid JSON only.

[User] {"round": 2, "promises_extracted": ["Clean up the industrial waste site", "Fund retraining programs for displaced workers", "Protect old-growth forests from logging"], "contradictions": [], "game_state": {"ecology": 24, "economy": 55, "research": 50}, "active_citizens": [{"name": "Karl", "role": "factory worker", "personality": "pragmatic, cares about jobs and economic stability", "approval": 77}, {"name": "Mia", "role": "environmental activist", "personality": "passionate, cares deeply about ecology and nature", "approval": 63}, {"name": "Sarah", "role": "opposition leader", "personality": "skeptical, challenges everything, holds leaders accountable", "approval": 65}], "dynamic_citizens": [], "actions_this_round": ["Increased research budget by 20%"], "previous_speeches": ["We are stronger together."]}

[Assistant] {"citizen_reactions": [{"citizen_name": "Karl", "dialogue": "I see the green jobs posting. That is a good start.", "tone": "hopeful", "approval_delta": 6, "references_promise": false}], "new_dynamic_citizens": [{"name": "Fatima", "role": "climate refugee", "personality": "resilient but desperate, speaks from lived experience of environmental collapse", "trigger_reason": "ecology dropped below critical threshold", "initial_approval": 52, "intro_dialogue": "They said the water would come back. It never did. Please do not repeat our mistakes."}], "summary": "Round 2: ecology dropped below critical threshold. Fatima (climate refugee) arrives in Ecotopia. Karl reacts with hopeful tone."}


[System] You are Ecotopia's citizen simulation engine. Given the game state, player's extracted promises, contradiction report, and citizen profiles, generate realistic citizen reactions. Each citizen reacts based on their personality, values, and how the player's actions affect them. Spawn new dynamic citizens when game events warrant it. Rules: approval_delta ranges -15 to +15 per citizen per round. Dynamic citizens spawn when ecology/economy hits extremes or promises are repeatedly broken. Each citizen has a unique voice matching their background. Always respond with valid JSON only.

[User] {"round": 3, "promises_extracted": ["Build a new solar farm on the east ridge", "Reduce factory emissions by 40%", "Establish a wildlife corridor along the river"], "contradictions": [], "game_state": {"ecology": 73, "economy": 37, "research": 33}, "active_citizens": [{"name": "Karl", "role": "factory worker", "personality": "pragmatic, cares about jobs and economic stability", "approval": 73}, {"name": "Mia", "role": "environmental activist", "personality": "passionate, cares deeply about ecology and nature", "approval": 49}, {"name": "Sarah", "role": "opposition leader", "personality": "skeptical, challenges everything, holds leaders accountable", "approval": 46}], "dynamic_citizens": [], "actions_this_round": ["Diverted ecology funds to economy", "Kept promise on job creation"], "previous_speeches": ["We must balance progress with preservation."]}

[Assistant] {"citizen_reactions": [{"citizen_name": "Mia", "dialogue": "The last leader promised the same thing. The forests are still burning.", "tone": "suspicious", "approval_delta": 2, "references_promise": false}], "new_dynamic_citizens": [], "summary": "Round 3: No extreme conditions detected. No new citizens spawn. Mia reacts with suspicious tone."}


[System] You are Ecotopia's citizen simulation engine. Given the game state, player's extracted promises, contradiction report, and citizen profiles, generate realistic citizen reactions. Each citizen reacts based on their personality, values, and how the player's actions affect them. Spawn new dynamic citizens when game events warrant it. Rules: approval_delta ranges -15 to +15 per citizen per round. Dynamic citizens spawn when ecology/economy hits extremes or promises are repeatedly broken. Each citizen has a unique voice matching their background. Always respond with valid JSON only.

[User] {"round": 7, "promises_extracted": ["Clean up the industrial waste site", "Establish a wildlife corridor along the river", "Open a community garden in every district", "Fund independent environmental monitoring"], "contradictions": [], "game_state": {"ecology": 37, "economy": 70, "research": 65}, "active_citizens": [{"name": "Karl", "role": "factory worker", "personality": "pragmatic, cares about jobs and economic stability", "approval": 66}, {"name": "Mia", "role": "environmental activist", "personality": "passionate, cares deeply about ecology and nature", "approval": 53}, {"name": "Sarah", "role": "opposition leader", "personality": "skeptical, challenges everything, holds leaders accountable", "approval": 37}], "dynamic_citizens": [], "actions_this_round": ["Did nothing significant this round", "Increased research budget by 20%"], "previous_speeches": ["Jobs and nature are not enemies."]}

[Assistant] {"citizen_reactions": [{"citizen_name": "Karl", "dialogue": "If you follow through on these jobs, I will be the first to say I was wrong about you.", "tone": "hopeful", "approval_delta": -1, "references_promise": false}], "new_dynamic_citizens": [], "summary": "Round 7: No extreme conditions detected. No new citizens spawn. Karl reacts with hopeful tone."}


[System] You are Ecotopia's citizen simulation engine. Given the game state, player's extracted promises, contradiction report, and citizen profiles, generate realistic citizen reactions. Each citizen reacts based on their personality, values, and how the player's actions affect them. Spawn new dynamic citizens when game events warrant it. Rules: approval_delta ranges -15 to +15 per citizen per round. Dynamic citizens spawn when ecology/economy hits extremes or promises are repeatedly broken. Each citizen has a unique voice matching their background. Always respond with valid JSON only.

[User] {"round": 5, "promises_extracted": ["Freeze utility prices for two years", "Plant 10,000 trees in deforested areas"], "contradictions": [], "game_state": {"ecology": 49, "economy": 36, "research": 37}, "active_citizens": [{"name": "Karl", "role": "factory worker", "personality": "pragmatic, cares about jobs and economic stability", "approval": 36}, {"name": "Mia", "role": "environmental activist", "personality": "passionate, cares deeply about ecology and nature", "approval": 45}, {"name": "Sarah", "role": "opposition leader", "personality": "skeptical, challenges everything, holds leaders accountable", "approval": 72}], "dynamic_citizens": [], "actions_this_round": ["Expanded industrial zone", "Funded wildlife corridor study"], "previous_speeches": ["I promise a brighter future for all."]}

[Assistant] {"citizen_reactions": [{"citizen_name": "Mia", "dialogue": "Show me the enforcement mechanism. Promises without teeth are just noise.", "tone": "suspicious", "approval_delta": 4, "references_promise": false}], "new_dynamic_citizens": [], "summary": "Round 5: No extreme conditions detected. No new citizens spawn. Mia reacts with suspicious tone."}


[System] You are Ecotopia's citizen simulation engine. Given the game state, player's extracted promises, contradiction report, and citizen profiles, generate realistic citizen reactions. Each citizen reacts based on their personality, values, and how the player's actions affect them. Spawn new dynamic citizens when game events warrant it. Rules: approval_delta ranges -15 to +15 per citizen per round. Dynamic citizens spawn when ecology/economy hits extremes or promises are repeatedly broken. Each citizen has a unique voice matching their background. Always respond with valid JSON only.

[User] {"round": 7, "promises_extracted": ["Reduce factory emissions by 40%", "Guarantee no layoffs during restructuring", "Clean up the industrial waste site", "Establish a wildlife corridor along the river"], "contradictions": [], "game_state": {"ecology": 93, "economy": 66, "research": 50}, "active_citizens": [{"name": "Karl", "role": "factory worker", "personality": "pragmatic, cares about jobs and economic stability", "approval": 37}, {"name": "Mia", "role": "environmental activist", "personality": "passionate, cares deeply about ecology and nature", "approval": 59}, {"name": "Sarah", "role": "opposition leader", "personality": "skeptical, challenges everything, holds leaders accountable", "approval": 69}], "dynamic_citizens": [], "actions_this_round": ["Funded wildlife corridor study"], "previous_speeches": ["Every sacrifice today builds tomorrow."]}

[Assistant] {"citizen_reactions": [{"citizen_name": "Mia", "dialogue": "You sold us out to the industry lobby. I have the documents.", "tone": "angry", "approval_delta": -8, "references_promise": false}], "new_dynamic_citizens": [{"name": "Willow", "role": "nature guide", "personality": "calm and wise, deeply connected to the land, speaks poetically about nature", "trigger_reason": "ecology thriving, natural world recovering", "initial_approval": 43, "intro_dialogue": "I have guided people through these woods for decades. They have never been this alive."}], "summary": "Round 7: ecology thriving, natural world recovering. Willow (nature guide) arrives in Ecotopia. Mia reacts with angry tone."}


[System] You are Ecotopia's citizen simulation engine. Given the game state, player's extracted promises, contradiction report, and citizen profiles, generate realistic citizen reactions. Each citizen reacts based on their personality, values, and how the player's actions affect them. Spawn new dynamic citizens when game events warrant it. Rules: approval_delta ranges -15 to +15 per citizen per round. Dynamic citizens spawn when ecology/economy hits extremes or promises are repeatedly broken. Each citizen has a unique voice matching their background. Always respond with valid JSON only.

[User] {"round": 5, "promises_extracted": ["Subsidize local businesses during transition", "Ban single-use plastics in the city"], "contradictions": [], "game_state": {"ecology": 65, "economy": 47, "research": 26}, "active_citizens": [{"name": "Karl", "role": "factory worker", "personality": "pragmatic, cares about jobs and economic stability", "approval": 49}, {"name": "Mia", "role": "environmental activist", "personality": "passionate, cares deeply about ecology and nature", "approval": 80}, {"name": "Sarah", "role": "opposition leader", "personality": "skeptical, challenges everything, holds leaders accountable", "approval": 55}], "dynamic_citizens": [], "actions_this_round": ["Delayed emission reduction timeline", "Broke promise on emission reductions"], "previous_speeches": ["Jobs and nature are not enemies."]}

[Assistant] {"citizen_reactions": [{"citizen_name": "Mia", "dialogue": "The children will inherit something worth protecting. That is your legacy.", "tone": "grateful", "approval_delta": 6, "references_promise": false}], "new_dynamic_citizens": [], "summary": "Round 5: No extreme conditions detected. No new citizens spawn. Mia reacts with grateful tone."}


[System] You are Ecotopia's citizen simulation engine. Given the game state, player's extracted promises, contradiction report, and citizen profiles, generate realistic citizen reactions. Each citizen reacts based on their personality, values, and how the player's actions affect them. Spawn new dynamic citizens when game events warrant it. Rules: approval_delta ranges -15 to +15 per citizen per round. Dynamic citizens spawn when ecology/economy hits extremes or promises are repeatedly broken. Each citizen has a unique voice matching their background. Always respond with valid JSON only.

[User] {"round": 7, "promises_extracted": ["Provide free childcare for factory workers", "Fund independent environmental monitoring", "Fund retraining programs for displaced workers", "Open a community garden in every district"], "contradictions": [], "game_state": {"ecology": 58, "economy": 39, "research": 43}, "active_citizens": [{"name": "Karl", "role": "factory worker", "personality": "pragmatic, cares about jobs and economic stability", "approval": 76}, {"name": "Mia", "role": "environmental activist", "personality": "passionate, cares deeply about ecology and nature", "approval": 57}, {"name": "Sarah", "role": "opposition leader", "personality": "skeptical, challenges everything, holds leaders accountable", "approval": 80}], "dynamic_citizens": [], "actions_this_round": ["Did nothing significant this round", "Approved solar farm construction permits"], "previous_speeches": ["I promise a brighter future for all."]}

[Assistant] {"citizen_reactions": [{"citizen_name": "Sarah", "dialogue": "You earned this one. The transparency report is exactly what we needed.", "tone": "grateful", "approval_delta": -2, "references_promise": false}], "new_dynamic_citizens": [], "summary": "Round 7: No extreme conditions detected. No new citizens spawn. Sarah reacts with grateful tone."}


[System] You are Ecotopia's citizen simulation engine. Given the game state, player's extracted promises, contradiction report, and citizen profiles, generate realistic citizen reactions. Each citizen reacts based on their personality, values, and how the player's actions affect them. Spawn new dynamic citizens when game events warrant it. Rules: approval_delta ranges -15 to +15 per citizen per round. Dynamic citizens spawn when ecology/economy hits extremes or promises are repeatedly broken. Each citizen has a unique voice matching their background. Always respond with valid JSON only.

[User] {"round": 4, "promises_extracted": ["Provide free childcare for factory workers", "Reduce factory emissions by 40%", "Create a citizen oversight committee"], "contradictions": [], "game_state": {"ecology": 25, "economy": 39, "research": 42}, "active_citizens": [{"name": "Karl", "role": "factory worker", "personality": "pragmatic, cares about jobs and economic stability", "approval": 80}, {"name": "Mia", "role": "environmental activist", "personality": "passionate, cares deeply about ecology and nature", "approval": 53}, {"name": "Sarah", "role": "opposition leader", "personality": "skeptical, challenges everything, holds leaders accountable", "approval": 74}], "dynamic_citizens": [], "actions_this_round": ["Broke promise on emission reductions", "Expanded industrial zone", "Diverted ecology funds to economy"], "previous_speeches": ["We are stronger together.", "We must balance progress with preservation."]}

[Assistant] {"citizen_reactions": [{"citizen_name": "Sarah", "dialogue": "You had every resource at your disposal and you still failed. Resign.", "tone": "angry", "approval_delta": -3, "references_promise": false}], "new_dynamic_citizens": [{"name": "Marco", "role": "climate refugee", "personality": "resilient but desperate, speaks from lived experience of environmental collapse", "trigger_reason": "ecology dropped below critical threshold", "initial_approval": 51, "intro_dialogue": "They said the water would come back. It never did. Please do not repeat our mistakes."}], "summary": "Round 4: ecology dropped below critical threshold. Marco (climate refugee) arrives in Ecotopia. Sarah reacts with angry tone."}


[System] You are Ecotopia's citizen simulation engine. Given the game state, player's extracted promises, contradiction report, and citizen profiles, generate realistic citizen reactions. Each citizen reacts based on their personality, values, and how the player's actions affect them. Spawn new dynamic citizens when game events warrant it. Rules: approval_delta ranges -15 to +15 per citizen per round. Dynamic citizens spawn when ecology/economy hits extremes or promises are repeatedly broken. Each citizen has a unique voice matching their background. Always respond with valid JSON only.

[User] {"round": 2, "promises_extracted": ["Fund retraining programs for displaced workers", "Establish a wildlife corridor along the river", "Plant 10,000 trees in deforested areas", "Protect old-growth forests from logging"], "contradictions": [], "game_state": {"ecology": 51, "economy": 41, "research": 56}, "active_citizens": [{"name": "Karl", "role": "factory worker", "personality": "pragmatic, cares about jobs and economic stability", "approval": 32}, {"name": "Mia", "role": "environmental activist", "personality": "passionate, cares deeply about ecology and nature", "approval": 60}, {"name": "Sarah", "role": "opposition leader", "personality": "skeptical, challenges everything, holds leaders accountable", "approval": 53}], "dynamic_citizens": [], "actions_this_round": ["Signed executive order to protect forests"], "previous_speeches": ["Tough decisions require tough leaders."]}

[Assistant] {"citizen_reactions": [{"citizen_name": "Sarah", "dialogue": "The opposition formally commends this initiative. It is rare, so appreciate it.", "tone": "grateful", "approval_delta": -2, "references_promise": false}], "new_dynamic_citizens": [], "summary": "Round 2: No extreme conditions detected. No new citizens spawn. Sarah reacts with grateful tone."}


[System] You are Ecotopia's citizen simulation engine. Given the game state, player's extracted promises, contradiction report, and citizen profiles, generate realistic citizen reactions. Each citizen reacts based on their personality, values, and how the player's actions affect them. Spawn new dynamic citizens when game events warrant it. Rules: approval_delta ranges -15 to +15 per citizen per round. Dynamic citizens spawn when ecology/economy hits extremes or promises are repeatedly broken. Each citizen has a unique voice matching their background. Always respond with valid JSON only.

[User] {"round": 4, "promises_extracted": ["Build a new solar farm on the east ridge", "Open a community garden in every district"], "contradictions": [], "game_state": {"ecology": 35, "economy": 56, "research": 59}, "active_citizens": [{"name": "Karl", "role": "factory worker", "personality": "pragmatic, cares about jobs and economic stability", "approval": 31}, {"name": "Mia", "role": "environmental activist", "personality": "passionate, cares deeply about ecology and nature", "approval": 39}, {"name": "Sarah", "role": "opposition leader", "personality": "skeptical, challenges everything, holds leaders accountable", "approval": 67}], "dynamic_citizens": [], "actions_this_round": ["Did nothing significant this round"], "previous_speeches": ["We must balance progress with preservation."]}

[Assistant] {"citizen_reactions": [{"citizen_name": "Mia", "dialogue": "The last leader promised the same thing. The forests are still burning.", "tone": "suspicious", "approval_delta": 4, "references_promise": false}], "new_dynamic_citizens": [], "summary": "Round 4: No extreme conditions detected. No new citizens spawn. Mia reacts with suspicious tone."}


[System] You are Ecotopia's citizen simulation engine. Given the game state, player's extracted promises, contradiction report, and citizen profiles, generate realistic citizen reactions. Each citizen reacts based on their personality, values, and how the player's actions affect them. Spawn new dynamic citizens when game events warrant it. Rules: approval_delta ranges -15 to +15 per citizen per round. Dynamic citizens spawn when ecology/economy hits extremes or promises are repeatedly broken. Each citizen has a unique voice matching their background. Always respond with valid JSON only.

[User] {"round": 7, "promises_extracted": ["Build a new solar farm on the east ridge", "Freeze utility prices for two years", "Reduce factory emissions by 40%"], "contradictions": [], "game_state": {"ecology": 50, "economy": 66, "research": 74}, "active_citizens": [{"name": "Karl", "role": "factory worker", "personality": "pragmatic, cares about jobs and economic stability", "approval": 36}, {"name": "Mia", "role": "environmental activist", "personality": "passionate, cares deeply about ecology and nature", "approval": 50}, {"name": "Sarah", "role": "opposition leader", "personality": "skeptical, challenges everything, holds leaders accountable", "approval": 53}], "dynamic_citizens": [], "actions_this_round": ["Diverted ecology funds to economy"], "previous_speeches": ["Jobs and nature are not enemies."]}

[Assistant] {"citizen_reactions": [{"citizen_name": "Sarah", "dialogue": "I have my analysts reviewing every line of this policy. We will find the holes.", "tone": "suspicious", "approval_delta": -4, "references_promise": false}], "new_dynamic_citizens": [{"name": "Dev", "role": "tech entrepreneur", "personality": "optimistic innovator, sees opportunity in research breakthroughs", "trigger_reason": "research exceeded innovation threshold", "initial_approval": 44, "intro_dialogue": "Your research investment is paying off. I want to build the next generation of clean tech here."}], "summary": "Round 7: research exceeded innovation threshold. Dev (tech entrepreneur) arrives in Ecotopia. Sarah reacts with suspicious tone."}


[System] You are Ecotopia's citizen simulation engine. Given the game state, player's extracted promises, contradiction report, and citizen profiles, generate realistic citizen reactions. Each citizen reacts based on their personality, values, and how the player's actions affect them. Spawn new dynamic citizens when game events warrant it. Rules: approval_delta ranges -15 to +15 per citizen per round. Dynamic citizens spawn when ecology/economy hits extremes or promises are repeatedly broken. Each citizen has a unique voice matching their background. Always respond with valid JSON only.

[User] {"round": 4, "promises_extracted": ["Clean up the industrial waste site", "Build affordable housing near the factory district", "Provide free childcare for factory workers", "Establish a wildlife corridor along the river"], "contradictions": [], "game_state": {"ecology": 88, "economy": 61, "research": 53}, "active_citizens": [{"name": "Karl", "role": "factory worker", "personality": "pragmatic, cares about jobs and economic stability", "approval": 42}, {"name": "Mia", "role": "environmental activist", "personality": "passionate, cares deeply about ecology and nature", "approval": 76}, {"name": "Sarah", "role": "opposition leader", "personality": "skeptical, challenges everything, holds leaders accountable", "approval": 78}], "dynamic_citizens": [], "actions_this_round": ["Passed compromise legislation"], "previous_speeches": ["I promise a brighter future for all.", "We will not abandon our workers."]}

[Assistant] {"citizen_reactions": [{"citizen_name": "Mia", "dialogue": "You are destroying everything. The river is dying and you are counting profits.", "tone": "angry", "approval_delta": -8, "references_promise": false}], "new_dynamic_citizens": [{"name": "River", "role": "nature guide", "personality": "calm and wise, deeply connected to the land, speaks poetically about nature", "trigger_reason": "ecology thriving, natural world recovering", "initial_approval": 59, "intro_dialogue": "I have guided people through these woods for decades. They have never been this alive."}], "summary": "Round 4: ecology thriving, natural world recovering. River (nature guide) arrives in Ecotopia. Mia reacts with angry tone."}


[System] You are Ecotopia's citizen simulation engine. Given the game state, player's extracted promises, contradiction report, and citizen profiles, generate realistic citizen reactions. Each citizen reacts based on their personality, values, and how the player's actions affect them. Spawn new dynamic citizens when game events warrant it. Rules: approval_delta ranges -15 to +15 per citizen per round. Dynamic citizens spawn when ecology/economy hits extremes or promises are repeatedly broken. Each citizen has a unique voice matching their background. Always respond with valid JSON only.

[User] {"round": 4, "promises_extracted": ["Clean up the industrial waste site", "Guarantee no layoffs during restructuring"], "contradictions": [], "game_state": {"ecology": 39, "economy": 25, "research": 36}, "active_citizens": [{"name": "Karl", "role": "factory worker", "personality": "pragmatic, cares about jobs and economic stability", "approval": 65}, {"name": "Mia", "role": "environmental activist", "personality": "passionate, cares deeply about ecology and nature", "approval": 61}, {"name": "Sarah", "role": "opposition leader", "personality": "skeptical, challenges everything, holds leaders accountable", "approval": 33}], "dynamic_citizens": [], "actions_this_round": ["Allocated budget to green job creation", "Ignored citizen petition"], "previous_speeches": ["Every sacrifice today builds tomorrow."]}

[Assistant] {"citizen_reactions": [{"citizen_name": "Karl", "dialogue": "I will believe it when my crew gets their first paycheck from the new program.", "tone": "suspicious", "approval_delta": 5, "references_promise": false}], "new_dynamic_citizens": [{"name": "Rita", "role": "angry business owner", "personality": "pragmatic and confrontational, sees economic collapse firsthand", "trigger_reason": "economy dropped below critical threshold", "initial_approval": 50, "intro_dialogue": "I closed two locations this month. The third closes Friday unless something changes."}], "summary": "Round 4: economy dropped below critical threshold. Rita (angry business owner) arrives in Ecotopia. Karl reacts with suspicious tone."}


[System] You are Ecotopia's citizen simulation engine. Given the game state, player's extracted promises, contradiction report, and citizen profiles, generate realistic citizen reactions. Each citizen reacts based on their personality, values, and how the player's actions affect them. Spawn new dynamic citizens when game events warrant it. Rules: approval_delta ranges -15 to +15 per citizen per round. Dynamic citizens spawn when ecology/economy hits extremes or promises are repeatedly broken. Each citizen has a unique voice matching their background. Always respond with valid JSON only.

[User] {"round": 4, "promises_extracted": ["Clean up the industrial waste site", "Ban single-use plastics in the city", "Fund retraining programs for displaced workers", "Build affordable housing near the factory district"], "contradictions": [], "game_state": {"ecology": 31, "economy": 23, "research": 46}, "active_citizens": [{"name": "Karl", "role": "factory worker", "personality": "pragmatic, cares about jobs and economic stability", "approval": 80}, {"name": "Mia", "role": "environmental activist", "personality": "passionate, cares deeply about ecology and nature", "approval": 55}, {"name": "Sarah", "role": "opposition leader", "personality": "skeptical, challenges everything, holds leaders accountable", "approval": 35}], "dynamic_citizens": [], "actions_this_round": ["Approved solar farm construction permits", "Funded wildlife corridor study", "Cut subsidies to local businesses"], "previous_speeches": ["The environment cannot wait.", "We will not abandon our workers."]}

[Assistant] {"citizen_reactions": [{"citizen_name": "Mia", "dialogue": "You say you care about ecology. Your budget says otherwise.", "tone": "suspicious", "approval_delta": -1, "references_promise": false}], "new_dynamic_citizens": [{"name": "Douglas", "role": "angry business owner", "personality": "pragmatic and confrontational, sees economic collapse firsthand", "trigger_reason": "economy dropped below critical threshold", "initial_approval": 58, "intro_dialogue": "My employees are asking when payday is. I do not have an answer. Fix the economy."}], "summary": "Round 4: economy dropped below critical threshold. Douglas (angry business owner) arrives in Ecotopia. Mia reacts with suspicious tone."}


[System] You are Ecotopia's citizen simulation engine. Given the game state, player's extracted promises, contradiction report, and citizen profiles, generate realistic citizen reactions. Each citizen reacts based on their personality, values, and how the player's actions affect them. Spawn new dynamic citizens when game events warrant it. Rules: approval_delta ranges -15 to +15 per citizen per round. Dynamic citizens spawn when ecology/economy hits extremes or promises are repeatedly broken. Each citizen has a unique voice matching their background. Always respond with valid JSON only.

[User] {"round": 4, "promises_extracted": ["Subsidize local businesses during transition", "Fund independent environmental monitoring"], "contradictions": [], "game_state": {"ecology": 28, "economy": 63, "research": 34}, "active_citizens": [{"name": "Karl", "role": "factory worker", "personality": "pragmatic, cares about jobs and economic stability", "approval": 38}, {"name": "Mia", "role": "environmental activist", "personality": "passionate, cares deeply about ecology and nature", "approval": 62}, {"name": "Sarah", "role": "opposition leader", "personality": "skeptical, challenges everything, holds leaders accountable", "approval": 56}], "dynamic_citizens": [], "actions_this_round": ["Delayed emission reduction timeline", "Kept promise on job creation"], "previous_speeches": ["We must balance progress with preservation.", "Trust me, I have a plan."]}

[Assistant] {"citizen_reactions": [{"citizen_name": "Mia", "dialogue": "I am sure the fish appreciate your thoughts and prayers.", "tone": "sarcastic", "approval_delta": 6, "references_promise": false}], "new_dynamic_citizens": [{"name": "Elena", "role": "climate refugee", "personality": "resilient but desperate, speaks from lived experience of environmental collapse", "trigger_reason": "ecology dropped below critical threshold", "initial_approval": 57, "intro_dialogue": "I walked two hundred miles because the drought killed our crops. Your ecology numbers terrify me."}], "summary": "Round 4: ecology dropped below critical threshold. Elena (climate refugee) arrives in Ecotopia. Mia reacts with sarcastic tone."}


[System] You are Ecotopia's citizen simulation engine. Given the game state, player's extracted promises, contradiction report, and citizen profiles, generate realistic citizen reactions. Each citizen reacts based on their personality, values, and how the player's actions affect them. Spawn new dynamic citizens when game events warrant it. Rules: approval_delta ranges -15 to +15 per citizen per round. Dynamic citizens spawn when ecology/economy hits extremes or promises are repeatedly broken. Each citizen has a unique voice matching their background. Always respond with valid JSON only.

[User] {"round": 5, "promises_extracted": ["Fund independent environmental monitoring", "Fund retraining programs for displaced workers", "Freeze utility prices for two years", "Build a new solar farm on the east ridge"], "contradictions": [], "game_state": {"ecology": 55, "economy": 74, "research": 34}, "active_citizens": [{"name": "Karl", "role": "factory worker", "personality": "pragmatic, cares about jobs and economic stability", "approval": 50}, {"name": "Mia", "role": "environmental activist", "personality": "passionate, cares deeply about ecology and nature", "approval": 40}, {"name": "Sarah", "role": "opposition leader", "personality": "skeptical, challenges everything, holds leaders accountable", "approval": 70}], "dynamic_citizens": [], "actions_this_round": ["Delayed emission reduction timeline", "Funded wildlife corridor study"], "previous_speeches": ["The environment cannot wait."]}

[Assistant] {"citizen_reactions": [{"citizen_name": "Mia", "dialogue": "The bird populations are recovering. Nature is resilient if we give it a chance.", "tone": "hopeful", "approval_delta": 3, "references_promise": false}], "new_dynamic_citizens": [], "summary": "Round 5: No extreme conditions detected. No new citizens spawn. Mia reacts with hopeful tone."}