ADR-0135 The helm display adds one Scope and three meter drawings
Proposes a physical instrument screen, a helm primary display, as a proof scene for field-day and field-night, and runs the six components it seemed to need through §12's refusal test before any of them is built.
#Context
§4 names two themes for conditions no office screen meets: field-day for direct sun and glare, field-night for a reader whose dark adaptation must survive the screen. ADR-0006 grounds field-night in marine and aviation night practice. No scene in the repository is set in either condition. Every fixture is a supervision screen read at a desk, so the two field themes are proved on content they were not designed for.
A helm display is the case they were designed for: a fixed landscape panel beside a physical bezel of keys, read at arm's length, in sun and at night, often with gloves. The first sketch of it asked for six new components:
| Candidate | What it draws |
|---|---|
| Readout | A large numeral with its unit and bounds |
| Dial | An arc scale with a needle, bands and a set point |
| Tape | A vertical scale with a filled bar, bands and a set point |
| Annunciator | An alarm tile, triangle for caution, octagon for warning, acknowledged by the operator |
| Softkey strip | Labels aligned to the physical keys on the bezel |
| Dimmer | A control that lowers the screen's emission at night |
§12 says to extract the rules first and then compare what remains with the built set on eight dimensions. Six new rows is the kind of pass that test exists to refuse, so it was run before a line of any of them was written.
#The test, candidate by candidate
Annunciator is status-indicator. Extract the rules and what remains is an Emitter on levels 1 to 4, vouched, acknowledgeable, not persistent, with four variants drawn as a filled disc, a ring, a filled triangle and a filled octagon. That is status-indicator on all eight dimensions, including the shapes the sketch arrived at independently. The tile is a drawing of it at a larger size, and the sustained motion an unacknowledged alarm wants is already the level 4 grant on the ladder.
Dial, Tape and Readout are meter. Each reads one value against its limit and reports one of the three threshold states. Against meter they are identical on the six tier axes, and on D4 they owe what meter owes: a label naming what is measured. What separates them is how the value is drawn: an arc, a vertical bar, a numeral. §12 puts drawing in geometry, downstream of level and variant, and not an identity axis. ADR-0104 settled the nearest case the same way: a trend added a series and no rule, so it joined as a meter over time. These add less than that. They are the meter drawn three more ways.
The set point is data. It is a second reference on the same scale, owned by the operator rather than observed. Data does not separate a component (ADR-0104), and the vouching question it raises belongs to the value, which is observed, not to the mark.
Unit and bounds are owed by the drawing, not by a new row. ADR-0089 made range a required part of number-input because a number without its unit is not a reading. The meter as built renders value of max, with the unit optional and the lower bound fixed at zero. For the bar that is enough: the track draws the bounds as a length and the reading states the capacity. The figure has no track, so the numeral would be the only statement, and 71 of 90 misreads an instrument whose 90 is a limit rather than a capacity and whose scale starts at 40. So the figure drawing requires unit and range, with range in the product's words as number-input's is, and takes an optional min for its accessible value. The bar is unchanged and its callers keep compiling. The requirement is enforced in the props type, a union on drawing.
Softkey strip is a new Scope. Each key label is a button: interactive, levels 1 to 3, one governed part. The strip is not an Arbiter ranking them; the order of the keys is fixed by the hardware. It is a place. ADR-0073 holds that a Scope is a place and that two fixed places are two Scopes, and region is the Scope for a place the composer defines. The bezel strip is a place neither the component nor the composer defines. The hardware defines it, and a label that drifts from its key is a wrong label. That is a new Scope, bezel, and the only new row this record proposes.
The alarm strip is a region. The top of the screen holds annunciators because the composer put them there. Nothing about the hardware fixes it.
Dimmer is a rule, and not one for this record. Extract its rule and nothing remains: it scales emission, which is the budget engine's input, not a component on the screen. Where the screen's backlight is a physical control it is not drawn at all. The question it raises, whether field-night's ceiling is a constant or a range an operator moves within, is a budget engine question and is deferred to its own record.
#Decision
The helm primary display is built as a proof scene in field-day and field-night, and it adds one component to the roster.
bezel, a Scope for a place the hardware defines. It holdsbuttons, in hardware order, at the size and spacing the physical keys set. Its record is written in the unit that builds it.metergains three drawings,arc,tapeandfigure, beside its existing bar, with a set point as optional data on the first two. They are a geometry choice within one component and share its levels, variants, shapes and copy.- Annunciators are
status-indicatorat the scene's size, placed in aregion. - No readout, dial, tape, annunciator or dimmer component is added.
The scene is designed in field-night first, per §4, and then promoted to field-day, where the no-hairline minimum, heavier weights and larger targets already apply through the tier.
#Rejected options
Build all six. It matches how instrument panels are usually specified, and the names are familiar to anyone who has worked on one. It lost because four of the six are identical to built components on all eight dimensions, and §12 says two components alike on all eight are one. A system that refused acknowledge (ADR-0050) and tag (ADR-0121) on that ground cannot add an annunciator beside status-indicator.
A separate gauge component for the arc and the tape, keeping meter as the bar. It would keep the meter's contract unchanged and let the arc carry bands and a set point without touching an accepted record. It lost because the separation would rest on drawing alone, which §12 places outside identity, and because a set point is data. A gauge that survives only on its shape is a component whose separation no check can see.
Make the softkey strip a button-group. It is a row of buttons, and button-group is the Arbiter for buttons. It lost because button-group ranks its members, and the bezel strip does not rank anything; the hardware sets the order. What the strip owes is a place, which is a Scope's ground.
A dimmer component that sets an emission scale. It would make night dimming visible and testable in the scene. It lost because the component would hold no allocation, draw nothing the budget governs, and exist to carry a rule about the budget itself. That rule deserves its own record, written against the engine it changes.
#Consequences
Four units follow, in order. The meter drawings, starting with figure because the other two place their numerals with it. figure is built: it is the first component to take text-display, which ADR-0132 recorded as held for page prose, because at the helm the numeral is the whole mark rather than a label on one. tape is built: a vertical track filled from the bottom with the figure's numeral beside it, its length set by the scene, and an optional set point drawn across the track in border-strong at the heaviest usable border, overhanging the track so it differs from the fill's edge in shape. Rendering both drawings in both field themes found two things. The bar's default fill reads --wr-brand-bold, which the four-theme tier does not emit, so a meter with no threshold state draws no fill outside the docs shell; the new drawings take the tier's level 1 mark instead, and the bar is left for its own record. And in field-night the set point is faint, because border-strong sits near the ground there; whether an operator's set point is structure or a mark is for the scene unit to settle against the budget. arc is built: a dial of 240 degrees opening at the bottom, the reading as an arc along it in the same fill the tape takes, the set point as the tape's notch turned radial, and the figure's numeral in the middle with the range in the opening. It adds no tokens; its track is the tape's breadth and its notch the tape's weight, drawn as strokes that do not scale with the box. The three drawings share one numeral, so a reading says the same thing in each. bezel is built: a persistent Scope at one rung, matching the shell panels on every tier axis and separated by its place. It takes the keys as a list in hardware order, one slot per key, and an idle key is null and keeps its slot. Its one part, name, is the strip's accessible name and is not drawn, because every position along the strip belongs to a key. The key count reaches the stylesheet through the grid's own equal tracks rather than a computed property, since a single rung Scope sets nothing per instance. The scene is built: fixture 77, a helm primary display in field-night with an alarm strip, four tapes, an arc, two figures and the bezel, and its three themed siblings. All four pass: every Scope calm, the one Directed element the oil pressure caution, no Demanded element, and both renders exact. Its first darwin-arm64 values are recorded; linux-x64 is recorded from CI as every scene before it was. The set point stays in border-strong. In field-night it sits at L 0.30 against the track's 0.15 and the raised ground's 0.10, darker than the fill it crosses, so it is quiet and present. The meter's record already calls a threshold structure on the track rather than a state of the system, and the trend draws its limit the same way; a set point is the operator's reference, not a signal, and the theme is doing what it exists to do. Set in real type in Storybook, the scene showed one more thing: in field-day the tape and arc tracks were invisible, because their surface-inset track resolves to the same value as the surface-raised panel there and in interior-dark. The two drawings now draw their track in scale-color, resolving to border-subtle, which differs from the raised ground in all four themes. Only scene 77's three themed siblings moved; in field-night the two roles are the same value. The bar keeps its track, and its own record should ask the same question. Then the helm scene and its fixtures in both field themes. The scene is a new fixture, so that unit runs the budget suite that reads it, per the project's usage rules.
The roster grows by one, not six. ADR-0021 gains bezel in section F, which makes the roster 37, and tokens:verify checks its axes like any other row.
field-night gets a scene it was built for. Its hue lock (ADR-0006) is exercised by alarms, bands and a set point, which is the densest use of shape as the only encoding the system has attempted.
Touches the Theme completeness row of the enforcement table through the new component tokens, and the budget fixtures through the new scene. Adds no new check.