export type SubjectContext = UserSubjectContext | FGASubjectContext; type Nullable = { [K in keyof T]: T[K] | null }; export type UserSubjectContext = { userId?: string | null; tenantId: string; permissions?: string[]; attributes?: Record; }; export type FGASubjectContext = { entityType: string; key: string; }; export function isFGASubjectContext(subject: SubjectContext): subject is FGASubjectContext { return !!(subject as FGASubjectContext).entityType; }