* Add Monitoring plugin
* Prepare pipeline
* Fix Rider stupidity
* Fix Windows build
* Remove translation files
* Apply feedback
* Add steam id as additional tag to metrics
* Apply feedback
* Add runtime metrics
* Fix my brain not braining
* Use extension methods to add instrumentation and Add monitoring for outbound HTTP traffic
* Upgrade OpenTelemetry.Extensions.Hosting to prerelease due to runtime exception
* Remove config and add file that was supposed to be committed yesterday to fix the runtime exception
* Revert changes to publish.yml
* Remove localization
* Apply feedback
* Apply feedback
* Fix version number
* Revert use of property in Kestrel (even tho it's an outside caller to the source class)
Even if we have it always available, we don't need use it 99.9% of time, and even in 0.1% it's only supportive attribute for debugging. Make it optional, will help with robustness.
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.