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;
}