How I shipped a feature as a 1:1 relationship, then redesigned it to many-to-many after release, without breaking existing events or clients.