Phase A.2: draw_entities(filter) iterates composition.list_by_tag and
renders each entity per its sprite-properties. Three paths:
1. sprite_atlas + sprite_uv.{x,y,w,h} → atlas sub-rect via
engine.render.draw_sprite_transform (with texture-handle cache)
2. sprite_color + sprite_w + sprite_h → engine.render.draw_rect
3. magenta 16x16 fallback rect for entities without sprite-properties
position.x/position.y is treated as visual-CENTER for all paths.
Filter shape: {tag = "..."} — anything else is loud-error
(template-id / property-predicate filters deferred per A-Q3).
New dep: lib-core.composition v0.1.0.
draw_map (v0.1) unverändert.
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
Required by the v0.5.0 schema-v3 + autotile work shipping in
sporel-lib-core.maps. No behavioural change in render itself; the
new maps surface (vertex-painted layers, override sublayer, render-
opt caches) is consumed via existing draw_map_pre/post_entities
calls which are backwards-compatible.
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
Adds the proprietary all-rights-reserved license that applies to this
library. The text is identical to the engine LICENSE — this lib is
Tier-1 official platform content, distributed under the same terms.
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
Resolves audit I3 (RTS-Tech-Demo-Audit 2026-05-14). render requires
maps for tilemap rendering; dep was previously transitively resolved
via module-manifest. Now explicit per Composer-Pattern §3.3.