Here is a TypeScript playground link.
After creating a (dynamic) slice, the payloads for the reducer/actions I create are not inferrable. It seems like there may be some disconnect between GenericFetchState<T> and State (even though State needs to extend GenericFetchState<T>), because this works if I don't allow the freedom of expanding the state shape and only allowed it to be exactly GenericFetchState<T>.