isValidIdentifier
Basic CQL identifier shape check: non-blank, first character is a letter or underscore, remaining characters are letters/digits/underscores. This is intentionally not a full CQL grammar validator (no reserved-word check, no quoted-identifier support) — it exists only to catch obvious mistakes (blank names, names starting with a digit, names containing spaces or punctuation) before they get spliced into DDL/DML strings.