justgook / elm-tiled / Tiled.Object


type Object
    = Point (Common {})
    | Rectangle CommonDimension
    | Ellipse CommonDimension
    | Polygon CommonDimensionPolyPoints
    | PolyLine CommonDimensionPolyPoints
    | Tile CommonDimensionGid

decode : Json.Decode.Decoder Object

encode : Object -> Json.Encode.Value


type alias CommonDimension =
Common (Dimension {})


type alias CommonDimensionGid =
Common (Dimension { gid : Gid })


type alias CommonDimensionPolyPoints =
Common (Dimension { points : List { x : Basics.Float
, y : Basics.Float } }
}


type alias Common a =
{ a | id : Basics.Int
, name : String
, kind : String
, visible : Basics.Bool
, x : Basics.Float
, y : Basics.Float
, rotation : Basics.Float
, properties : Tiled.Properties.Properties 
}

Do i really need ID here?


type alias Dimension a =
{ a | width : Basics.Float
, height : Basics.Float 
}


type alias Gid =
Basics.Int


type alias PolyPoints =
List { x : Basics.Float
, y : Basics.Float 
}