ID

R171

Status

Backlog

Bucket

architecture

Priority

4

Theme

structural-refactor

Created

2026-05-17

Updated

2026-05-17

Fold InputType and TableInputType under sealed parent InputLikeType

GraphitronType today permits InputType (with four leaves: PojoInputType, JavaRecordInputType, JooqRecordInputType, JooqTableRecordInputType) and TableInputType as siblings. Any capability uniformly true of "things that come in as SDL input" (R94’s HasInputRecordShape, R98’s ConstraintSet-attachment slot, any future input-side carrier) must be declared on five places instead of one, and a sixth input-like variant added to GraphitronType.permits will not get a compile-time miss for the capability. Fold the two siblings under a sealed interface InputLikeType extends GraphitronType permits InputType, TableInputType, and relocate input-side capabilities onto that root. Cleanup item surfaced by R94’s capability-declaration site; deferred from R94 to keep that item narrow. Not blocking: capability interfaces declared on five sites work today, the fold tightens the sealed root so the compiler enforces the invariant.