Framework compatibility, a TypeScript rewrite, and promise-based validate()/submit() — what changed in the v3 beta.