# MSC3604: Room Version 10

A new room version, `10`, is proposed using [room version 9](https://spec.matrix.org/v1.2/rooms/v9/) as a base
and incorporating the following MSCs:

* [MSC3667](https://github.com/matrix-org/matrix-spec-proposals/pull/3667) - Enforcing integer parsing on power levels
* [MSC3787](https://github.com/matrix-org/matrix-spec-proposals/pull/3787) - Allowing knocks to restricted rooms

Though other MSCs are capable of being included in this version, they do not have sufficient implementation to be
considered stable enough for v10 rooms. A future room version may still include them. Such examples of ineligible MSCs
are:

* [MSC2244](https://github.com/matrix-org/matrix-spec-proposals/pull/2244) - Mass redactions
* [MSC2174](https://github.com/matrix-org/matrix-spec-proposals/pull/2174) - Move `redacts` to sane place
* [MSC2176](https://github.com/matrix-org/matrix-spec-proposals/pull/2176) - Update to redaction rules
* [MSC2175](https://github.com/matrix-org/matrix-spec-proposals/pull/2175) - Remove extraneous `creator` field
* [MSC2828](https://github.com/matrix-org/matrix-spec-proposals/pull/2828) - Restrict allowed user IDs over federation
* [MSC1229](https://github.com/matrix-org/matrix-spec-proposals/issues/1229) - Mitigating abuse of `depth`

Room version 10 upon being added to the specification shall be considered stable. No other room versions are affected
by this MSC.

## Unstable prefix

Implementations looking to test v10 before written into the specification should use `org.matrix.msc3604.opt3`
as the room version, treating it as unstable.

Other prefixes in the wild:
* `org.matrix.msc3604.opt1`: `v9` + MSC2176 (https://github.com/matrix-org/synapse/pull/11662)
* `org.matrix.msc3604.opt2`: `v9` + MSC2176 + MSC3667 (https://github.com/matrix-org/synapse/pull/11885)
