export interface DialogSet {
  title?: string;
  imageUrl: string;
  startDialogName: string;
  dialogs: DialogMap;
}

export type DialogMap = {
  [key: string]: Dialog;
};

export interface Dialog {
  title?: string; // Can be used to overwrite title from DialogSet
  imageUrl?: string; // Can be used to overwrite imageUrl from DialogSet
  text?: string;
  options: DialogOption[];
  addFacts?: FactId[];
  removeFacts?: FactId[];
}

export interface DialogOption {
  text: string;
  linksToDialog: string;
  requiredFacts?: FactId[];
  forbiddenFacts?: FactId[];
}

export type FactId = String;