diff --git a/protocol/0016-PFUT-product_builtin_future.md b/protocol/0016-PFUT-product_builtin_future.md
index e1b4444ac..aef2f9b70 100644
--- a/protocol/0016-PFUT-product_builtin_future.md
+++ b/protocol/0016-PFUT-product_builtin_future.md
@@ -80,7 +80,8 @@ If `max_price` is specified, mark price candidates greater than `max_price` shou
If `max_price` is specified:
- When `binary_settlement` parameter is set to `false` any value `0 <= settlement_price <= max_price` should be accepted as a settlement price.
-- When `binary_settlement` parameter is set to `true` only `settlement_price=0` or `settlement_price=max_price` should be accepted.
+- When `binary_settlement` parameter is set to `true` AND the market has been [suspended with a governance vote](./0028-GOVE-governance.md#62-suspend-the-market) any value `0 <= settlement_price <= max_price` should be accepted as a settlement price. This is needed to allow community to close the markets which never reach their termination in orderly fashion, when a price that's considered "fair" may be neither `0` nor `max_price`.
+- When `binary_settlement` parameter is set to `true` AND the trading termination was triggered only `settlement_price=0` or `settlement_price=max_price` should be accepted.
- Any other values get ignored and market does not settle, instead it still waits for subsequent values from the settlement oracle until a value which passes the above conditions arrives.
## 3. Binary options
@@ -118,7 +119,10 @@ Optional parameters:
1. When `max_price` is specified and the market is setup to use oracle based mark price and the value received from oracle is greater than `max_price` then it gets ignored and mark-to-market settlement doesn't occur until a mark price candidate within the `[0, max_price]` range arrives. (0016-PFUT-017)
1. When `max_price` is specified and `binary_settlement` flag is set to `false`, and the final settlement price candidate received from the oracle is less than or equal to `max_price` then it gets used as is and the final cashflows are calculated according to that price. (0016-PFUT-018)
1. When `max_price` is specified and the final settlement price candidate received from the oracle is greater than `max_price` the value gets ignored, next a value equal to `max_price` comes in from the settlement oracle and market settles correctly. The market behaves in this way irrespective of how `binary_settlement` flag is set. (0016-PFUT-019)
-1. When `max_price` is specified, the `binary_settlement` flag is set to `true` and the final settlement price candidate received from the oracle is greater than `0` and less than `max_price` the value gets ignored, next a value of `0` comes in from the settlement oracle and market settles correctly. (0016-PFUT-020)
+1. When `max_price` is specified, the `binary_settlement` flag is set to `true`, the trading termination trigger has been successfully received and the final settlement price candidate received from the oracle is greater than `0` and less than `max_price` the value gets ignored, next a value of `0` comes in from the settlement oracle and market settles correctly. (0016-PFUT-020)
+1. When `max_price` is specified, the `binary_settlement` flag is set to `true`, the market has been suspended via governance and another governance vote proposes to terminate the market, the termination price which is greater than `0` and less than `max_price` gets accepted and the market settles correctly. (0016-PFUT-029)
+1. When `max_price` is specified, the `binary_settlement` flag is set to `true`, the market has been suspended via governance and another governance vote proposes to terminate the market, the termination price which is equal to `0` gets accepted and the market settles correctly. (0016-PFUT-030)
+1. When `max_price` is specified, the `binary_settlement` flag is set to `true`, the market has been suspended via governance and another governance vote proposes to terminate the market, the termination price which is equal to `max_price` gets accepted and the market settles correctly. (0016-PFUT-031)
1. When `max_price` is specified and the market is ran in a fully-collateralised mode and it has parties with open positions settling it at a price of `max_price` works correctly and the sum of all final settlement cashflows equals 0 (loss socialisation does not happen). Assuming general account balances of all parties were `0` after opening the positions and all of their funds were in the margin accounts: long parties end up with balances equal to `position size * max_price` and short parties end up with `0` balances. (0016-PFUT-021)
1. When `max_price` is specified and the market is ran in a fully-collateralised mode and it has parties with open positions settling it at a price of `0` works correctly and the sum of all final settlement cashflows equals 0 (loss socialisation does not happen). Assuming general account balances of all parties were `0` after opening the positions and all of their funds were in the margin accounts: short parties end up with balances equal to `abs(position size) * max_price` and long parties end up with `0` balances. (0016-PFUT-022)
1. When `max_price` is specified and the market is ran in a fully-collateralised mode and a party opens a long position at a `max_price`, no closeout happens when mark to market settlement is carried out at a price of `0`. (0016-PFUT-023)
diff --git a/protocol/colosseo-features.json b/protocol/colosseo-features.json
index 0f5fac0be..f305a5af4 100644
--- a/protocol/colosseo-features.json
+++ b/protocol/colosseo-features.json
@@ -366,7 +366,6 @@
"0056-REWA-167"
]
},
-
"Spot stop orders": {
"milestone": "colosseo",
"acs": [
@@ -486,7 +485,8 @@
"acs": [
"0012-POSR-031",
"0012-POSR-032",
- "0012-POSR-033"]
+ "0012-POSR-033"
+ ]
},
"Order spam": {
"milestone": "colosseo_II",
@@ -636,6 +636,14 @@
"0094-PRAC-008"
]
},
+ "Misc": {
+ "milestone": "genbutemple",
+ "acs": [
+ "0016-PFUT-029",
+ "0016-PFUT-030",
+ "0016-PFUT-031"
+ ]
+ },
"Unknown": {
"milestone": "unknown",
"acs": []