The Fragmention specification does not explicitly say anything about hashbang (#!) URLs or similar common (including legacy) single-page-app routing patterns, and it probably should, to minimize breakage, and provide a defined safe method for future single-page-app routing frameworks.
First, Fragmention should explicitly forbid (with "MUST NOT" language) use of fragmentions that start with a "!" character, thus allowing for legacy hashbang (#!) routing URLs per old Google documentation like:
- https://developers.google.com/search/docs/ajax-crawling/docs/getting-started
- https://developers.google.com/search/docs/ajax-crawling/docs/learn-more
- https://webmasters.googleblog.com/2009/10/proposal-for-making-ajax-crawlable.html
Second, Fragmention should consider also similarly forbidding "#foo=32" type fragments of roughly variablename, equal sign '=', and numeric or string value, as was observed in routing as documented in https://webmasters.googleblog.com/2007/11/spiders-view-of-web-20.html
These two carve-outs, especially the second, should allow sufficient routing flexibility for single-page-apps that won’t clash with explicit use of fragmentions.
Optionally perhaps informally note in the specification that use of hashbangs should be avoided anyway per It's About The Hashbangs.