bump: minor type: feat **OpenGL for Ludic, and a 3D renderer on it.** `Gl.*` binds the whole OpenGL 4.1 core API — every `gl*` entry point of the platform `gl3.h` as `Gl.(…)` with every `GL_*` constant, generated by `ludic-dev glgen` with per-call ABI thunks (`runtime/native/gl_thunks.ll`; float/double parameters take `fixed`). Windowed builds get an `NSOpenGLContext` on the existing window at Retina resolution (`cocoa.ll`); headless builds render into an offscreen CGL context, so a program that uses `Gl.*` renders and screenshots identically under the test harness. `Gl.open / swap / screenshot / program / vao / floats …` cover the glue, and the IEEE-float helpers (`f_add`, `mem_put_f32`, …) let Q16.16 programs fill real float vertex and uniform data. `Gl.*` links `gl.ll + gl_thunks.ll + OpenGL.framework` only when used; every other build is byte-identical. The `ludic.render3d` package (`packages/ludic.render3d`) is a physically based renderer written on `Gl.*`: HDRI sky with image-based lighting (irradiance, GGX prefiltered, split-sum BRDF, sun extracted from the map), GPU-generated terrain with scanned PBR materials (stochastic anti-tiling, triplanar rock, slope/altitude splatting), cascaded shadow maps with PCF and world-unit biasing, a glTF loader for scanned models, instanced vegetation with baked impostors, procedural grass and lupines with wind and translucency, 4x MSAA with alpha-to-coverage, SSAO, still water, cloud shadows, aerial perspective, an HDR pipeline with bloom, auto-exposure, ACES tonemapping, grading, sharpening and grain. See `examples/rendering/smooth.ludic`, and the Maroon Lake game (git.workshopsoft.io/workshopsoft/maroon-lake) for a game built on it. The renderer's CC0 materials are fetched with `ludic assets`. **16-bit PNGs**: the renderer's texture loader keeps 16-bit samples (normal / displacement maps) and uploads them as `RGB16` / `R16`.