It makes sense to expose entire underlying asset to the callers, as underlying body might have features they like, such as currencyid or est_usd - values that do not exist in json and we're not making use of them, but we still want to keep if provided e.g. by ArchiHandler.
In rare occurances, we might not have a description assigned to the item. This is most notable in inactive trade offers, but we permit this to happen even in inventory fetches.
Assigning "default" description is unwanted if caller wants to have a way to determine that description wasn't there to begin with. It makes more sense to make it nullable and *expect* it to be null, then caller can do appropriate checking and decide what they want to do with that.
Also open constructors for plugins usage in case they'd like to construct assets manually, e.g. for sending.
* New inventory fetching
* use new method everywhere
* Store description in the asset, add protobuf body as a backing field for InventoryDescription, add properties to description
* parse trade offers as json, stub descriptions, fix build
* formatting, misc fixes
* fix pragma comments
* fix passing tradable property
* fix convesion of assets, add compatibility method
* fix fetching tradeoffers
* use 40k as default count per request
* throw an exception instead of silencing the error
* Initial .NET 8
* Make it compile in release mode ignoring warnings for now
* First round of improvements
* Second round of improvements
* Third round of improvements
* Use new throws
* Fix .NET Framework, YAY, thanks madness!
Madness devs are awesome
* Misc
* Misc
* AF_NETLINK might be required for some http calls
No clue why
* Fix service files
Doesn't do what it should
* Update CardsFarmer.cs
* New improvements
* Address feedback
* Misc
* Misc
* Misc refactor
* Misc
* Add GetClanChatInfo as public API function
* make JoinChatRoomGroup public API. add LeaveChatRoomGroup as public API
* Rename GetClanChatRoomInfo method. Change return type of GetClanChatRoomInfo method
* Implement support for access tokens
A bit more work and testing is needed
* Make ValidUntil computed, fix netf, among others
* netf fixes as always
* Allow AWH to forcefully refresh session
* Unify access token lifetime
In original change I totally forgot custom game ACTUALLY must be the first on the list, otherwise it never works properly.
So use exactly the same logic, but with custom name being first (if possible to fit)
I spent far too much time and sweat on this, so I'll just link this as explanation: https://github.com/SteamRE/SteamKit/pull/1075
HUGE THANKS to @xPaw for all the help, Pavel is the best