func (p *Property) AsMap() map[string]interface{} {
	return p.Value.(map[string]interface{})
}
AsMap returns a property's value as a map of string to interface{} values. As an aside, the JSON deserialization process turns LDtk Points into Maps, where the key is "cx" or
"cy", and the value is the x and y position. Note that this function doesn't check to ensure the value is the specified type before returning it.
package ldtkgo
import (
	"encoding/json"
	"errors"
	"image"
	"image/color"
	"io/ioutil"
	"path/filepath"
	"strconv"
	"github.com/tidwall/gjson"
)
const (
	LayerTypeIntGrid  = "IntGrid"
	LayerTypeAutoTile = "AutoLayer"
	LayerTypeTile     = "Tiles"
	LayerTypeEntity   = "Entities"
)
const (
	WorldLayoutHorizontal = "LinearHorizontal"
	WorldLayoutVertical   = "LinearVertical"
	WorldLayoutFree       = "Free"
	WorldLayoutGridVania  = "GridVania"
)
type Property struct {
	Identifier string      `json:"__identifier"`
	Type       string      `json:"__type"`   
	Value      interface{} `json:"__value"`  
}
func (p *Property) AsInt() int {
	return int(p.AsFloat64())
}
func (p *Property) AsFloat64() float64 {
	return p.Value.(float64)
}
func (p *Property) AsString() string {
	return p.Value.(string)
}
func (p *Property) AsBool() bool {
	return p.Value.(bool)
}
func (p *Property) AsArray() []interface{} {
	return p.Value.([]interface{})
}