From 07aecb3d04fa2bc992b506f5b291cdb100cbe607 Mon Sep 17 00:00:00 2001 From: Sylpheed RE agent Date: Fri, 28 Aug 2026 05:55:52 +0000 Subject: [PATCH] re: value classes resolve by KIND; the 344-name residual drops from 31 to 4 Generalised the "does the referent exist?" sweep that cracked S14. The value classes resolve as three different kinds: AIID 31 values 31 records 0 files 0 unresolved FormationID 126 values 126 records 0 files 0 unresolved CollisionMeshes 18 values 0 records 18 files 0 unresolved EnumerateSubobjective 17 values 0 records 17 files 0 unresolved NamePlate 52 values 27 records 24 files 1 (empty string) BackGroundID 10 values 0 records 0 files 10 unresolved FormationID 126/126 re-derives unit-group-table's own "every FormationID resolves" from a different direction, as the control. The 27 NamePlate values that stage-definition-table called "non-file plate ids" are record names - ACROPOLIS x114, NP_ArrowHead x84, NP_ASFrigate x78 - and the split 24 files + 27 records + 1 empty = 52 matches the two-vocabularies count already recorded there. So the census residual shrinks: 313 resolve as files plus 27 as records = 340 of 344, leaving the 4 never-shipped _Test tables as the entire residual. The old reading was a KIND error, not a missing-file error. BackGroundID is a genuinely unresolved third kind: the ten sky names, used 6-36 times each, are neither record names nor pak keys under 10 prefixes x 9 suffix forms. Recorded as powerless so it is not re-run: the image holds 0 exact strings for all ten backgrounds, but also 0 for Formation_4_Bird, AI_Structure, NP_ArrowHead, ACROPOLIS and CollisionSet_S03.bin, every one of which does resolve in data. The executable names no data value at all, so the negative discriminates nothing. All fifteen artefacts byte-identical. --- docs/re/BACKLOG.md | 28 ++++++++++++ docs/re/structures/stage-definition-table.md | 46 ++++++++++++++++++++ 2 files changed, 74 insertions(+) diff --git a/docs/re/BACKLOG.md b/docs/re/BACKLOG.md index 0b87f1c9..761af8b4 100644 --- a/docs/re/BACKLOG.md +++ b/docs/re/BACKLOG.md @@ -6352,3 +6352,31 @@ whether the large asteroids collide distinguishes the two; no static route can. `UN__Asteroid_cmesh_*` squadron entities. S28.Phase_1 borrows `S14_p2_asteroid.tbl` but deploys no cmesh of its own, so the borrow does not carry the dangling references. + +--- + +## ✅🟡 2026-08-28 — value classes resolve by KIND; the 344-name residual drops to 4 + +Item (b): generalise the "does the referent exist?" sweep. + +✅ **Three kinds, not one.** `AIID` 31/31 and `FormationID` 126/126 resolve as +**record names**; `CollisionMeshes` 18/18 and `EnumerateSubobjective` 17/17 as +**pak files**; `NamePlate` splits **27 records + 24 files + 1 empty = 52**; +`BackGroundID` **0 of 10** as either. (`FormationID` re-derives +`unit-group-table`'s own "every `FormationID` resolves" as the control.) + +🔑 **The 27 `NamePlate` "non-file plate ids" are record names** — `ACROPOLIS` +×114, `NP_ArrowHead` ×84, `NP_ASFrigate` ×78. So `stage-definition-table`'s +census improves: 313 resolve as files **+ 27 as records = 340 of 344**, leaving +the **4 never-shipped `_Test` tables** as the entire residual. The old reading was +a *kind* error, not a missing file. + +🟡 **`BackGroundID` is a genuinely unresolved third kind** — the ten sky names, +used 6–36 times each, are neither records nor pak keys under 10 prefixes × 9 +suffix forms. + +⚠️ **Powerless route, recorded so it is not re-run:** the image holds 0 exact +strings for all ten backgrounds — and also 0 for `Formation_4_Bird`, +`AI_Structure`, `NP_ArrowHead`, `ACROPOLIS`, `CollisionSet_S03.bin`, all of which +*do* resolve in data. The executable names no data value, so the negative +discriminates nothing. diff --git a/docs/re/structures/stage-definition-table.md b/docs/re/structures/stage-definition-table.md index e872d394..b0774b41 100644 --- a/docs/re/structures/stage-definition-table.md +++ b/docs/re/structures/stage-definition-table.md @@ -227,3 +227,49 @@ shared between the plate id and the plate *table*.** declares four tables that were never shipped, which is what a template that was only partly filled in looks like. Every non-`_Test` declaration on the disc resolves. + +## ✅ Every value class, resolved by KIND — and the 27 `NamePlate` ids are records + +The S14 dangling-deployment result ([[unit-group-table]]) came from asking whether +a referent exists at all. Running that sweep across the other value classes shows +they resolve by **three different kinds**, and settles part of the 344-name census +above: + +| field | values | resolve as a **record name** | resolve as a **pak file** | unresolved | +|---|---:|---:|---:|---:| +| `AIID` | 31 | **31** | 0 | 0 | +| `FormationID` | 126 | **126** | 0 | 0 | +| `CollisionMeshes` | 18 | 0 | **18** | 0 | +| `EnumerateSubobjective` | 17 | 0 | **17** | 0 | +| `NamePlate` | 52 | **27** | **24** | 1 (the empty string) | +| `BackGroundID` | 10 | 0 | 0 | **10** | + +`FormationID` 126/126 re-derives [[unit-group-table]]'s "every `FormationID` +resolves" from a different direction, as the control. + +🔑 **The 27 `NamePlate` values this document called "non-file plate ids" are +record names** — `ACROPOLIS` (×114), `NP_ArrowHead` (×84), `NP_ASFrigate` (×78), +`NP_Cyclops` (×78) and so on. And the split is exact: **24 files + 27 records + +1 empty = 52**, matching the two-vocabularies count already recorded here. + +**So the census residual shrinks.** Of the 344 declared names, 313 resolve as +files and 27 more resolve as records — **340 of 344 resolve as *something***, and +the true residual is just the **4 `_Test` tables that were never shipped**. The +earlier reading, that those 27 were unresolved, was a **kind** error rather than a +missing-file error: exactly the "an unresolved name may be the wrong kind of +value" case. + +### 🟡 `BackGroundID` is a third kind, and 10 of 10 stay unresolved + +`Acheron`, `Anastasis`, `Barch`, `Earth`, `Hargenteen`, `Lebendorf`, +`Lebendorf_far`, `Original`, `PD`, `Planet_Lebendorf` — used 6–36 times each +(always a multiple of the 6 pak copies). None is a record name; none resolves as +a pak key under **10 prefixes × 9 suffix forms** (`.xpr`, `.tbl`, `.bin`, `.dds`, +`_BG`, `BG_`, `Stage_`, `_bg`, bare). They are neither data records nor files. + +⚠️ **The string-table route was run and has NO power** — the image contains 0 +exact strings for all ten, but it also contains **0** for `Formation_4_Bird`, +`AI_Structure`, `NP_ArrowHead`, `ACROPOLIS` and `CollisionSet_S03.bin`, every one +of which *does* resolve in data. The executable names no data value at all, so +this negative does not distinguish backgrounds from anything else. **Powerless, +not evidence** — recorded so it is not re-run.