Editor/Layers/ArchLayerRecord.cs

Two small data classes used by the Editor layer to record explicit metadata and cross-layer links. ArchLayerRecord stores per-item metadata such as parent, kind, stage, ordering, enabled and locked flags. ArchLayerLink represents a dependency between two items by id and named ports, with a required flag.

namespace Sunless.Architecture;

// Explicit layer metadata, written only when a legacy item is reparented, disabled, locked or
// included in an assembly. Untouched plans carry no records and project from typed ownership.
public sealed class ArchLayerRecord
{
	public int ItemId { get; set; }
	public int ParentId { get; set; }
	public ArchKind Kind { get; set; }
	public ArchLayerStage Stage { get; set; }
	public int Order { get; set; }
	public bool Enabled { get; set; } = true;
	public bool Locked { get; set; }
}

// A cross-layer dependency names semantic ports, never generated object paths.
public sealed class ArchLayerLink
{
	public int SourceId { get; set; }
	public string SourcePort { get; set; } = "";
	public int TargetId { get; set; }
	public string TargetPort { get; set; } = "";
	public bool Required { get; set; } = true;
}