OK, so this is my opinion, but I'm curious what everyone else thinks. If you mark your references as *not* optional and then generate the subclasses, the types written to the file are marked as optionals in Swift. According to Apple,
"Swift optional is different to Core Data optional. Core Data optional is enforced at the data store level, whereas NSManagedObjects in the Obj-C/Swift runtime may have null object values until they are persisted."
To me, if the relationship isn't optional, then the variable shouldn't be optional either so that I don't try and use it as an optional. I don't want to have to constantly unwrap the values, or check with an "if let/guard" type statement. It would make more sense to mark them as explicitly unwrapped optionals than as normal optionals.
Thoughts?