extends Node signal beat_ticked(beat_index: int) signal judgement_made(quality: StringName, offset_ms: float, beat_index: int) signal intent_replaced(previous_intent, next_intent) signal action_started(action: Resource, intent) signal action_cancelled(action: Resource, reason: StringName) signal hit_confirmed(result: Dictionary) signal chart_event_upcoming(event: Resource, time_to_event: float) signal chart_event_triggered(event: Resource) signal chart_reset(chart_id: StringName) signal skill_executed(skill: Resource, judgement: StringName) signal projectile_requested(projectile_scene: PackedScene, spawn_position: Vector2, direction: Vector2, context: Dictionary) signal damage_dealt(target: Node, amount: int, hit_type: StringName) signal time_phase_changed(previous: StringName, current: StringName, reason: StringName) signal time_anchor_scheduled(anchor: Dictionary) signal time_anchor_resolved(anchor: Dictionary, held: bool, judgement: Dictionary) signal streak_changed(count: int) signal attack_buff_changed(stacks: int, max_stacks: int) signal flow_state_changed(previous: StringName, current: StringName) signal front_area_cleared signal player_health_changed(current: int, max_value: int) signal player_energy_changed(current: float, max_value: float) signal player_charge_changed(current: float, max_value: float, ready: bool, active: bool) signal combo_updated(inputs: Array[StringName]) signal combo_cleared(reason: StringName)