Assay engine — workflow + dashboard as a crate or standalone binary.
Phase 3 composes assay-workflow and assay-dashboard behind one HTTP
port. Auth (assay-auth) is reserved for Phase 8 — feature-gated
behind auth so the crate compiles identically with or without it
until the auth modules land.
See plan 12 § Architecture principle 1 for the composition model and § Architecture principle 8 for the runtime/engine split.