A structured log entry passed to the sink.
Maps 1:1 to the OpenCode SDK's client.app.log() body shape: { service, level, message, extra? }
The sink receives all fields so it can delegate to the SDK with the correct level — not a pre-formatted string that loses level information.
Log level: "debug" | "info" | "warn" | "error" (never "silent").
Caller identity (e.g. "plugin", "policy", "audit").
Human-readable message.
Optional
Optional structured metadata.
A structured log entry passed to the sink.
Maps 1:1 to the OpenCode SDK's client.app.log() body shape: { service, level, message, extra? }
The sink receives all fields so it can delegate to the SDK with the correct level — not a pre-formatted string that loses level information.