neon — the whole brand seam
A brand crate is exactly one value: the portal::hosting::Brand each compiles — its key, its telemetry service name,
and the bounded public routes listed on the previous slide. Everything else is the shared application they mount, and
the portal renders under the mounting brand's chrome, so branding the binary brands the portal too: one brand seam
carries the public site, the signed-in portal, and the telemetry identity together.
That thinness is the customization story. A custom Navigator changes minimal surface area: write your own brand crate in
the neon shape — a Brand value and a call to the shared run loop, nothing more — build it into your own
<brand>-server image, and interact with the remaining published images (navigator-workflows-service,
navigator-gateway, and the trigger images) unchanged. The two brand Containerfiles are deliberately identical modulo
the brand name, so the image recipe for a new brand is the existing one with your crate's name.