Normalized observation — the sole input surface of the pure firewall engine.
The pure core NEVER parses protocol envelopes. Phase 81 is responsible for
extracting these fields from raw message envelopes before calling evaluate().
Param: napplet
dTag — version-agnostic identity key ("any version").
Keyed by dTag only (not dTag:hash) so rate limits are
shared across all versions of the same napplet.
Param: opClass
Operation class string, e.g. 'relay:write', 'outbox:publish',
'intent:invoke'. Treated as an opaque key by the engine.
Param: kind
Nostr event kind (5 = delete). Present for publish-style ops.
Param: size
Payload byte size. Present when known (e.g. relay:write).
Param: initElapsedMs
Milliseconds since this napplet window initialized.
Used by the init-burst guard (BURST-01).
Param: focused
Whether this napplet is the currently focused window.
Shell-owned and forge-proof; never self-reported.
Param: msSinceFocusGain
Milliseconds since this napplet last gained focus.
Used by content matchers (CONTENT-02).
Param: now
Injected timestamp (Unix ms). evaluate() MUST never read a
wall clock — this field makes the function pure and deterministic.
Normalized observation — the sole input surface of the pure firewall engine.
The pure core NEVER parses protocol envelopes. Phase 81 is responsible for extracting these fields from raw message envelopes before calling evaluate().
Param: napplet
dTag — version-agnostic identity key ("any version"). Keyed by dTag only (not dTag:hash) so rate limits are shared across all versions of the same napplet.
Param: opClass
Operation class string, e.g. 'relay:write', 'outbox:publish', 'intent:invoke'. Treated as an opaque key by the engine.
Param: kind
Nostr event kind (5 = delete). Present for publish-style ops.
Param: size
Payload byte size. Present when known (e.g. relay:write).
Param: initElapsedMs
Milliseconds since this napplet window initialized. Used by the init-burst guard (BURST-01).
Param: focused
Whether this napplet is the currently focused window. Shell-owned and forge-proof; never self-reported.
Param: msSinceFocusGain
Milliseconds since this napplet last gained focus. Used by content matchers (CONTENT-02).
Param: now
Injected timestamp (Unix ms). evaluate() MUST never read a wall clock — this field makes the function pure and deterministic.