Clearly not. I didn't because I was wrongly confident that I was merely nitpicking on style - from the diff it looked like an insertion in between the square brackets.  Now I'm trying to understand why `_single_params` must be different from the others?  Around line 200 in `galsim/config/value.py` we have:
```
for s in single:
        if not s: # If no items in list, don't require one of them to be present.
            break
        valid_keys += s.keys()
        count = 0
        for (key, value_type) in s.items():
            if key in param:
                count += 1
                if count > 1:
                    raise AttributeError(
                        "Only one of the attributes %s is allowed for %s.type = %s"%(
                            s.keys(),param_name,param['type']))
                get[key] = value_type
        if count == 0:
            raise AttributeError(
                "One of the attributes %s is required for %s.type = %s"%(
                    s.keys(),param_name,param['type']))
```
Should this not work on just a dict:
```
    if len(single) == 0:
        pass # If no items in list, don't require one of them to be present.
    else:
        valid_keys += single.keys()
        count = 0
        for (key, value_type) in single.items():
            if key in param:
                count += 1
                if count > 1:
                    raise AttributeError(
                        "Only one of the attributes %s is allowed for %s.type = %s"%(
                            single.keys(),param_name,param['type']))
                get[key] = value_type
        if count == 0:
            raise AttributeError(
                "One of the attributes %s is required for %s.type = %s"%(
                    single.keys(),param_name,param['type']))
```
?  I will revert my changes, but I would vote to simplify the `_single_params`.