aboutsummaryrefslogtreecommitdiff
path: root/docs/tomes/06-behavior.md
diff options
context:
space:
mode:
authorValentin Popov <valentin@popov.link>2026-07-18 19:40:17 +0300
committerValentin Popov <valentin@popov.link>2026-07-18 19:40:17 +0300
commitd31d1f8eab7a2c79e349748939de01895af5de7e (patch)
tree89546aab24629deebaf88c3694e49ef2a547a3e2 /docs/tomes/06-behavior.md
parenta7b434aeb2e1c79131e4919f6b0cbf66cdc06599 (diff)
downloadfparkan-d31d1f8eab7a2c79e349748939de01895af5de7e.tar.xz
fparkan-d31d1f8eab7a2c79e349748939de01895af5de7e.zip
feat(script): decode compiled package framing
Diffstat (limited to 'docs/tomes/06-behavior.md')
-rw-r--r--docs/tomes/06-behavior.md10
1 files changed, 10 insertions, 0 deletions
diff --git a/docs/tomes/06-behavior.md b/docs/tomes/06-behavior.md
index 7f825ad..5e0299e 100644
--- a/docs/tomes/06-behavior.md
+++ b/docs/tomes/06-behavior.md
@@ -133,6 +133,16 @@ Wizard получает желаемое направление и corridor, а
описывает типы, defaults, ranges и строки через макросоподобные формы
`VAR(...)` и `STRING(...)`.
+Compiled package больше не opaque blob: `fparkan-script` losslessly читает
+проверенный внешний framing. Сначала идут `opcode_handler_count` и
+`event_count` (`u32 LE`), затем именованные события с NUL-terminated raw
+именем и nested records. Reader сохраняет все seven raw header words и
+references каждого record, жёстко ограничивает counts/allocations и отдельно
+сохраняет trailing bytes. На `c1m2p.scr` GOG reader получает `73` handlers,
+`9` events, `17` records и `20` references без trailing bytes. Это структура
+файла, но не таблица семантик: названия opcode/words появятся только после
+handler contracts и runtime traces.
+
Безопасная runtime-модель:
```text