package main

type Root struct {
	Acronym     string        `json:"acronym"`
	Backgrounds []Backgrounds `json:"backgrounds"`
	Classes     []Classes     `json:"classes"`
	Feats       []Feats       `json:"feats"`
	Races       []Races       `json:"races"`
	Spells      []Spells      `json:"spells"`
	Name        string        `json:"name"`
}

type Entry struct {
	Type  string  `json:"type"`
	Style string  `json:"style"`
	Items []Items `json:"items"`
}

type Items struct {
	Type  string `json:"type"`
	Name  string `json:"name"`
	Entry string `json:"entry"`
}

type SkillProficiencies struct {
	Performance bool `json:"performance"`
	Perception  bool `json:"perception"`
	Persuasion  bool `json:"persuasion"`
}

type ToolProficiencies struct {
	Disguise_kit bool `json:"disguise kit"`
}

type Races struct {
	LanguageProficiencies []LanguageProficiencies `json:"languageProficiencies"`
	Short                 string                  `json:"short"`
	Size                  string                  `json:"size"`
	Entries               []string                `json:"entries"`
	URL                   string                  `json:"URL"`
	Name                  string                  `json:"name"`
	Speed                 float64                 `json:"speed"`
	Ability               []Ability               `json:"ability"`
	SkillProficiencies    []SkillProficiencies    `json:"skillProficiencies"`
}

type Entries struct {
	Name    string    `json:"name"`
	Entries []Entries `json:"entries"`
	Type    string    `json:"type"`
}

type Backgrounds struct {
	HasFluff              bool                    `json:"hasFluff"`
	Name                  string                  `json:"name"`
	Source                string                  `json:"source"`
	HasFluffImages        bool                    `json:"hasFluffImages"`
	Page                  float64                 `json:"page"`
	Entry                 []Entry                 `json:"entry"`
	Entries               []string                `json:"entries"`
	SkillProficiencies    []SkillProficiencies    `json:"skillProficiencies"`
	LanguageProficiencies []LanguageProficiencies `json:"languageProficiencies"`
	ToolProficiencies     []ToolProficiencies     `json:"toolProficiencies"`
	StartingEquipment     []StartingEquipment     `json:"startingEquipment"`
}

type LanguageProficiencies struct {
	Any    float64 `json:"any"`
	Goblin bool    `json:"goblin"`
	Any    float64 `json:"any"`
	Common bool    `json:"common"`
}

type StartingEquipment struct {
	_ []string `json:"_"`
}

type Ability struct {
	Con float64 `json:"con"`
	Cha float64 `json:"cha"`
}

type RootArray []Root
