Here I'm playing with using defaults to fill in read values, rather than just for setting.  E.g., you could do

```python
class SpinnakerDefaults(nengo.objects.EnsembleDefaults):
    on_spinnaker = True
model = nengo.Network()
model.add_config(SpinnakerDefaults)
with model:
    a = nengo.Ensemble(nengo.LIF(50, 1) 
    if a.on_spinnaker:
        ...
```

However, I think this is getting pretty magicky.  It gives the user the impression that `a` has some attribute that it does not actually have.  And it would do really weird stuff like returning different values for `a.on_spinnaker` depending on the context scope.