Inventory saved as JSON list of thing template names in an inventory column. Migration adds column to existing databases. load_player_data returns inventory list, save_player serializes Thing names from contents.