export interface DefinitionEvidence { readonly file: string | null; readonly kind: "definition"; readonly name: string; } export interface FileEvidence { readonly kind: "file"; readonly name: string; } export interface FolderEvidence { readonly kind: "folder"; readonly words: readonly string[]; } export type EvidenceNode = DefinitionEvidence | FileEvidence | FolderEvidence; export interface ChapterSubject { readonly kind: "chapter"; readonly page: string; readonly section: string; readonly tab: string; } export interface RecordSubject { readonly kind: "record"; readonly ref: string; } export type EvidenceSubject = ChapterSubject | RecordSubject; export interface Evidence { readonly nodes: readonly EvidenceNode[]; readonly subject: EvidenceSubject; }