diff --git a/ListsProtocol.wiki b/ListsProtocol.wiki
index f94f44c..28b999c 100644
--- a/ListsProtocol.wiki
+++ b/ListsProtocol.wiki
@@ -11,6 +11,27 @@
 {{{
 {
   "configuration" : {},
+  "features": {
+    "cookie_service": {
+      "enabled": <boolean>
+    },
+    "column_search": {
+      "enabled": <boolean>
+    },
+    "columns_show_hide": {
+      "enabled": <boolean>
+    },
+    "search_dialog": {
+      "enabled": <boolean>
+    },
+    "csv_export": {
+      "enabled": <boolean>
+    },
+    "global_search": {
+      "enabled": <boolean>,
+      "element_path": <jQuery_selector>
+    }
+  },
   "templates": {
     "<column>": "<template>"
   },
@@ -55,6 +76,7 @@
 {{{
 {
   "configuration" : {},
+  "features": {},
   "templates": {},
   "operations": {},
   "data": {}
@@ -96,8 +118,18 @@
   * *toolbar*: is an *array of a boolean and a string*. This should be present as displayed in the example if there are buttons to be displayed on top of the list (for example to show add/edit/delete options, see _data/operations/buttons_ details and _operations/buttons_ details.
 
 ----
+== *features* ==
+The _features_ object (optional) is used to enable/disable and/or set options to specific features of Melange lists. This can contain:
+  * *cookie_service*: is an (optional) *object* which can contain only one key, *enabled*, which is a boolean. By default is enabled, so if the object is not present the cookie service will be enabled, to be back-compatible with current lists. If it's enabled, the lists will use a cookie to store/retrieve their state between sessions.
+  * *column_search*: is an (optional) *object* which can contain only one key, *enabled*, which is a boolean. By default is enabled, so if the object is not present the column search will be enabled, to be back-compatible with current lists. If it's enabled, each column in the list can be filtered using a input (either text or select) which is appended at the top of the column itself.
+  * *column_show_hide*: is an (optional) *object* which can contain only one key, *enabled*, which is a boolean. By default is enabled, so if the object is not present the button to Show/Hide columns will be enabled, to be back-compatible with current lists. If it's enabled, a button at the bottom of the lists will appear to open a dialog to show/hide columns in the lists, as well as a checkbox on the upper right to enable/disable regexp search.
+  * *search_dialog*: is an (optional) *object* which can contain only one key, *enabled*, which is a boolean. By default is enabled, so if the object is not present the button to Show the advanced search dialog will be enabled, to be back-compatible with current lists. If it's enabled, a button at the bottom of the lists will appear that opens a dialog box to do an advanced search inside the lists.
+  * *csv_export*: is an (optional) *object* which can contain only one key, *enabled*, which is a boolean. By default is enabled, so if the object is not present the button to export to CSV will be enabled, to be back-compatible with current lists. If it's enabled, a button at the top right of the lists will appear that opens a dialog box with a CSV export of the list.
+  * *global_search*: is an (optional) *object* which can contain two keys, *enabled*, which is a boolean, and *element_path*, which is a jQuery selector that should select an input text which should be present in the page. By default is *not* enabled to be back-compatible with current lists. If it's enabled, an event of type "keyup" will be bound to the input text element to look into all the columns in the list ("OR" search) for its value. *HINT:*: if you specify the same *element_path* for more than one list in a single page, all lists with the same element selector will be filtered by the same value.
+
+----
 == *templates* ==
-The _templates_ object is used to define which columns between the ones defined in *colModel* will be substituted with a string that is built from a template. At the moment, it supports only Django-like variables like "{{ variable }}". Each variable *must* be a valid column name in *colModel*. If you have three columns with the following data _longDescription = ""_, _title = "My Title"_ and _name = "My Name"_ and use the following _templates_ object:
+The _templates_ object (optional) is used to define which columns between the ones defined in *colModel* will be substituted with a string that is built from a template. At the moment, it supports only Django-like variables like "{{ variable }}". Each variable *must* be a valid column name in *colModel*. If you have three columns with the following data _longDescription = ""_, _title = "My Title"_ and _name = "My Name"_ and use the following _templates_ object:
 
 {{{
 "templates": {
