// Plain managed record types — what survives past the native struct/free-list lifetime // (Marshaling.cs converts the native *Native structs into these and immediately frees the // native list). Nothing here holds an IntPtr. namespace VoiceCat.Interop; public sealed record ChannelInfo( uint Id, uint ParentId, string Name, bool PasswordProtected, uint MaxUsers); public sealed record UserInfo( uint Id, string Nickname, bool IsGuest, uint ChannelId); public sealed record StreamSummary( uint StreamId, VcStreamKind Kind, string Label); public sealed record DeviceInfo( string Id, string Name, bool IsDefault); public sealed record AudioConfigInfo( uint Codec, bool Stereo, uint SampleRate, uint BitrateBps, uint FrameMs, uint Application, bool Fec, uint ExpectedPacketLoss, bool Dtx, uint Complexity);