# 结构化场景定义实践指南

{{ data_message_module_reference }}

{{ data_environment_module_reference }}

{{ core_definition_module_reference }}

根据所给的场景化模拟项目需求，你需要：
1. 明确场景中可能出现的所有类型的角色，并结合场景需求定义各角色在场景模拟过程中需要执行的动作，根据一个角色的所有动作执行结果是否都是可预测（程序性）的，判断该角色是静态的还是动态的；
2. 定义所有角色的所有动作的方法签名，明确入参和出参，并详细的阐述该动作的具体执行过程；如果相关参数是一条消息，你需要结合具体的业务选择 `leaf_playground.data.message` 模块下的消息数据结构继承以定义出符合你的场景化模拟项目需求和实际情况的自定义消息数据结构；
3. 思考你的场景化模拟项目是否需要定义一些环境变量（这些变量将被各类角色的智能体所感知），如果需要的话，请你给出这些环境变量的定义，并结合具体的业务选择 `leaf_playground.data.environment` 模块下的环境变量数据类继承以定义出符合你的场景化模拟项目需求和实际情况的自定义环境变量数据类；
4. 详细地且调理清晰地阐述场景运行流程，细致地说明各类角色的各动作之间的执行顺序（如哪个角色先执行什么动作，然后又是哪个角色继续执行什么动作）和关系（如动作间的执行是并行的还是串行的）；
5. 将你在前 4 点的思考结果完整无误地用 `leaf_playground.core.scene_definition.SceneDefinition` 结构化地记录下来。