# lib-core.camera P.0 2D camera state + begin/finish wrapper. Holds `target = {x, y}` + `zoom`, wraps `engine.render.camera_2d_begin/end` with current state. - Lib-ID: `lib-core.camera` - Version: `0.1.0` - Spec: `meta/docs/superpowers/specs/2026-05-09-p0-lib-camera-design.md` Forward-compat stubs (DEPRECATED-MVP) for follow, set_bounds, lerp_to, shake, set_rotation. See `meta/docs/architecture/render-pipeline.md` and `meta/docs/architecture/map-topology.md §7.3` for full target context. ## API - `camera.set_target(x, y)` — set world-coords for screen-center - `camera.set_zoom(z)` — set zoom (positive number) - `camera.target() → {x, y}` — current target - `camera.zoom() → number` — current zoom - `camera.begin()` — push camera transform (must be inside render hook) - `camera.finish()` — pop camera transform (`end` is Lua keyword) ## Consumer pattern ```lua local camera = require("lib-core.camera") camera.set_target(256, 256) -- world-coords camera.set_zoom(1.0) function render(ctx) engine.render.clear_color(...) camera.begin() -- draw world here camera.finish() end ```