re: the unit family is the only schema on the disc; an .xpr search cannot prove absence
Two exhaustive probes agree on the same 15 records. The six Shift-JIS type words occur in the six GP_MAIN_GAME_* paks and nowhere else, and a disc-wide sweep of every parsed record name for a wildcard shape (???, *, ###, NNN, <...>) returns 7 distinct names - exactly the seven already in the schema: Turret_???, Hatch_???, Bridge_???, Thruster_???, ShieldGenerator_???, Versatile_???, NS_*, each x6. So the weapon datasheet, the arsenal item and StageResource ship NO schema; the unit datasheet is the only structure the disc describes to itself. Wildcard field names are confined to the schema records too - NozzleSpec_???, NozzleFrame_???, CannonFrame_???, MuzzleFrame_???. No untyped gaps either. The full residual is 30 slots and every one holds a sample value rather than a missing type: 28 booleans spelled Yes, plus Generic.ID = Ship_ and Generic.Type = Vessel. The booleans follow one pattern - the six destructible part types each carry the same four-boolean core (IsDestructible, IsInvolved, IsRadarVisible, IsShielded), Turret_??? adds IsAuto, Generic carries only IsDestructible, and NS_* has its own pair AttenuationAlpha / AttenuationVolume. 28 + 2 = 30; 7 fully-typed records + 8 with examples = 15. The third result is a refutation of my own instrument. Testing the four genuinely-undeclared effects against the 166 .xpr packages put eff_f0002 and eff_f0002_barn in Base.xpr and found nothing for eff_e0044 or eff_h308 - but the control kills the negative: eff_n0071, which we measured LIVE as an Explosion record's ExplosionFxModel, also returns nothing from the same search. A known-live name the test cannot find means the test has no power here. Only the positive half counts: eff_f0002/_barn do ship. Nothing follows about eff_e0044 or eff_h308, and the earlier "no mesh" remarks about eff_e0058/_e0059/_e0060 are weaker than written - absent from a byte search over .xpr is not absent from the disc. How an effect mesh is actually reached is now the open question, since eff_n0071 is not a plain name string in any of the 166 packages. All sixteen artefacts byte-identical.
This commit is contained in:
@@ -6649,3 +6649,31 @@ real names are typed in 6 instances and untyped in the rest (`Generic` 6 of
|
||||
3 651, the others 6 of 684).
|
||||
|
||||
New artefact: `tools/re-capture/datasheet_schema.py` → `docs/re/data/datasheet-schema.txt`.
|
||||
|
||||
---
|
||||
|
||||
## ✅❌ 2026-08-28 — the unit family is the only schema; and an `.xpr` search can't prove absence
|
||||
|
||||
Item (a).
|
||||
|
||||
✅ **Only one schema exists.** Two exhaustive probes agree: the six Shift-JIS
|
||||
type words occur in the six `GP_MAIN_GAME_*` paks and nowhere else, and a
|
||||
disc-wide sweep for wildcard-shaped record names (`???`, `*`, `###`, `NNN`,
|
||||
`<…>`) returns **7 distinct names — exactly the seven already in the schema**,
|
||||
each ×6. The weapon datasheet, arsenal item and `StageResource` ship **none**.
|
||||
Wildcard *field* names are likewise confined to the schema records.
|
||||
|
||||
✅ **No untyped gaps: 30 of 30 slots hold examples.** 28 `Yes` booleans plus
|
||||
`Generic.ID = Ship_` and `Generic.Type = Vessel`. The six destructible part
|
||||
types each carry the same four-boolean core (`IsDestructible`, `IsInvolved`,
|
||||
`IsRadarVisible`, `IsShielded`); `Turret_???` adds `IsAuto`; `NS_*` has
|
||||
`AttenuationAlpha`/`AttenuationVolume`. **7 records fully typed + 8 with
|
||||
examples = 15.**
|
||||
|
||||
❌ **The `.xpr` byte search has no power for effects — the control refuted the
|
||||
instrument.** `eff_f0002`/`eff_f0002_barn` do appear in `Base.xpr`, but
|
||||
`eff_n0071`, which is *measured live*, **also returns nothing**. So no
|
||||
conclusion follows for `eff_e0044`/`eff_h308`, and the earlier "no mesh" remarks
|
||||
about `eff_e0058`/`_e0059`/`_e0060` are weaker than written. ❔ **Open: how an
|
||||
effect mesh is actually reached**, since `eff_n0071` is not a plain name string
|
||||
in any of the 166 packages.
|
||||
|
||||
@@ -81,3 +81,39 @@ disc declares, rather than types inferred from sampled values.
|
||||
|
||||
Regenerate with `tools/re-capture/datasheet_schema.py` →
|
||||
[`docs/re/data/datasheet-schema.txt`](../data/datasheet-schema.txt).
|
||||
|
||||
## ✅ The unit family is the only schema on the disc
|
||||
|
||||
Two independent probes, both exhaustive, both landing on the same 15 records:
|
||||
|
||||
* **the type words** — the six Shift-JIS type names occur in the six
|
||||
`GP_MAIN_GAME_*` paks and nowhere else;
|
||||
* **the wildcard names** — sweeping every parsed record name disc-wide for a
|
||||
`???`, `*`, `###`, `NNN` or `<…>` shape returns **7 distinct names**, and they
|
||||
are *exactly* the seven already in the schema (`Turret_???`, `Hatch_???`,
|
||||
`Bridge_???`, `Thruster_???`, `ShieldGenerator_???`, `Versatile_???`, `NS_*`),
|
||||
each ×6.
|
||||
|
||||
So the weapon datasheet, the arsenal item and `StageResource` ship **no**
|
||||
schema — the unit datasheet is the only structure the disc describes to itself.
|
||||
The wildcard *field* names are likewise confined to the schema records:
|
||||
`NozzleSpec_???`, `NozzleFrame_???`, `CannonFrame_???`, `MuzzleFrame_???`.
|
||||
|
||||
## ✅ Every untyped slot is an example — 30 of 30, no gaps
|
||||
|
||||
The full untyped residual across all 15 schema records is **30 slots**, and
|
||||
every one holds a sample value rather than a missing type:
|
||||
|
||||
* **28 booleans** spelled `Yes`, and they follow one pattern — the six
|
||||
destructible part types (`Turret_???`, `Hatch_???`, `Bridge_???`,
|
||||
`Thruster_???`, `ShieldGenerator_???`, `Versatile_???`) each carry the same
|
||||
four-boolean core **`IsDestructible`, `IsInvolved`, `IsRadarVisible`,
|
||||
`IsShielded`**; `Turret_???` adds `IsAuto`; `Generic` carries only
|
||||
`IsDestructible`; `NS_*` has its own pair `AttenuationAlpha` /
|
||||
`AttenuationVolume`;
|
||||
* `Generic.ID` = `Ship_` (the prefix) and `Generic.Type` = `Vessel` (the enum).
|
||||
|
||||
`28 + 2 = 30`. **Seven of the fifteen records are fully typed** (`Maneuver`,
|
||||
`Shield`, `Mass`, `SE`, `Explosion`, `Effect`, `StructureCount`) and eight carry
|
||||
examples: `7 + 8 = 15`. There is no field anywhere in the schema whose type the
|
||||
disc leaves unstated.
|
||||
|
||||
@@ -251,3 +251,23 @@ This is the direct contrast to the previous iteration's refutation — `_all` /
|
||||
`_child` was **1** of 166 with one stem and is not a convention; `_hangar` is
|
||||
**59** of 166 with zero partials and is. Suffix conventions in this corpus are
|
||||
worth testing precisely because they are not all real.
|
||||
|
||||
### ❌ An `.xpr` byte search cannot answer "does this effect ship"
|
||||
|
||||
Testing the four genuinely-undeclared effects against the 166 `.xpr` packages
|
||||
gave `eff_f0002` and `eff_f0002_barn` in `Base.xpr`, and nothing for `eff_e0044`
|
||||
or `eff_h308`. **But the control refutes the instrument, not the effects:**
|
||||
`eff_n0071` — measured *live*, bound by an `Explosion` record's
|
||||
`ExplosionFxModel` — **also returns nothing** from the same search.
|
||||
|
||||
A known-live name the test cannot find means the test has no power here. So:
|
||||
|
||||
* `eff_f0002` / `eff_f0002_barn` **do** have a mesh in `Base.xpr` (presence is
|
||||
still evidence when it is positive);
|
||||
* nothing follows about `eff_e0044` or `eff_h308`, and the earlier remark that
|
||||
`eff_e0058`, `eff_e0059` and `eff_e0060` "have no mesh" should be read the same
|
||||
way — **absent from a byte search over `.xpr` is not absent from the disc**.
|
||||
|
||||
Whatever ships `eff_n0071` is not a plain name string inside those 166 files,
|
||||
so effect meshes must be reached some other way. Finding that route is the open
|
||||
question; until then, only the positive half of this test counts.
|
||||
|
||||
Reference in New Issue
Block a user