Two pieces of feedback around using per-asset metadata to control the behavior of the io manager configured for that asset:
1. It would be nice to have a special class of metadata that is NOT passed to the IO manager and is only used for display/data dictionary purposes. Letting business-centric metadata live in the same place as operational metadata can be dangerous if a user configures an asset with a metadata key that unknowingly matches with a key that the IO manager expects.
2. It would also be nice to have deploy-time validation of the per-asset metadata that an io manager expects, similar to the validation that can be done for resources. That way, if a user forgets to configure a necessary piece of metadata for the IO manager and no default is set, we can error earlier and avoid a runtime error