Cottony's tray, star, ball and props are four modules of imperative geometry code, and the shape each one describes is not readable without running it. Stating a shape should not mean writing and debugging a program.
A format covering only primitives would leave every real asset back in code. The vocabulary comes from the existing models: extruded outlines, crowned plates, radial arrays, annuli and boolean pockets โ not from a list of shapes that seemed reasonable.
Geometry constants live inside a module while the rig's live in a dataclass, so a search can reach the lighting and never the shape it is lighting. A declaration puts both in the same place, which is the whole reason this block is worth doing at all.
Any format will meet a shape it cannot state, and forcing that shape into the format produces worse geometry than the script it replaced. A declaration that cannot express a shape has to leave a way back to code, and saying so now is cheaper than discovering it later.
Each line names the failure it exists to remove and the measurement behind it. None of them has shipped. This list is generated from docs/ROADMAP.md, so it cannot describe a backlog the file does not have.
Handles for anything slow, a post-condition on every operation, typed errors that name the remedy, a surface that describes itself and this machine, and configuration resolved per call.
6 linesA surface is read on a sphere in three seconds, a render returns its measurements in the same answer, a distribution is reported as a set rather than a mean, and a sheet shows an asset beside its siblings.
5 linesWhat counts as a correct render, written as a file a search can aim at; a search that finds the rig numbers instead of a person finding them by hand; a cache so nothing renders twice; and a trace of everything the search rejected.
4 linesA silhouette gate before the credit moves, a ceiling agreed once instead of a question per fetch, the mesh kept because the service deletes it at seventy-two hours, and a fetched asset normalised into this project's axes.
6 linesA Godot run judged by what the script printed rather than by an exit code that means nothing, a capture that works where there is no screen, a scale derived instead of tuned, and a runner pinned so two machines agree.
4 linesA fetched mesh rigged so it can be posed at all, motion as a clip rather than a second static render, curves as text a diff can show, and one source for both a 2D sprite and a 3D scene.
4 lines