feat(simulation): composable behavior engine — action+modifier+context primitives (#633)

Replaces flat culture×zone×role behavior strings with three-layer
composition: BehaviorAction (role-generic), BehaviorModifier (culture
coloring), BehaviorContext (situation gating). Assembly at NpcBlueprint
instantiation. Backward compatible — falls back to legacy behaviors
when primitives are empty. D-139 filed, Q-057 resolved.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
2026-03-13 09:12:07 +01:00
co-authored by Claude Opus 4.6
parent accbe579c9
commit 50800cbf81
5 changed files with 348 additions and 10 deletions
+10
View File
@@ -117,6 +117,16 @@ impl Plugin for NpcPlugin {
#[derive(Component, Debug)]
pub struct Npc;
/// Voice culture identifier for an NPC entity (D-138).
///
/// Stores the culture_id used to key the voice cache. Attached at spawn time
/// by the content system or generator. Absent NPCs fall back to base text.
#[derive(Component, Debug, Clone)]
pub struct NpcVoiceProfile {
pub culture_id: String,
}
/// NPC animation tier (D-047).
///
/// Tier 1 (clear): public daily activities — instantly readable.