I find these `optional (default=None)` excessive. I think it would be silly for weights to be optional but have non-None default. If you could replace these to strip the ` (default=None)`, that would be a bit neater.