Currently, "default" is an allowed value for is-managed, resource-stickiness, migration-threshold, and target-role. At the time of writing, the first three are in pe__unpack_resource() and target-role is in get_target_role().
"default" was added as an allowed value by commit 5050638. It seems never to have been documented, so no one should be using it or even aware of it.
Out of a great abundance of caution, we can wait until 3.0.0 to drop it.
Also drop special handling for "#default" as a meta-attribute value. The "#default" handling code was added by commit ea1359b. It seems that it was never documented except as an allowed value for the target-role meta-attribute. In that use case, it's now considered an invalid value.
The documentation for "target-role=#default" was only in the crm.dtd file (not in the doc books), which was removed in 2.0.0 by commit 79a739c.
Any user relying on it is relying on undefined and undocumented behavior. But again, out of a great abundance of caution, we'll wait until 3.0.0.
We will also have to update some tests. When we drop the "#default" line from add_hash_param(), a "#default" value gets added to a resource's meta-attributes if present in the XML. This results in a resource definition change, which would change two test outputs.
An XSL transform should drop these