Assembles a normalized forensic evidence bundle from raw attrs.
Related evidence key normalization
Related evidence items may arrive with binary keys (from JSON-decoded payloads or
host-app forensics integrations). The following keys are normalized to atoms so that
downstream consumers (e.g., ForensicsLive) can access them via atom dot-syntax:
@related_evidence_atom_keys ~w(title summary provenance type resource_id resource_type)aUnknown binary keys are preserved as binaries (Phase 41 D-28 / Phase 34 D-09 partial-evidence posture). Downstream consumers must handle binary-key fall-throughs rather than relying on atom access for unknown keys. Unknown keys do NOT grow the atom table.
The compile-time module attribute ensures all known atoms are interned at module load,
so String.to_existing_atom/1 cannot raise for known keys at runtime regardless of
module-load ordering.