typedef struct Vector3 {
    float x; // x coordinate
    float y; // y coordinate
    float z; // z coordinate
} Vector3;

typedef struct Stats {
    unsigned char Strength; // Physical attack damage + Equipment Load
    unsigned char Endurance; // HP + Dmg mitigation for physical damage, how much stamina you have
    unsigned char Intelligence; // Use/build steampunk gadgets + be able to read specific logical papers
    unsigned char Wisdom; // Number of magic / special attack / skills you can remember at one time.
    unsigned char Charisma; // how good you can talk, persuade, etc.
} Stats;

typedef struct Skills {
    unsigned char Artisan; // Crafting, visual arts, etc.
    unsigned char Culinary; // cooking, baking, brewing, 
    unsigned char Ranged; // using guns/cannons, bows, etc.
    unsigned char Melee; // using swords, hammers, pole-arms etc.
    unsigned char Acrobatics; // being able to contort, move, dodge, etc.
    unsigned char Prestidigitation; // skullduggery, lock-picking, deceiving, slight of hand
    unsigned char Engineering; //  creating and using contraptions, building houses
    unsigned char Metalworking; // obvious, but in this you can also use automatic stuff
    unsigned char Language; // ability to read/write a specific language
    unsigned char Medicine; // healing hp, getting rid of diseases, etc.
    unsigned char Alchemy; // Creating potions, creating alloys, creating chemicals, component based 'magic'
    unsigned char Fishing; // collecting fish
    unsigned char Mining; // collecting ore
    unsigned char Survival; // woodcutting, fire-making, hunting, collecting herbs, etc.
    unsigned char Gardening; // growing plants, herbs, etc.
    unsigned char History; // will give more information when examining some objects
} Skills;

typedef struct DerivedStats {
    unsigned char Hitpoints; // how many hits you can take, if it reaches 0 you ded!
    unsigned char Stamina; // How many strenuous actions you can take, i.e. swinging a hammer, attacking, fishing, etc.
    unsigned char Perception; // being able to observe some objects
    unsigned char Luck; // Get better probability rolls for things that matter for rolls
    unsigned char Stealth; // Probability of being discovered when hiding
    unsigned char Attractiveness; // based on your character you make in the creator. more attractive will have better outcomes with aristocracy and more 'ugly' will have better outcomes with working class.
    unsigned char Affluence; // same as attractiveness but can change with money
    char Holyness; // how attuned to the vision of Eru
} DerivedStats;

typedef struct Entity {
    char Name[24]; // Name of the entity
		Vector3 Vector3; // Vector3 of the entity in space
		Stats Stats; // Base stats
		DerivedStats DerivedStats; // Stats that are derived from skills and base stats
		Skills Skills; // Stuff that your character can do
} Entity;

typedef struct Item {
    char Name[24]; // Name of the item
    int BaseValue; // Default starting value of the item
} Item;

typedef struct Phenomenon {
    char Name[64]; // Name of the phenomenon
} Phenomenon;

