Member Junction
    Preparing search index...
    ListSource:
        | { kind: "list"; listId: string }
        | { kind: "view"; runtimeParams?: Record<string, unknown>; viewId: string }
        | { entityName: string; extraFilter: string; kind: "adhoc" }

    Discriminated union identifying any source of records that can feed a list operation. The same shape is exported as AudienceSource — they are intentionally identical so the audience picker and the list-operations pipeline share a vocabulary.

    • list: an existing MJ List, resolved via its members.
    • view: a User View, resolved via RunView with optional runtime params.
    • adhoc: an arbitrary entity + filter — no persisted view backing it.