Assert via serialized JSON (fields pub(crate)); normalize_hashtag covered via review tags. No inline exceptions.