Get-TargetResource should not use 'Required' parameters
I'm not sure why this is, but for some reason Get-TargetResource requires not only the 'Key' parameters, but also the 'Required' parameters. My understanding is only 'Keys' should be necessary to find an existing resource and the 'Required' parameters are necessary when you want to create/update/delete something related to a resource.
This really makes no sense and will hinder our ability to build higher level tech on top of DSC. If I have the key values for any piece of data in any system, I should be able to retrieve it without any additional information.
In almost all of the DSC resources I look at, users have their Get-TargetResource accepting a bunch of parameters they never use due to this restriction in the engine.
xComputerManagement\xScheduledTask is a quick example. The only information needed to find any scheduled task is the 'TaskName', all other parameters are unnecessary. However, DSC has forced the authors to include a bunch of extra parameters in the definition which are never even used in the Get-TargetResource codebase.
If some one can explain a logical reason why we are doing this, I will happily accept it, but I can not think of one and this appears to be creating a bunch of unnecessary work on development and testing staff.