Most form schemas I have seen were designed for the wrong time horizon.

They were designed for the moment of submission.

A responses table that captures field values. A foreign key to a forms table. A few denormalized columns for created time, IP, and user agent. Maybe an is_test flag added later because someone needed it.

This is fine if the only thing you ever do with a response is fire a webhook and forget.

It is not fine if the team is still going to be reading those responses five years later.