// A softball player export type Player = { readonly gender: "m" | "f" | "nb"; readonly firstname: string; readonly lastname: string; readonly hometown: string; readonly skillset: Skillset; } type Skillset = { readonly batting: number; readonly pitching: PitchingSkillset; readonly running: number; readonly fielding: number; // micro; muscle memory, movement, athleticism, etc. readonly gamesense: number; // macro } type PitchingSkillset = { // the skill a player has in pitching // Player.pitching.armStrength, for example readonly armStrength: number; readonly gripStrength: number; readonly fourSeam: number; // starts at 0. a skill above 1 means a player "knows" a pitch. readonly twoSeam: number; readonly changeup: number; readonly curveball: number; readonly slider: number; readonly splitter: number; readonly knuckleball: number; }