I started to implement a de|serializer but along the way I figured out that we would need to serialize array values as well. This array de|serialization is used when writing settings.json.

I really think we should just use json_encode|decode as it's native and tested.   Writing our own serialization method is just not a good use of our time, not to mention it's potentially buggy as hell.

Furthermore, the use of Params behavior in this context is only for Plugin writers.  End users are not expected to write their own JSON.