The game's state is fixed arrays with counts, so the verdict stops being conditional

This commit is contained in:
Joseph Ferano 2026-09-13 14:59:32 +07:00
parent 3e6886831d
commit 19353648a0

View File

@ -267,6 +267,15 @@ the state type. `sand.flan` is already written that way. The frame rollback is t
piece that needs to touch the state, and the game can supply `snapshot`/`restore` as two
more callbacks.
> **Settled by the author, 2026-09-13: fixed arrays with counts.** The first branch below. So the
> conditional verdict in this section is now unconditional: the state fits in `defvar` globals, the
> engine takes only `(Fn [] ())` callbacks and never names a state type, generics stays off this
> game's critical path, and `drop` is not needed for this version. Nothing in the language had to be
> built for it — fixed arrays, counts and slices all already work. What is left is writing the game.
>
> Carry forward the one flag §3 raises: the next version, with several tilesets and several atlases,
> grows straight into `drop` and into `(Vec T)` where `T` owns a `Vec`.
**This verdict is conditional, and the condition is one decision.** Both it and the
globals workaround above hang on the same pivot, so it is worth stating once, flatly:
*nothing in this game's state needs to be move-only.* Make the inner collections fixed