namespace BLAIzor.Models { public class LayoutBlock { public string Type { get; set; } // e.g. "hero", "article", "gallery", "testimonial" public string? Variant { get; set; } // e.g. "image-left", "image-right", "no-image" public List RequiredSlots { get; set; } // e.g. ["title", "text", "image", "cta"] public Dictionary ContentMap { get; set; } // Maps slot names to content IDs or keys, e.g. { "title": "main_heading", "image": "img_1" } public int? PreferredSnippetId { get; set; } // Optional: used if a perfect match snippet is found or AI prefers one //public string? BootstrapStructure { get; set; } // Optional: e.g. "row-cols-2", "container-fluid py-5" public string RawContent { get; set; } = string.Empty; public int Order { get; set; } // The position of the block in the layout public string? Notes { get; set; } // Optional field for AI hints, comments, or debug info } }