puppet.load_textures(rig, asset_aliases):
- Resolves bone.texture atlas-ids to texture-handles via the asset-
lib indirection. Reads asset_aliases[rig.asset_pack] to get the
asset-lib id, loads the lib's atlas.json, looks up the atlas-entry
by id, then calls engine.asset.load_texture on the resolved file
path.
- Resolves bone.anchor from the atlas entry unless the bone has an
explicit anchor override.
- Raises clear errors when alias/atlas-pack/atlas-id is missing.
puppet.load_rig(path, asset_aliases?) now optionally calls
load_textures after build_rig if asset_aliases is supplied.
README updated with new API entries (load_rig signature, load_textures,
bone_world_transform, write_bone_test_only) and CHANGELOG v0.2.0 entry.
Validates and cooks rig + animation data into internal representations:
- build_rig: parses bones (with parent-resolution to object refs) and
tracks (with bone-uniqueness validation). Converts rest angles
from JSON degrees to radians.
- build_animation: validates each keyframe references only bones in
the animation's declared track. Converts keyframe angles from
degrees to radians.
Remaining functions (sample_animation, spawn, update, look-at,
procedural, render, lifecycle) follow in subsequent commits.