namespace AIStudio.Tools.PowerPoint;
///
/// Something a slide of a template carries besides the placeholders of its layout, e.g., a picture
/// or a text box its author placed by hand.
///
///
/// The model knows a template slide by the slots of its layout, which it fills. Everything else on
/// the slide stays unless the model removes it, so the model learns what there is and where:
/// a sample picture, a hint to name the source of a picture, or a chart in the way of a slot.
///
/// The number of the element on its slide, starting at 1, from back to front; the model refers to it as "element 1".
/// The ID of the shape on the slide, which finds the element again when the presentation is written.
/// What kind of element it is.
/// Where it sits on the slide; null when the file does not say.
/// Its text, one paragraph per line; empty when it has none.
internal sealed record TemplateSlideElement(int Number, uint ShapeId, TemplateSlideElementKind Kind, SlotBounds? Bounds, string Text)
{
///
/// How the model refers to the element.
///
public string Name => $"element {this.Number}";
}