Skip to content

Parity: engine now accepts flat-form pack-namespaced component keys — assembler classifiers don't #652

Closed

Description

@apotema

labelle-toolkit/labelle-engine#806 widened the engine's flat-form key classification: <prefix>__<Pascal> keys at entity scope are now real component keys (previously silently dropped — the FP "flat pack component won't attach" trap). Assembler-side classifiers still treat only PascalCase (+@) as flat content:

  • scene_manifest.isAllowedTopLevelKey rejects a flat namespaced key at a file's TOP level (UnknownSceneKey) — now a false rejection of a shape the engine accepts;
  • hasFlatEntityShapeKey / checkHybridForm don't count namespaced keys, so namespaced-flat + wrapper mixes aren't flagged as hybrid while the engine warns wrapper-wins-and-drops;
  • scene_name_lint.collectComponentRefs misses flat namespaced refs at entity scope (.entity => isPascalCase);
  • pack_refs pass 1 wrapper migration doesn't move flat namespaced pairs (mostly moot for packs — pass 2 rewrites bare names before they're namespaced — but game-root files can author them directly).

Fix shape: share one isComponentKeyShape twin (byte-parity with engine unified_format) across these sites, mirroring how isTargetKey was propagated in #650.

Refs: labelle-toolkit/labelle-engine#806, #650, #651.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions