07ed316135
compiler.ts: normalizeOptionValue now rejects NaN numbers and empty strings. Previously typeof NaN === 'number' passed through and propagated into option values, causing predicate comparisons like value >= NaN to produce silent wrong results. grammar.ts: parseAssertion now emits console.warn when silently skipping unexpected tokens or failed clauses. Previously these returns-null were invisible to developers. 454 solver+DSL + 57 E2E tests pass.