Problem
UsePencuil exposes order and inputOrder, but neither controls when IPencuilView.Build runs among IUpdatable services:
order is passed only to PencuilRenderer and controls render ordering.
inputOrder controls mouse, keyboard, and text-input subscription priority.
PencilSystem calls IPencuilView.Build during its IUpdatable.Update, but it does not implement IOrderable, so its update order is always 0.
Pencuil is immediate-mode: button and field actions are produced during Build. Applications therefore cannot explicitly place UI action processing before or after simulation and presentation updates. The generic name order also makes the distinction easy to miss. This is longstanding behavior, not a regression.
Proposed direction
Expose an explicit Pencuil update/build order and apply it to PencilSystem through IOrderable. Keep render order and input subscription priority independently configurable, and clarify their names or API documentation.
Acceptance criteria
- Callers can explicitly order
IPencuilView.Build relative to other IUpdatable services.
- Pencuil render order remains independently configurable.
- Pencuil input subscription priority remains independently configurable.
- The API or documentation clearly distinguishes build/update, render, and input ordering.
Problem
UsePencuilexposesorderandinputOrder, but neither controls whenIPencuilView.Buildruns amongIUpdatableservices:orderis passed only toPencuilRendererand controls render ordering.inputOrdercontrols mouse, keyboard, and text-input subscription priority.PencilSystemcallsIPencuilView.Buildduring itsIUpdatable.Update, but it does not implementIOrderable, so its update order is always0.Pencuil is immediate-mode: button and field actions are produced during
Build. Applications therefore cannot explicitly place UI action processing before or after simulation and presentation updates. The generic nameorderalso makes the distinction easy to miss. This is longstanding behavior, not a regression.Proposed direction
Expose an explicit Pencuil update/build order and apply it to
PencilSystemthroughIOrderable. Keep render order and input subscription priority independently configurable, and clarify their names or API documentation.Acceptance criteria
IPencuilView.Buildrelative to otherIUpdatableservices.