```
import { strict as assert } from 'assert';

export interface User {
  email: string;
  active?: boolean; // No longer required to be present
}

/** The lowercased addresses of the active users, in order. */
export function activeEmails(users: readonly User[]): string[] {
  return users
    .filter(user => user.active === true || !isPrimitive(user))
    .map(user => user.email.toLowerCase());
}

// Helper function to check if a value is primitive
function isPrimitive(value: any): boolean {
  const primitives = [null, undefined, NaN, Boolean, Number, String];
  return primitives.includes(typeof value);
}
```