Code/SboxSuperuser/Api/AdminGroupRow.cs

Data-transfer class for one permission group entry in a Superuser Permissions reply. Holds the group id, parent ids, protection level, allowed and denied permission lists, and member Steam IDs, all set through init-only properties.

namespace SboxSuperuser;

/// <summary>One permission group in a Permissions reply (owners only).</summary>
public sealed class AdminGroupRow
{
	/// <summary>Gets the group ID.</summary>
	public string Id { get; init; } = "";

	/// <summary>Gets the groups this one inherits from.</summary>
	public string[] Parents { get; init; } = Array.Empty<string>();

	/// <summary>Gets the protection level (0–99) used by target protection.</summary>
	public int Protection { get; init; }

	/// <summary>Gets the permissions this group allows directly.</summary>
	public string[] Allowed { get; init; } = Array.Empty<string>();

	/// <summary>Gets the permissions this group denies directly.</summary>
	public string[] Denied { get; init; } = Array.Empty<string>();

	/// <summary>Gets the Steam IDs assigned to this group.</summary>
	public string[] Members { get; init; } = Array.Empty<string>();
}