Surfaced while implementing objectui#6837 half 2, and left out of that PR to keep its diff to the arm deletion.
What was measured
packages/app-shell/src/utils/resolveActionParams.ts declares a package-internal RuntimeField interface describing an object-schema field def as the action-param resolver sees it. It carries BOTH spellings:
reference_to?: string;
reference?: string;
objectui#6837 half 2 narrowed the one read that consulted reference_to (the lookupExtras chain, which now reads param.reference ?? field.reference). After that change reference_to is declared on RuntimeField and read by nothing: a grep of the file finds the declaration and no remaining reader.
The declaration is also now describing a shape the protocol refuses. Measured on the installed @objectstack/spec 17.2.0: FieldSchema.safeParse({ name, type: 'lookup', reference_to: 'account' }) comes back unrecognized_keys carrying "Did you mean reference_to to reference?", with reference as the passing positive control. RuntimeField's values come from owner.fields[param.field] — an object schema — so no spec-compliant producer can fill that member.
Why this is observation-class
RuntimeField is not exported and not re-exported from the package barrel, so nothing outside this file can see it; the dead member changes no behaviour and no published type. It is recorded because a declared-but-unread key is the exact shape ADR-0049's enforce-or-remove rule governs, and because the next person auditing this file would otherwise have to re-derive that the member is dead.
What a fix would be
Drop the reference_to member from RuntimeField, and confirm the package typecheck stays green (nothing else in the file reads it). Small enough to ride along with any other edit to this file.
Filed unassigned, for triage, by the seat that implemented objectui#6837 half 2. Related: objectui#6837.
Generated by Claude Code
Surfaced while implementing objectui#6837 half 2, and left out of that PR to keep its diff to the arm deletion.
What was measured
packages/app-shell/src/utils/resolveActionParams.tsdeclares a package-internalRuntimeFieldinterface describing an object-schema field def as the action-param resolver sees it. It carries BOTH spellings:objectui#6837 half 2 narrowed the one read that consulted
reference_to(thelookupExtraschain, which now readsparam.reference ?? field.reference). After that changereference_tois declared onRuntimeFieldand read by nothing: a grep of the file finds the declaration and no remaining reader.The declaration is also now describing a shape the protocol refuses. Measured on the installed
@objectstack/spec17.2.0:FieldSchema.safeParse({ name, type: 'lookup', reference_to: 'account' })comes backunrecognized_keyscarrying "Did you meanreference_totoreference?", withreferenceas the passing positive control.RuntimeField's values come fromowner.fields[param.field]— an object schema — so no spec-compliant producer can fill that member.Why this is observation-class
RuntimeFieldis not exported and not re-exported from the package barrel, so nothing outside this file can see it; the dead member changes no behaviour and no published type. It is recorded because a declared-but-unread key is the exact shape ADR-0049's enforce-or-remove rule governs, and because the next person auditing this file would otherwise have to re-derive that the member is dead.What a fix would be
Drop the
reference_tomember fromRuntimeField, and confirm the package typecheck stays green (nothing else in the file reads it). Small enough to ride along with any other edit to this file.Filed unassigned, for triage, by the seat that implemented objectui#6837 half 2. Related: objectui#6837.
Generated by Claude Code