InteractiveComputer/ComputerAppAttribute.cs
using System;

namespace PaneOS.InteractiveComputer;

/// <summary>
/// Marks a compiled class as a desktop app that should appear on interactive computers.
/// Drop app classes in Code/InteractiveComputer/Apps and implement IComputerApp.
/// </summary>
[AttributeUsage( AttributeTargets.Class, Inherited = false )]
public sealed class ComputerAppAttribute : Attribute
{
	public ComputerAppAttribute( string id, string title )
	{
		Id = id;
		Title = title;
	}

	public string Id { get; }
	public string Title { get; }
	public string Icon { get; init; } = "[]";
	public int SortOrder { get; init; }
}