OMRCycleSoundCue.cs
using Sandbox;

/// <summary>
/// One timed mechanical sound during a weapon cycle.
///
/// Time is measured in seconds from the moment the visible/mechanical cycle
/// begins (after OMRWeaponCycleProfile.StartDelay). Keeping cycle audio on the
/// weapon definition lets two weapons share cycle mechanics without being
/// forced to share the same bolt/pump/lever sounds.
/// </summary>
public record struct OMRCycleSoundCue
{
	/// <summary>
	/// Seconds after CycleStarted when this sound should play.
	/// </summary>
	[KeyProperty]
	public float Time { get; set; }

	/// <summary>
	/// SoundEvent played at this point in the cycle.
	/// </summary>
	[Property, KeyProperty]
	public SoundEvent Sound { get; set; }
}