Editor/Layers/ArchAssetInstanceManifest.cs
using System;
using System.Collections.Generic;
namespace Sunless.Architecture;
public sealed class ArchAssetInstanceManifest : ArchKindManifest<ArchAssetInstance> {
public override ArchKind Kind => ArchKind.AssetInstance;
public override string Slot => "Instances";
public override ArchLayerDomain Domain => ArchLayerDomain.Connections;
public override string Label => "Instance";
public override string Glyph => "link";
// A placed copy stands at the plan root, so nothing hosts it and only a hostless ask reaches its list.
public override IEnumerable<object> Filed( ArchPlan plan, object host ) {
return plan is not null && host is null ? plan.Instances : Array.Empty<object>();
}
public override bool Unfile( ArchPlan plan, object payload ) {
return plan is not null && payload is ArchAssetInstance instance && plan.Instances.Remove( instance );
}
}