**Full Changelog**: https://github.com/eliegoudout/paramclasses/compare/v0.1.0...v0.2.2
---
- Explicit expected behaviour:
<table>
<caption>Table of Expected Behaviour</caption>
<tr>
<th rowspan="2">Operation on<br><code>Class</code> or <code>instance</code></th>
<th colspan="2">Parameters</th>
<th colspan="2">Non-Parameters</th>
</tr>
<tr>
<!-- <th>EXPECTED</th> -->
<th>Protected</th>
<th>Unprotected</th>
<th>Protected</th>
<th>Unprotected</th>
</tr>
<tr>
<!-- <td rowspan="3">BEHAVIOUR</td> -->
<td><code>getattr</code></td>
<td>Bypass Descriptors*</td>
<td>Bypass Descriptors</td>
<td>Vanilla*</td>
<td>Vanilla</td>
</tr>
<tr>
<td><code>setattr</code></td>
<td><code>ProtectedError</code></td>
<td>Bypass Descriptors</td>
<td><code>ProtectedError</code></td>
<td>Vanilla</td>
</tr>
<tr>
<td><code>delattr</code></td>
<td><code>ProtectedError</code></td>
<td>Bypass Descriptors</td>
<td><code>ProtectedError</code></td>
<td>Vanilla</td>
</tr>
</table>
*<sub>On `instance`, `getattr` should ignore and remove any `vars(instance)` entry.</sub>
- Much more extensive tests for get/set/del (and fixed `A.x` not bypassing descriptors properly
- Protected attributes: now `mappingproxy` with `owner` values. Much cleaner for ultiple inheritance (no value look-up)
- More extensive readme
- Breaking `mappingproxy` is a discovered way of breaking paramclasses
- Introduced `RawParamClass`.