Code consistency
Created by: ascent12
Jumping around the code a bit, I can see a few different styles for how different things are handled, particularly error messages, and how certain situations are handled. These currently aren't covered by CONTRIBUTING.md, so I think we should expand it.
Error Messages
There are several different formats being used, ranging from "Cannot X, reason", "Failed to X: reason", "X failed: reason", etc. We should mandate that a single style is used. More use of wlr_log_errno (where appropriate) would help.
Assertions
There are a few non-NULL asserts around. We should use them more consistently, at least over the public API. On a related note, any "destruction" function should be able to accept a NULL pointer and exit gracefully, which simplifies error handling a lot.
Function names
We seem to have functions named *_init, *_create, *_finish, *_destroy. While it's mostly like this already (but not fully), we should document that init/finish should NOT handle allocations, and create/destroy do.