Thanks guys! I traced down the source which made me think about this: Page 546 in the AppGameKit official tutorial guide:
type GameType
rock as RockType //Rock
crab as CrabType //Crab
catchsoundID as integer //Sound of crab being caught
txtTime as integer //ID of text showing time
txtCrabs as integer //ID of text showing crabs caught
crabs_caught as integer //number of crabs caught
time_remaining as integer //seconds of game remaining
endtype
The argument for a global game type is that it is a smart way to make everything within it global.
And I can see that it is somehow more neat to have it all inside an overall type. Kind of like how I don't like placing file directly in the root of my external drives, but always creates folders. I guess this is mostly down to personal preferences.
Yet, it look like types can easily be saved/loaded to the harddrive using JSON:
https://www.appgamekit.com/documentation/guides/12_array_changes.htm
So ease of saving/loading could be a reason to put stuff into types, maybe.
Regarding UPPERCASE, I think it's great that BASIC is ignoring case. Other languages should copy this! Yet, I'm still unsure what use of case gives the best readability. BTW, Vintage BASIC code prefers to type everything except variables in uppercase.