hide_p: 1 to hide the element from the default display, 0 (default) to show it.

aggregate: Aggregate function to use on this column. Can be 'sum', 'average', or 'count'.
The aggregate will be displayed at the bottom of the table. If groupby is used, aggregates for each
group will also be displayed.

aggregate_label: The label to use for the aggregate, e.g. "Total".

aggregate_group_label: The label to use for the group aggregate, e.g. "Subtotal".

html: HTML attributes to be output for the table element, e.g. { align right style "background-color: yellow;" }.
Value should be a Tcl list with { name value name value }

display_col: The column to display for this element, if not the column with the same name as the element.

display_template: An ADP chunk used to display the element. This overrides all other display options.
You can use @multirow_name.column_name@ to get values of the multirow, and you can directly use the variables
specified in the 'pass_properties' argument to the template::list::create.

display_template_name: theme-able template. If a
display_template_name is specified, and a file with this name is
available from the ressource directory in the display_templates
section, then take its countent as display_template. The resouce
directory is taken from the ResourceDir of the theme (parameter of
acs-sub-site) or from the "resources" directory in acs-templating.
The display_template_name acts similar to the query names in
the database interface: When display_template_name is specified
and the file is available, it overrules display_template, which
acts as a default.

link_url_col: Name of column in the multirow which contains the URL to which the cell contents should point.
If either link_url_col or link_url_eval is specified, the cell's contents will be made a link to the specified URL, if that
URL is non-empty.

link_url_eval: A chunk of Tcl code which will be evaluated in the context of a template::multirow foreach looping over the
dataset multirow, to return the URL to link this cell to. This means that it will have all the columns of the multirow available
as local variables. Example: link_url_eval {[acs_community_member_url -user_id $creation_user]}.

link_html: Attributes to be set on the <a> tag of the link generated as a result of link_url_col or link_url_eval.
For example link_html { title "View this user" style "background-color: yellow;" }.
Value should be a Tcl list with { name value name value }

csv_col: The column to return in CSV output.

sub_class: The second half of the CSS class name. Will be combined with the list's 'main_class' property to form
the full CSS class name with a dash in-between, as in 'main-sub'.

class: Alternatively, you can specify full class here, in which case this will override the sub_class property.

orderby: The column to use in the order by clause of the query, when sorting by this column. Specifying either this,
or 'orderby_asc' and 'orderby_desc' will cause the table's header to become a hyperlink to sort by that column.

orderby_asc: If you want to be able to sort by this column, but sorting ascending and descending is not just a matter of
appending 'asc' or 'desc', you can specify the asc and desc orderby clauses directly. This is useful when you're actually sorting
by two database columns.

orderby_desc: The reverse ordering from 'orderby_asc'.

default_direction: The default order direction when ordering by this column, 'asc' or 'desc'.

type: The type of values this filter sets. Also see 'values' below. Valid options are: 'singleval', meaning that the
value is a single value of a query variable with the name of the filter; 'multival', meaning the the value is really a Tcl list of values,
sent to a :multiple page variable; and 'multivar', meaning that the value is a list of (key value) lists, as in { { var1 value1 } { var2 value 2 } }.
'multival' is useful when you're filtering on, say, a date range, in which case you'd send two values, namely the start and end date.
'multivar' is useful when you want the selection of one filter to change the value of another filter, for example when selecting groupby, you also
want to order by the grouped by column, otherwise the groupby won't work properly (you'll get a new group each time the value changes, but it's not sorted
by that column, so you'll get more than one group per value over the entire list).

add_url_eval: An expression which will be uplevel subst'ed with a magic
variable __filter_value set to the value of the given filter.

values: A list of lists of possible filter values, as in { { label1 value1 count1 } { label2 value2 count2 } ... }.
The 'label' is what's displayed when showing the available filter values. 'value' is what changes filter values, and, depending on 'type' above,
can either be a single value, a list of values, or a list of ( name value ) pairs. 'count' is optional, and is the number of rows that match the
given filter value.

has_default_p: If set to 1, it means that this filter has a default value, and thus cannot be cleared. If not set, the list builder will automatically
provide a link to clear the currently selected value of this filter. You only need to set this if you specify a default value in your page's ad_page_contract,
instead of through the 'default_value' property below.

default_value: The default value to use when no value is selected for this filter. Automatically sets has_default_p to 1.

where_clause: What should go in the where clause of your query when
filtering on this filter. For example "l.project_id = :project_id".

where_clause_eval: Same as where_clause, except this gets evaluated in the caller's context.

other_label: If your values above do not carry all possible values, we can display a special
'other' value when some other value is selected for this filter. You specify here what label should
be used for that element.

form_element_properties: If you are using filter form, additional properties to override the form element declaration. Any valid form properties can be passed using the same names are template::element::create. A list of name value pairs.

style: The name of the template to used to render this format. Defaults to the name of the layout, and can be overridden in the ADP file.

output: Output format, can be either 'template' or 'csv'. If 'csv'. then the output is streamed directly to the browser
and not through the templating system, but you have to call
template::list::write_output from your page to make this work.

page_size: The page size for this format. Leave blank to use the list's page size.

elements: 'table' layout: An ordered list of elements to display in this format.

row: 'table' layout: For more complex table layout, you can specify each row individually. The value is an array-list of ( element_name spec ) pairs.
You can have more than one 'row' property, in which case your output table will have more than one HTML table row per row in the data set.
In the 'spec' part of each element listed in the row, you can specify properties that override the properties defined in the -elements section
of template::list::create, thus changing the label, link, display_col, etc.

template: 'list' layout: An ADP chunk to be used for display of each row of the list. Use
<listelement name="element_name"> to output a list element in your template.