Code/TailBox/Domain/Candidates/TailBoxCandidate.cs
using System.Collections.Generic;

namespace Sandbox.TailBox;

internal enum TailBoxVariantKind
{
	Pseudo,
	Selector,
	Unsupported
}

internal sealed class TailBoxVariant
{
	public string Raw { get; init; } = "";
	public TailBoxVariantKind Kind { get; init; }
	public string SelectorSuffix { get; init; } = "";
	public string Detail { get; init; } = "";
}

internal sealed class TailBoxCandidate
{
	public string Original { get; init; } = "";
	public string Base { get; set; } = "";
	public string Modifier { get; set; }
	public bool Negative { get; init; }
	public bool Important { get; init; }
	public bool IsArbitraryProperty { get; set; }
	public string ArbitraryProperty { get; set; }
	public string ArbitraryValue { get; set; }
	public List<TailBoxVariant> Variants { get; } = new();
}