re: Placement_*/RouteTest_* are Null_Test.tbl, and Enumeration is a self-index
The template object is stage\Null_Test.tbl: its key hashes as
name_hash("stage\" + "Null_Test.tbl"), the file stage-definition-table names as
EnumerateNullFrame. Ten records - 4 Frame_Test_Asteroid_01..04, 3
Placement_00..02, 2 RouteTest_00..01, Enumeration - and the nine carrying a
FrameCount are exactly the "9/9 for Null_Test.tbl" stage-mission-tables already
counted. The corpus knew the file and the count, not the record names. A second
object (the same five plus Enumeration, without the asteroid frames) matched
none of ten candidate names across sixteen prefixes.
Enumeration is a record that indexes its own object. Disc-wide: 7750 IDXD
objects, 360 carry one, and in 360/360 its field names equal exactly that
object's other record names - zero subsets, zero strays. Field/record counts
run from 2 past 25 ((3,3)x36, (9,9)x24, (13,13)x24, (2,2)x24, (25,25)x18,
(16,16)x12), every pair on the diagonal.
Enumeration vs Enumerate is one letter and opposite scope: Enumerate is
archive-naming's route-2 seed, a single-record object whose fields name OTHER
objects; Enumeration names the records of its own object. Written up in
idxd-container, which had left "an object's kind is known only from the caller
that loads it" open.
Sharper version of the previous correction: I credited the stage\ prefix to
archive_naming.py, but stage-mission-tables states it in prose ("The prefix is
stage\ - name_hash is case-insensitive") and its stagetbl.py examples pass
'stage\AIParams_S02.tbl'. Noted in asteroid-fields.md.
All fifteen artefacts byte-identical.
This commit is contained in:
@@ -5870,3 +5870,53 @@ a reader.
|
||||
|
||||
Written up in `docs/re/structures/stage-mission-tables.md`; `asteroid-fields.md`
|
||||
carries the correction.
|
||||
|
||||
---
|
||||
|
||||
## ✅ 2026-08-28 — `Placement_*`/`RouteTest_*` are `Null_Test.tbl`, and `Enumeration` is a self-index
|
||||
|
||||
Item (a).
|
||||
|
||||
✅ **The template object is `stage\Null_Test.tbl`.** Its key hashes as
|
||||
`name_hash("stage\" + "Null_Test.tbl")`, the file [[stage-definition-table]]
|
||||
names as `EnumerateNullFrame`. Ten records: **4 `Frame_Test_Asteroid_01…04` +
|
||||
3 `Placement_00…02` + 2 `RouteTest_00…01` + `Enumeration`** — and the nine
|
||||
carrying a `FrameCount` are exactly the "**9/9 for `Null_Test.tbl`**"
|
||||
[[stage-mission-tables]] already counted. **The corpus knew the file and the
|
||||
count; it did not know the record names.** A second object (the same five
|
||||
`Placement`/`RouteTest` records + `Enumeration`, without the asteroid frames)
|
||||
matched none of the ten names I hashed across sixteen prefixes — ❔ a trimmed
|
||||
sibling.
|
||||
|
||||
✅ **`Enumeration` is a record that indexes its own object.** Disc-wide:
|
||||
|
||||
```
|
||||
IDXD objects 7 750
|
||||
objects carrying an `Enumeration` record 360
|
||||
its fields == the object's other record names 360 / 360
|
||||
a strict subset 0
|
||||
naming something not in the object 0
|
||||
```
|
||||
|
||||
Field/record counts run from 2 past 25 — `(3,3)×36`, `(9,9)×24`, `(13,13)×24`,
|
||||
`(2,2)×24`, `(25,25)×18`, `(16,16)×12` — **every pair on the diagonal**. A merely
|
||||
overlapping list would not do that at 360/360 across that spread.
|
||||
|
||||
⚠️ **`Enumeration` vs `Enumerate` — one letter, opposite scope.** `Enumerate` is
|
||||
[[archive-naming]]'s route-2 seed: a *single-record* object whose fields name
|
||||
**other objects**. `Enumeration` names the records of **its own** object. Written
|
||||
up in [[idxd-container]], which had left "an object's kind is known only from the
|
||||
caller that loads it" open — for these 360 the object states its own contents.
|
||||
[[mission-wave-arrivals]] counted 28 `Enumeration_*` records while filtering
|
||||
non-routes out of a speed measurement; what it does not say is what they are.
|
||||
|
||||
🔴 **A sharper version of yesterday's correction.** I recorded the `stage\`
|
||||
prefix as something `archive_naming.py` knew. In fact **[[stage-mission-tables]]
|
||||
states it in prose** — "The prefix is `stage\` — `name_hash` is case-insensitive"
|
||||
— and its `stagetbl.py` examples pass `'stage\AIParams_S02.tbl'`. The answer to
|
||||
my "🔴 does not reproduce by hash" was sitting in the doc that owns the stage
|
||||
tables. Noted in `asteroid-fields.md`.
|
||||
|
||||
🟡 Not settled: what `Placement_*` and `RouteTest_*` are *for* (they are test
|
||||
fixtures in a `_Test` table, so possibly nothing ships them); the six-record
|
||||
sibling's name; why `S28_p1` has an asteroid volume with no definition.
|
||||
|
||||
Reference in New Issue
Block a user