diff --git a/PORTING.md b/PORTING.md index bf1158e..132eacc 100644 --- a/PORTING.md +++ b/PORTING.md @@ -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