# description
Declarative, server-evaluated push trigger rules for a Backlit glow. The optional 4th bundle file. Schema validation is UX only; the Backlit deploy validator re-checks every security invariant in Go independently of this schema.

# $defs.rule.properties.id.description
Author-chosen unique rule id (RFC-3986 unreserved charset).

# $defs.rule.properties.when.description
AND-combined conditions over the write payload. Empty/absent = always match.

# $defs.eventMatch.properties.store.description
Which storage silo a write must land in to fire the rule. userdata is not a trigger surface in v1.

# $defs.eventMatch.properties.op.description
Write verb. data/records use set/delete; capture uses create/update. The Go validator re-checks op is valid for the store.

# $defs.eventMatch.properties.key.description
Optional key-prefix filter. Empty/absent = any key in the store.

# $defs.condition.properties.field.description
Dotted path into the JSON write payload, e.g. "rsvp.status".

# $defs.condition.properties.op.description
Comparison operator. All ops except exists require value.

# $defs.condition.properties.value.description
Comparison operand. Required unless op is exists.

# $defs.target.properties.roles.description
Deliver to every allowlisted user whose glow permission is one of these roles.

# $defs.target.properties.owner.description
Deliver to the record's owner. Only valid when store == records.

# $defs.target.properties.field.description
DEFERRED (post-v1). The Go validator rejects any rule that sets this.

# $defs.message.properties.title.description
Notification title. Static text; only {count} is interpolated at send time.

# $defs.message.properties.body.description
Notification body. Static text; only {count} is interpolated.

# $defs.message.properties.summary.description
Coalesced-summary text. Static; only {count} is interpolated.

# $defs.message.properties.url.description
Same-origin path opened on tap. The Go validator normalizes to a same-origin path.

# $defs.message.properties.icon.description
Same-origin path to a notification icon. Normalized like url.

# $defs.message.properties.badge.description
Same-origin path to a notification badge. Normalized like url.

# $defs.coalesce.properties.key.description
Optional coalesce-bucket key. Absent = coalesce by rule id.

# $defs.coalesce.properties.window.description
Coalesce window as a Go duration (e.g. "5m"). Clamped to 15m by the Go validator.

# $defs.schedule.properties.field.description
Dotted path to an RFC-3339 UTC timestamp in the payload; the send defers to that time. Mutually exclusive with coalesce.