module Types exposing (..) --| Core game types for our Choose Your Own Adventure game --| A unique identifier for items type ItemId = ItemId String --| A unique identifier for scenes type SceneId = SceneId String --| Represents an item in the game type alias Item = { id : ItemId , name : String , description : String } --| Represents a choice/action the player can take type alias Choice = { text : String , nextScene : SceneId , requiredItem : Maybe ItemId , consumesItem : Bool } --| Represents a scene in the game type alias Scene = { id : SceneId , title : String , description : String , choices : List Choice , items : List Item } --| The complete game state type alias Model = { currentScene : SceneId , inventory : List Item , scenes : List Scene } --| Messages that can occur in the game type Msg = ChooseChoice Choice | PickupItem Item | UseItem Item SceneId