# `Bourse.OptionInstrument`
[🔗](https://github.com/ZenHive/bourse/blob/main/lib/bourse/option_instrument.ex#L1)

Discovered option market identity plus available quote fields.

Built by `Bourse.Unified.OptionSurface.discover/2`. Identity fields are required;
bid/ask, IV and open interest are populated only when the venue supplies them.

# `t`

```elixir
@type t() :: %Bourse.OptionInstrument{
  active: boolean() | nil,
  ask_price: number() | nil,
  base: String.t() | nil,
  bid_price: number() | nil,
  expiry: integer() | nil,
  id: String.t() | nil,
  implied_volatility: number() | nil,
  info: map() | nil,
  observed_at: integer() | nil,
  open_interest: number() | nil,
  option_type: String.t() | nil,
  quote: String.t() | nil,
  settle: String.t() | nil,
  source_timestamp: integer() | nil,
  strike: number() | nil,
  symbol: String.t() | nil,
  venue: String.t() | nil
}
```

# `schema`

```elixir
@spec schema() :: map()
```

JSON Schema for the OptionInstrument surface type.

---

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