SboxSuperuser/Api/AdminCommandRow.cs

A plain data class describing one admin command: its key, help text, owning module, whether it mutates state, and its ordered arguments. Used to build admin form views; it holds no logic.

namespace SboxSuperuser;

/// <summary>One command the caller may run, with what an admin view needs to build its form.</summary>
public sealed class AdminCommandRow
{
	/// <summary>Gets the exact command key to pass to AdminCommandRequest.</summary>
	public string Name { get; init; } = "";

	/// <summary>Gets the command's help text.</summary>
	public string Description { get; init; } = "";

	/// <summary>Gets the module that registered it, such as superuser.core or a game's module.</summary>
	public string ModuleId { get; init; } = "";

	/// <summary>Gets whether the command changes state rather than only reading it.</summary>
	public bool Mutation { get; init; }

	/// <summary>Gets the arguments in the order the command expects them.</summary>
	public AdminCommandArgumentRow[] Arguments { get; init; } = Array.Empty<AdminCommandArgumentRow>();
}