I don't feel that strongly about removing the constraint and I am fine with a bias towards simple values. If someone complains we can consider it. On the other hand:

1. Each time you ask .Options on the accessor you will get a new instance of TOptions, so unless the framework or application using it holds to it these can live much shorter than controllers. Now that you mention lifetime, I am going to take a second look. I am not sure that mix of LifecycleKind in this PR works well.

2. We usually talk about POCO support as a quality of frameworks that don't impose any restriction on the design of user types. I hear you using it in way that implies quite the opposite. Possibly DTOs or value objects would be more accurate.