namespace Deal.Modules.Cards.Application;
///
/// Ядро карточки: единственное, что есть у любой карточки во всех дашбордах.
///
///
/// Никаких «полей заявки» в ядре: стек/бюджет/контакты и прочее — опциональные модули-роли
/// (см. IContentCard, IBudgetedCard и др.), которые реализует агрегат карточки
/// по мере наполнения. — откуда карточка пришла (см. иерархию ISource);
/// у карточки, созданной пайплайном из сообщения канала, источник составной:
/// ICompositeSource { Origin: ITelegramSource, Pipeline: [IAiSource/IMl] }.
/// Типизированный доступ к конкретному источнику — дискриминация через иерархию ISource
/// (паттерн-матчинг), отдельный generic-интерфейс не нужен.
///
public interface ICard
{
///
/// Короткий id карточки (единый префикс карточек, напр. c_).
///
public string Id { get; }
///
/// Заголовок карточки (очищенный).
///
public string Title { get; }
///
/// Источник: откуда карточка пришла (полиморфный, не enum).
///
public ISource Source { get; }
}