WorldSmithAI / examples /civilization.json
Srishti280992's picture
Upload 39 files
caad8d0 verified
Raw
History Blame Contribute Delete
38.7 kB
{
"schema_version": "1.0",
"id": "medieval_civilization",
"name": "Medieval Civic Economy",
"description": "A compact civilization where generic agents govern, trade, construct infrastructure, share knowledge, enforce rules, and adapt goals under civic pressure.",
"simulation": {
"steps": 70,
"seed": 11,
"scheduler": "sequential",
"activation": "sequential",
"collect_history": true,
"metadata": {
"example": true,
"domain": "civilization"
}
},
"space": {
"dimensions": 2,
"bounds": [
[
0,
12
],
[
0,
12
]
],
"toroidal": false,
"enforce_bounds": true,
"metadata": {
"layout": "small_civic_map"
}
},
"agents": [
{
"id": "ruler_1",
"type": "ruler",
"position": [
2.0,
2.0
],
"state": {
"energy": 10,
"credits": 20,
"treasury": 15,
"authority": 5,
"public_pressure_signal": 0.55,
"inventory": {
"stone": 4,
"charters": 2
}
},
"memory": {
"goals": [
{
"id": "maintain_order",
"description": "Keep the settlement stable while preserving public trust.",
"importance": 3,
"score": 3,
"duration": 2
},
{
"id": "support_trade",
"description": "Use rules and incentives to keep merchants and artisans productive.",
"importance": 2,
"score": 2.5,
"duration": 2
},
{
"id": "fund_infrastructure",
"description": "Build shared infrastructure without exhausting the treasury.",
"importance": 2,
"score": 2,
"duration": 3
}
],
"known_options": {
"fair_taxation": {
"score": 1.1,
"trust": 0.7
},
"grain_subsidy": {
"score": 1.0,
"stability": 0.8
},
"market_regulation": {
"score": 0.9,
"stability": 0.7
}
},
"relationships": {}
},
"goals": [
{
"id": "maintain_order",
"importance": 3,
"score": 3
},
{
"id": "support_trade",
"importance": 2,
"score": 2.5
},
{
"id": "fund_infrastructure",
"importance": 2,
"score": 2
}
],
"behaviors": [
{
"name": "remember",
"params": {
"category": "civic_context",
"content": {
"note": "The ruler monitors public pressure, treasury health, trade, and civic order."
},
"tags": [
"governance",
"initial"
]
}
},
{
"name": "prioritize",
"params": {
"source_path": "memory.goals",
"item_attribute_weights": {
"importance": 1.0,
"score": 1.0
}
}
},
{
"name": "choose_goal",
"params": {
"source_path": "memory.latest_priorities.items",
"current_goal_path": "state.current_goal"
}
},
{
"name": "evaluate",
"params": {
"category": "civic_policy",
"candidate_options": [
"fair_taxation",
"grain_subsidy",
"market_regulation"
],
"known_options_path": "memory.known_options",
"adoption_threshold": 0.8,
"write_decision_path": "memory.latest_policy_decision"
}
},
{
"name": "adopt",
"params": {
"option_id": "fair_taxation",
"category": "governance_strategy",
"adoption_strength": 0.4,
"state_updates_on_adopt": {
"governance_style": "fair_taxation"
}
}
},
{
"name": "regulate",
"params": {
"regulation_id": "market_fairness_rule",
"regulation_type": "market_rule",
"target_types": [
"merchant",
"artisan"
],
"constraints": {
"state.credits": {
"min": 0
}
},
"penalties": {
"credits": 1.0
},
"authority_key": "authority",
"required_authority": 2.0
}
},
{
"name": "tax",
"params": {
"target_types": [
"merchant",
"artisan"
],
"tax_rate": 0.1,
"tax_base_key": "state.credits",
"source_account_key": "credits",
"recipient_account_key": "treasury",
"allow_partial": true,
"authority_key": "authority",
"required_authority": 2.0
}
},
{
"name": "subsidize",
"params": {
"target_types": [
"guard",
"scholar"
],
"amount": 1.0,
"source_account_key": "treasury",
"recipient_account_key": "credits",
"require_source_funds": true,
"allow_partial": true,
"authority_key": "authority",
"required_authority": 2.0
}
},
{
"name": "approve",
"params": {
"target_agent_id": "artisan_1",
"requested_action": "repair_public_square",
"approval_status": "approved",
"state_updates_on_approval": {
"has_build_permit": true
},
"authority_key": "authority",
"required_authority": 2.0
}
},
{
"name": "communicate",
"params": {
"message": "civic_policy_update",
"target_agent_id": "envoy_1",
"max_recipients": 1
}
},
{
"name": "update_belief",
"params": {
"belief_id": "public_order_is_stable",
"proposition": "Public order can be maintained with current policy.",
"evidence_path": "state.public_pressure_signal",
"learning_rate": 0.2,
"write_belief_path": "memory.latest_order_belief"
}
}
],
"policy": {
"type": "rule_policy",
"params": {
"selection_strategy": "highest_score",
"rules": [
{
"id": "ruler_choose_goal",
"behavior_name": "choose_goal",
"score_delta": 5.0,
"priority_delta": 2.0
},
{
"id": "ruler_prioritize",
"behavior_name": "prioritize",
"score_delta": 4.0,
"priority_delta": 1.0
},
{
"id": "ruler_regulate",
"behavior_name": "regulate",
"conditions": {
"state.authority": {
"min": 2
}
},
"score_delta": 3.0
},
{
"id": "ruler_tax",
"behavior_name": "tax",
"conditions": {
"state.authority": {
"min": 2
}
},
"score_delta": 2.6
},
{
"id": "ruler_subsidize",
"behavior_name": "subsidize",
"conditions": {
"state.treasury": {
"min": 1
}
},
"score_delta": 2.2
},
{
"id": "ruler_approve",
"behavior_name": "approve",
"score_delta": 1.8
},
{
"id": "ruler_communicate",
"behavior_name": "communicate",
"score_delta": 1.4
},
{
"id": "ruler_evaluate",
"behavior_name": "evaluate",
"score_delta": 1.0
},
{
"id": "ruler_update_belief",
"behavior_name": "update_belief",
"score_delta": 0.7
},
{
"id": "ruler_remember",
"behavior_name": "remember",
"score_delta": 0.2
},
{
"id": "ruler_adopt",
"behavior_name": "adopt",
"score_delta": 0.1
}
]
}
},
"alive": true,
"metadata": {
"role": "governance",
"example_note": "Primary civic policy agent."
}
},
{
"id": "merchant_1",
"type": "merchant",
"position": [
8.0,
7.5
],
"state": {
"energy": 9,
"credits": 14,
"market_signal": 0.7,
"inventory": {
"grain": 5,
"cloth": 3
}
},
"memory": {
"goals": [
{
"id": "grow_trade",
"description": "Balance grain, gold, and trust to grow exchange.",
"importance": 3,
"score": 3,
"duration": 2
},
{
"id": "maintain_reputation",
"description": "Avoid penalties and preserve buyer trust.",
"importance": 2,
"score": 2,
"duration": 1
}
],
"known_options": {
"fair_pricing": {
"score": 1.1,
"trust": 0.8
},
"bulk_trade": {
"score": 0.9,
"credits": 0.7
}
},
"relationships": {}
},
"goals": [
{
"id": "grow_trade",
"importance": 3,
"score": 3
},
{
"id": "maintain_reputation",
"importance": 2,
"score": 2
}
],
"behaviors": [
{
"name": "remember",
"params": {
"category": "market_context",
"content": {
"note": "The merchant tracks prices, demand, and regulation."
},
"tags": [
"market",
"trade"
]
}
},
{
"name": "prioritize",
"params": {
"source_path": "memory.goals"
}
},
{
"name": "choose_goal",
"params": {
"source_path": "memory.latest_priorities.items",
"current_goal_path": "state.current_goal"
}
},
{
"name": "price",
"params": {
"instrument_key": "grain",
"base_price": 2.0,
"supply_path": "state.inventory.grain",
"demand_path": "state.market_signal",
"min_price": 0.5,
"max_price": 8.0
}
},
{
"name": "ask",
"params": {
"instrument_key": "grain",
"quantity": 1.0,
"limit_price": 2.0,
"inventory_key": "inventory",
"account_key": "credits",
"match_immediately": true
}
},
{
"name": "forecast",
"params": {
"instrument_key": "grain",
"method": "moving_average",
"window": 3,
"horizon_steps": 2
}
},
{
"name": "evaluate",
"params": {
"category": "trade_strategy",
"candidate_options": [
"fair_pricing",
"bulk_trade"
],
"known_options_path": "memory.known_options",
"adoption_threshold": 0.8
}
},
{
"name": "adopt",
"params": {
"option_id": "fair_pricing",
"category": "trade_strategy",
"adoption_strength": 0.3,
"state_updates_on_adopt": {
"trade_practice": "fair_pricing"
}
}
},
{
"name": "communicate",
"params": {
"message": "market_price_update",
"target_agent_id": "ruler_1",
"max_recipients": 1
}
},
{
"name": "cooperate",
"params": {
"target_agent_id": "artisan_1",
"goal": "grow_trade",
"effort": 0.8
}
},
{
"name": "update_belief",
"params": {
"belief_id": "market_is_healthy",
"proposition": "Trade demand is strong enough to support the market.",
"evidence_path": "state.market_signal",
"learning_rate": 0.25,
"write_belief_path": "memory.latest_market_belief"
}
}
],
"policy": {
"type": "rule_policy",
"params": {
"selection_strategy": "highest_score",
"rules": [
{
"behavior_name": "choose_goal",
"score_delta": 5.0
},
{
"behavior_name": "prioritize",
"score_delta": 4.0
},
{
"behavior_name": "price",
"score_delta": 3.2
},
{
"behavior_name": "ask",
"conditions": {
"state.inventory.grain": {
"min": 1
}
},
"score_delta": 2.8
},
{
"behavior_name": "forecast",
"score_delta": 2.0
},
{
"behavior_name": "communicate",
"score_delta": 1.8
},
{
"behavior_name": "cooperate",
"score_delta": 1.4
},
{
"behavior_name": "evaluate",
"score_delta": 1.0
},
{
"behavior_name": "update_belief",
"score_delta": 0.7
},
{
"behavior_name": "remember",
"score_delta": 0.2
},
{
"behavior_name": "adopt",
"score_delta": 0.1
}
]
}
},
"alive": true,
"metadata": {
"role": "market_coordination"
}
},
{
"id": "artisan_1",
"type": "artisan",
"position": [
6.0,
5.0
],
"state": {
"energy": 9,
"credits": 9,
"craft_signal": 0.65,
"has_build_permit": false,
"inventory": {
"stone": 4,
"wood": 3,
"tools": 2,
"craft_materials": 5
}
},
"memory": {
"goals": [
{
"id": "repair_public_square",
"description": "Maintain shared infrastructure that supports trust and trade.",
"importance": 3,
"score": 2.8,
"duration": 3
},
{
"id": "produce_goods",
"description": "Turn materials into useful trade goods.",
"importance": 2,
"score": 2.2,
"duration": 2
}
],
"known_options": {
"guild_workshop": {
"score": 1.2,
"capacity": 0.8
},
"repair_priority": {
"score": 1.0,
"trust": 0.7
}
},
"structures": {},
"relationships": {}
},
"goals": [
{
"id": "repair_public_square",
"importance": 3,
"score": 2.8
},
{
"id": "produce_goods",
"importance": 2,
"score": 2.2
}
],
"behaviors": [
{
"name": "remember",
"params": {
"category": "artisan_context",
"content": {
"note": "The artisan tracks permits, tools, materials, and shared infrastructure."
},
"tags": [
"construction",
"craft"
]
}
},
{
"name": "prioritize",
"params": {
"source_path": "memory.goals"
}
},
{
"name": "choose_goal",
"params": {
"source_path": "memory.latest_priorities.items",
"current_goal_path": "state.current_goal"
}
},
{
"name": "build",
"params": {
"structure_id": "public_square",
"structure_type": "civic_infrastructure",
"material_cost": {
"stone": 1.0,
"wood": 1.0
},
"work_required": 6.0,
"work_amount": 1.0,
"initial_capacity": 5.0,
"initial_durability": 10.0
}
},
{
"name": "repair",
"params": {
"structure_id": "public_square",
"repair_amount": 1.0,
"material_cost": {
"craft_materials": 1.0
}
}
},
{
"name": "expand",
"params": {
"structure_id": "public_square",
"dimension_key": "capacity",
"expansion_amount": 1.0,
"work_required": 4.0,
"work_amount": 1.0,
"material_cost": {
"stone": 1.0
}
}
},
{
"name": "evaluate",
"params": {
"category": "craft_strategy",
"candidate_options": [
"guild_workshop",
"repair_priority"
],
"known_options_path": "memory.known_options",
"adoption_threshold": 0.8
}
},
{
"name": "communicate",
"params": {
"message": "infrastructure_status",
"target_agent_id": "ruler_1",
"max_recipients": 1
}
},
{
"name": "cooperate",
"params": {
"target_agent_id": "merchant_1",
"goal": "grow_trade",
"effort": 0.7
}
}
],
"policy": {
"type": "rule_policy",
"params": {
"selection_strategy": "highest_score",
"rules": [
{
"behavior_name": "choose_goal",
"score_delta": 5.0
},
{
"behavior_name": "prioritize",
"score_delta": 4.0
},
{
"behavior_name": "build",
"conditions": {
"state.inventory.stone": {
"min": 1
},
"state.inventory.wood": {
"min": 1
}
},
"score_delta": 3.4
},
{
"behavior_name": "repair",
"conditions": {
"state.inventory.craft_materials": {
"min": 1
}
},
"score_delta": 2.3
},
{
"behavior_name": "expand",
"conditions": {
"state.inventory.stone": {
"min": 1
}
},
"score_delta": 1.8
},
{
"behavior_name": "communicate",
"score_delta": 1.4
},
{
"behavior_name": "cooperate",
"score_delta": 1.2
},
{
"behavior_name": "evaluate",
"score_delta": 0.9
},
{
"behavior_name": "remember",
"score_delta": 0.2
}
]
}
},
"alive": true,
"metadata": {
"role": "infrastructure_and_craft"
}
},
{
"id": "scholar_1",
"type": "scholar",
"position": [
4.0,
9.0
],
"state": {
"energy": 8,
"credits": 5,
"knowledge": 3,
"evidence_signal": 0.72,
"inventory": {
"manuscripts": 3,
"ink": 2
}
},
"memory": {
"goals": [
{
"id": "preserve_knowledge",
"description": "Maintain useful knowledge for policy and trade.",
"importance": 3,
"score": 3,
"duration": 2
},
{
"id": "advise_council",
"description": "Share evidence with civic decision makers.",
"importance": 2,
"score": 2.4,
"duration": 1
}
],
"known_options": {
"public_archive": {
"score": 1.2,
"knowledge": 0.9
},
"civic_advice": {
"score": 1.0,
"trust": 0.7
}
},
"relationships": {}
},
"goals": [
{
"id": "preserve_knowledge",
"importance": 3,
"score": 3
},
{
"id": "advise_council",
"importance": 2,
"score": 2.4
}
],
"behaviors": [
{
"name": "remember",
"params": {
"category": "scholar_context",
"content": {
"note": "The scholar turns observations into institutional memory."
},
"tags": [
"knowledge",
"policy"
]
}
},
{
"name": "prioritize",
"params": {
"source_path": "memory.goals"
}
},
{
"name": "choose_goal",
"params": {
"source_path": "memory.latest_priorities.items",
"current_goal_path": "state.current_goal"
}
},
{
"name": "evaluate",
"params": {
"category": "knowledge_strategy",
"candidate_options": [
"public_archive",
"civic_advice"
],
"known_options_path": "memory.known_options",
"adoption_threshold": 0.75
}
},
{
"name": "adopt",
"params": {
"option_id": "public_archive",
"category": "knowledge_strategy",
"adoption_strength": 0.3,
"state_updates_on_adopt": {
"knowledge_practice": "public_archive"
}
}
},
{
"name": "communicate",
"params": {
"message": "civic_evidence_update",
"target_agent_id": "ruler_1",
"max_recipients": 1
}
},
{
"name": "cooperate",
"params": {
"target_agent_id": "envoy_1",
"goal": "preserve_knowledge",
"effort": 0.8
}
},
{
"name": "update_belief",
"params": {
"belief_id": "council_has_good_information",
"proposition": "The council has enough evidence for stable decisions.",
"evidence_path": "state.evidence_signal",
"learning_rate": 0.25,
"write_belief_path": "memory.latest_civic_evidence_belief"
}
}
],
"policy": {
"type": "rule_policy",
"params": {
"selection_strategy": "highest_score",
"rules": [
{
"behavior_name": "choose_goal",
"score_delta": 5.0
},
{
"behavior_name": "prioritize",
"score_delta": 4.0
},
{
"behavior_name": "communicate",
"score_delta": 3.0
},
{
"behavior_name": "evaluate",
"score_delta": 2.0
},
{
"behavior_name": "cooperate",
"score_delta": 1.5
},
{
"behavior_name": "update_belief",
"score_delta": 1.0
},
{
"behavior_name": "adopt",
"score_delta": 0.3
},
{
"behavior_name": "remember",
"score_delta": 0.2
}
]
}
},
"alive": true,
"metadata": {
"role": "knowledge_and_advice"
}
},
{
"id": "guard_1",
"type": "guard",
"position": [
2.5,
6.5
],
"state": {
"energy": 10,
"credits": 4,
"public_safety_signal": 0.6,
"inventory": {
"supplies": 3
}
},
"memory": {
"goals": [
{
"id": "protect_settlement",
"description": "Preserve civic safety and reduce conflict.",
"importance": 3,
"score": 2.8,
"duration": 2
},
{
"id": "enforce_fairness",
"description": "Support fair rule enforcement without exhausting trust.",
"importance": 2,
"score": 2.0,
"duration": 1
}
],
"known_options": {
"patrol": {
"score": 1.0,
"safety": 0.8
},
"mediation": {
"score": 0.9,
"trust": 0.7
}
},
"relationships": {}
},
"goals": [
{
"id": "protect_settlement",
"importance": 3,
"score": 2.8
},
{
"id": "enforce_fairness",
"importance": 2,
"score": 2.0
}
],
"behaviors": [
{
"name": "remember",
"params": {
"category": "security_context",
"content": {
"note": "The guard tracks public safety and enforcement pressure."
},
"tags": [
"safety",
"governance"
]
}
},
{
"name": "prioritize",
"params": {
"source_path": "memory.goals"
}
},
{
"name": "choose_goal",
"params": {
"source_path": "memory.latest_priorities.items",
"current_goal_path": "state.current_goal"
}
},
{
"name": "enforce",
"params": {
"target_types": [
"merchant",
"artisan"
],
"compliance_constraints": {
"state.credits": {
"min": 0
}
},
"fine_amount": 0.5,
"penalty_account_key": "credits",
"collector_agent_id": "ruler_1",
"collector_account_key": "treasury",
"authority_key": "authority",
"required_authority": 0.0
}
},
{
"name": "communicate",
"params": {
"message": "safety_status_update",
"target_agent_id": "ruler_1",
"max_recipients": 1
}
},
{
"name": "cooperate",
"params": {
"target_agent_id": "envoy_1",
"goal": "protect_settlement",
"effort": 0.8
}
},
{
"name": "update_belief",
"params": {
"belief_id": "settlement_is_safe",
"proposition": "The settlement is safe enough for trade and learning.",
"evidence_path": "state.public_safety_signal",
"learning_rate": 0.25,
"write_belief_path": "memory.latest_safety_belief"
}
}
],
"policy": {
"type": "rule_policy",
"params": {
"selection_strategy": "highest_score",
"rules": [
{
"behavior_name": "choose_goal",
"score_delta": 5.0
},
{
"behavior_name": "prioritize",
"score_delta": 4.0
},
{
"behavior_name": "enforce",
"score_delta": 3.0
},
{
"behavior_name": "communicate",
"score_delta": 2.0
},
{
"behavior_name": "cooperate",
"score_delta": 1.4
},
{
"behavior_name": "update_belief",
"score_delta": 1.0
},
{
"behavior_name": "remember",
"score_delta": 0.2
}
]
}
},
"alive": true,
"metadata": {
"role": "safety_and_enforcement"
}
},
{
"id": "envoy_1",
"type": "envoy",
"position": [
10.0,
3.0
],
"state": {
"energy": 9,
"credits": 6,
"trust_signal": 0.68,
"inventory": {
"letters": 4,
"gifts": 2
}
},
"memory": {
"goals": [
{
"id": "preserve_alliances",
"description": "Carry messages between civic groups and reduce coordination failures.",
"importance": 3,
"score": 2.9,
"duration": 1
},
{
"id": "mediate_conflict",
"description": "Help agents negotiate during resource or trade pressure.",
"importance": 2,
"score": 2.2,
"duration": 2
}
],
"known_options": {
"diplomatic_route": {
"score": 1.2,
"trust": 0.9
},
"mediation": {
"score": 1.0,
"conflict_reduction": 0.8
}
},
"relationships": {}
},
"goals": [
{
"id": "preserve_alliances",
"importance": 3,
"score": 2.9
},
{
"id": "mediate_conflict",
"importance": 2,
"score": 2.2
}
],
"behaviors": [
{
"name": "remember",
"params": {
"category": "diplomacy_context",
"content": {
"note": "The envoy tracks trust, messages, and civic coordination."
},
"tags": [
"diplomacy",
"trust"
]
}
},
{
"name": "prioritize",
"params": {
"source_path": "memory.goals"
}
},
{
"name": "choose_goal",
"params": {
"source_path": "memory.latest_priorities.items",
"current_goal_path": "state.current_goal"
}
},
{
"name": "communicate",
"params": {
"message": "alliance_status_update",
"target_agent_id": "scholar_1",
"max_recipients": 1
}
},
{
"name": "cooperate",
"params": {
"target_agent_id": "guard_1",
"goal": "preserve_alliances",
"effort": 0.8
}
},
{
"name": "negotiate",
"params": {
"topic": "market_and_security_coordination",
"proposal": {
"exchange": "trust_for_stability",
"terms": "share information before enforcement"
}
}
},
{
"name": "evaluate",
"params": {
"category": "diplomacy_strategy",
"candidate_options": [
"diplomatic_route",
"mediation"
],
"known_options_path": "memory.known_options",
"adoption_threshold": 0.8
}
},
{
"name": "update_belief",
"params": {
"belief_id": "alliances_are_stable",
"proposition": "The settlement's alliances are strong enough to absorb pressure.",
"evidence_path": "state.trust_signal",
"learning_rate": 0.25,
"write_belief_path": "memory.latest_trust_belief"
}
}
],
"policy": {
"type": "rule_policy",
"params": {
"selection_strategy": "highest_score",
"rules": [
{
"behavior_name": "choose_goal",
"score_delta": 5.0
},
{
"behavior_name": "prioritize",
"score_delta": 4.0
},
{
"behavior_name": "communicate",
"score_delta": 3.0
},
{
"behavior_name": "negotiate",
"score_delta": 2.5
},
{
"behavior_name": "cooperate",
"score_delta": 1.8
},
{
"behavior_name": "evaluate",
"score_delta": 1.0
},
{
"behavior_name": "update_belief",
"score_delta": 0.8
},
{
"behavior_name": "remember",
"score_delta": 0.2
}
]
}
},
"alive": true,
"metadata": {
"role": "communication_and_diplomacy"
}
}
],
"resources": [
{
"id": "grain_store_1",
"type": "grain",
"amount": 28,
"position": [
5.5,
8.5
],
"regeneration_rate": 0.2,
"max_amount": 45,
"metadata": {
"renewable": true,
"civic_layer": "food"
}
},
{
"id": "gold_reserve_1",
"type": "gold",
"amount": 22,
"position": [
2.0,
1.0
],
"regeneration_rate": 0,
"max_amount": 50,
"metadata": {
"renewable": false,
"civic_layer": "treasury"
}
},
{
"id": "craft_materials_1",
"type": "craft_materials",
"amount": 18,
"position": [
6.5,
5.0
],
"regeneration_rate": 0.1,
"max_amount": 35,
"metadata": {
"renewable": true,
"civic_layer": "production"
}
},
{
"id": "public_trust_1",
"type": "public_trust",
"amount": 16,
"position": [
4.5,
3.5
],
"regeneration_rate": 0.05,
"max_amount": 30,
"metadata": {
"renewable": true,
"civic_layer": "social"
}
},
{
"id": "knowledge_archive_1",
"type": "knowledge",
"amount": 20,
"position": [
4.0,
9.5
],
"regeneration_rate": 0.2,
"max_amount": 40,
"metadata": {
"renewable": true,
"civic_layer": "learning"
}
},
{
"id": "trade_demand_1",
"type": "trade_demand",
"amount": 14,
"position": [
9.5,
8.0
],
"regeneration_rate": 0.15,
"max_amount": 30,
"metadata": {
"renewable": true,
"civic_layer": "market"
}
}
],
"events": [
{
"id": "winter_pressure",
"name": "winter_pressure",
"trigger_step": 20,
"payload": {
"description": "Winter pressure raises the importance of grain, subsidies, and public order.",
"signals": {
"grain_pressure": 0.3,
"public_pressure": 0.2
}
},
"enabled": true,
"repeat_interval": null,
"target_agent_ids": [
"ruler_1",
"merchant_1",
"guard_1"
],
"target_resource_ids": [
"grain_store_1",
"public_trust_1"
],
"metadata": {
"narrative_hint": "Seasonal stress tests governance and market fairness."
}
},
{
"id": "trade_fair",
"name": "trade_fair",
"trigger_step": 38,
"payload": {
"description": "A trade fair increases market opportunity and diplomatic coordination.",
"signals": {
"trade_demand": 0.35,
"trust": 0.15
}
},
"enabled": true,
"repeat_interval": null,
"target_agent_ids": [
"merchant_1",
"artisan_1",
"envoy_1"
],
"target_resource_ids": [
"trade_demand_1",
"craft_materials_1"
],
"metadata": {
"narrative_hint": "Economic opportunity rewards coordination."
}
},
{
"id": "border_dispute",
"name": "border_dispute",
"trigger_step": 52,
"payload": {
"description": "A dispute pressures the guard and envoy to coordinate enforcement and negotiation.",
"signals": {
"safety_pressure": 0.25,
"trust_pressure": -0.15
}
},
"enabled": true,
"repeat_interval": null,
"target_agent_ids": [
"guard_1",
"envoy_1",
"ruler_1"
],
"target_resource_ids": [
"public_trust_1"
],
"metadata": {
"narrative_hint": "Conflict pressure tests diplomacy and enforcement."
}
}
],
"metrics": [
{
"name": "diversity",
"params": {
"collection": "agents",
"group_by_path": "type"
},
"enabled": true,
"metadata": {
"display": "Agent role diversity"
}
},
{
"name": "entropy",
"params": {
"collection": "agents",
"value_path": "type"
},
"enabled": true,
"metadata": {
"display": "Agent role entropy"
}
},
{
"name": "stability",
"params": {
"collection": "agents",
"group_by_path": "type"
},
"enabled": true,
"metadata": {
"display": "Population stability"
}
},
{
"name": "interestingness",
"params": {
"collection": "agents",
"group_by_path": "type"
},
"enabled": true,
"metadata": {
"display": "Composite interestingness"
}
}
],
"metadata": {
"example": true,
"domain": "civilization",
"created_for": "WorldSmithAI Gradio demo",
"design_note": "No civilization-specific runtime classes are required. The world uses generic agents, resources, policies, behaviors, events, and metrics."
}
}