PlainObject:
    | { [key: string]: PlainValue
    | PlainObject }
    | (PlainValue | PlainObject)[]