Basketball GM is a highly customizable game. Most of this is done through League Files, which contain the data of a Basketball GM league - teams, players, stats, etc. League Files have two main purposes:
To use a League File, upload it when you create a new league.
It is also possible to import only a draft class or only team info (cities, names, etc) from a League File. For draft classes this is done at Players > Draft > Draft Scouting, and also read this for more information. For team info, go to Tools > Edit Team Info (only available after enabling God Mode).
League Files are text files in JSON format. You can add/remove/edit nearly any part of it.
The easiest way to see what a League File looks like is to create one for one of your leagues. Within a league, go to Tools > Export League. That will bring you to a page that allows you to select which components you want to export. Note that you don't have to export everything, and that default values will be filled in for components that are not included in the League File.
What components should you include in your League File? It depends on your goal. If you want an exact copy of a specific league, you should select everything (except possibly Box Scores, since they take up a lot of space). If you want to create some customized rosters for others to use, you probably should just define the teams and the players, and then leave out most of the rest so their default values are used.
League Files are divided into multiple sections, which are the root elements of the JSON data structure. These sections are described below. Most are relatively simple and self-explanatory if you just look at an exported League File. Some are a bit more complicated and have links to more comprehensive information. The most important ones are
players- Player attributes, ratings, and stats. More information.
teams- Team attributes and stats. More information.
There are also a number of other sections, most of which you would leave completely out of a League File you plan on sharing with others. They mainly define the internal state of your current specific league.
version- an integer specifying the version of the league file. Currently you should use 27, the latest version. If you use anything less than 24 or don't specify a version, then player heights will be rescaled on load. If you use anything less than 27 or don't specify a version, then player ratings will be rescaled on load.
gameAttributes- Mostly internal variables that should be left alone, but some might be interesting to tweak. More information.
releasedPlayers- List of players who have been released from their contracts but still count against the salary cap.
awards- Offseason awards, such as MVP.
schedule- Remaining scheduled games for the current season.
playoffSeries- Playoff matchups and results for each prior season.
draftPicks- Future draft picks for the next 4 seasons. You need to include this if you want to include traded draft picks in your League File.
draftOrder- The order of picks in the current draft, including the results of the draft lottery.
trade- State of the current trade negotiation.
negotiations- State of the current contract negotiations. There can only be one entry here at a time, except when re-signing your own players in the offseason.
messages- Messages from the owner.
events- Past events viewable from Tools > Event Log.
games- Box score data from past games. This can get quite large, so it often makes sense to leave it off.