Repository conventions
These rules add to the Luna-Flow documentation standard for geometry3d.
Scope
- Document the version on the current branch, as described by each package’s
pkg.generated.mbti. The JavaScript-only packages (backend/canvas,backend/gsap,demo_canvas,demo_gsap) have no committed interface file; their public surface is the onemoon info --target jsreports. - Do not document speculative engine features such as scene graphs, materials, textures, physics, BVH, or asset loaders unless they are implemented.
Package boundaries
- Keep geometry core documentation free of terminal, ANSI, and TUI concerns.
- Keep terminal y-scale, background patterns, and character rasterization under
backend/tuiordemo. - Keep browser DOM, Canvas, scanline, and JS-target details under
backend/canvas,backend/gsap,demo_canvasordemo_gsap. - When behavior crosses package boundaries, update the API, design, and tutorial pages of every affected package together.
Executables
The demo packages export no MoonBit items. Their API page documents the command line (demo) or the HTML page contract (demo_canvas, demo_gsap) instead.
Examples
Every moonbit block that is not marked nocheck must compile against the current code, and the outputs shown in inspect snapshots and text blocks must be the real outputs. Check them by copying the blocks into a scratch module that depends on this repository and running moon test (with --target js for the browser pages).