[api] allow understudy to be required directly and allow new to be optional

Just some minor things that could make this cleaner. @bmeck thoughts?