pub struct Proposal<'a> {
pub id: String,
pub at: Instant,
pub actor: &'a dyn Viewer,
pub command: Value,
}Expand description
One client’s proposal, as the merge point sees it.
The reply channel is not here: what a host does with a Decision — a oneshot, a returned
frame, a postMessage — is the host’s business, and is the one part of ingress that genuinely
differs between a server and a tab.
Fields§
§id: StringThe idempotency key that makes a retry after a reconnect safe (§4.3).
at: InstantWhen the merge point admitted it — the one place time enters (§3.7), read by the host from the clock it was configured with and data from here onwards.
actor: &'a dyn ViewerWho is proposing. A &dyn rather than a type parameter because the two hosts genuinely
have different ones: a connection supplies a verified actor with claims, and a test or a tab
supplies a name.
command: ValueThe command, already decoded against the program’s own Command union.