-- |
-- SPDX-License-Identifier: BSD-3-Clause
module Swarm.TUI.Editor.Json where

import Data.Text (Text)
import Data.Yaml as Y
import GHC.Generics (Generic)
import Swarm.Game.Entity (Entity)
import Swarm.Game.Scenario.Topography.WorldDescription
import Swarm.Language.Syntax (Syntax)
import Swarm.Language.Text.Markdown (Document)

data SkeletonScenario = SkeletonScenario
  { SkeletonScenario -> Int
version :: Int
  , SkeletonScenario -> Text
name :: Text
  , SkeletonScenario -> Document Syntax
description :: Document Syntax
  , SkeletonScenario -> Bool
creative :: Bool
  , SkeletonScenario -> [Entity]
entities :: [Entity]
  , SkeletonScenario -> WorldDescriptionPaint
world :: WorldDescriptionPaint
  , SkeletonScenario -> [String]
robots :: [String]
  }
  deriving (forall x. Rep SkeletonScenario x -> SkeletonScenario
forall x. SkeletonScenario -> Rep SkeletonScenario x
forall a.
(forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a
$cto :: forall x. Rep SkeletonScenario x -> SkeletonScenario
$cfrom :: forall x. SkeletonScenario -> Rep SkeletonScenario x
Generic)

instance ToJSON SkeletonScenario