The decoder, the sampler metadata to attach, and the §96 decoded-size bounds. See the module comment for the row-order flip and for why the bounds are post-decode without a TextureLoaderOptions.probe.
A loader producing a Disposable, TextureSource-shaped
TextureAsset. Each call returns a distinct object, hence a distinct
asset-manager cache slot — hoist it to a module constant.
Builds a texture loader around a platform decoder (§77, §96).
The whole decode path is createTextureDecoder; this wraps it as an AssetLoader for the manager's fetch pipeline.