# `BoundedAuthorityProtocol.RoleAttestation.V1.ExpectedAttestation`
[🔗](https://github.com/baselabs/bounded_authority_protocol/blob/v1.0.0/lib/bounded_authority_protocol/role_attestation/v1/expected_attestation.ex#L1)

Exact expected context for one role attestation: attestor trust, subject binding, now, bounds.

## Fields

* `attestor` - the `BoundedAuthorityProtocol.V1.HistoricalPublicKey` of the attestor you trust
  (key id, raw 32-byte key and validity window); the attestation window must lie inside it.
* `subject_key_id` - the subject key identifier the attestation must name.
* `subject_public_key` - the subject's raw 32-byte Ed25519 public key the attestation must name.
* `now` - the caller's current time, integer Unix time in seconds; it must lie in `[nbf, exp)`.
  The library reads no clock.
* `bounds` - a `BoundedAuthorityProtocol.V1.Bounds` struct or a map of tightening overrides; `%{}`
  means the profile maxima (see `BoundedAuthorityProtocol.V1.Bounds.coerce/1`).

# `t`

```elixir
@type t() :: %BoundedAuthorityProtocol.RoleAttestation.V1.ExpectedAttestation{
  attestor: BoundedAuthorityProtocol.V1.HistoricalPublicKey.t(),
  bounds: BoundedAuthorityProtocol.V1.Bounds.t() | map(),
  now: integer(),
  subject_key_id: binary(),
  subject_public_key: binary()
}
```

Expected context for `BoundedAuthorityProtocol.RoleAttestation.V1.verify_attestation/2`.

---

*Consult [api-reference.md](api-reference.md) for complete listing*
