Represents an approval request emitted by a provider CLI.
@type t() :: %CliSubprocessCore.Payload.ApprovalRequested{ approval_id: String.t() | nil, details: map(), extra: map(), metadata: map(), subject: String.t() | nil }
@spec new(keyword() | map() | struct()) :: struct()
@spec parse(keyword() | map() | struct()) :: {:ok, struct()} | {:error, {:invalid_payload, module(), CliSubprocessCore.Schema.error_detail()}}
@spec parse!(keyword() | map() | struct()) :: struct()
@spec schema() :: Zoi.schema()
@spec to_map(struct()) :: map()