# Cucumber Messages

Each message is an instance of [Envelope](#envelope). The `Envelope` message
will only have one of its fields set, which indicates the payload of the message.

<% @schemas.each do |key, schema| -%>
## <%= class_name(key) %>

| Field | Type | Required    | Description |
| ----- | ---- | ----------- | ----------- |
<% schema['properties'].each do |property_name, property| -%>
  <%-
  type_name = type_for(class_name(key), property_name, property)
  required = (schema['required'] || []).index(property_name)
  -%>
  <%- %>| `<%= property_name %>` | <%= type_name %> | <%= required ? 'yes' : 'no' %> | |
<% end -%>

<% end -%>