---
name: portable-asset-export
description: "Download selected licensed resources reproducibly with a local source record. Use for manifest, download, CC0, offline."
---

# Переносимая библиотека ассетов

Download selected licensed resources reproducibly with a local source record.

## Implementation decisions

1. Use a fixed registry snapshot and let the caller select exact asset IDs and a resolution. Never download the entire catalog by default.
2. Keep original relative file names for glTF dependencies. Save source and license information beside the downloaded files.
3. Verify hashes supplied by the provider and leave existing destinations untouched. Stage the download in a temporary sibling directory before final rename.
4. Network-only resources must be identified in the pack README. A link index must not be described as an offline collection of binaries.

## Working source

Read [scripts/fetch-assets.py](../webcraft-shared/source/scripts/fetch-assets.py) when implementing this capability. The example belongs to the WEBCRAFT React/Three.js playground except the Python commerce starter, which runs without third-party dependencies. Use [shared catalog](../webcraft-shared/source/lib/catalog.ts) only to resolve related examples. Adapt the source to the target framework and preserve existing project conventions.

## Verify observable behavior

- A downloaded glTF finds every included buffer and texture.
- An interrupted download does not leave a misleading completed asset directory.
- Existing user assets are not overwritten.

## Scope

Use only the parts relevant to the requested task. This skill does not grant permission to publish, spend money, change account access or expose secrets. The original brief and environment rules remain authoritative.

Version 2.0.0 · Original WEBCRAFT content · MIT
