TerrainTile's code is hard to understand/modify.
Our game features more terrain tiles than specified in TerrainTile (for example, "one side bottom" and "one side top" are different, not simply mirrors of eachother). The current code isn't exactly super easy to grok for the purposes of extensibility for this feature.
Below are a few screenshots of what the "scavenger" will look like depending on the TerrainTile settings.

Here every settings in one picture.

Here practical example how to use TerrainTile.
I used asset from Kenney.
https://kenney.nl/assets/sci-fi-rts
In the drawing I added the equivalent settings from TileRule.

That's a very useful drawing explaining Terrain Tile, @uvivagabond! 👍
I also add picture with Pipeline Tile.

Problem still exists. The TerrainTile isn't useable for isometric tilemaps as the tiles can't just simply be rotated. While trying to expand the functionality for isometric tilemaps I struggle with the following magic bit
byte original = (byte)mask; if ((original | 254) < 255) { mask = mask & 125; } if ((original | 251) < 255) { mask = mask & 245; } if ((original | 239) < 255) { mask = mask & 215; } if ((original | 191) < 255) { mask = mask & 95; }
Just a few comments would really help the code.