The persisted data model of hathor, generated from its schema.prisma — every table (Prisma model + its Postgres @@map name), its columns, the enums it defines, and the foreign-key edges that wire them together.
33Tables
359Columns
34Enums
45FK relations
Tables (33)#
id String PKname Stringdescription String?status WorldStatusgenre WorldGenrescope WorldScopetechnologyLevel TechnologyLevelmagicLevel MagicLeveluserId StringorganizationId String?settings Jsonstats Jsontags String[]createdAt DateTimeupdatedAt DateTimepublishedAt DateTime? +8 moreid String PKversion Intname String?description String?worldId StringbranchId String?parentVersionId String?changes Jsonsnapshot JsoncreatedBy String?createdAt DateTimeisCurrent BooleanFK:
world→World Cascade · branch→Branch · parentVersion→WorldVersion · childVersions→WorldVersion · mergeRequestsSource→MergeRequest · mergeRequestsTarget→MergeRequestid String PKname Stringdescription String?worldId StringbranchPointVersionId String?isMain BooleancreatedAt DateTimeupdatedAt DateTimeversions WorldVersion[]FK:
world→World Cascadeid String PKtitle Stringdescription String?sourceVersionId StringtargetVersionId Stringstatus MergeRequestStatusconflicts Jsonresolution Json?createdBy String?reviewedBy String?createdAt DateTimeupdatedAt DateTimemergedAt DateTime?FK:
sourceVersion→WorldVersion · targetVersion→WorldVersionid String PKname Stringdescription String?type EntityTypeworldId StringversionId String?properties Jsontags String[]aliases String[]createdAt DateTimeupdatedAt DateTimedeletedAt DateTime?searchVector UnsupportedFK:
world→World Cascade · outgoingRelations→EntityRelation · incomingRelations→EntityRelationid String PKsourceId StringtargetId Stringtype Stringproperties Jsonstrength Floatbidirectional BooleancreatedAt DateTimeupdatedAt DateTimeFK:
source→Entity Cascade · target→Entity Cascadeid String PKname Stringdescription String?worldId Stringversion IntisActive Booleantags String[]createdAt DateTimeupdatedAt DateTimepublishedAt DateTime?nodes StoryNode[]arcs StoryArc[]FK:
world→World Cascadeid String PKstoryGraphId Stringtype StoryNodeTypename Stringcontent String?positionX FloatpositionY Floatconditions Jsonactions Jsonmetadata JsoncreatedAt DateTimeupdatedAt DateTimeFK:
storyGraph→StoryGraph Cascade · outgoingArcs→StoryArc · incomingArcs→StoryArcid String PKstoryGraphId StringsourceId StringtargetId Stringlabel String?conditions Jsonpriority IntcreatedAt DateTimeFK:
storyGraph→StoryGraph Cascade · source→StoryNode Cascade · target→StoryNode Cascadeid String PKname Stringdescription String?worldId Stringspeakers JsonlocationId String?tags String[]createdAt DateTimeupdatedAt DateTimenodes DialogueNode[]sessions DialogueSession[]FK:
world→World Cascadeid String PKdialogueTreeId Stringtype DialogueNodeTypespeakerId String?content String?emotion String?conditions Jsonactions JsonisStart BooleanisEnd Booleanchoices JsonnextNodes JsoncreatedAt DateTimeupdatedAt DateTimeFK:
dialogueTree→DialogueTree Cascadeid String PKdialogueTreeId StringcurrentNodeId String?history Jsoncontext JsonparticipantId String?isComplete BooleanstartedAt DateTimecompletedAt DateTime?FK:
dialogueTree→DialogueTree Cascadeid String PKname Stringdescription String?worldId Stringcategory QuestCategorypriority QuestPrioritystatus QuestStatusgiverId String?locationId String?minLevel Int?maxLevel Int?prerequisites Jsontags String[]createdAt DateTimeupdatedAt DateTimepublishedAt DateTime? +2 moreFK:
world→World Cascadeid String PKquestId Stringtype ObjectiveTypedescription StringtargetCount IntcurrentProgress IntisCompleted BooleanisOptional BooleanorderIndex InttargetEntityId String?metadata JsoncreatedAt DateTimeupdatedAt DateTimeFK:
quest→Quest Cascadeid String PKquestId Stringtype Stringamount Int?itemId String?description String?isChoice BooleancreatedAt DateTimeFK:
quest→Quest Cascadeid String PKworldId Stringtype SimulationTypestatus SimulationStatuspriority SimulationPriorityinput Jsonoutput Json?progress FloatcurrentTick InttotalTicks Int?errorMessage String?errorDetails Json?workerId String?startVersionId String?endVersionId String?createdAt DateTime +5 moreFK:
world→World Cascadeid String PKsimulationId Stringtype Stringtick Intdata JsonaffectedEntities JsoncreatedAt DateTimeFK:
simulation→SimulationRun Cascadeid String PKsimulationId Stringtick Intstate JsoncreatedAt DateTimeFK:
simulation→SimulationRun Cascadeid String PKworldId StringentityId String?validationType StringisValid Booleanissues Jsonsuggestions JsoncreatedAt DateTimeid String PKentityType StringentityId Stringaction StringuserId String?changes JsonpreviousState Json?createdAt DateTimeid String PKkind IdeaKindstatus IdeaStatustitle Stringbody Stringpayload Jsontags String[]worldId String?boardId String?embeddingMeta Json?generatorMeta Json?createdBy StringcreatedAt DateTimeupdatedAt DateTimerevisions IdeaRevision[]optionMemberships OptionSetMember[] +4 moreFK:
board→IdeaBoard · linksFrom→IdeaLink · linksTo→IdeaLinkid String PKideaId Stringseq Intauthor StringdiffSummary Stringsnapshot JsoncreatedAt DateTimeFK:
idea→Idea Cascadeid String PKfromId StringtoId StringlinkType IdeaLinkTypenote String?createdAt DateTimeFK:
from→Idea Cascade · to→Idea Cascadeid String PKname Stringpurpose String?layout Jsonarchived BooleancreatedBy StringcreatedAt DateTimeupdatedAt DateTimeideas Idea[]tournaments IdeationTournament[]id String PKgeneratorId StringgeneratorParamsHash StringpromptMeta JsoncreatedBy StringcreatedAt DateTimemembers OptionSetMember[]tournaments IdeationTournament[]id String PKoptionSetId StringideaId Stringordinal IntFK:
optionSet→OptionSet Cascade · idea→Idea Cascadeid String PKoptionSetId String?boardId String?method TournamentMethodstatus TournamentStatusconfig JsonresultCache Json?createdBy StringcreatedAt DateTimeupdatedAt DateTimejudgments IdeationJudgment[]FK:
optionSet→OptionSet · board→IdeaBoardid String PKtournamentId StringjudgeId StringaId StringbId Stringwinner JudgmentWinnercreatedAt DateTimeFK:
tournament→IdeationTournament Cascadeid String PKideaId StringrubricId StringcriterionKey Stringscore FloatweightAtTime Floatsource ScoreSourcesourceDetail StringcreatedAt DateTimeFK:
idea→Idea Cascadeid String PKsubjectIdeaId Stringdecision IdeationDecisionTypegate IdeationGate?rejectedIdeaIds String[]scoresSnapshot Jsonreason StringdecidedBy StringcreatedAt DateTimeFK:
subjectIdea→Ideaid String PKideaId StringtargetType PromotionTargetTypetargetId StringworldBranchId String?validationFindings JsontargetDeletedAt DateTime?targetDeletedNote String?promotedBy StringcreatedAt DateTimeFK:
idea→Ideaid String PKsubjectType StringsubjectId Stringbody Stringseverity Stringblocking Booleanauthor Stringassignee String?state IdeationNoteStateresolutionLink String?resolutionNote String?createdAt DateTimeresolvedAt DateTime?id String PKideaId Stringrung LadderRungversion Intcontent Jsonorigin LadderOrigindraftModelId String?status LadderArtifactStatusderivedFromArtifactId String?createdBy StringcreatedAt DateTimeFK:
idea→Idea CascadeEnums (34)#
WorldStatus4 valuesDRAFTACTIVEARCHIVEDDELETEDWorldGenre8 valuesFANTASYSCIENCE_FICTIONHISTORICALCONTEMPORARYHORRORMYSTERYMYTHOLOGYCUSTOMWorldScope5 valuesSMALLMEDIUMLARGEEPICCOSMICTechnologyLevel9 valuesPRIMITIVEANCIENTMEDIEVALRENAISSANCEINDUSTRIALMODERNFUTURISTICADVANCEDMIXEDMagicLevel5 valuesNONELOWMEDIUMHIGHEPICEntityType10 valuesCHARACTERFACTIONLOCATIONEVENTRELATIONSHIPERAREGIONITEMCULTURERELIGIONCharacterStatus5 valuesALIVEDECEASEDUNKNOWNMISSINGLEGENDARYFactionType10 valuesGOVERNMENTMILITARYRELIGIOUSCRIMINALMERCHANTGUILDSECRET_SOCIETYFAMILYTRIBALOTHERLocationType11 valuesCITYTOWNVILLAGEFORTRESSTEMPLEDUNGEONWILDERNESSLANDMARKREGIONREALMPLANEQuestStatus6 valuesDRAFTAVAILABLEACTIVECOMPLETEDFAILEDCANCELLEDQuestCategory6 valuesMAINSIDEEXPLORATIONFACTIONDAILYWORLD_EVENTQuestPriority4 valuesLOWNORMALHIGHCRITICALObjectiveType8 valuesCOLLECTKILLTALKEXPLOREESCORTDELIVERCRAFTCUSTOMStoryNodeType6 valuesSTARTSCENECHOICECONDITIONACTIONENDDialogueNodeType6 valuesGREETINGSTATEMENTQUESTIONRESPONSECHOICEENDSimulationType5 valuesECONOMYPOLITICSCULTURESCENARIOFULLSimulationStatus6 valuesPENDINGQUEUEDRUNNINGCOMPLETEDFAILEDCANCELLEDSimulationPriority4 valuesLOWNORMALHIGHCRITICALMergeRequestStatus5 valuesOPENAPPROVEDMERGEDREJECTEDCANCELLEDValidationSeverity4 valuesINFOWARNINGERRORCRITICALIdeaKind14 valuesPREMISELOGLINEWHAT_IFCHARACTER_CONCEPTCULTURE_SEEDWORLD_SEEDLOCATION_SEEDFACTION_SEEDQUEST_SEEDTHEMETITLEIMAGE_REFAUDIO_REFFRAGMENTIdeaStatus7 valuesCAPTUREDDEVELOPINGSHORTLISTEDSELECTEDPROMOTEDKILLEDARCHIVEDIdeaLinkType5 valuesDERIVED_FROMMERGED_FROMINSPIRED_BYCONTRADICTSPROMOTED_TOTournamentMethod2 valuesELOBRADLEY_TERRYTournamentStatus3 valuesACTIVECOMPLETEDCANCELLEDJudgmentWinner3 valuesABTIEScoreSource3 valuesHUMANCRITIC_AGENTANALYZERIdeationDecisionType6 valuesSELECTEDKILLEDREVIVEDGATE_ADVANCEDGATE_HELDOVERRIDEIdeationGate3 valuesCONCEPTDEVELOPGREENLIGHTPromotionTargetType6 valuesCHARACTERCULTUREWORLD_ENTITYQUESTPROTOTYPE_BRIEFBIBLEIdeationNoteState4 valuesOPENADDRESSEDREBUTTEDDEFERREDLadderRung4 valuesLOGLINESYNOPSISTREATMENTBEAT_OUTLINELadderOrigin2 valuesMODEL_DRAFTHUMANLadderArtifactStatus3 valuesDRAFTEDITEDAPPROVED