{"args":{"format":"json"},"data":{"baselines":{"era":10.550666566806472,"gsc_avg":49.382032115171654,"gsc_std":5.843605219457612,"league":"","league_arc1_k_pct":0.2815660909653891,"league_arc3_k_pct":0.3290711480500502,"league_decay_drift":-4.750505708466113,"league_werra":10.550666566806472,"league_xra":10.550666566806472,"obp":0.530933011951391,"ops":1.185623179672592,"ra27":12.892338226482924,"replacement_era":12.660799880167765,"replacement_woba":0.48133885708546764,"runs_per_pa":0.3273576378427237,"runs_per_win":20.798960270214934,"slg":0.6546901677212011,"total_outs":26704.0,"total_pa":39828.0,"woba":0.5662810083358443,"xo_avg_mean":0.4849706152144339,"xo_avg_sd":0.16298851494820246,"xo_babip_mean":0.6041003736722381,"xo_babip_sd":0.15791631057592237,"xo_bb9_mean":4.649060809957458,"xo_bb9_sd":2.500522122538043,"xo_era_mean":12.169757599524086,"xo_era_sd":6.930353634395832,"xo_hr9_mean":1.8951418868033925,"xo_hr9_sd":1.8745535576382348,"xo_k9_mean":8.766198731880174,"xo_k9_sd":2.772131961935351,"xo_oavg_mean":0.4710074930506988,"xo_oavg_sd":0.1168688823080049,"xo_obp_mean":0.5485588073846588,"xo_obp_sd":0.15107802132368203,"xo_oobp_mean":0.5397871738912219,"xo_oobp_sd":0.10871754264590107,"xo_oops_mean":1.1619959047800388,"xo_oops_sd":0.3019800586305665,"xo_ops_mean":1.2505685529401542,"xo_ops_sd":0.43118273975922006,"xo_oslg_mean":0.6222087308888169,"xo_oslg_sd":0.20856592194357504,"xo_ra27_mean":14.847178251917478,"xo_ra27_sd":8.3140726529605,"xo_slg_mean":0.7020097455554954,"xo_slg_sd":0.2911755057307475,"xo_whip_mean":2.401521237002538,"xo_whip_sd":0.9010200458407309,"xo_woba_mean":0.5631409163421296,"xo_woba_sd":0.20804038382411535},"batting_log":[{"a":0,"ab":4,"adv_adv_1b":1,"adv_adv_2b":1,"adv_adv_3b":2,"adv_op_1b":2,"adv_op_2b":3,"adv_op_3b":2,"away_abbrev":"BAL","away_team_id":10,"bb":0,"bunt_att":0,"bunt_hits":0,"c2_adv_1b":1,"c2_adv_2b":2,"c2_adv_3b":2,"c2_op_1b":2,"c2_op_2b":2,"c2_op_3b":2,"cs":0,"doubles":1,"e":0,"entered_inning":0,"entry_type":"starter","fo":0,"game_date":"2026-05-02","game_id":503,"game_position":"CF","gidp":0,"gitp":0,"hbp":0,"hits":3,"home_abbrev":"MIA","home_team_id":24,"hr":0,"id":15214,"k":1,"multi_hit_abs":1,"outs_recorded":3,"pa":4,"phase":0,"player_id":1105,"po":2,"rad_1b":3,"rad_2b":2,"rad_3b":2,"rbi":4,"replaced_player_id":null,"risp_2b":1,"risp_3b":0,"risp_ab":3,"risp_bb":0,"risp_h":3,"risp_hbp":0,"risp_hr":0,"risp_pa":3,"risp_rbi":4,"roe":0,"runs":1,"sb":0,"sh":0,"sqz":0,"sqz_rbi":0,"stay_hits":2,"stay_rbi":2,"stays":3,"team_id":24,"triples":0,"walkback_runs":0},{"a":0,"ab":2,"adv_adv_1b":1,"adv_adv_2b":0,"adv_adv_3b":0,"adv_op_1b":2,"adv_op_2b":2,"adv_op_3b":1,"away_abbrev":"BAL","away_team_id":10,"bb":1,"bunt_att":0,"bunt_hits":0,"c2_adv_1b":0,"c2_adv_2b":0,"c2_adv_3b":0,"c2_op_1b":0,"c2_op_2b":0,"c2_op_3b":0,"cs":0,"doubles":0,"e":0,"entered_inning":0,"entry_type":"starter","fo":0,"game_date":"2026-05-01","game_id":496,"game_position":"CF","gidp":0,"gitp":0,"hbp":0,"hits":0,"home_abbrev":"MIA","home_team_id":24,"hr":0,"id":15003,"k":0,"multi_hit_abs":0,"outs_recorded":3,"pa":3,"phase":0,"player_id":1105,"po":2,"rad_1b":3,"rad_2b":0,"rad_3b":0,"rbi":0,"replaced_player_id":null,"risp_2b":0,"risp_3b":0,"risp_ab":1,"risp_bb":1,"risp_h":0,"risp_hbp":0,"risp_hr":0,"risp_pa":2,"risp_rbi":0,"roe":0,"runs":0,"sb":0,"sh":0,"sqz":0,"sqz_rbi":0,"stay_hits":0,"stay_rbi":0,"stays":0,"team_id":24,"triples":0,"walkback_runs":0},{"a":0,"ab":5,"adv_adv_1b":1,"adv_adv_2b":1,"adv_adv_3b":0,"adv_op_1b":4,"adv_op_2b":3,"adv_op_3b":0,"away_abbrev":"MIA","away_team_id":24,"bb":0,"bunt_att":0,"bunt_hits":0,"c2_adv_1b":1,"c2_adv_2b":0,"c2_adv_3b":0,"c2_op_1b":1,"c2_op_2b":0,"c2_op_3b":0,"cs":0,"doubles":1,"e":0,"entered_inning":0,"entry_type":"starter","fo":0,"game_date":"2026-04-30","game_id":480,"game_position":"CF","gidp":0,"gitp":0,"hbp":0,"hits":2,"home_abbrev":"VCO","home_team_id":19,"hr":0,"id":14487,"k":4,"multi_hit_abs":0,"outs_recorded":4,"pa":5,"phase":0,"player_id":1105,"po":1,"rad_1b":1,"rad_2b":2,"rad_3b":0,"rbi":1,"replaced_player_id":null,"risp_2b":1,"risp_3b":0,"risp_ab":4,"risp_bb":0,"risp_h":1,"risp_hbp":0,"risp_hr":0,"risp_pa":4,"risp_rbi":1,"roe":0,"runs":1,"sb":0,"sh":0,"sqz":0,"sqz_rbi":0,"stay_hits":1,"stay_rbi":0,"stays":1,"team_id":24,"triples":0,"walkback_runs":0},{"a":0,"ab":5,"adv_adv_1b":1,"adv_adv_2b":2,"adv_adv_3b":0,"adv_op_1b":2,"adv_op_2b":3,"adv_op_3b":0,"away_abbrev":"MIA","away_team_id":24,"bb":0,"bunt_att":0,"bunt_hits":0,"c2_adv_1b":0,"c2_adv_2b":0,"c2_adv_3b":0,"c2_op_1b":0,"c2_op_2b":0,"c2_op_3b":0,"cs":0,"doubles":2,"e":0,"entered_inning":0,"entry_type":"starter","fo":0,"game_date":"2026-04-26","game_id":409,"game_position":"CF","gidp":1,"gitp":0,"hbp":0,"hits":3,"home_abbrev":"NJC","home_team_id":36,"hr":0,"id":12332,"k":1,"multi_hit_abs":0,"outs_recorded":2,"pa":5,"phase":0,"player_id":1105,"po":1,"rad_1b":1,"rad_2b":4,"rad_3b":0,"rbi":2,"replaced_player_id":null,"risp_2b":2,"risp_3b":0,"risp_ab":3,"risp_bb":0,"risp_h":2,"risp_hbp":0,"risp_hr":0,"risp_pa":3,"risp_rbi":2,"roe":0,"runs":3,"sb":0,"sh":0,"sqz":0,"sqz_rbi":0,"stay_hits":0,"stay_rbi":0,"stays":0,"team_id":24,"triples":0,"walkback_runs":0},{"a":0,"ab":4,"adv_adv_1b":0,"adv_adv_2b":1,"adv_adv_3b":1,"adv_op_1b":2,"adv_op_2b":3,"adv_op_3b":2,"away_abbrev":"MIA","away_team_id":24,"bb":0,"bunt_att":0,"bunt_hits":0,"c2_adv_1b":0,"c2_adv_2b":0,"c2_adv_3b":0,"c2_op_1b":0,"c2_op_2b":0,"c2_op_3b":0,"cs":0,"doubles":0,"e":0,"entered_inning":0,"entry_type":"starter","fo":0,"game_date":"2026-04-25","game_id":403,"game_position":"CF","gidp":0,"gitp":0,"hbp":0,"hits":0,"home_abbrev":"NJC","home_team_id":36,"hr":0,"id":12164,"k":1,"multi_hit_abs":0,"outs_recorded":4,"pa":4,"phase":0,"player_id":1105,"po":4,"rad_1b":0,"rad_2b":1,"rad_3b":1,"rbi":1,"replaced_player_id":null,"risp_2b":0,"risp_3b":0,"risp_ab":3,"risp_bb":0,"risp_h":0,"risp_hbp":0,"risp_hr":0,"risp_pa":3,"risp_rbi":1,"roe":1,"runs":1,"sb":0,"sh":0,"sqz":0,"sqz_rbi":0,"stay_hits":0,"stay_rbi":0,"stays":0,"team_id":24,"triples":0,"walkback_runs":0},{"a":0,"ab":1,"adv_adv_1b":1,"adv_adv_2b":0,"adv_adv_3b":0,"adv_op_1b":1,"adv_op_2b":1,"adv_op_3b":0,"away_abbrev":"BAL","away_team_id":10,"bb":0,"bunt_att":1,"bunt_hits":0,"c2_adv_1b":0,"c2_adv_2b":0,"c2_adv_3b":0,"c2_op_1b":0,"c2_op_2b":0,"c2_op_3b":0,"cs":0,"doubles":0,"e":0,"entered_inning":7,"entry_type":"DEF","fo":1,"game_date":"2026-04-03","game_id":40,"game_position":"","gidp":0,"gitp":0,"hbp":0,"hits":0,"home_abbrev":"MIA","home_team_id":24,"hr":0,"id":1230,"k":0,"multi_hit_abs":0,"outs_recorded":2,"pa":1,"phase":0,"player_id":1105,"po":1,"rad_1b":2,"rad_2b":0,"rad_3b":0,"rbi":0,"replaced_player_id":1119,"risp_2b":0,"risp_3b":0,"risp_ab":1,"risp_bb":0,"risp_h":0,"risp_hbp":0,"risp_hr":0,"risp_pa":1,"risp_rbi":0,"roe":0,"runs":0,"sb":0,"sh":1,"sqz":0,"sqz_rbi":0,"stay_hits":0,"stay_rbi":0,"stays":0,"team_id":24,"triples":0,"walkback_runs":0}],"bt_totals":{"ab":21,"adv_1b_pct":0.38461538461538464,"adv_2b_pct":0.3333333333333333,"adv_3b_pct":0.6,"adv_adv_1b":5,"adv_adv_2b":5,"adv_adv_3b":3,"adv_op_1b":13,"adv_op_2b":15,"adv_op_3b":5,"adv_total_pct":0.3939393939393939,"avg":0.36363636363636365,"babip":0.5714285714285714,"bavg":0.38095238095238093,"bb":1,"bb_k":0.14285714285714285,"bb_pct":0.045454545454545456,"bunt_att":1,"bunt_hits":0,"chances":0,"cs":0,"d2":4,"d3":0,"defense":29,"defense_catcher":80,"defense_infield":34,"defense_outfield":73,"drs":0.0373333333333333,"dwar":0.0017949615196292455,"e":0,"fld_pct":null,"fo":1,"fo_pct":0.045454545454545456,"g":6,"h":8,"h_per_ab":0.38095238095238093,"hbp":0,"hr":0,"hr_pct":0.0,"iso":0.18181818181818177,"k":7,"k_pct":0.3181818181818182,"li_avg":0.746,"mhab":1,"mhab_pct":0.047619047619047616,"obp":0.4090909090909091,"ops":0.9545454545454546,"ops_plus":80.51001961762006,"ops_plus_scope":"","pa":22,"park_factor":1.0,"pavg":0.36363636363636365,"po":0,"pos_def":0.563,"position":"CF","r":6,"rad_1b":10,"rad_2b":9,"rad_3b":3,"rad_total":22,"rbi":8,"risp_2b":4,"risp_3b":0,"risp_ab":15,"risp_bb":1,"risp_conv":0.5,"risp_h":6,"risp_hbp":0,"risp_hr":0,"risp_obp":0.4375,"risp_ops":1.0625,"risp_pa":16,"risp_pavg":0.375,"risp_rbi":8,"risp_slg":0.625,"sb":0,"sb_pct":0.0,"sh":1,"slg":0.5454545454545454,"sqz":0,"sqz_rbi":0,"stay_conv_pct":0.75,"stay_diff":0.017316017316017285,"stay_hits":3,"stay_pct":0.18181818181818182,"stay_rbi":2,"stay_rbi_pct":0.25,"stay_rbi_per_stay":0.5,"stays":4,"vorp":-1.4578790465669071,"war":-0.06829888103915754,"war_off":-0.07009384255878678,"woba":0.4018181818181818,"woba_plus":70.95738262510748,"woba_plus_scope":"","wpa":-0.128,"wrc_plus":58.13375355022842,"xo":{"avg":0.23468335254737038,"babip":0.29003456450452586,"obp":0.29230545573635586,"ops":0.6800770040451982,"slg":0.38542836421304444,"woba":0.2936350564587911}},"college_origin":null,"current_league":"NL","current_style_label":"","fld_totals":{"a":0,"chances":11,"e":0,"fld_pct":1.0,"po":11},"handedness_splits":{"bat_vs_lhp":{"ba":0.0,"bip":1,"d2":0,"d3":0,"h":0,"hr":0,"iso":0.0,"rbi":0,"slg":0.0},"bat_vs_rhp":{"ba":0.5,"bip":16,"d2":4,"d3":0,"h":8,"hr":0,"iso":0.25,"rbi":8,"slg":0.75}},"nickel_games":0,"pitching_log":[],"player":{"adaptability":33,"age":34,"archetype":"Regular","arm":69,"baserunning":29,"bats":"L","birthday":"Jul 12","bunt":54,"command":50,"contact":40,"contact_quality_threshold":0.443,"country":"US","defense":29,"defense_catcher":80,"defense_infield":34,"defense_outfield":73,"eye":72,"game_calling":31,"grit":0.276,"habit_cup":0.5800000000000001,"hard_contact_delta":0.0,"hometown":"Miami","hr_weight_bonus":0.0,"id":1105,"il_tier":null,"injured_until":null,"is_active":1,"is_joker":0,"is_pitcher":0,"leadership":76,"movement":50,"name":"Garrett Hanson","pitch_variance":0.0,"pitcher_role":"","pitcher_skill":45,"position":"CF","power":40,"pull_pct":0.658,"release_angle":0.5,"repertoire":null,"role_field_pos":"C,LF,CF,RF","role_hit":1,"role_run":0,"role_two_way":1,"roster_slot":"two_way","rotation_slot":0,"run_aggressiveness":39,"salary":1414423077,"secondary_country":"","skill":80,"speed":74,"stamina":44,"stay_aggressiveness":0.29,"streak_games":4,"streak_heat":-0.5964332485120001,"streak_state":-1,"streak_weeks":0,"team_abbrev":"MIA","team_id":24,"team_name":"Marlins","throws":"R","work_ethic":41,"work_habits":36},"player_est_value":1414423077,"player_value_pct":0,"player_value_surplus_label":"\u01920","pt_totals":null,"splits":{"Away":{"bt":{"ab":14,"avg":0.35714285714285715,"babip":0.625,"bavg":0.35714285714285715,"bb":0,"bb_k":0.0,"bb_pct":0.0,"chances":0,"cs":0,"d2":3,"d3":0,"defense":29,"defense_catcher":80,"defense_infield":34,"defense_outfield":73,"drs":0.01866666666666665,"dwar":0.0008974807598146228,"e":0,"fld_pct":null,"fo":0,"fo_pct":0.0,"g":3,"h":5,"h_per_ab":0.35714285714285715,"hbp":0,"hr":0,"hr_pct":0.0,"iso":0.21428571428571425,"k":6,"k_pct":0.42857142857142855,"mhab":0,"mhab_pct":0.0,"obp":0.35714285714285715,"ops":0.9285714285714286,"ops_plus":78.31927078448754,"ops_plus_scope":"","pa":14,"park_factor":1.0,"pavg":0.35714285714285715,"po":0,"pos_def":0.563,"position":"CF","r":5,"rbi":4,"roe":1,"sb":0,"sb_pct":0.0,"slg":0.5714285714285714,"stay_conv_pct":1.0,"stay_diff":0.0,"stay_hits":1,"stay_pct":0.07142857142857142,"stay_rbi":0,"stay_rbi_pct":0.0,"stay_rbi_per_stay":0.0,"stays":1,"vorp":-1.0131199993304556,"war":-0.047812646389247246,"war_off":-0.048710127149061866,"woba":0.3945,"woba_plus":69.66505925376786,"woba_plus_scope":"","wrc_plus":56.27081096282658,"xo":{"avg":0.2311774087597963,"babip":0.29817630921110666,"obp":0.2819899806938106,"ops":0.6752578823913898,"slg":0.3903345853767588,"woba":0.2924390474087956}}},"Home":{"bt":{"ab":7,"avg":0.375,"babip":0.5,"bavg":0.42857142857142855,"bb":1,"bb_k":1.0,"bb_pct":0.125,"chances":0,"cs":0,"d2":1,"d3":0,"defense":29,"defense_catcher":80,"defense_infield":34,"defense_outfield":73,"drs":0.01866666666666665,"dwar":0.0008974807598146228,"e":0,"fld_pct":null,"fo":1,"fo_pct":0.125,"g":3,"h":3,"h_per_ab":0.42857142857142855,"hbp":0,"hr":0,"hr_pct":0.0,"iso":0.125,"k":1,"k_pct":0.125,"mhab":1,"mhab_pct":0.14285714285714285,"obp":0.5,"ops":1.0,"ops_plus":84.34383007560197,"ops_plus_scope":"","pa":8,"park_factor":1.0,"pavg":0.375,"po":0,"pos_def":0.563,"position":"CF","r":1,"rbi":4,"roe":0,"sb":0,"sb_pct":0.0,"slg":0.5,"stay_conv_pct":0.6666666666666666,"stay_diff":0.05357142857142855,"stay_hits":2,"stay_pct":0.375,"stay_rbi":2,"stay_rbi_pct":0.5,"stay_rbi_per_stay":0.6666666666666666,"stays":3,"vorp":-0.4447590472364508,"war":-0.020486234649910263,"war_off":-0.021383715409724887,"woba":0.414625,"woba_plus":73.21894852495183,"woba_plus_scope":"","wrc_plus":61.39390307818169,"xo":{"avg":0.24169524012251847,"babip":0.2791789048957515,"obp":0.31035753706081,"ops":0.6885104669393629,"slg":0.3768424771765443,"woba":0.2957280722962833}}},"Last 30 days":{"bt":{"ab":20,"avg":0.38095238095238093,"babip":0.6153846153846154,"bavg":0.4,"bb":1,"bb_k":0.14285714285714285,"bb_pct":0.047619047619047616,"chances":0,"cs":0,"d2":4,"d3":0,"defense":29,"defense_catcher":80,"defense_infield":34,"defense_outfield":73,"drs":0.031111111111111082,"dwar":0.0014958012663577045,"e":0,"fld_pct":null,"fo":0,"fo_pct":0.0,"g":5,"h":8,"h_per_ab":0.4,"hbp":0,"hr":0,"hr_pct":0.0,"iso":0.19047619047619047,"k":7,"k_pct":0.3333333333333333,"mhab":1,"mhab_pct":0.05,"obp":0.42857142857142855,"ops":1.0,"ops_plus":84.34383007560197,"ops_plus_scope":"","pa":21,"park_factor":1.0,"pavg":0.38095238095238093,"po":0,"pos_def":0.563,"position":"CF","r":6,"rbi":8,"roe":1,"sb":0,"sb_pct":0.0,"slg":0.5714285714285714,"stay_conv_pct":0.75,"stay_diff":0.01904761904761909,"stay_hits":3,"stay_pct":0.19047619047619047,"stay_rbi":2,"stay_rbi_pct":0.25,"stay_rbi_per_stay":0.5,"stays":4,"vorp":-1.0567633323290169,"war":-0.049312667935939414,"war_off":-0.05080846920229712,"woba":0.42095238095238097,"woba_plus":74.33630560725545,"woba_plus_scope":"","wrc_plus":63.00462384677752,"xo":{"avg":0.2374881075774296,"babip":0.2967149704176178,"obp":0.2961737588773103,"ops":0.6885104669393629,"slg":0.3903345853767588,"woba":0.2967621549509415}}}},"transactions":[{"detail":"Marlins: Garrett Hanson (CF) filling lineup gap at CF while Franklin Proctor is on IL","event_type":"promotion","game_date":"2026-05-04","id":2959,"player_id":1105,"player_name":"Garrett Hanson","player_pos":"CF","season":1,"team_abbrev":"MIA","team_id":24,"team_name":"Marlins"},{"detail":"Marlins: Garrett Hanson (CF) filling lineup gap at CF while Jan-Michael Fair is on IL","event_type":"promotion","game_date":"2026-05-02","id":2816,"player_id":1105,"player_name":"Garrett Hanson","player_pos":"CF","season":1,"team_abbrev":"MIA","team_id":24,"team_name":"Marlins"},{"detail":"COVERAGE PENALTY: Marlins catcher Beals Moon on IL; non-specialist Garrett Hanson filling in (reduced game-calling quality)","event_type":"penalty","game_date":"2026-05-01","id":2786,"player_id":1105,"player_name":"Garrett Hanson","player_pos":"CF","season":1,"team_abbrev":"MIA","team_id":24,"team_name":"Marlins"},{"detail":"Marlins: Garrett Hanson (CF) covering catcher while Beals Moon is on IL","event_type":"promotion","game_date":"2026-05-01","id":2785,"player_id":1105,"player_name":"Garrett Hanson","player_pos":"CF","season":1,"team_abbrev":"MIA","team_id":24,"team_name":"Marlins"},{"detail":"Marlins: Garrett Hanson (CF) filling lineup gap at SS while Ross Maxwell is on IL","event_type":"promotion","game_date":"2026-04-30","id":2698,"player_id":1105,"player_name":"Garrett Hanson","player_pos":"CF","season":1,"team_abbrev":"MIA","team_id":24,"team_name":"Marlins"},{"detail":"Garrett Hanson returns from Day-to-Day (CF)","event_type":"return","game_date":"2026-04-29","id":2596,"player_id":1105,"player_name":"Garrett Hanson","player_pos":"CF","season":1,"team_abbrev":"MIA","team_id":24,"team_name":"Marlins"},{"detail":"Garrett Hanson (CF) placed on Day-to-Day, out until 2026-04-29 (~3 games)","event_type":"injury","game_date":"2026-04-26","id":2380,"player_id":1105,"player_name":"Garrett Hanson","player_pos":"CF","season":1,"team_abbrev":"MIA","team_id":24,"team_name":"Marlins"},{"detail":"Marlins: Garrett Hanson (CF) filling lineup gap at 3B while Xerez Corrales is on IL","event_type":"promotion","game_date":"2026-04-25","id":2330,"player_id":1105,"player_name":"Garrett Hanson","player_pos":"CF","season":1,"team_abbrev":"MIA","team_id":24,"team_name":"Marlins"},{"detail":"Marlins: Garrett Hanson (CF) filling lineup gap at LF while Vissel Iijima is on IL","event_type":"promotion","game_date":"2026-04-25","id":2328,"player_id":1105,"player_name":"Garrett Hanson","player_pos":"CF","season":1,"team_abbrev":"MIA","team_id":24,"team_name":"Marlins"},{"detail":"Marlins: Garrett Hanson (CF) filling lineup gap at LF while Deiton Kobak is on IL","event_type":"promotion","game_date":"2026-04-23","id":2095,"player_id":1105,"player_name":"Garrett Hanson","player_pos":"CF","season":1,"team_abbrev":"MIA","team_id":24,"team_name":"Marlins"},{"detail":"COVERAGE PENALTY: Marlins catcher Miiko Loyola on IL; non-specialist Garrett Hanson filling in (reduced game-calling quality)","event_type":"penalty","game_date":"2026-04-23","id":2093,"player_id":1105,"player_name":"Garrett Hanson","player_pos":"CF","season":1,"team_abbrev":"MIA","team_id":24,"team_name":"Marlins"},{"detail":"Marlins: Garrett Hanson (CF) covering catcher while Miiko Loyola is on IL","event_type":"promotion","game_date":"2026-04-23","id":2092,"player_id":1105,"player_name":"Garrett Hanson","player_pos":"CF","season":1,"team_abbrev":"MIA","team_id":24,"team_name":"Marlins"},{"detail":"Garrett Hanson returns from Short-Term IL (CF)","event_type":"return","game_date":"2026-04-22","id":2006,"player_id":1105,"player_name":"Garrett Hanson","player_pos":"CF","season":1,"team_abbrev":"MIA","team_id":24,"team_name":"Marlins"},{"detail":"Garrett Hanson (CF) placed on Short-Term IL, out until 2026-04-22 (~18 games)","event_type":"injury","game_date":"2026-04-04","id":245,"player_id":1105,"player_name":"Garrett Hanson","player_pos":"CF","season":1,"team_abbrev":"MIA","team_id":24,"team_name":"Marlins"},{"detail":"Marlins: Garrett Hanson (CF) filling lineup gap at 1B while Tripp Kuznetsova is on IL","event_type":"promotion","game_date":"2026-04-03","id":145,"player_id":1105,"player_name":"Garrett Hanson","player_pos":"CF","season":1,"team_abbrev":"MIA","team_id":24,"team_name":"Marlins"},{"detail":"Marlins: Garrett Hanson (CF) filling lineup gap at 2B while Parmly Jones is on IL","event_type":"promotion","game_date":"2026-04-02","id":103,"player_id":1105,"player_name":"Garrett Hanson","player_pos":"CF","season":1,"team_abbrev":"MIA","team_id":24,"team_name":"Marlins"},{"detail":"Marlins: Garrett Hanson (CF) filling lineup gap at 3B while Xerez Corrales is on IL","event_type":"promotion","game_date":"2026-04-01","id":24,"player_id":1105,"player_name":"Garrett Hanson","player_pos":"CF","season":1,"team_abbrev":"MIA","team_id":24,"team_name":"Marlins"}],"transfer_leagues":[{"league":"AL","style":"","style_label":"","teams":[{"abbrev":"ARI","id":14,"league":"AL","name":"Diamondbacks","style_profile":""},{"abbrev":"CHW","id":33,"league":"AL","name":"White Sox","style_profile":""},{"abbrev":"CIN","id":11,"league":"AL","name":"Reds","style_profile":""},{"abbrev":"CLE","id":23,"league":"AL","name":"Guardians","style_profile":""},{"abbrev":"COL","id":34,"league":"AL","name":"Rockies","style_profile":""},{"abbrev":"DET","id":22,"league":"AL","name":"Tigers","style_profile":""},{"abbrev":"HOU","id":18,"league":"AL","name":"Astros","style_profile":""},{"abbrev":"LAD","id":8,"league":"AL","name":"Dodgers","style_profile":""},{"abbrev":"MIL","id":32,"league":"AL","name":"Brewers","style_profile":""},{"abbrev":"MIN","id":7,"league":"AL","name":"Twins","style_profile":""},{"abbrev":"MON","id":1,"league":"AL","name":"Expos","style_profile":""},{"abbrev":"NYY","id":27,"league":"AL","name":"Yankees","style_profile":""},{"abbrev":"PHI","id":30,"league":"AL","name":"Phillies","style_profile":""},{"abbrev":"PIT","id":25,"league":"AL","name":"Pirates","style_profile":""},{"abbrev":"POR","id":6,"league":"AL","name":"Beavers","style_profile":""},{"abbrev":"SEA","id":29,"league":"AL","name":"Mariners","style_profile":""},{"abbrev":"VAN","id":5,"league":"AL","name":"Angels","style_profile":""},{"abbrev":"WSN","id":12,"league":"AL","name":"Nationals","style_profile":""}]},{"league":"NL","style":"","style_label":"","teams":[{"abbrev":"ATL","id":21,"league":"NL","name":"Braves","style_profile":""},{"abbrev":"BAL","id":10,"league":"NL","name":"Orioles","style_profile":""},{"abbrev":"BOS","id":17,"league":"NL","name":"Red Sox","style_profile":""},{"abbrev":"CHC","id":2,"league":"NL","name":"Cubs","style_profile":""},{"abbrev":"KCR","id":28,"league":"NL","name":"Royals","style_profile":""},{"abbrev":"NJC","id":36,"league":"NL","name":"Canaries","style_profile":""},{"abbrev":"NSH","id":16,"league":"NL","name":"Stars","style_profile":""},{"abbrev":"NYM","id":4,"league":"NL","name":"Mets","style_profile":""},{"abbrev":"OAK","id":3,"league":"NL","name":"Athletics","style_profile":""},{"abbrev":"SDP","id":20,"league":"NL","name":"Padres","style_profile":""},{"abbrev":"SFG","id":9,"league":"NL","name":"Giants","style_profile":""},{"abbrev":"SLB","id":26,"league":"NL","name":"Bees","style_profile":""},{"abbrev":"STL","id":13,"league":"NL","name":"Cardinals","style_profile":""},{"abbrev":"TBR","id":15,"league":"NL","name":"Rays","style_profile":""},{"abbrev":"TEX","id":35,"league":"NL","name":"Rangers","style_profile":""},{"abbrev":"TOR","id":31,"league":"NL","name":"Blue Jays","style_profile":""},{"abbrev":"VCO","id":19,"league":"NL","name":"Orcas","style_profile":""}]}]},"endpoint":"player_detail"}
