Tikfinity/Runtime/ITikfinityEvents.cs
using Sandbox;

namespace TikfinitySbox;

/// <summary>
/// Implement on any Component to receive normalized TikFinity events.
/// OnEvent and OnInteraction are host-only. OnPresentation is local on every client.
/// </summary>
public interface ITikfinityEvents : ISceneEvent<ITikfinityEvents>
{
    void OnEvent( TikfinityEvent evt ) { }
    void OnInteraction( TikfinityInteraction interaction ) { }
    void OnPresentation( string route, string nickname, string giftName, int amount, bool isTest ) { }
}

/// <summary>
/// Optional target interface for TikfinityForwardAction.
/// </summary>
public interface ITikfinityInteractionTarget
{
    void ApplyTikfinityInteraction( TikfinityInteraction interaction );
}