I am working on a new challenge (sandbox link) that has something in common with my old challenge Paint Starry Night. In these challenges the goal is essentially to design a compression algorithm tailored to a particular input. (For the new challenge the input is text rather than an image.)
In Paint Starry Night the most competitive answers simply wrapped an existing image compression format such as FLIF or BPG. These answers are (to me) less interesting than some of the others, which did really clever things with genetic algorithms and deep neural networks. For the new challenge I would like to include a rule against such off-the-shelf implementations of compression algorithms, while still leaving a level playing field for all other approaches.
My question is on the right way to do this --- in short, where and how to draw the line between compression routines like bz2 or gzip, versus language features like Python's base conversion or Jelly's dictionary lookup feature, both of which I think should be allowed. The things I want to avoid are (i) that people come up with loopholes that allow them to produce trivial solutions that wrap existing algorithms, or (ii) I accidentally ban perfectly sensible language features that could be used to build a non-trivial solution.
The sandbox link above has (at the time of writing) a possible way to do this based on what Wikipedia's editors list as compression algorithms, but I am not really sure if this is a good idea. Hence I would like to ask for feedback on it, and/or other suggestions of how to define off-the-shelf compression algorithms for the purposes of this kind of challenge.