跨插件协作
Typed events and ownership isolation between independently useful packages.
# Required Dependency
Use a required dependency only when the consumer cannot provide its product behavior without the provider. Missing or incompatible requirements block activation.
# Optional Dependency
Optional dependencies declare a deterministic fallback. The consumer remains useful when the source is absent or disabled.
# Typed Event
The host owns the versioned payload contract. A producer emits after a genuine state transition; consumers do not call producer internals or inspect producer storage.
# Ownership Isolation
Each package owns its own records. Copy only stable source identity and public presentation facts into the consumer’s owned record.
# Idempotency
Use a deterministic identity derived from source package, event, source event id and recipient. Repeated delivery must create one product effect.
# Failure Isolation
A noncritical consumer can be isolated so its failure does not reverse an already-valid producer transition. Disabled consumers do not execute.
# Reading list → notification
The reading list owns saved relations. Notification Center owns notification and idempotency records. Neither reads the other’s private data.