Un buon schema è guidato dal client, nullable per default ai bordi ed evolvibile senza versioni. Modella il dominio nei termini che i client usano davvero, non le tabelle del tuo database.
Nullabilità
Rendi un campo non-null (!) solo quando puoi sempre restituirlo. Abusare del ! è una trappola: se un campo non-null va in errore, annulla l'intero oggetto parent, trasformando un piccolo fallimento in un grande vuoto. Preferisci nullable per qualsiasi cosa dipenda da un servizio downstream.
