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 (reserved words are handled by quoteIfNeeded) — 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.