@type t() :: %Autonomic.ProposedEffect{
approvals: [map()],
class: Autonomic.Contracts.effect_class(),
commit_attempt_id: String.t() | nil,
committed_at: integer() | nil,
created_at: integer(),
episode_id: Autonomic.Contracts.episode_id(),
epoch: Autonomic.Contracts.epoch(),
expires_at: integer() | nil,
external_receipt_ref: String.t() | nil,
failure: term() | nil,
id: Autonomic.Contracts.effect_id(),
idempotency_key: String.t() | nil,
kind: atom(),
lease_id: Autonomic.Contracts.lease_id(),
metadata: map(),
payload_digest: term(),
payload_ref: String.t(),
reversible?: boolean(),
revision: term(),
state: Autonomic.Contracts.effect_state(),
target: map(),
verifications: [map()],
version_vector: Autonomic.VersionVector.t()
}