Jedno pole podle svého kind. Nezná žádnou doménu — množinu voleb i překlady dodává volající.
kind: "options" a množinu voleb zná jen ta obrazovka — dodá se přes renderOptions.IngotForm k tomu přidá popisky i nápovědy a ušetří ti je opisovat.IngotFieldSpec má pevný výčet kind; nový se přidává k němu, ne obcházením primitiva.IngotField, které si popisek, nápovědu i chybu nese s sebou. Tohle primitivum je schválně bez popisku, protože ho nad ním skládá IngotForm.field: IngotFieldSpec — Popis pole; kind rozhoduje, co se vykreslí.value: unknown — Aktuální hodnota. Pole je řízené.onChange: (next: unknown) => void — Nová hodnota už převedená na typ podle kind.testId: string — data-testid vstupu. Povinné — E2E na něm visí.disabled: boolean — Zamkne vstup, typicky po dobu mutace.className: string — Třída vstupu.renderOptions: (args) => ReactNode — Výběr z pojmenované množiny. Bez něj se kind options vykreslí jako vypnutý select jen s aktuální hodnotou.secretPlaceholder: (field: IngotFieldSpec) => string — Vlastní text tajného pole místo slovníku IngotProvider.