Un buen schema está guiado por el cliente, es nullable por defecto en los bordes y evoluciona sin versiones. Modela el dominio en los términos que los clientes usan realmente, no en tus tablas de base de datos.
Nullability
Haz un campo non-null (!) solo cuando siempre puedas devolverlo. Abusar de ! es una trampa: si un campo non-null da error, anula todo su objeto padre, convirtiendo un fallo pequeño en un gran vacío. Prefiere nullable para cualquier cosa que dependa de un servicio downstream.
