formats: what opt links, measured - a record-to-record reference, focus is one use of it

Two readings were on record and both were wrong in different directions: the
structure doc called it "normal state -> focused state" from a single example,
and the backlog called it "refuted as focus; unexplained otherwise".

Classified every link reachable from a declaration table: 1467 links, and ALL
1467 resolve to a RATC child of their own bundle, ALL are .rat -> .rat, none
dangle and none self-link. 1076 (73%) match the <stem>f focus pattern; the other
391 are chains between effect records - px_bunk_eff01 -> pjex_eff -> pjex_eff07,
pveff01 -> pjeff02 -> pjeff21 - which also explains why only 227 targets are
themselves declared elements: the middle of a chain is, the end is not.

So `opt ` is a record-to-record reference within the bundle, and focus is its
commonest use rather than its meaning.

Coverage is stated rather than glossed: the bundles hold 18718 raw `opt ` tags
against the 1467 classified, because opt_link reads the first tag of a DECLARED
element's record. Roughly 92% of occurrences sit deeper in the chains (or are
byte coincidences - the scan is unaligned) and are untested. The numbers are
asserted so the answer cannot drift back into an anecdote.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01PMRJjbxLqZtsb5Vb7KunPE
This commit is contained in:
Sylpheed RE agent
2026-08-24 04:09:18 +00:00
parent f160b416ff
commit d9a2229217
2 changed files with 199 additions and 0 deletions

View File

@@ -452,3 +452,47 @@ that a menu draws for its buttons.
**Still open:** whether the focused state is marked anywhere *else* — the `.rat`
record, the RATC child stream, or (as with the paint order) only in the game's
code. This closes the declaration table, not the question.
## 🟡 What `opt ` links — measured over the whole disc (2026-08-24)
Two readings were on record and both were wrong in different directions: this
file called it *normal state → focused state* from a single example
(`pgpbtn00.rat → pgpbtn00f.rat`), and the backlog called it "refuted as focus;
unexplained otherwise". Classifying **every** link reachable from a declaration
table (`tests/ui_opt_link_disc.rs`) gives a distribution instead:
| | |
|---|---|
| `opt ` links classified | **1 467** |
| resolve to a **RATC child of the same bundle** | **1 467 — all of them** |
| `.rat` → `.rat` | **1 467 — all of them** |
| match the focus pattern `<stem>f.<ext>` | **1 076 (73 %)** |
| whose target is *also* a declared element | 227 |
| link to themselves | **0** |
So `opt ` is a **record→record reference within the bundle**: a record naming
another record it uses. It never dangles, never points at a sprite, and never
points at itself. Focus is the commonest *use* of that mechanism, not its
meaning.
**What the other 27 % are: chains.** The non-`f` targets are effect records
referring to further effect records, and following them shows depth:
```
px_bunk_eff01.rat → pjex_eff.rat → pjex_eff07.rat
px_bunk_eff01.rat → pjnet_bg.rat → pjnet_loop1.rat
pveff01.rat → pjeff02.rat → pjeff21.rat
pjeff03.rat → pjeff03_sub.rat
```
Note the middle name in each chain *is* a declared element while the third is
not — which is exactly why only 227 targets are elements.
⚠️ **Coverage, stated because it bounds all of the above.** The bundles contain
**18 718** raw `opt ` byte-tags against the **1 467** links classified here.
`opt_link()` reads the **first** tag of the record belonging to a **declared
element**, so roughly 92 % of occurrences sit on records deeper in the chain (or
are byte coincidences in binary data — the scan is unaligned). What those say is
untested. The claims above are about the links a screen's element table can
reach, which is what a compositor follows; they are not a statement about every
`opt ` in the file.