--- --- A table whose content will be used to set the target object properties. -- -- @rulecomponent properties -- @param table -- @see callback --TODO add ^ -- @DOC_text_gears_matcher_properties_EXAMPLE@ --- A callback function to call *before* the `properties` have been applied. -- -- The callback is called with the current client as first argument. -- -- @rulecomponent callback -- @param function --- A table whose content will be compared to the target object current properties. -- -- @rulecomponent rule -- @param table -- @see rule_any -- @see except --- Similar to `rule`, but each entry is a table with multiple values. -- -- -- @rulecomponent rule_any -- @param table -- @see rule -- @see except_any --- The negative equivalent of `rule`. -- -- @rulecomponent except -- @param table -- @see rule -- @see except_any --- The negative equivalent of `rule_any`. -- -- @rulecomponent except_any -- @param table -- @see rule -- @see except --- Matches when one of every "category" of components match. -- -- @rulecomponent rule_every -- @param table -- @see rule -- @see except --- A table whose content will be compared to the target object current properties. -- -- The comparison will be made using the lesser (`<`) operator. -- -- @rulecomponent rule_lesser -- @param table -- @see rule -- @see except --- A table whose content will be compared to the target object current properties. -- -- The comparison will be made using the greater (`>`) operator. -- -- @rulecomponent rule_greater -- @param table -- @see rule -- @see except --- An identifier for this rule. -- -- It can be anything. It will be compared with the `==` operator. Strings are -- highly recommended. -- -- Setting an `id` is useful to be able to remove the rule by using its id -- instead of a table reference. Modules can also listen to `rule::appended` and -- modify or disable a rule. -- -- @rulecomponent id -- @tparam table|string|number|function id