Restricted Source should be program verifiable
A source restriction should be verifiable by a computer, otherwise a question is unclear and should be closed. If it cannot be checked by a computer, it is likely not actually a restriction on the source of the program but on something else. (like the algorithm implemented or the programming language chosen)
How does this apply to questions currently tagged with restricted-source?
In my mind there are three types of restricted-source challenges.
Restricting operations:
These questions ban a type of operation, such as addition or for loops.
Example
Banning characters:
These type of questions give a list of characters that you are not allowed to use in your program.
Example
Patterned requirements:
These questions require the entire source code to follow pattern or structure specified in the question.
Example
Example
Example
The first one is unenforceable. If you ban addition is incrementation allowed? If you ban loops is recursion allowed? These kinds of restrictions cannot be checked by a computer and human checkers might even disagree. These are not restricted source questions and should be closed as unclear.
The second type are a little better and by far the most popular of the three types. For a single encoding it is not very hard to write a program to check if answers follow the restriction. For other encodings it might be harder and there might be room for interpretation or disagreement but overall it is clear and restricted-source. These are however boring. We see a lot of implement a trivial task without these characters and they are no longer novel and should be discouraged in the tag wiki.
The third type of restricted-source challenges, the patterned type, are the most interesting of the bunch, they are often verifiable regardless of the encoding. These challenges are what we should promote as the use of restricted-source.