toNestedStructureMap method
条件分岐で利用するため用意した.
Implementation
@override
Map<String, Object> toNestedStructureMap() {
    final List<MapEntry<String, Object>> list = [];
    for (final entry in properties.entries) {
        final type = entry.value.runtimeType.toString();
        final propertyName = entry.key;
        final key = type + '(' + propertyName + ')';
        final propertyValue = entry.value;
        late final Object value;
        switch (propertyValue) {
        case ToShorthandSignature(): value = propertyValue.toShorthand();
        case ToNestedStructureMapSignature(): value = propertyValue.toNestedStructureMap();
        case _: value = propertyValue.toString();
        }
        final result = MapEntry(key, value);
        list.add(result);
    }
    // properties を基にしているので constant で ok.
    final result = Map.fromEntries(list);
    return result;
}