# I am the Watcher. I am your guide through this vast new twtiverse.
# 
# Usage:
#     https://watcher.sour.is/api/plain/users              View list of users and latest twt date.
#     https://watcher.sour.is/api/plain/twt                View all twts.
#     https://watcher.sour.is/api/plain/mentions?uri=:uri  View all mentions for uri.
#     https://watcher.sour.is/api/plain/conv/:hash         View all twts for a conversation subject.
# 
# Options:
#     uri     Filter to show a specific users twts.
#     offset  Start index for quey.
#     limit   Count of items to return (going back in time).
# 
# twt range = 1 1
# self = https://watcher.sour.is/conv/xba7bvq
I feel like this is a best practice pattern for any kind of computer system:

- If the system generates something, the user should be able to have a "local" directory of "patches" of the thing that they can apply to whatever comes out of the generator.

What I have in mind as a motivating example is a code generator where you write some code or configuration in one language and it spits out code in another language. Almost always, you want to customize the output a little bit. But the problem that always arises then is that the code generator will obliterate your changes the next time it is run, so if you ever have to modify the code or configuration that feeds into the generator, you can expect your changes to be undone. However, if you could have local patches that are safe from the generator, you can re-apply those patches to the newly-generated code. Naturally the patches might not work on the modified code, depending on your originating change. But a lot of times they will, or they will work with minor edits.

I think this pattern is useful much more generally, though, and might help with the problems that typically arise when using a generator that doesn't quite generate everything you might want it to or the way you want it to.