{{#if interface_declarations}}
## **PROTOCOLS**
{{#each interface_declarations}}
## {{rpn name}} {#{{rpn name}}}
{{> filename }}

{{> doc ~}}

{{#each methods}}
### {{rpn name}} {#{{methodId (rpn name) ../name}}}

{{> doc ~}}

{{#if has_request}}
#### Request
<table>
    <tr><th>Name</th><th>Type</th></tr>
    {{#each maybe_request ~}}
        <tr>
            <td><code>{{~ name ~}}</code></td>
            <td>
                <code>
                    {{~> type ~}}
                </code>
            </td>
        </tr>
    {{~ /each ~}}
</table>
{{~ /if}}

{{#if has_response}}
#### Response
<table>
    <tr><th>Name</th><th>Type</th></tr>
    {{#each maybe_response ~}}
        <tr>
            <td><code>{{~ name ~}}</code></td>
            <td>
                <code>
                    {{~> type ~}}
                </code>
            </td>
        </tr>
    {{~ /each ~}}
</table>
{{~ /if}}
{{/each ~}}
{{~ /each ~}}
{{~ /if ~}}