Is there a reason to set Properties to `null` as a default? It looks like we only use this when we actually have properties. We should avoid having null defaults when they aren't needed, because it makes the behavior harder to reason about for subclasses.