Custom topic fields are a thing in the database already IIRC. Its always struck me as a useful thng to have for more structured topic types. I think I’d prefer to have each field as a separate DB entry, rather than having a UI for populating a regular post. It would ensure consistency and allow for easier integration with other features and plugins.
And you’d definitely want to define the available fields on a per-category basis, with cross-category linking for identically named fields (eg. “Director” field in the “animation” and “comedy” subcategories of “movie reviews”)
EDIT: You’d probably want data types too. Text, Yes/No, Bounded and Unbounded numbers. Maybe URL.