Appearance
Display Unit software
The Raspberry Pi should start a browser in kiosk mode and open the public game web application. Browser, operating-system setup, startup service, and application framework remain TBD; React with TypeScript is a likely option for the web UI.
Public view
The app should render turn information, dice results, public board state and victory points, production announcements, trades, action prompts, setup instructions, and shared messages. Data visibility must follow the eventual game rules.
The API must supply a public projection. Hiding private fields in CSS is insufficient because the data would still reach the device. Player credentials and private hands should never be part of this client's payload.
Lifecycle and errors
On startup, connect and obtain a full public snapshot. Apply subsequent updates in order. During a disconnection, show that information may be stale; resynchronize on reconnect before presenting it as current. Exact revision and retry contracts remain open.
Public interactions, if enabled, should use validated game commands rather than mutating local state as authority. Application release compatibility with the game API needs definition independently of hex firmware versions.
See software architecture and Mobile Web App for the complementary private interface.