export type Id = string & { __type: T }; export type UserId = Id<"User">; export type CampaignId = Id<"Campaign">; export type DocumentId = Id<"Document">; export type Campaign = { id: CampaignId; name: string; owner: UserId; }; export type Document = { id: DocumentId; campaign: Campaign; data: {}; }; export type DocumentData = { data: Record; }; export type Session = Document & DocumentData< "session", { strongStart: string; } >; export type ISO8601Date = string & { __type: "iso8601date" }; export type Secret = Document & DocumentData< "secret", { text: string; discoveredOn: ISO8601Date; } >;