export interface SyncedBook { id: string; type: string; title: string; subTitle: string | null; lastUpdate: number; chapters: SyncedChapter[]; characters: SyncedCharacter[]; locations: SyncedLocation[]; worlds: SyncedWorld[]; incidents: SyncedIncident[]; plotPoints: SyncedPlotPoint[]; issues: SyncedIssue[]; actSummaries: SyncedActSummary[]; guideLine: SyncedGuideLine | null; aiGuideLine: SyncedAIGuideLine | null; } export interface SyncedChapter { id: string; name: string; lastUpdate: number; contents: SyncedChapterContent[]; info: SyncedChapterInfo | null; } export interface SyncedChapterContent { id: string; lastUpdate: number; } export interface SyncedChapterInfo { id: string; lastUpdate: number; } export interface SyncedCharacter { id: string; name: string; lastUpdate: number; attributes: SyncedCharacterAttribute[]; } export interface SyncedCharacterAttribute { id: string; name: string; lastUpdate: number; } export interface SyncedLocation { id: string; name: string; lastUpdate: number; elements: SyncedLocationElement[]; } export interface SyncedLocationElement { id: string; name: string; lastUpdate: number; subElements: SyncedLocationSubElement[]; } export interface SyncedLocationSubElement { id: string; name: string; lastUpdate: number; } export interface SyncedWorld { id: string; name: string; lastUpdate: number; elements: SyncedWorldElement[]; } export interface SyncedWorldElement { id: string; name: string; lastUpdate: number; } export interface SyncedIncident { id: string; name: string; lastUpdate: number; } export interface SyncedPlotPoint { id: string; name: string; lastUpdate: number; } export interface SyncedIssue { id: string; name: string; lastUpdate: number; } export interface SyncedActSummary { id: string; lastUpdate: number; } export interface SyncedGuideLine { lastUpdate: number; } export interface SyncedAIGuideLine { lastUpdate: number; }